kennt jemand Linnks oder Bücher zum Thema Taktrückgewinnung aus codierten Datenströmen? Was ih machen möchte ist aus einem Datenstrom mit einer maximalen Lauflänge von 5 einen Takt zurückzugewinnen der der Datenrate/10 entspricht. Einen Takt der 10% über der nominalen Datenübertragungsgeschwindigkeit am Eingang liegt habe ich zur Verfügung.
kennt jemand Linnks oder Bücher zum Thema Taktrückgewinnung
aus codierten Datenströmen?
Nein, leider kenne ich nichts dazu.
Was ih machen möchte ist aus einem
Datenstrom mit einer maximalen Lauflänge von 5 einen Takt
5 Bit?
zurückzugewinnen der der Datenrate/10 entspricht. Einen Takt
der 10% über der nominalen Datenübertragungsgeschwindigkeit am
Eingang liegt habe ich zur Verfügung.
Das hört sich aber trivial an: Zunächst erzeugst Du das 10-fache der 1,1-fachen Taktfrequenz, und teilst das dann durch 11. Die richtige Phase erkennst Du aus dem ersten Datenbit.
Da ich aber vemrmute, dass (auch) Du nur ca. 1% der Randbedingungen geschildert hast, dürfte mein Vorschlag wenig sinnvoll sein.
zurückzugewinnen der der Datenrate/10 entspricht. Einen Takt
der 10% über der nominalen Datenübertragungsgeschwindigkeit am
Eingang liegt habe ich zur Verfügung.
Das hört sich aber trivial an: Zunächst erzeugst Du das
10-fache der 1,1-fachen Taktfrequenz, und teilst das dann
durch 11. Die richtige Phase erkennst Du aus dem ersten
Datenbit.
Da ich aber vemrmute, dass (auch) Du nur ca. 1% der
Randbedingungen geschildert hast, dürfte mein Vorschlag wenig
sinnvoll sein.
Viele Grüße
Uwe
Hi Uwe,
das ganze ist leider nicht ganz so trivial. Wenn ich aus meinem lokalen Takt die nominale Frequenz erzeuge, wie Du vorgeschlagen hast bekomme ich nur die nominale Frequenz des einkommenden Datenstroms. Die nominale Geschwindigkeit ist aber immer unterschiedlich zur „echten“ Geschwindigkeit der einkommenden Daten. Wenn ich mit dem erzeugten nominalen Takt jetzt die Daten weiterverarbeite bin ich schneller oder langsamer als die Daten und bekomme dadurch irgendwann Bitfehler.
Was ich gerne machen würde ist eine Art Interpolationsschaltung um aus den Flanken im Datenstrom einen Takt abzuleiten der die korrekte Geschwindigkeit hat.
Hallo,
warum wertest Du nicht einfach die Zeit zwischen zwei Flanken aus und setzt entsprechende Fehlergrenzen?
Wofür brauchtst Du den Takt denn, geht’s nicht auch ohne bei nur fünf Bit Nachrichtenlänge?
Kannst Du nicht auf einen anderen Code umstellen, der den Takt enthält?
Gruß
Axel
das Problem mit den Flanken ist, dass diese nicht immer kommen. Es handelt sich hier um 8B10B-Codierung was heisst dass jeweils spätestens 5 Bits nach der letzten Flanke in den Daten eine neue kommt. Das heisst, es kann zu jedem beliebigen Bit eine Flanke kommen oder eben auch nicht.
Die Nachrichtenlänge kann im Prinzip beliebig lange sein, deshalb brauche ich auch den eingebetteten Takt um eine Digitalschaltung hinter dem Empfangsteil anzutreiben. Nur mit dem selben nominalen Takt auf Sende- und Empfangsseite zu arbeiten funktioniert nicht, es gibt halt keine zwei identischen Oszillatoren.
Schönen Gruß,
Fritz
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Die Nachrichtenlänge kann im Prinzip beliebig lange sein,
deshalb brauche ich auch den eingebetteten Takt um eine
Digitalschaltung hinter dem Empfangsteil anzutreiben.
Für dererlei daten kann man z.B. mit deutlich erhöhtem Eingangstakt arbeiten, in der Regel 16-facher Nominaltakt. Bei jedem Flankenwechsel startet man einen Grundzähler neu. Die ersten 8 Takte prüft man nichts (wegen Prellen beim Flankenwechsel), dann hat man bis zu 5 „Fenster“ von je 16 Takten, in denn auf einen erneuten Flankenwechesel getriggert wird. passiert im ersten Fenster nichts, hast Du ein entsprechend codiertes Bit. Hast Du einen Flankenwechsel, demententsprechend das andere Bit und neustart der Auswertung. Kommt innerhalb von 5-Fenstern kein Flankenwechsel, so liegt eine Störung vor.
Da Du bei jeder Flanke neu startest, kannst Du bis fast 10% Taktabweichung tollerieren, egal wie lang die Datenströme sind.
kennt jemand Linnks oder Bücher zum Thema Taktrückgewinnung
aus codierten Datenströmen? Was ih machen möchte ist aus einem
Datenstrom mit einer maximalen Lauflänge von 5 einen Takt
zurückzugewinnen der der Datenrate/10 entspricht. Einen Takt
der 10% über der nominalen Datenübertragungsgeschwindigkeit am
Eingang liegt habe ich zur Verfügung.
Für sowas werden oft PLLs eingesetzt. Die Implementierung und vorallem die dahinter stehende Theorie ist aber extrem komplex. Dazu gibts eine eigene Vorlesung bei uns auf der Uni (wirds überall geben, wo Elektrotechnik/Nachrichtentechnik unterrichtet wird), die hab ich aber nicht besucht.