Nachrichtentechnik
Codieren
Ein Encoder wandelt Zustände, Befehle, Messwerte, Text, Ton und Bild in ein Bitmuster um.
Sprache war zuerst
Menschen haben sich überlegt, wie sie die Sprache in ein elektrisches Signal umwandeln können.
Eine der ersten Lösungen
Die Luftschwingungen, die beim Reden entstehen, treffen auf eine dünne Folie, und die Folie beginnt zu schwingen. Auf eine mit Kohlestaub gefüllte Dose geklebt, drückt sie den Kohlestaub zusammen und entlastet ihn. Dabei ändert sich der elektrische Widerstand der Kohlefüllung. Durch die Kohlefüllung fliesst ein Strom. Wegen der Widerstandsänderung ändert sich dieser Strom. Der Strom fliesst durch einen Draht.
Auf der Empfangsseite fliesst der Strom durch eine Drahtspule, erzeugt ein Magnetfeld und bewegt eine Nadel aus Eisen. Die Nadel bringt eine dünne Kartonscheibe zum Schwingen. Die dünne Kartonscheibe ist auf eine Kiste gespannt, erzeugt Luftschwingungen, die durch den Hohlraum der Kiste verstärkt werden. Das menschliche Ohr empfängt die Luftschwingungen. Das Gesagte kann gehört und verstanden werden.
Die Dose heisst Mikrofon, die Kiste heisst Lautsprecher und alles zusammen heisst Telefon.
Das ist Analogtechnik, weil das elektrische Signal analog zu den Luftschwingungen schwingt.
Die Entwickler wollen die Sprachqualität stetig verbessern und die Störungen beseitigen. Heute wird die Sprache digital übertragen, doch zuerst wurde digital gesteuert, dann kam Text, Bild und Ton.
Steuern
Findige Köpfe grübelten und kamen auf die Idee, Strom durch einen Draht zu senden und dem Menschen am anderen Ende des Drahtes zu sagen, er soll eine Lampe anschliessen. Dann haben sie abgemacht, was es bedeutet, wenn die Lampe brennt oder dunkel ist. Das ist Digitaltechnik. Digital stammt vom lateinischen Digitus (Finger). Mit den Fingern kann man eine begrenzte Anzahl Zeichen geben. Mit der Schaltung mit einem Draht kann man zwei Befehle übertragen: tiefe Spannung = Lampe dunkel = Ofen ausschalten, hohe Spannung = Lampe hell = Ofen einschalten.
| Signal | Lampe | Befehl | ||||
| Tief | ![]() |
= | AUS | ![]() |
= | Ofen AUS |
| Hoch | ![]() |
= | EIN | ![]() |
= | Ofen EIN |
Dann kamen die Menschen auf die Idee, zwei Drähte zu nehmen, dann kamen sie auf vier verschiedene Meldungen. Die Schlaumeier haben den Wert vom Zweier-Zahlensystem (Binärsystem; BIN) dazu geschrieben.
| System | Draht | Lampe | Befehl | ||
| BIN | 2 | 1 | 2 | 1 | Beschreibung |
| 00 | ![]() |
![]() |
![]() |
![]() |
Fenster zu, Ofen aus |
| 01 | ![]() |
![]() |
![]() |
![]() |
Fenster zu, Ofen ein |
| 10 | ![]() |
![]() |
![]() |
![]() |
Fenster auf, Ofen aus |
| 11 | ![]() |
![]() |
![]() |
![]() |
Fenster auf, Ofen ein |
Elektrische Schaltung für eine 2-Bit-Datenübertragung für die Meldung: Fenster und Ofen.
Wie Du siehst, braucht es im binären Zahlensystem zwei Stellen, um vier Möglichkeiten darzustellen. Es braucht auch zwei Drähte und zwei Lampen. Folge dessen können wir die Drähte und die Lampen weglassen, weil wir im binären Zahlensystem genug sehen.
Wir schreiben:
| System | Meldung | |
|---|---|---|
| BIN | Nr | Beschreibung |
| 00 | 1 | Fenster aus, Ofen aus |
| 01 | 2 | Fenster aus, Ofen ein |
| 10 | 3 | Fenster ein, Ofen aus |
| 11 | 4 | Fenster auf, Ofen ein |
Ob die Meldung 4 Sinn ergibt, müsste man überdenken. Fenster auf und gleichzeitig Ofen ein ist Energieverschwendung.
Dann haben die Menschen auf acht Drähte erweitert, das ergibt 256 Möglichkeiten. Ein Datenpaket von 8 Bit heisst Byte.
Ein Byte (8 Bit) kann 256 Möglichkeiten
darstellen, das ist die gängigste Paketgrösse.
Das
darfst Du gerne auswendig lernen.
Das Byte und sein Dezimalwert
| Byte | ||||||||
|---|---|---|---|---|---|---|---|---|
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| bn | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
| Gewicht | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Beispiel: Byte 01001001
Bit 6, 3 und 0 sind gesetzt.
26 + 23 + 20 = 64 + 8 + 1 = DEC 73
Das Byte und sein Hexadezimalwert
Damit Menschen ein Byte übersichtlicher angeben können, haben sie das Byte in zwei Halbbytes aufgeteilt. Ein Halbbyte hat 4-Bit und kann 16 Kombinationen repräsentieren. Die 16 Kombinationen werden mit 0—9 und A—F angegeben. Damit kann ein Halbbyte mit einem Zeichen und ein Byte mit zwei Zeichen dargestellt werden.
| Halbbyte | HEX-Ziffer |
|---|---|
| 0000 | 0 |
| 0001 | 1 |
| 0010 | 2 |
| 0011 | 3 |
| 0100 | 4 |
| 0101 | 5 |
| 0110 | 6 |
| 0111 | 7 |
| 1000 | 8 |
| 1001 | 9 |
| 1010 | A |
| 1011 | B |
| 1100 | C |
| 1101 | D |
| 1110 | E |
| 1111 | F |
Das Byte vom obigen Beispiel im Dezimalsystem DEC 73 im Binärsystem BIN 01001001 geben wir neu im Hexadezimalsystem HEX 49 an. Mehr zu Zahlensystemen folgt später.
Weitere Bezeichnungen
Folgende Bezeichnungen kommen in Dokumentationen auch vor:
| Anzahl Bits | System | Bezeichnung |
|---|---|---|
| BIN | ||
| 1 | 1 Bit | Bit |
| 4 | 4 Bit | Halbbyte |
| 8 | 8 Bit | Byte (Standard); Oktett |
| 16 | 2 × 8 Bit | Doppelbyte; Wort |
| 32 | 4 × 8 Bit | Doppelwort |
Einem Byte sagt man auch Oktett. Zwei Byte, also 16-Bit, sagt man Doppelbyte. In der Steuerungstechnik meinen wir mit Wort 16-Bit und mit Doppelwort 32-Bit.
Steuern mit Bytes
Meine ersten Erfahrungen habe ich mit der 2-Byte (16 Bit) Codierung
gemacht. Dem Rechner haben wir mit 2‑Byte (Wort1)
Anweisungen mitteilen können, welches Signal er an seinen Anschlüssen
lesen und mit welcher booleschen Operation (UND/ODER und NICHT) er
dieses Signal in die Rechnung einbeziehen soll und als Resultat
welchen Anschluss er aktivieren oder deaktivieren soll.
1
In der Steuerungsbranche werden 2‑Byte auch Wort genannt.
Detailliert auf den Aufbau dieses Codes einzugehen, sprengt den Rahmen meiner Ausführungen. Nimm einfach zur Kenntnis, dass meine damalige Steuerung Kommandos wortweise verarbeitet hat.
Text in Bytes
Eine Auswahl aus dem ersten und heute noch gültigen 7-Bit-Code (ASCII-Code).
| # | DEC | 7-Bit | Zeichen | Bemerkung |
|---|---|---|---|---|
| 49 | 48 | 0110000 | 0 | Ziffer 0 |
| 50 | 49 | 0111001 | 9 | Ziffer 9 |
| 66 | 65 | 1000001 | A | Grossbuchstabe A |
| 91 | 90 | 1011010 | Z | Grossbuchstabe Z |
| 98 | 97 | 1100001 | a | Kleinbuchstabe a |
| 123 | 122 | 1111010 | z | Kleinbuchstabe z |
Die Möglichkeiten werden wie folgt verwendet:
| # | HEX | Zeichen | ||||
|---|---|---|---|---|---|---|
| 1 | - | 32 | 0 | - | 1F | Steuerzeichen1 |
| 33 | - | 48 | 20 | - | 2F | !"#$%&'()*+,-./ |
| 49 | - | 58 | 30 | - | 39 | Ziffern 0 bis 9 |
| 59 | - | 65 | 3A | - | 40 | :;<=>?@ |
| 66 | - | 91 | 41 | - | 5A | A bis Z |
| 92 | - | 97 | 5B | - | 60 | [\]^_` |
| 98 | - | 123 | 61 | - | 7A | a bis z |
| 124 | - | 127 | 7B | - | 7E | {|}~ |
| 128 | 7F | delete | ||||
1 Steuerzeichen sind nicht druckbare Zeichen wie Return, Tab, Esc usw.
# Möglichkeit 1 bis 128
HEX (Hexadezimal Zahlensystem,
16er-System)
Zeichen (ASCII-Zeichen)
Wie erwähnt kommt man auf 128 Zeichen (DEC 0 bis 127). Das reicht für das grosse und kleine Alphabet, die Ziffern 0 bis 9 und die gängigsten Satzzeichen. Die Zeichen DEC 0 bis DEC 31 und DEC 127 werden für Steuerzeichen (nicht druckbare Zeichen) verwendet. Die Schlaumeier haben eine Tastatur gebaut und jedem Knopf ein Zeichen zugeordnet. Wenn Du eine Taste drückst, sendet die Tastatur das Zeichen in der entsprechenden Bit-Kombination an den Computer. Drück mal Alt+65 (65 auf der Nummerntastatur) dann müsste ein A auf Deinem Bildschirm erscheinen. Die Return-Taste sendet das Zeichen 13. Diese Zuordnung haben Amerikaner erfunden und zum Standardcode für Informationsaustausch gemacht. Sie nannten den Code «American Standard Code for Information Interchange» kurz ASCII-Code. Das höchstwertige Bit (Bit 8) wurde als Kontrollbit (Paritätsbit) verwendet. Eine Art Kontrolle, ob das gesendete Zeichen korrekt sei. Vor dem Senden wurden die gesetzten Bits 1 bis 7 gezählt und wenn die Summe ungerade war, wurde das Bit 8 gesetzt. Das nannte man «Gerade Parität». Der Empfänger hat alle gesetzten Bits im Byte zusammengezählt und kontrolliert, ob die Summe eine gerade Zahl ist. Falls nicht, war das Byte höchstwahrscheinlich fehlerhaft.
Damals hatten die Amerikaner mit den Umlauten und den Spezialzeichen anderer Länder nichts am Hut. Der ASCII-Code verbreitete sich rasant, und unzählige Spezialisten weltweit haben sich dafür eingesetzt, ihre landeseigenen Zeichen unterzubringen. Das Paritätsbit (Bit 8) wurde zu einem weiteren Datenbit umfunktioniert und der ANSI-Code entstand. Damit erhöhte sich der Zeichensatz von 128 auf 256 Zeichen. Die oberen 128 Zeichen wurden für verschiedene Zeichensätze verwendet. Wenn man Zeichen oberhalb 128 richtig verwenden wollte, musste man wissen, welcher Zeichensatz beim Erstellen der Daten gültig war. Die Ära der «falschen» Zeichen war geboren. Eine Lösung für dieses Problem war komplex. Der Unicode mit der UTF-8 Formatierung entstand und hat sich weitgehend durchgesetzt. Achtung, es gibt noch Cracks, die das hartnäckig nicht können wollen oder den Charme von UTF-8 nicht erfasst haben.
Der Unicode ist auf 16 Bit aufgebaut und wurde auf 21 Bit erweitert und kann heute 1'114'112 Zeichen eindeutig identifizieren. Der Unicode beginnt mit dem ASCII-Zeichensatz, enthält die Codetabellen, die als erweiterter ASCII-Zeichensatz verwendet wurden, und sonst eine Riesenanzahl Zeichen wie Emoticons und Hieroglyphen aus fernen Ländern.
UTF-8 (8-Bit Unicode Transformation Format) transportiert sämtliche 1'114'112 Unicode-Zeichen. Das UTF-8-Format verwendet 1 2 3 oder 4 Byte pro Zeichen. UTF-8-Code mit ausschliesslich Ein-Byte-Zeichen ist mit dem ASCII-Code identisch.
UTF-8 hat eine zentrale Bedeutung als globale Zeichenkodierung im Internet. Die Internet Engineering Task Force verlangt von allen neuen Internetkommunikationsprotokollen, dass die Zeichenkodierung deklariert wird und UTF-8 eine der unterstützten Codierungen ist.
Der Code interessiert nicht
Was jetzt? Wieso soll der Code nicht interessieren?
Natürlich interessiert der Code. Der Encoder und der Decoder wollen den Code kennen. Der Transportstrecke hingegen ist der Code vollkommen egal. Wieso denn das?
Weil die Transportstrecke nur Würmer von Einsen und Nullen überträgt, ungeachtet der Bedeutung der Einsen und Nullen. Die Transportstrecke will nur 8er-Pakete (Bytes), weil sie byteweise überträgt.
Der Encoder muss Bytes machen, sonst streikt die Transportstrecke.
Was die Bits bedeuten, spielt für die Übertragung keine Rolle, weil die Datenübertragung nur Bytes — Würmer von Einsen und Nullen — überträgt, ungeachtet der Bedeutung der Einsen und Nullen.
Speichermedien speichern auch nur Bytes, ungeachtet der Bedeutung der Einsen und Nullen. Das ist wie bei einem Schiffscontainer, jeder Schiffscontainer ist genau gleich gross. Was drin ist, interessiert die Reederei nur, wenn es gefährlich oder verboten ist. Gefährlich oder verboten ist ein anderes Thema. Darauf einzugehen, würde den Rahmen dieser Geschichte sprengen. Suche in der Literatur nach Datensicherheit, Datenschutz und Datenschutzverordnung.
Der Encoder interessiert sich für die Bedeutung der Bits, damit der Decoder die Meldung versteht. Der Encoder muss Bytes machen, sonst streikt die Transportstrecke.
Was nun?
Codieren ist, Nachrichten in Elektrisch zu übersetzen. Das ist wie Sprachen lernen. Quasi Nachrichten in die Computersprache übersetzen.
Es gibt unzählige Methoden, um zu codieren. Die Gängigsten schauen wir uns an …




