Der Gray-Code history menue Letztmalig dran rumgefummelt: 19.12.19 14:40:34
Alle bitorientierten Codierungsverfahren beruhen auf dem BCD-Code als Eingabegröße.
1. Technischer Hintergrund
2. Generierungsverfahren
3. Technische Realisierung
4. Praktischer Einsatz
5. Verwandte Themen
6. Übungsaufgaben zum Gray-Code
7. Weblinks zum Thema zum Gray-Code

Coder

der Gray-Code

inhaltlich auf korrektem Stand - evtl. partiell unvollständig ;-)

Wissen für Fortgeschrittene der Informatik

Informatik-Profi-Wissen

Quellen:

1. Technisch/theoretischer Hintergrund history menue scroll up
Gesucht werden in der Praxis der seriellen Datenübertragung schnell und einfach protokollierbare Verfahren zur Absicherung der eindeutigen Richtigkeit übertragener Daten. Auf Datenübertragungungskanäle wirken Störeinflüsse, und diese können Bits zum Kippen bringen. Dies jedoch würde Informationen verfälschen. Gesucht ist also zum einen ein Nachweisverfahren, zum anderen eine Möglichkeit, Fehler korrekt selbsttätig zu erkennen und im Idealfall gleich noch selbst zu reparieren.
 

2. Generierungsverfahren history menue scroll up
Die Generierung des Gray-Codes ist relativ komplex, bietet dafür jedoch die Möglichkeit der Generierung eines regelmäßigen Bitmusters auf der Ergebnisseite. Selbst wenn mehrere Ziffern zu verarbeiten sind, wird immer nur auf der Tetrade des BCD-Codes einer Ziffer gearbeitet - die resultierende Schaltung erfährt bei Bedarf einfach eine mehrfache Anordnung oder benutzt Schiebregister.
  • Shift left für alle 4 Bits (auf der Stelle 20 wird eine logische "0" eingeschoben)
  • die Quellzahl im BCD-Code wird mit der verschobenen Zahl addiert
  • Shift right für alle 4 Bits (auf der Stelle 23 wird eine logische "0" eingeschoben)
  23 22 21 20
         
Demonstration auf binär 0
Schritt Nr. Operation 23 22 21 20
Pos. 1 Ausgang 0 0 0 0
Pos. 2 Shift left 0 0 0 0
Pos. 3 Add Pos. 1 + Pos. 2 0 0 0 0
Pos. 4 Shift right 0 0 0 0
Demonstration auf binär 1
Schritt Nr. Operation 23 22 21 20
Pos. 1 Ausgang 0 0 0 1
Pos. 2 Shift left 0 0 1 0
Pos. 3 Add Pos. 1 + Pos. 2 0 0 1 1
Pos. 4 Shift right 0 0 0 1
Demonstration auf binär 2
Schritt Nr. Operation 23 22 21 20
Pos. 1 Ausgang 0 0 1 0
Pos. 2 Shift left 0 1 0 0
Pos. 3 Add Pos. 1 + Pos. 2 0 1 1 0
Pos. 4 Shift right 0 0 1 1
Demonstration auf binär 3
Schritt Nr. Operation 23 22 21 20
Pos. 1 Ausgang 0 0 1 1
Pos. 2 Shift left 0 1 1 0
Pos. 3 Add Pos. 1 + Pos. 2 0 1 0 1
Pos. 4 Shift right 0 0 1 0
Demonstration auf binär 4
Schritt Nr. Operation 23 22 21 20
Pos. 1 Ausgang 0 1 0 0
Pos. 2 Shift left 1 0 0 0
Pos. 3 Add Pos. 1 + Pos. 2 1 1 0 0
Pos. 4 Shift right 0 1 1 0
Demonstration auf binär 5
Schritt Nr. Operation 23 22 21 20
Pos. 1 Ausgang 0 1 0 1
Pos. 2 Shift left 1 0 1 0
Pos. 3 Add Pos. 1 + Pos. 2 1 1 1 1
Pos. 4 Shift right 0 1 1 1
Demonstration auf binär 6
Schritt Nr. Operation 23 22 21 20
Pos. 1 Ausgang 0 1 1 0
Pos. 2 Shift left 1 1 0 0
Pos. 3 Add Pos. 1 + Pos. 2 1 1 1 1
Pos. 4 Shift right 0 0 1 0
Demonstration auf binär 7
Schritt Nr. Operation 23 22 21 20
Pos. 1 Ausgang 0 1 0 0
Pos. 2 Shift left 1 0 0 0
Pos. 3 Add Pos. 1 + Pos. 2 1 1 0 0
Pos. 4 Shift right 0 1 1 0
Demonstration auf binär 8
Schritt Nr. Operation 23 22 21 20
Pos. 1 Ausgang 0 1 0 1
Pos. 2 Shift left 1 0 1 0
Pos. 3 Add Pos. 1 + Pos. 2 1 1 1 1
Pos. 4 Shift right 0 1 1 1
Demonstration auf binär 9
Schritt Nr. Operation 23 22 21 20
Pos. 1 Ausgang 0 1 1 0
Pos. 2 Shift left 1 1 0 0
Pos. 3 Add Pos. 1 + Pos. 2 1 1 1 1
Pos. 4 Shift right 1 0 0 0
   
