Forum: Mikrocontroller und Digitale Elektronik USB und NRZI codierung


von Kai S. (Firma: ZeuSWarE GmbH) (zeusosc)


Lesenswert?

Hi leuts, ich habe gerade ein kleines verständnissproblem mit NRZI,

also ist das richtig das NRZI vom Ausgangszustand abhängig ist??
also


-------------------------------------------
D+   | 0 | 0 1 0 1 0 1 0 1 1
-------------------------------------------
D-   | 1 | 1 0 1 0 1 0 1 0 0
-------------------------------------------
Phy  | K | K J K J K J K J J
-------------------------------------------
NRZI | x | 1 0 0 0 0 0 0 0 1

grüße

von Falk B. (falk)


Lesenswert?

@ Kai Scheddin (zeusosc)

>Hi leuts, ich habe gerade ein kleines verständnissproblem mit NRZI,

>also ist das richtig das NRZI vom Ausgangszustand abhängig ist??

Ja. Eine Null wird als Null übertragen, eine 1 erzeugt eine 
Pegelwechsel.
Kombiniert mit der maximalen Lauflänge von 6 bit (?) bei USB hat man 
mindesten alle 6 Bit einen Pegelwechsel im Signal. Die Taktrückgewinnung 
wird es dir danken.

Mfg
Falk

von Kai S. (Firma: ZeuSWarE GmbH) (zeusosc)


Lesenswert?

Ok,
zu den 6 bit:
ich dachte es wird nur bei konstanter polarität alle 6bit ein polwechsel 
intigriert???
oder kommt wirklich alle 6bit ein polwechsel??
also: (beispiel sync packet)

-------------------------------------------
D+   | 0 | 0 1 0 1 0 1 1 0 1
-------------------------------------------
D-   | 1 | 1 0 1 0 1 0 0 1 0
-------------------------------------------
Phy  | K | K J K J K J J K J
-------------------------------------------
NRZI | x | 1 0 0 0 0 0 1 0 0
------------------------------------------
Sync | x | 1 0 0 0 0 0 x 0 0

??? also der polwechsel wird rausgefiltert???? grüüße

von Falk B. (falk)


Lesenswert?

@ Kai Scheddin (zeusosc)

>ich dachte es wird nur bei konstanter polarität alle 6bit ein polwechsel
>intigriert???

Ja, stimmt.

>oder kommt wirklich alle 6bit ein polwechsel??

Nein, spätestens nach 6 Bit. Wenn du konstant 1 überträgst ergibt das 
nach jedem Bit einen Polwechechsel.

>also der polwechsel wird rausgefiltert????

Nein, nur die Stopfbits. Wenn 6 Nullen aufeinanderfolgen wird eine 1 
eingefügt, die mit dem Datenstrom eigentlich nix zu tun hat. Der 
Empfänger erkennt dann auch wieder 6 aufeinanderfolgende Nullen und 
weiss dann, dass die nächste 1 ein Stopfbit ist und wieder rausgefiltert 
werden muss. Man muss hier einfach trennen zwischen NRZI-Kodierung und 
Bitstopfen. Das sind zwei getrennte Prozesse, auch wenn sie in Summe 
einen speziellen Zweck erfüllen.

MFG
Falk

von Kai S. (Firma: ZeuSWarE GmbH) (zeusosc)


Lesenswert?

>>>also der polwechsel wird rausgefiltert????
ja ich meinte das durch den polwechsel erzeugte stopFbit, gut dann denke 
ich das richtig verstanden zu habe. Zum zwecke nochmal:

nach definition ist D+=1 D-=0 ein High, auch J (für low/full speed)
und D+=0 und D-=1 ein low, auch K;

sollten 6 aufeinander folgende J's oder K's gesendet werden folgt ein 
polwechsel,.. der nicht im phystrom auftaucht,
der fertige phystrom geht dann in die NRZI decodierung

(phy: gemeint ist der physische datenstrom resultierend aus den 
differntiellen leitungen D+ und D-)

------------------------------    |
D+   | 0 | 0 1 0 1 0 1 1 0 1      |
------------------------------    |
D-   | 1 | 1 0 1 0 1 0 0 1 0      |
------------------------------   \ /
Phy  | K | K J K J K J x K J      |
------------------------------    |
NRZI | x | 1 0 0 0 0 0 x 0 0      |
------------------------------   \ /
Sync | x | 1 0 0 0 0 0 x 0 0      °

>edit --------------------------------
der polwechsel am bit 6 soll nur demonstrativ sein...
>edit ende----------------------------

Noch eine frage zu den differential leitungen:
In der Netzlektüre "USB in a Nutshell"  wird gesagt das der reciever
D+ als 1 erkennt wenn dieser 200mV größer als D- ist, obwohl die 
transmission mit D+ > 2.8 V und D- <0,3V ist,..
das macht mich gerade ein bissl konfuss,...

grüüße und danke,..

von Falk B. (falk)


Lesenswert?

@ Kai Scheddin (zeusosc)

>In der Netzlektüre "USB in a Nutshell"  wird gesagt das der reciever
>D+ als 1 erkennt wenn dieser 200mV größer als D- ist, obwohl die
>transmission mit D+ > 2.8 V und D- <0,3V ist,..
>das macht mich gerade ein bissl konfuss,...

Du musst zwischen differentiellen und Gleichtaktsignalen unterscheiden. 
Das macht USB bissel komisch. Die Daten werden differentiell codiert, so 
wie RS485 oder LVDS, also der Vergleich zwischen D+ und D-. Aber das 
Paketende über ein Gleichtaktsignal, was quasi CMOS mit 0..3V 
entspricht.

MFG
Falk

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.