Gray-Kode
Der Gray-Kode ist ein einschrittiger Kode
und wird häufig bei Analog-Digital-Wandlungen angewendet.
Benachbarte Kodewörter unterscheiden sich beim Gray-Kode
jeweils nur in einem Bit,
d.h. aufeinander folgende Kodeelemente haben eine Hamming-Distanz von eins.
Ablesefehler z.B. durch leicht schrägstehende Abtaster,
unterschiedliche Ansprechschwellen in den Abtastern
oder Wettlaufbedingungen bei der Bit-Übertragung und -verarbeitung
wirken sich beim Gray-Kode nur geringfügig aus.
Als „zyklisch permutierter Kode“ hat
der Franzose Émile Baudot (1845-1903)
diesen Kode 1878 erstmals vorgestellt.
Er ist benannt nach Frank Gray
["Pulse Code Communication", U.S. Patent no. 2632058,
March 17, 1953
(Quelle: uspto.gov) ].
Abwandlungen des Gray-Kodes zielen auf zusätzliche spezielle Eigenschaften:
- BCD-Kodes (binär codiert dezimal):
Kodes zur Kodierung einer Dezimalstelle,
die nur 10 Kodewörter umfassen (statt 16 beim Gray-Kode)
aber auch einschrittig sind:
- Der Glixon-Kode ist von 0 bis 8 mit dem Gray-Kode identisch,
aber auch beim Übergang von 9 auf 0 (also zur 10) einschrittig.
- Der Gray-Exzess-Kode ist ein um drei Positionen verschobener Gray-Kode,
bei dem die drei ersten und die drei letzten Kodewörter
entfallen sind.
[Nicht zu verwechseln mit dem 3-Exzess BCD-Kode,
auch bekannt unter dem Namen „Stibitz-Kode“,
bennant nach George Robert Stibitz]
- Beim zweiten O'Brien-Kode, dem zweiten Tompkins-Kode und beim Petherick-Kode werden die
Kodewörter "0000" und "1111" nicht verwendet.
Das hat praktische Vorteile, z.B. als Plausibilitätskontrolle
bei Ausfall der Hilfsenergie oder Übertragungsstörung.
- Drei von vier Bits in den Tompkins-Kodes können mit versetzten Abtastern
aus einer einzigen Spur eines Kodelineals bzw. einer Kodescheibe gelesen werden.
Beim Gray-Exzess-Kode, beim O'Brien-Kode und beim Petherick-Kode sind
die drei niederwertigen Bit-Stellen symmetrisch verteilt,
Man spricht von „reflektierten Kodes“.
Durch Invertieren des höchstwertigen Bits erhält man das 9er-Komplement,
was Subtraktionen vereinfacht.
Position (Kode-Wort) |
Gray-Kode |
einschrittige BCD Kodes (binär kodierte Dezimalzahl) |
Glixon-Kode |
O'Brien-Kodes |
Gray-Exzess |
Tompkins-Kodes |
Petherick-Kode |
0
|
0000
|
0000
|
0000
|
0001
|
0010
|
0000
|
0010
|
0101
|
1
|
0001
|
0001
|
0001
|
0011
|
0110
|
0001
|
0011
|
0001
|
2
|
0011
|
0011
|
0011
|
0010
|
0111
|
0011
|
0111
|
0011
|
3
|
0010
|
0010
|
0010
|
0110
|
0101
|
0010
|
0101
|
0010
|
4
|
0110
|
0110
|
0110
|
0100
|
0100
|
0110
|
0100
|
0110
|
5
|
0111
|
0111
|
1110
|
1100
|
1100
|
1110
|
1100
|
1110
|
6
|
0101
|
0101
|
1010
|
1110
|
1101
|
1111
|
1101
|
1010
|
7
|
0100
|
0100
|
1011
|
1010
|
1111
|
1101
|
1001
|
1011
|
8
|
1100
|
1100
|
1001
|
1011
|
1110
|
1100
|
1011
|
1001
|
9
|
1101
|
1000
|
1000
|
1001
|
1010
|
1000
|
1010
|
1101
|
10
|
1111
|
|
11
|
1110
|
12
|
1010
|
13
|
1011
|
14
|
1001
|
15
|
1000
|
- Der reguläre Gray-Kode für n-Bit
umfasst immer 2n Kodewörter.
Um aus einem vorliegenden Gray-Kode
einen mit der doppelten Länge zu erhalten,
wird der vorhandene Kode-Strang nochmal rückwärts wiederholt.
Beide Stränge bilden eine Schleife
(daher die Bezeichnung „reflektierter Kode“ oder „zyklisch permutierter Kode“).
Das hinzugekommene Bit unterscheidet als höchstwertiges Bit die beiden Stränge.
zwei+zwei=vier vier+vier=acht
3 2 7 6 5 4
-----<----- <-----<-----<-----<------
| 10 11 | | 100 101 111 110 |
v + ^ v +-----+-----+ ^
| 00 01 | | 000 001 011 010 |
----->----- >----->----->----->----->
0 1 0 1 2 3
15 14 13 12 11 10 9 8
<------<------<------<------<------<------<------<------<
| 1000 1001 1011 1010 1110 1111 1101 1100 |
v +------+------+------+------+------+------+ ^
| 0000 0001 0011 0010 0110 0111 0101 0100 |
>------>------>------>------>------>------>------>------>
0 1 2 3 4 5 6 7
acht+acht=sechzehn
Dabei haben sowohl die nebeneinander stehenden Kodewörter
als auch die übereinander stehenden Kodewörter
zueinander die Hamming-Distanz eins.
Man kann eine kürzere einschrittige Folge konstruieren,
indem man links und/oder rechts außen liegende Positionen
nicht benutzt
(Gray-Exzess-Kode).
Wenn man die sechs links stehenden Positionen 0...2 und 13...15
aus dem 16-schrittigen Gray-Kode nicht benutzt
und von Position 12 direkt zu Position 3 übergeht
entsteht der 10-schrittige 3-Exzess-Kode:
(15) (14) (13) 12 11 10 9 8
<------<------<------<------<------<
1000 1001 1011 | 1010 1110 1111 1101 1100 |
v +------+------+------+ ^
0000 0001 0011 | 0010 0110 0111 0101 0100 |
>------>------>------>------>------>
(0) (1) (2) 3 4 5 6 7
3-Excess-Kode
Zum Beispiel Kodes zur Kodierung einer Umdrehung,
die 360 oder 720 Kodewörter umfassen
und auch einschrittig sind.
Der entstehende Kode ist in beiden Fällen einschrittig,
denn zwischen dem ersten und letzten benutzten Kodewort ändert sich immer nur ein Bit.
- Der unten beschriebene Kode für die
„Abtastvorrichtung zur digitalen Weg- und Winkelmessung“
benötigt nur halb so viele Kodespuren wie die anderen Kodes,
also für 16 Kodewörter nur zwei statt vier Spuren.
Im folgenden wird
ein weiterentwickelter einschrittiger Kode (Gray-Kode) beschrieben,
bei dem aus einer Kodespur je zwei Bits ausgelesen werden,
was eine Halbierung der Kodespuren auf dem Kodelineal ermöglicht.
Dieser Kode kann den bekannten Gray-Kode ersetzen,
was kleinere und billigere Aufnehmer ermöglicht.
Titel
Abtastvorrichtung zur digitalen Weg- und Winkelmessung
"4" Binärabtaster für Spur 3 |
v |
|
v |
|
"3" höchstwertige Spur |
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
1 |
2 |
3 |
4 |
"1" Spur des Kodes |
|
|
|
|
|
|
|
|
|
"2" Binärabtaster für Spur 1 |
^ |
|
^ |
|
Figur 1
Zusammenfassung
Jede Kodespur wird auf der Kodescheibe an zwei versetzten Stellen abgetastet.
Dadurch ist nur die Hälfte der Kodespuren notwendig.
Es wird ein spezieller Kode angewendet,
der bei versetzter Abtastung einschrittig ist.
Die höchstwertige Kodespur entspricht dem Graycode.
Längs aller weiteren Kodespuren wird einmal oder ggf. repetierend
die Folge "1001110001100011"
verwendet,
deren um vier Abtastschritte versetzte Abtastung
die Folge "1100011000111001"
liefert.
Die Abtastvorrichtung ist kleiner und billiger als ein entsprechender Graycode-Abtaster
und kann jenen ersetzen.
Anwendungsgebiet
Abtastvorrichtungen mit Kodescheibe zur direkten digitalen Weg- oder Winkelmessungen
werden vielfach eingesetzt
zur Mesung der gegenseitigen Lage, Stellung oder des Abstandes von Maschinenteilen.
Im Gegensatz zur billigen inkrementalen Messung von Änderungen
wird die direkte digitale Messung immer dann angewendet, wenn
- die Nullstellung nicht einfach zu erfassen ist,
- die Nullstellung nicht regelmäßig erreicht wird
speziell bei nichtzyklischen Bewegungen oder
- wenn nach Störungen oder Neueinschaltung
eine Unsicherheit im Absolutwert unzulässig ist.
Ziel
Ziel ist, das Volumen der Abtastvorrichtung zu verringern
und die Fertigung der Abtastvorrichtung zu vereinfachen.
Das soll für mechanische, elektrische, optische, induktive, kapazitive
und andersartige Abtastvorrichtungen gleichermaßen erreicht werden.
Wesen
An einer Kodespur sind räulich versetzt
zwei Binärabtaster angeordnet.
Der Versatz ist größer als ein Abtastschritt.
Dadurch ist es möglich,
die Belegung der Spuren auf der Kodescheibe sinnvoll so zu wählen,
dass der Binärkode
einschrittig ist,
d.h. dass sich bei Bewegung um einen Digitalisierungsschritt nur genau ein Bit ändert.
Die Einsparung jeder zweiten Kodespur ermöglicht
- einerseits eine Verkleinerung der Kodescheibe und damit des ganzen Abtasters,
- andererseits brauchen die Binärabtaster und die verbleibenden Kodespuren
nicht extrem klein gehalten werden,
was die Fertigung vereinfacht.
Ausführungsbeipiel
Figur 1 zeigt ein Kodelineal zur Wegmessung mit 16 Abtastschritten.
In Figur 2 ist eine runde Kodescheibe zur Winkelmessung
mit 64 Abtastschritten dargestellt.
Die Abtastpunkte in ihrem gegenseitigen Versatz sind durch Pfeile markiert.
Die höchstwertige Spur 3 ist aufgebaut wie die entsprechende Spur
des bekannten Graycodes,
also auf der Hälfte des Gesamtweges bzw. einer halben Umdrehung (180°)
aus einer Bitfolge mit dem Bitwert „Eins“
und einer zweiten gleich großen Bitfolge mit dem Bitwert „Null“
Für zunächst sechzehn Digitalisierungsschritte
entspricht das einer Bitfolge "1111111100000000"
.
Diese Spur wird wie beim bekannten Inkrementalgeber
von zwei Binärabtastern abgetastet,
die räumlich um ein Viertel des Gesamtweges
bzw. um eine viertel Umdrehung (90°)
versetzt sind.
Die nächste Spur 1 auf der Kodescheibe
und sinngemäß alle folgenden Spuren 5
sind so aufgebaut,
dass auf dem Gesamtweg bzw. einer Umdrehung
die Bitfolge "1001110001100011"
aufgetragen ist.
Auch diese Spur wird von zwei Binärabtastern 2 abgetastet,
die räumlich um ein Viertel des Gesamtweges bzw. eine viertel Umdrehung (90°)
also um vier Digitalisierungsschritte versetzt sind.
Die versetzte Abtastung ergibt die Bitfolge "1100011000111001"
.
höchstwertige Spur |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1, |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0, |
-"- versetzt |
0 |
0 |
0 |
0, |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1, |
0 |
0 |
0 |
0 |
nächste Spur |
1, |
0 |
0, |
1 |
1 |
1, |
0 |
0 |
0, |
1 |
1, |
0 |
0 |
0, |
1 |
1 |
-"- versetzt |
1 |
1, |
0 |
0 |
0, |
1 |
1, |
0 |
0 |
0, |
1 |
1 |
1, |
0 |
0, |
1 |
hexadezimal |
B |
9 |
8 |
A |
E |
F |
D |
C |
4 |
6 |
7 |
5 |
1 |
0 |
2 |
3 |
- 1 - Binärwert „Eins“
- 0 - Binärwert „Null“
- , - Übergang 1->0 oder 0->1
Damit werden einer vier Bit Binärzahl umkehrbar eindeutig
sechzehn Stellungen der Kodescheibe zugeordnet.
Der Kode ist einschrittig,
was aus dem Karnaugh-Diagramm leicht zu ersehen ist.
|
|
|
| |
|
|
_ |
8
_____ |
9
_____ |
|
|B
_| |
A
____ |
_ |
|
C
____ |
D
_____ |
F
_____ |
|
|E
_| |
|
_ |
|
|4
_| |
5
____ |
7
_____ |
6
_____ |
_ |
_ |
0
_____ |
|
|1
_| |
3
____ |
2
_____ |
_ |
|
|
|
| |
|
|
Für jede weitere Erhöhung der Auflösung um jeweils zwei Bit
wird je eine weitere Spur auf der Kodescheibe aufgebracht
und von je zwei weiteren Binärabtastern abgetastet.
Die Bitfolge in den weiteren Spuren ist gleich derjenigen der zweiten Spur,
aber mit jeweils der vierfachen Dichte
entsprechend der vierfach feineren Auflösung durch zwei zusätzliche Bits
und repetierend auf dem Gesamtweg bzw. der Umdrehung.
Dabei wird ausgenutzt, dass die zwei Bit,
die von den Binärabtastern
aus einer zusätzlichen Spur geliefert werden,
immer für drei aufeinanderfolgende feine Digitalisierungsschritte
je einen einschrittigen Übergang liefern usw.
An dieser Stelle, also bei jedem vierten Digitalisierungsschritt
erfolgt nämlich der einschrittige Übergang schon in einem Bit,
welches von den anderen vorhandenen Spuren 1 geliefert wird.
vorhandene grobe
Digit.schritte | | | | | |
Bits der zu- 1,0 0,1 1 1,0 0 0,1 1,0 0 0,1 1 1,0 0, usw.
sätzl. Spur 1 1,0 0 0,1 1,0 0 0,1 1 1,0 0,1 1 1,0
hinzugekommene , , , , , , , , , , , , , , ,
feine Digit.schritte
Auf diese Weise können Abtaster für 16, 64, 256, ... und alle
geradzahligen Potenzen von 2 aufgebaut werden.
Die Umsetzung in gebräuchliche Kodes,
z.B. den Dualkode erfolgt zweckmäßig
über Festwertspeicher ROM, ggf. mittels Software.
- Quelle:
-
„Abtastvorrichtung zur digitalen Weg- oder Winkelmessung“
Anmeldetag: 29.04.1988 „WP H 03 M / 315 194 8“
Patentschrift DD 271 603 A1 vom 06.09.1989
A. Hok.
- siehe unter:
- www.depatisnet.de/depatisnet
Suchbegriff: "DD" "271603"
Erst 1996, sieben Jahre später, wurde ein Gray-Kode mit nur einer Spur
(single track gray code, STGC)
beschrieben von
Alain P. Hiltgen,
Kenneth G. Paterson and
M. Brandestini.
www.ahok.de
[valid
XHTML1.0
and
CSS]