Normalerweise müssen beide Seiten im Voraus wissen, wie hoch die Bitrate ist.
Wenn nicht, können Sie die Geschwindigkeit manchmal anhand der kürzesten Zustandsänderung erkennen. 0000011111111101111111, aber es kann eine Weile dauern und Sie können sehen
etwas kürzeres.
Normalerweise wissen beide Seiten es im Voraus. Einige Dinge wie Ethernet, PCIE usw. verwenden eine langsam vereinbarte Geschwindigkeit, um miteinander zu sprechen, und wechseln dann im Rahmen einer Trainingsübung zu einer höheren Geschwindigkeit oder testen diese.
Es gibt auch Bitcodierungslösungen, irig 106 Kapitel 4, wenn ich mich recht erinnere, hat ein schönes Diagramm mit nrz-l, s, m Biphase-l / m / s usw. Wenn Sie Biphase verwenden, insbesondere Biphase-l Einige Branchen nennen es Manchester- oder Manchester II-Codierung. In beiden Fällen wird ein Bit mit einer Änderung des Zellenzustands im mittleren Bit definiert, sodass jedes Bit zwei Halbbitzellen mit einem hohen zu niedrigen oder niedrigen zu hohen Wert in der Mitte ist, der eine Eins oder Null bestimmt . Bei langen Datenströmen oder kontinuierlichen Daten sehen Sie per Definition nie mehr als zwei Halbbitzellen auf derselben Ebene, was die Bitsynchronisierung mit der anderen Seite erheblich erleichtert. Solange beide Seiten übereinstimmen, ist die Datencodierung zweiphasig-l.
Zusätzlich zum Herausfinden, wie oft gesampelt werden muss, gibt es ein weiteres typisches Problem, wenn jede Seite ihren eigenen Oszillator verwendet. Selbst bei einer vereinbarten Datenrate driftet jede Seite im Laufe der Zeit, sodass Sie das irgendwie lösen müssen. In einigen Situationen wie uart, in denen Ihr Frame / Ihre Nachricht sehr kurz ist, können Sie die Startbitkante verwenden, um sowohl zu definieren, wo sich ein Mid-Bit-Zellenabtastwert für eine vereinbarte Rate befindet, als auch für diese Rate von 10 Zellen oder so können Sie eine angemessene Menge haben Unterschied zwischen Uhren und es funktioniert immer noch. Wenn Sie wirklich für jede Kante, die angezeigt wird (falls vorhanden), möchten, können Sie sie neu anpassen.
In der Telemetriewelt (das irig 106-Ding) sind die Daten kontinuierlich und der Bitsync verarbeitet Überabtastung und Verfolgung, aber Sie benötigen eine gewisse Anzahl von Übergängen im Laufe der Zeit, um dies zu tun, also jene Codierungslösungen, die Bitübergänge sicherstellen.
Einige Protokolle versichern Übergänge auf andere Weise. Ethernet löst dies nicht ordnungsgemäß, der Empfänger kann / wird eine wiederhergestellte Uhr verwenden, um die Daten abzutasten, aber die Daten, die einmal in Bytes und Pakete umgewandelt wurden, werden gepuffert und verarbeitet, wenn Ihr Kristall etwas langsamer ist als der Kristall des Absenders und Sie Wenn Sie eine Zeilenrate haben und eine Speicher- und Weiterleitungssache ausführen (z. B. ein Router), werden Sie Ihre Puffer irgendwann überlaufen und müssen die Flusskontrolle übernehmen. Das ist also der Mechanismus dort.
dann natürlich, wie kommentiert, wenn Sie synchron statt asynchron sind, tragen Sie die Uhr "einfach" mit sich, aber abhängig von den Geschwindigkeiten und Kabellängen kann es zu einer Verschiebung zwischen Uhr und Daten kommen, die behandelt werden muss mit. spi hat dieses Problem sicherlich, da einige Produkte (wie Blitze) Ihre Anfrage sehen, die Sie an der steigenden Flanke gesendet haben. Sie beginnen ihre Antwort an der fallenden Flanke und Sie probieren basierend auf Ihrer steigenden Flanke, sodass Sie einen halben Taktzyklus für die Runde haben Auslösung, wenn Sie beispielsweise eine cpld- oder fpga-Inline einfügen, damit Sie hinter der Tür auf den Blitz zugreifen können (anstatt die Signale zu verkabeln oder zu teilen), können Sie die Rundreise zu lang machen. QDR-Speicher hat dieses Problem und einige Lösungen auch dafür, parallele Daten derselben Geschichte mit einer Uhr für die Fahrt, wenn die Signale Zeitprobleme haben, können Sie eine oder beide Seiten zur falschen Zeit abtasten. pci trägt eine Uhr mit sich, aber es ist die Referenzuhr, nicht die Gigaherz-Uhr, die zur Herstellung der Daten verwendet wird (es ist die Referenzuhr, die zur Herstellung der Gigahertz-Uhr verwendet wird).
kurze Antwort, die meiste Zeit einigen sich beide Seiten auf die Geschwindigkeit im Voraus, entweder durch Protokoll, feste Geschwindigkeit oder durch eine Trainingsübung mit einer vereinbarten / definierten langsameren Geschwindigkeit, oder wir sind uns einfach wie uart einig, ich weißDie andere Seite ist 1152008N1, also habe ich meine Seite darauf eingestellt.Gelegentlich können Sie mit uart beispielsweise eine Geschwindigkeit erkennen, aber die andere Seite muss Zeichen senden, die dies zulassen ... (die richtigen Übergänge nicht 00110011, sondern 101 oder 010 irgendwo.