Resultierende Funktionstabelle für den Gray-Code
Arithmetischer Wert 21 22 21 20
0 0 0 0 0
1 0 0 0 1
2 0 0 1 1
3 0 0 1 0
4 0 1 1 0
5 0 1 1 1
6 0 1 0 1
7 0 1 0 0
8 1 1 0 0
9 1 1 0 1

3. Technische Realisierung history menue scroll up
Hier nun wartet nur noch eine rein logische Schaltung darauf, dass wir sie lösen. Wenn sie für beide Codeformen fertig gestellt wurden, kann man ja mal schauen, ob es nicht noch ein paar Vereinfachungen gibt. Aber da wird nicht wirklich viel zu holen sein ;-)
BCD-Gray-Code

Gray-Code für zwei BCD-Stellen in kanonischer Logik

Gray-Code für zwei BCD-Stellen in kanonischer Logik zum Download

XOR als Lösungsansatz - korrekt - und extrem kurz

Gray-Code für zwei BCD-Stellen in XOR Logik

Gray-Code für zwei BCD-Stellen in XOR Logik zum Download

Gray-Code-Zähler

Einschrittiger asynchroner Gray-Code-Zaähler

Einschrittiger asynchroner Gray-Code-Zähler als ProfLab 3.0-Datei zum Download


4. Praktischer Einsatz history menue scroll up

Der n-Bit-Gray-Code ist ein einschrittiger Wortcode, der nicht bewertbar ist. Einschrittige Codes zeichnen sich durch einen geordneten Zeichenvorrat aus, da sich ihre aufeinander folgenden Codewörter jeweils nur in einer Ziffernstelle unterscheiden, wie die Tabelle unten des n-Bit-Gray-Codes zeigt. Der n-Bit-Gray-Code lässt sich durch fortlaufende Spiegelung an den eingetragenen Reflexionsebenen aufbauen.

Winkelcodierscheibe im Gray-Code

Winkelcodierscheibe mit sechzehn Sektoren und vier Ringen mit einer Codierung im 4-Bit-Gray-Code

Winkelcodierscheibe im Gray-Code als DigCad 4.0-Datei

Das Bild oben zeigt eine auf einer Welle montierte Winkelcodierscheibe mit den vier Ringen A, B, C, D, die zur Erfassung der Winkelstellung der Welle verwendet wird. Die vier Ringe, die in sechzehn Sektoren eingeteilt sind, entsprechen den vier Ziffernstellen des n-Bit-Gray-Codes. Die Sektoren der vier Ringe, die lichtdurchlässig sind, zeigt das Bild 4.2-1 als weiße Flächen, während die Sektoren, die lichtundurchlässig sind, im Bild 4.2-1 durch Schraffur gekennzeichnet sind. Eine weiße Kennzeichnung eines Sektors entspricht dabei der Ziffer 0, während die Schraffur eines Sektors die Ziffer 1 darstellt. Als Code für die Kennzeichnung der Ringsektoren im Bild 4.2-1 wurde der 4-Bit-Gray-Code nach Tabelle unten verwendet. Zur Bestimmung der Winkelstellung der Welle wird die Kennzeichnung der Ringsektoren mit Hilfe von vier Fotozellen abgetastet. Befindet sich die Winkelcodierscheibe gerade in einer Winkelstellung, in der der Übergang von einem Ringsektor zum anderen mit der Abtastlinie der Fotozellen zusammenfällt, so bewirkt ein geringer Versatz der Fotozellen bzw. der Kennzeichnung der Ringsektoren eine Fehlabtastung. Beim Übergang vom Ringsektor des Winkelbereichs 157,5°-179,9° zum Ringsektor, der den Winkelbereich 180°-202,4° kennzeichnet, bewirkt beispielsweise ein Versatz der Fotozelle, die die Kennzeichnung des Rings D abtastet, dass an Stelle des Codewortes 0100 für den Winkelbereich 157,5°-179,9° das Codewort 1100 des Winkelbereichs 180°-202,4° erkannt wird. Bei der Verwendung eines n-Bit-Gray-Codes tritt dabei allgemein lediglich ein Fehler von 360°/2° auf. Bei Verwendung eines 4-BitGray-Codes und einer entsprechenden Einteilung der Welle in sechzehn Sektoren beträgt der Abtastfehler demnach 360'/16=22,5°. Da sich die Winkelstellung der Welle sowieso gerade im Übergang des Winkelbereichs 157,5°179,9° zum Winkelbereich 180°-202,4° befindet, ist der Fehler somit unerheblich. Verwendet man jedoch zur Kennzeichnung der Ringsektoren keinen einschrittigen Code, so entsteht ein weitaus größerer Abtastfehler. Bei einer Einteilung der Welle in sechzehn Ringsektoren, die durch den nicht einschrittigen 4-Bit-Dualcode gekennzeichnet sind, ergibt sich durch die oben beschriebene Fehlabtastung beim Übergang des Winkelbereichs 157,5°-179,9° zum Winkelbereich 180°-202,4° an Stelle des Codewortes 0111 das Codewort 1111 des 4-Bit-Dualcodes, welches aber dem Winkelbereich 337,5°-359,9° entspricht. Die ungenaue Abtastung an der Sektorengrenze bewirkt demnach bei der Verwendung des nicht einschrittigen 4-Bit-Dualcodes einen großen Fehler von 180°.

