Binäre Codes
Grundlagen
Mit Hilfe von digitalen Schaltungen soll gezählt und gerechnet werden. Es ist daher erforderlich, alle Dezimalziffern und Zahlen durch 0 und 1 darzustellen. Eine Darstellung mit nur zwei Zeichen wird als binärer Code bezeichnet.
Prinzipiell lassen sich eine Vielzahl von verschiedenen binären Codes aufstellen. In der Praxis werden jedoch nur einige Codes tatsächlich verwendet. Auswahlkriterien sind bei Rechenschaltungen der Aufwand für mathematische Funktionen, bei Längen- und Winkelmessungen die Fehler, die beim Ablesen auftreten können.
Der Dualcode
Beim Dualcode (der auch als Binärcode bezeichnet wird) erfolgt eine direkte, lückenlose Zuordnung der Dezimalzahlen zur entsprechenden Binärzahl.
Der Dualcode kommt in allen modernen Computern zum Einsatz. Im Inneren des Mikroprozessors werden alle Befehle und Daten in dieser Form bearbeitet. Ein Problem ist allerdings die schlechte Lesbarkeit für den Menschen. Die entsprechenden Informationen werden daher in eine für den Menschen gerechte Form gebracht und z.B. am Bildschirm angezeigt, obwohl im Hintergrund weiterhin im Dualcode gearbeitet wird.
Beim Dualcode werden Dezimalzahlen lückenlos auf Binärzahlen abgebildet.
Der BCD-Code
Der BCD-Code ist mit dem Dualcode eng verwandt. Die Bezeichnung „BCD“ bedeutet Binary Coded Decimals.
Im BCD-Code wird jede Ziffer einer Dezimalzahl durch vier binäre Stellen dargestellt. Eine derartige Einheit von 4 binären Stellen wird als Tetrade (Vierergruppe) bezeichnet. Da sich mit 4 binären Stellen 16 verschiedene Dezimalzahlen darstellen lassen aber nur 10 benötigt werden, um 10 Ziffern darzustellen, werden von den 16 Tetraden nur 10 genutzt, die restlichen 6 dürfen im BCD-Code nicht vorkommen und werden als Pseudotetraden bezeichnet.
Für die Darstellung einer mehrstelligen Dezimalzahl wird für jede einzelne Ziffer eine eigene Tetrade benötigt.
Der BCD-Code kommt immer dann zum Einsatz, wenn eine Dezimalzahl für den Menschen direkt lesbar angezeigt werden soll, z.B. mit einer 7-Segment-Anzeige.
Der „3-Exzess“-Code
Beim 3-Exzess-Code werden die ersten und die letzten drei der möglichen 16 Tetraden nicht verwendet. Dadurch ergibt sich ein symmetrischer Code.
Wie beim BCD-Code wird jeder einzelnen Ziffer einer mehrstelligen Dezimalzahl eine Tetrade zugeordnet.
Der Code hat den Vorteil, dass die Tetrade 0000 nicht vorkommt. Es ist daher möglich, einen Spannungsausfall in der sendenden Anlage festzustellen.
Einschrittige Codes
Grundlagen
Die bisher beschriebenen Codes eignen sich für eine direkte Verarbeitung innerhalb einer digitalen Schaltung, da hier alle Daten nur elektronisch übertragen und verarbeitet werden. Sollen jedoch Längen oder Winkel elektronisch erfasst werden, dann müssen diese mechanischen Größen mit Hilfe eines digitalen Lineals in eine digitale Größe umgewandelt werden. Wird dieses Lineal mit dem „falschen“ Code codiert, dann können bei der Abtastung aufgrund von geringfügigen Fertigungstoleranzen große Fehler bei der Digitalisierung auftreten.
Geeignete Codes für die Codierung eines digitalen Lineals sind:
GRAY-Code
PETHERICK-Code
GLIXON-Code
Abtastung eines mit dem Dualcode codierten Lineals
Würde man dieses digitale Lineal z.B. mit dem Dualcode codieren, dann können durch geringfügige Toleranzen innerhalb der mechanischen Abtastvorrichtung große Fehler auftreten. Die Ursache liegt im Code selbst, da es sich um einen so genannten mehrschrittigen Code handelt. Das bedeutet, dass beim Übergang von einer Zahl zur nächsten mehrere Stellen gleichzeitig ihren Wert von 0 auf 1 bzw. von 1 auf 0 ändern können.
Bei einem mehrschrittigen Code können mehrere Stellen gleichzeitig ihren
logischen Zustand ändern.
Zur Veranschauung des Problems soll ein digitales Lineal dienen, bei dem 16 Zahlen mit dem Dualcode codiert sind. Jene Stellen, die eine logische 0 darstellen, sind durch ein weißes Feld gekennzeichnet, eine logische 1 wird durch ein graues Feld dargestellt.
Man sieht, dass hier beim Übergang zwischen den einzelnen Dezimalzahlen mehrere Stellen gleichzeitig ihren logischen Zustand ändern können, z.B. beim Übergang von 1 auf 2 ändern gleichzeitig die Stellen 20 und 21 ihren Zustand, beim Übergang von 7 auf 8 ändern sogar alle 4 Stellen ihren Zustand.
Bewegt sich nun eine Abtastvorrichtung mit 4 Abnehmern über das Lineal, wobei ein Abnehmer aufgrund von Fertigungstoleranzen gegenüber der Abtastlinie verschoben ist, dann kann das zu Fehlern führen, die dem halben Endwert des Lineals entsprechen (in diesem Fall kann der Fehler den Wert 8 aufweisen, da mit dem Lineal 16 Werte digitalisiert werden können).
Noch ergibt die Abtastung keinen Fehler, der aufgrund der Lage der Abtastvorrichtung zu erwartende Wert 7 wird korrekt abgetastet.
Wird die Abtastvorrichtung nun in Richtung der Zahl 8 weiterbewegt, dann wird im Übergangsbereich aufgrund des verschobenen Abnehmers für die Stelle 23 der Wert 0 abgelesen.
Erst eine weitere Bewegung auf die Mitte der Zahl 8 ergibt wieder den richtigen Wert 8.
Solche Fehler können in der Praxis natürlich nicht toleriert werden. Abhilfe kann durch die Verwendung eines einschrittigen Codes geschaffen werden.
Abtastung eines mit dem GRAY-Code codierten Lineals
Beim GRAY-Code wurde darauf geachtet, dass beim Übergang von einer Zahl auf die nächste immer nur eine Stelle ihren logischen Zustand ändert. Es handelt sich daher um einen einschrittigen Code.
Bei einem einschrittigen Code kann beim Übergang von einer Zahl auf die nächste
immer nur eine Stelle ihren logischen Zustand ändern.
Bei einem einschrittigen Code können daher nur Fehler auftreten, die maximal um ±1 um den richtigen Wert liegen (sofern die Abtasteinrichtung nicht extrem falsch justiert ist). Der GRAY-Code wird daher vor allem in jenen Bereichen eingesetzt, bei denen Winkel oder Längen digital codiert und abgetastet werden, so z.B. beim digital codierten Höhenmesser.
Ein digitales Lineal, das für 16 Zahlen im GRAY-Code codiert ist, würde folgendermaßen aussehen:
Anmerkung: MSB … Most Significant Bit, LSB … Least Significant Bit
Man sieht sofort, dass hier beim Übergang zwischen zwei Zahlen immer nur eine Stelle ihren logischen Zustand ändert. Wichtig ist auch, dass beim Übergang vom Maximalwert (in diesem Fall 15) auf den Wert 0 ebenfalls nur eine Stelle ihren Zustand ändert. Es ist daher möglich, das Lineal auch in Scheibenform auszuführen, um damit Winkel zu digitalisieren.
Dass beim GRAY-Code der Fehler nur maximal ±1 betragen kann, soll wieder am Übergang von der Zahl 7 zur Zahl 8 dargestellt werden.
Zu Beginn wird wieder der richtige Wert 7 abgetastet.
Bei der Verschiebung der Abtastvorrichtung in Richtung der Zahl 8 wird zunächst noch der Wert 7 abgetastet, obwohl sich die Abtastvorrichtung bereits über der Zahl 8 befindet. Der Fehler ist hier im Gegensatz zum im Dualcode codierten Lineal jedoch nur -1.
Wird die Abtastvorrichtung dann in die Mitte der Zahl 8 geschoben, dann wird der richtige Wert 8 abgetastet.
Beim GRAY-Code treten also im Gegensatz zum Dualcode keine Sprünge bei der Abtastung auf, die richtige Codierung erfolgt nur um den Abstand des falsch justierten Abnehmers von der Abtastlinie zu spät (oder, bei Abweichungen in die andere Richtung als im Beispiel angenommen, zu früh).
—
—