Forum: Haus & Smart Home FireWire 1394b Signalcodierung: 8b10b


von Thomas W. (tommy1992)


Lesenswert?

Guten Morgen,

ich bin dabei einen Vortrag demnächst über FireWire zu halten, und da 
sind ein paar Hürden die ich nicht überwinden kann.
Um anzufangen geht es um die Version 1394b des FireWire-Busses, wo als 
Signalcodierung 8b10b benutzt wird. Bei diesem Standard sind sehr hohe 
Datenraten möglich, aber eben mittels dieser 8b10b-Codierung!(habe das 
auf einer Seite gelesen)
Frage: WIE ermöglicht diese Codierung solche 'hohe' Datenraten?

Ich habe auch sehr viel über dieses Codierverfahren recherchiert , aber 
verstanden habe ich es bis jetzt immer noch nicht. ZB ist von 'running 
disparity' dauernd die Rede, aber warum das notwendig ist wird mir nicht 
klar. Oder warum dieser 'Gleichspannungsausgleich' so wichtig ist und 
wie man den Takt rückgewinnen kann? Die Erklärungen auf Google sind, für 
mich zumindest, relativ unverständlich und ziemlich kompliziert 
erklärt(man findet nicht viele konkrete Beispiele mit Erklärungen dazu). 
Hat jemand von euch eine Ahnung von diesem Codierverfahren im 
Zusammenhang mit FireWire?
Wenn meine Frage hier beantwortet wurde, dann hätte ich noch ein paar 
andere Fragen zum Thema 'FireWire' :) Bin für jeden Lösungsvorschlag 
dankbar! :)

Und noch was: ich habe wirklich echt viel recherchiert und einfach keine 
verständliche Erklärung zu diesem Codierverfahren gefunden. Wenn jemand 
jetzt doch noch eine Seite finden sollte wo es echt gut erklärt ist, 
dann entschuldige ich mich schon im vorraus dass ich diese Seite 
übersehen habe.



Liebe Grüsse,
Tommy

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

8b10b ist doch auf Wikipedia ganz gut erklärt. Das sollte für 
Normalmenschen völlig ausreichen.
Wenn du es noch genauer willst, kommt man leider nicht um heftige 
Mathematik drumherum.

von Thomas W. (tommy1992)


Lesenswert?

Es ist aber genau das was ich gesagt habe, dass wikipedia es nicht gut 
genug für mich erklärt. Diese deutsche Version zeigt nicht einmal die 
Code-Tabellen, und in der engl. Version fehlen Details wie zB welchen 
Wert hat die Running Disparity am Anfang?

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Wiki ist nicht dein Banknachbar. Du mußt dann schonmal Google 
weiterbenutzen.
Hatte ich zufällig vor ein paar Wochen gemacht und mir waren es mehr als 
genug Infos. Allerdings hatte ich auch genug Vorkenntnisse, die mir 
halfen die Infos richtig einzuordnen.


Hier mal ein Stichwort: Ethernet "wander"

von Thomas W. (tommy1992)


Lesenswert?

Hab Google GANZ durchgewühlt aber vergebens! Und ich habe nicht viel 
Vorkenntnisse, ausser dass ich in der Zwischenzeit beim durchwühlen 
gelesen habe dass Ethernet usw solche Codierungsverfahren benutzen, aber 
das ist keine Antwort auf meine Frage.

von Robert L. (lrlr)


Lesenswert?

schon bei der "Quelle" direkt gefragt
wird ja wohl irgendwer spezifiziert haben...

oder im "linux -firewire -kernel developer board.." ;-) (oder im 
sourcecode)

ps. warum ist das eigetlich "wichtig" für dich..


wichtig ist doch nur, dass einsen und nullen  a) Geleichverteilt sind, 
und b) möglich oft zwischen eins und Null gewechselt wird..

grund ist ja auch klar: damit man den tackt nicht verliert..

wie das jetzt bis ins letzte detail sichergestellt wird, ist doch 
"nebensächlich"??

von Thomas W. (tommy1992)


Lesenswert?

Ich trage ein Vortrag vor über FireWire und bei 1394b wird 8B10B 
verwendet um auf diese hohen Taktraten zu kommen. Der Professor stellt 
dann typische fragen wie:
"Wie ist es möglich mittels dieses Codierungsverfahren eine hohe 
Taktrate zu erhalten?"

Oder

"Wie funktioniert 8B10B?"


und einsen und nullen sind nicht gleichverteilt, hab sowas gelesen dass 
dann zB entweder 5 nullen und 5 einsen, oder 6 nullen und 4 einsen oder 
4 nullen und 6 einsen gesendet werden.

Und wenn dadurch ja der Takt wiedergeswonnen wird, wie gewinnt man dann 
die versendeten Daten wieder zurück?

von Robert L. (lrlr)


Lesenswert?

> oder 6 nullen und 4 einsen oder
>4 nullen und 6 einsen gesendet werden.

ich hätte aus den wiki Einträgen heraus gelesen dass eben "running
disparity" genau das macht

die mit 6 nullen und die mit 4 nullen abzuwechseln, dass es in summe 
gleich verteilt ist..

kann aber auch nicht stimmen..

> wie gewinnt man dann
>die versendeten Daten wieder zurück?

vermutlich so wie "überall"  Prüfsumme + nochmal "anfordern"

hat aber jetzt nicht direkt mit 8b10b zu tun, da muss wohl wo anders 
suchen..

aber wie du siehst, ich kann dir da auch nicht weiter helfen, deshalb ja 
der Vorschlag direkt in der Spezifikation (wo auch immer man die 
bekommt, vielleicht muss man auch aktiv nachfragen, google hat halt auch 
nicht alles..) nach zuschauen