Code-Name

4 Bit Gray-Code

4 Bit Binär-Code

Winkelbereich

0,0° - 22,4°

0 0 0 0 0 0 0 0

22,5° - 44,9°

0 0 0 1 0 0 0 1

45,0° - 67,4°

0 0 1 1 0 0 1 0
67,5° - 89,9° 0 0 1 1 0 0 1 1
90,0° - 112,4° 0 0 1 1 0 1 0 0
112,5° - 135,4° 0 0 1 1 0 1 0 1
135,0° - 157,4° 0 1 0 1 0 1 1 0
157,5° - 179,9° 0 1 0 0 0 1 1 1
180,0° - 204,4° 1 1 0 0 1 0 0 0
202,5° - 224,9° 1 1 0 1 1 0 0 1
225,0° - 247,4° 1 1 1 1 1 0 1 0
247,5° - 269,9° 1 1 1 0 1 0 1 1
270,0° - 292,4° 1 0 1 0 1 1 0 0
292,5° - 414,9° 1 0 1 1 1 1 0 1
315,0° - 337,4° 1 0 0 1 1 1 1 0
337,5° - 359,9° 1 0 0 0 1 1 1 1

Zuordnung der Codewörter des 4-Bit-Gray-Codes und des 4-BitDual-Codes zu den sechzehn Winkelbereichen


5. Verwandte Themen history menue scroll up

Hat schon diese Site viel mit Logik zu tun, so kann's auf einer der folgenden damit noch happiger werden. Mich beeindruckt dabei immer wieder, wie man unter dem unwissenden Volk (das bist Du, der Du erarbeitend bis zu diesem Punkte gelangt bist, schon lange nicht mehr!) mit den Wörtchen "und", "oder" und "nicht" evtl. gespickt mit den Regeln der Relationenalgebra Verwirrung stiften kann. Wer's nicht glaubt, löst die Aufgaben unter dem dritten Bleisitft.

Binäre Umcodierer

der Exzess-3-Code

der 1 aus 10-Code

der 2 aus 5-Code

der Aiken-Code

der Johnson-Code auch Libaw-Craig-Code

Biquinär-Code

The Mother of Tetraed Codes - der HEX-Code

der Binärcode 

der unscheinbare WHITE-Code

Baudot-Code

der Huffman-Code

LZW-Kompression

   


6. Übungsaufgaben zum Gray-Code history menue scroll up

Alle der nachfolgenden Aufgaben beziehen irgendwie die logische Zuordnung und/oder kanonische Normalformen in die Lösungsstrategien ein (wenngleich das auch prinzipiell anders geht.
Zeile

x2

x1 x0 y1 y0
1. 0 0 0 1 0
2. 0 0 1 1 1
3. 0 1 0 0 1
4. 0 1 1 0 0
5. 1 0 0 1 1
6. 1 0 1 0 0
7. 1 1 0 1 0
8. 1 1 1 0 1
komplexes Lösungsmuster

Logiktabelle mit 5 Eingängen und 4 Ausgängen

Sauschwere Logiktabelle mit 5 Eingängen und 4 Ausgängen

   
       
In den gegebenen Aufgaben verstehen sich die nummerierten Stationen als binär am Eingang des jeweiligen Haltpunktes kodierte Erfassungszentralen. Ihr Logiksystem untersucht den jeweiligen Fahrschein, welcher die ebenfalls binär codierten Streckendaten auswertet, ob der Fahrschein an der Station gültig ist, oder nicht!
 

Aufgabe 4 entweder für alle Haltepunkte oder für genau einen definierten

Download des Originalplanes im DidCAD 4.0-Format

   


7. Weblinks zum Thema Gray-Code history menue scroll up

Alle der nachfolgenden Aufgaben beziehen irgendwie die logische Zuordnung und/oder kanonische Normalformen in die Lösungsstrategien ein (wenngleich das auch prinzipiell anders geht.
Gray-Code auf Wikipedia
 
 
Projekt Gray-Code



zur Hauptseite
© Samuel-von-Pufendorf-Gymnasium Flöha © Frank Rost im November 2006

... dieser Text wurde nach den Regeln irgendeiner Rechtschreibreform verfasst - ich hab' irgendwann einmal beschlossen, an diesem Zirkus (das haben wir schon den Salat - und von dem weiß ich!) nicht mehr teilzunehmen ;-)

„Dieses Land braucht eine Steuerreform, dieses Land braucht eine Rentenreform - wir schreiben Schiffahrt mit drei „f“!“

Diddi Hallervorden, dt. Komiker und Kabarettist

Diese Seite wurde ohne Zusatz irgendwelcher Konversationsstoffe erstellt ;-)