Nibo-IR-Protokoll
From Nibo
(→GCR-Codierung) |
|||
Line 60: | Line 60: | ||
| Break || x000001101<br><span style="color:red;">1111110110</span> || | | Break || x000001101<br><span style="color:red;">1111110110</span> || | ||
|} | |} | ||
- | + | Beide Symbole können an beliebigen Stellen auftreten, die NRZI wird dadurch zurückgesetzt, dass das erste Bit je nach Zustand Eins oder Null ist. Dadurch werden durch die NRZI immer die <span style="color:red;">roten</span> Codierungen erzeugt. Das Break-Symbol dient zur Resynchronisation und setzt das Protokoll immer in einen definierten Zustand zurück. | |
==Beispiel== | ==Beispiel== |
Revision as of 17:28, 21 August 2007
Das Protokoll ist erst in der Entwicklung und noch nicht implementiert!
Contents |
Hardware
Die Übertragung findet über moduliertes Infrarotlich statt. Die Modulationfrequenz beträgt 36kHz.
Codierung
Ein einzelnes Bit wird in 6 IR-Pulsen übertragen. Ein einzelner Puls dauert dabei 1/36000 Sekunden, ein Bit wird demnach in 1/6000 Sekunde übertragen, was einer Roh-Datenrate von 6000 Baud entspricht.
NRZI-Codierung
Die Daten werden direkt vor dem Senden NRZI-codiert, das bedeutet, dass das Ausgangssignal wechselt wenn eine Eins übertragen werden soll, und das es den aktuellen Level beibehält wenn eine Null übertragen werden soll. Dies ermöglicht zusammen mit der nachfolgenden Methode eine Rekonstruktion des Übertragungstaktes, da spätestens nach drei übertragenden Bits ein Signalwechsel erfolgt.
Beispiel:
NRZI: 0001111011010101 Daten: 0001000110111111
GCR-Codierung
Damit nicht mehr als zwei Nullen in Folge übertragen werden, und somit das Ausgangssignal länger als drei Bitzeiten den selben Zustand hätte, werden die Rohdaten vor der NRZI-Codierung anhand der nachfolgenden Tabelle GCR-codiert. Somit müssen jeweils für 4 zu Übertragende Roh-Bits 5 Signale übertragen werden, die resultierende Datenrate beträgt 4800 Baud.
Nibble | Code |
---|---|
0000 | 01010 |
0001 | 01011 |
0010 | 10010 |
0011 | 10011 |
0100 | 01110 |
0101 | 01111 |
0110 | 10110 |
0111 | 10111 |
1000 | 01001 |
1001 | 11001 |
1010 | 11010 |
1011 | 11011 |
1100 | 01101 |
1101 | 11101 |
1110 | 11110 |
1111 | 10101 |
Zusätzlich sind die beiden folgende Symbole definiert:
Bedeutung | Code | Kommentar |
---|---|---|
Idle | x00000...0101 000000...0110 | mindestens 10 Bit lang, beliebig viele zusätzliche Nullen |
Break | x000001101 1111110110 |
Beide Symbole können an beliebigen Stellen auftreten, die NRZI wird dadurch zurückgesetzt, dass das erste Bit je nach Zustand Eins oder Null ist. Dadurch werden durch die NRZI immer die roten Codierungen erzeugt. Das Break-Symbol dient zur Resynchronisation und setzt das Protokoll immer in einen definierten Zustand zurück.
Beispiel
Übertragung: [Break], 0x1f, 0x05, (Pause), 0x06
NRZI: ...0110 0000101010 01101 00110 01100 01010 000000...0110 01100 11011 000000... GCR: ...0101 0000111111 01011 10101 01010 01111 000000...0101 01010 10110 100000... Daten: ...Idle Break 0001 1111 0000 0101 Idle 0000 0110 Idle... COM [Break] 1f 05 06