von Thomas W. (tommy1992)


Lesenswert?

genau das habe ich ja auch dort gelesen, aber ich bin mit diesem 
'running disparity' genau so unsicher wie du...


> vermutlich so wie "überall"  Prüfsumme + nochmal "anfordern"
habe nicht wirklich erfahrung mit codierverfahren, kann sowas dann also 
nicht wissen.

> > aber wie du siehst, ich kann dir da auch nicht weiter helfen, deshalb ja
> der Vorschlag direkt in der Spezifikation (wo auch immer man die
> bekommt, vielleicht muss man auch aktiv nachfragen, google hat halt auch
> nicht alles..) nach zuschauen

hm, hatte gedacht dass evtl jemand hier ein skript oder einen powerpoint 
von einem Professor über 8B10B hätte, und mir so weiterhelfen könnte...

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

> Hab Google GANZ durchgewühlt aber vergebens!

Böldsinn!!!
Und Google ist auch nicht das Internet oder gar ne Bibliothek.


> Und ich habe nicht viel Vorkenntnisse,...

Ja, das stimmt als 1. Schritt zur Selbsterkenntis ;-)


Vermutlich ist 1992 dein Baujahr? Hm. Ich habe 1. keine Lust endlos zu 
schreiben, 2. kann ich dir auch vieles nicht erklären bzw. mathematisch 
herleiten (Ich stelle meine Arbeit immer an einem bestimmten Punkt zu 
einem Thema ein. Nämlich dann wenn es für mein Ziel ausreichend ist), 3. 
kenne ich kein Skript und wenn es das gäbe, bräuchte man deine Arbeit ja 
nicht mehr.

Du mußt einfach lernen richtig zu suchen. Hier lese mal die nächsten 
Tage bis du keine Lust mehr hast:
http://www.google.de/search?hl=de&source=hp&q=ieee+8b10b&gbv=1


8B10B ermöglicht keine hohen Datenraten bzw. der Satz ist so einfach 
sinnverkehrend. Vermutlich sollst du es mit dem alten 10MBit-Ethernet 
vergleichen, dann macht es eher Sinn:
Dort wurde pro Datenbit sehr viel Taktanteil übertragen, nämlich genau 
die Hälfte der übertragenen Energie pro Bit für die Taktung verbraten. 
Bei 8B10B ist deutlich (Ich vermeide hier extra das Wort viel oder 
'hohe')weniger Takt enthalten. Das siehst du am Verhältnis 10 zu 8. Wie 
das Verhältnis bei Uralt-Ethernet ist, darfst du dir als Hausaufgabe 
selbst überlegen. Gutes Stichwort ist auch Symbol bzw. Baud vs. Bit. Und 
dann schau dir die entstehenden Spektren und Lock-Zeiten für die 
Taktregenerierung mal an.


Zu meiner Zeit gabs eben noch kein Internet. Daher ist meine Generation 
aus deiner Sicht unglaublich störrich und anspruchsvoll.

von Robert L. (lrlr)


Lesenswert?

(bissl viel heiße luft...)


>Bei 8B10B ist deutlich weniger Takt enthalten. Das siehst du am Verhältnis >10 zu 
8.


und wieviel "takt" ist dann in 64b66b (also 64 zu 66) enthalten ;-)
vielleicht kannst das etwas technischer ausdrücken, damit man versteht 
was du meinst..


>8B10B ermöglicht keine hohen Datenraten

hast du z.b. die überschriften deiner google-hits gelesen

der 2. ist

"A new 8B10B block code for high speed data transmission"

von Thomas W. (tommy1992)


Lesenswert?

@Robert L.: Du sprichst mir aus der Seele...

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

An dieser Stelle verschwimmen die Unterschiede zwischen den klassischen 
Betrachtungsweisen von Codierung und Modulation.

10MBit Ethernet kann man als Leitungscode 2B1B betrachten. Andere Name 
für gleiche Sache ist Biphase. 1 Bit wird in zwei Bits 'Blöcke' 
aufgeteilt, wobei beide Blöcke genau gegensätzlich sind und die Grenze 
zwischen beiden Blöcken nun fallend oder steigend sein kann und mit 
dieser Eigenschaft das wahre übertragene Bit codiert ist.

http://de.wikipedia.org/wiki/Manchester-Code

(Wobei es bei Biphase diverse Varianten und Namen gibt, absolut, 
differentiell usw. Auswirkung auf das notwendige SN-Verhältnis ist nicht 
oder kaum gegeben. FM ist mehr oder weniger auch das gleiche. Der 
Unterschied ist nicht mehr als ca. 2dB, was recht wenig ist wenn man es 
mit anderen Codierungen vergleicht)

Aus informationstheoretischer Sicht zählt nur die notwendige Energie pro 
Einzelbit aus dem Basisband bei einem bestimmten gewünschten 
Signal-Rauschabstand.

Durch die Umcodierung verschiebt und komprimiert man das sich ergebende 
Spektrum hin zu einem optimalen zu übertragenen Frequenzbereich.


Bisserl hochnäsig für so wenig Wissen seit ihr schon. ciao!

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Korrektur: Obiger Nomenklatur entsprechend hätte ich 1B2B schreiben 
müssen.

von Robert L. (lrlr)


Lesenswert?

>Ich habe 1. keine Lust endlos zu
>schreiben,

für endlos text, der nichts mit dem thema zu tun hat.. hast du scheinbar 
schon lust..

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Scheint so:
"Durch die Umcodierung verschiebt und komprimiert man das sich ergebende
Spektrum hin zu einem optimalen zu übertragenen Frequenzbereich."

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.