Przewodnik dla początkujących do odzyskiwania danych Clock
jeśli jesteś nowy w świecie projektowania i weryfikacji, prawdopodobnie masz wiele pytań! Jeden z nich może dotyczyć ważnego elementu-odzyskiwania danych zegara. Na tym blogu, staramy się de-mystify ten proces.
celem projektowania różnych protokołów jest przesyłanie zestawu informacji (danych) z jednego miejsca do drugiego. Często szeregowa komunikacja danych jest używana do przesyłania danych z dużą prędkością. Na końcu odbiornika przesyłane dane muszą być pobierane bez utraty ich integralności z towarzyszącymi informacjami o czasie. Proces ten nazywa się zegarem i odzyskiwaniem danych.
w tym artykule omówimy wymagania CDR i jak to działa, jak radzić sobie z problemami takimi jak jitter i PPM w modelowaniu CDR.
przy okazji, jeśli spędzasz dużo czasu wpatrując się w przebiegi, próbując mieć sens, nasze narzędzie do debugowania protokołu (PDA) może być dla ciebie interesujące. Proszę spojrzeć na krótkie demo 3 minut tutaj (bez słuchawek? Bez obaw! Ma napisy!).
różne techniki transmisji danych:
przed rozpoczęciem pracy na CDR przyjrzymy się różnym technikom transmisji danych, które są:
1. Szeregowa komunikacja danych
w komunikacji szeregowej bity danych są przesyłane sekwencyjnie jeden po drugim.
2. Równoległa komunikacja danych
w komunikacji równoległej bity danych są napędzane na wielu przewodach jednocześnie.
patrząc na powyższe liczby, można łatwo ocenić, że komunikacja równoległa będzie znacznie szybsza niż komunikacja szeregowa.
ale nasuwa się pytanie, dlaczego komunikacja szeregowa jest lepsza od komunikacji równoległej???
dzieje się tak dlatego, że w praktyce komunikacja równoległa nie jest szybsza od komunikacji szeregowej. Wynika to z następujących powodów –
a) pochylenie
Długość ścieżki dla każdego bitu będzie inna.Z tego powodu niektóre bity mogą pojawić się wcześniej lub wcześniej niż inne, które mogą uszkodzić informacje.
aby rozwiązać ten problem, możesz użyć bitów. Ale to byłoby na koszt prędkości, ponieważ zmniejszy prędkość każdego łącza do najwolniejszego ze wszystkich.
b) interkonferencja i Cross talk
ze względu na kilka równoległych linków isi i Cross talk jest wprowadzany do systemu, który staje się bardziej dotkliwy wraz ze wzrostem długości łącza. To ogranicza długość połączenia.
C) ograniczenie liczby pinów We/Wy
równoległa komunikacja danych wymaga znacznie więcej pinów We/Wy niż to, co jest wymagane przez szeregową komunikację danych.
co to jest odzyskiwanie danych zegara?
ponieważ większość szybkich interfejsów szeregowych nie ma towarzyszącego zegara, odbiornik musi odzyskać zegar w celu próbkowania danych na liniach szeregowych.
aby odzyskać zegar próbkowania, odbiornik potrzebuje zegara referencyjnego o mniej więcej tej samej częstotliwości. Aby wygenerować odzyskany zegar, odbiornik musi wyrównać fazowo zegar referencyjny do przejść na przychodzącym strumieniu danych. Nazywa się to odzyskiwaniem zegara.
próbkowanie tego przychodzącego sygnału danych z odzyskanym zegarem w celu wygenerowania strumienia bitów nazywa się odzyskiwaniem danych. Razem nazywa się to odzyskiwaniem danych zegara lub CDR.
CDR jest wymagane do odzyskania danych z przychodzącego strumienia danych w przypadku braku towarzyszącego sygnału zegara, bez błędów bitowych z powodu próbkowania nad/pod.
Jak Działa Odzyskiwanie Danych Zegara?
dwie główne funkcje do wykonywania CDR to – wykrywanie częstotliwości i wyrównywanie faz.
I) Detekcja częstotliwości
jest to proces blokowania częstotliwości pobieranej z przychodzącego strumienia danych. Odbywa się to poprzez wykrycie różnicy czasu między dwoma kolejnymi krawędziami strumienia danych.
ta zablokowana częstotliwość jest używana do regeneracji przesyłanego strumienia bitów danych.
aby lepiej zapoznać się z wykrywaniem częstotliwości, podam analogię interpunkcji w zdaniu. Być może zauważyłeś, że za każdym razem, gdy droga jest poddawana pracom remontowym, Firma budowlana umieszcza komunikat wyświetlający na tablicy, aby spowolnić przejeżdżające Pojazdy. Ta wiadomość jest coś w tym stylu –
powoli, ludzie w pracy
teraz, jeśli ta sama wiadomość jest napisana bez odpowiedniej interpunkcji, może to oznaczać coś zupełnie innego! –
powolni mężczyźni w pracy
Interpunkcje są jak wykryta częstotliwość. Jeśli zablokowany na niewłaściwej częstotliwości, która doprowadzi do nieprawidłowego pobierania danych!
pytanie brzmi więc, jak poprawnie pobrać przychodzący strumień bitów danych?
jednym z rozwiązań, które natychmiast przychodzi na myśl, jest próbkowanie strumienia bitów na tej samej częstotliwości, z jaką został przesłany.
aby to zrobić, należy wygenerować zegar na odbiorniku o tej samej częstotliwości, na której przesyłane były dane. Ale nie jest możliwe wygenerowanie dwóch zegarów o dokładnie tej samej częstotliwości za pomocą dwóch różnych generatorów zegarów, nawet jeśli mają te same specyfikacje.
również nie jest możliwe wygenerowanie zegara o dokładnej częstotliwości.
jednocześnie różnica minut w częstotliwości próbkowania może prowadzić do błędu bitowego, jak opisano na poniższym wykresie:
jak pokazano na powyższym rysunku powyżej, pojedynczy bit jest pobierany dwukrotnie z powodu różnicy minut w częstotliwości TX i RX.
jak inaczej wygenerować zegar o tej samej częstotliwości ‘TX clock’?
można to zrobić, sprawdzając krawędzie przychodzącego strumienia bitów danych.Jednak w tym procesie początkowe bity, które są używane do wykrywania częstotliwości, gubią się. Aby rozwiązać ten problem, przed przekazaniem ważnych danych przesyłany jest określony zestaw sekwencji bitowych. Sekwencje te nazywane są sekwencjami treningowymi. Sekwencje treningowe mają bardzo dużą gęstość krawędzi, dzięki czemu odbiornik może łatwo zablokować częstotliwość, sprawdzając kolejne krawędzie drutu przed rozpoczęciem ważnych danych. Poniższy rysunek przedstawia sekwencję o dużej gęstości krawędzi.
częstotliwość z przychodzącego strumienia bitów danych została odzyskana. Zegar RX może być teraz generowany na podstawie odzyskanej częstotliwości.
powyższa odzyskana częstotliwość jest dobra dla idealnego przypadku, gdy nie ma żadnego szumu wprowadzonego w transmisji, tj. częstotliwość zegara dla zegara TX jest taka sama w całym. Również dane są integralną wielokrotnością okresu zegara TX. Jednak nie jest to praktycznie prawda, ponieważ istnieje wiele atrybutów, które wpływają na transmisję danych i zniekształcają jednolitość zegara.
poniższy rysunek przedstawia zegar czasu rzeczywistego, który ma zmiany w swoim okresie.
istnieją głównie dwa atrybuty, które wpływają na większość szybkich szeregowych transmisji danych –
a) Jitter:
Jitter to przesunięcie krawędzi sygnału okresowego. To przerywa okresowość sygnału.
Jitter jest efektem krótkoterminowym. Wynika to z rozkładu Gaussa, dlatego średnia średnia jittera wynosi zero, tzn. łączny efekt jittera wynosi null.
ponieważ występuje przesunięcie krawędzi sygnału zegara z powodu jittera, pytanie brzmi, jaka jest optymalna pozycja do próbkowania bitu?
trochę powinno być pobrane w centrum. Jest to optymalna pozycja, w której można napotkać maksymalne przesunięcie krawędzi po obu stronach (od lewej do prawej lub od prawej do lewej). Jeśli jednak przesunięcie krawędzi stanie się większe niż połowa okresu bitowego, wystąpi błąd bitowy.
B) PPM (części na milion):
PPM to niedokładność niektórych elementów (kryształu kwarcu w przypadku generatora zegara) w obwodzie, która prowadzi do generowania sygnału z niedokładnym okresem. PPM nie łamie okresowości sygnału. Jak sama nazwa wskazuje, PPM jest długoterminowym efektem, który oznacza niedokładność w okresie bitowym ponad milion cykli zegara. PPM ma charakter addytywny lub subtraktywny.
tylko jeśli skumulowany efekt jittera lub PPM w TX CLK stanie się większy niż połowa RX CLK, wtedy wystąpią błędy z powodu zbyt / zbyt niskiego pobierania próbek.
poniższy przykład pokazuje, w jaki sposób ciągłe zmiany w przychodzącym strumieniu danych mogą wpływać na pobieranie próbek danych. Ten sam przykład zostanie rozważony w celu rozwiązania problemów w miarę postępów.
RX CLK (FD) to blokada częstotliwości podczas wykrywania częstotliwości. Ponieważ przychodzący strumień danych jest próbkowany na FD, jak pokazano w czerwonym polu, pojedynczy bit jest pobierany dwukrotnie. Dzieje się tak z powodu zmian w strumieniu bitów przychodzących danych.
aby napotkać te różnice w częstotliwości TX CLK, druga funkcja CDR, wyrównanie fazowe pojawia się w obrazie. To dostosowuje krawędzie RX CLK.
II) wyrównanie fazowe
wyrównanie fazowe to proces dopasowania fazy sygnału do innego sygnału. Tutaj jest dopasowanie fazy zegara odzyskanego w detekcji częstotliwości z przychodzącym strumieniem bitów danych.
pozwólcie, że podam wam analogię do wyrównania fazowego.
być może widziałeś Radio analogowe. Istnieją dwie gałki mianowicie coarse tune i fine tune na analogowym radiu. Kiedy chce się słuchać jakichkolwiek sygnałów dźwiękowych, pokrętło coarse tune służy do blokowania częstotliwości, w której sygnały są słyszalne, ale z pewnymi zakłóceniami. Tutaj Gruba melodia jest tak dobra, jak wykrywanie częstotliwości, a zakłócenia to jitter i PPM. Aby usunąć te zakłócenia i sprawić, że głos będzie słyszalny, stosuje się pokrętło dostrojenia, które dostosowuje wstępnie zablokowaną częstotliwość trochę tu i tam, aby uzyskać doskonałe sygnały dźwiękowe. Tutaj dostrajanie jest podobne do wyrównania fazowego.
w celu wyrównania fazy należy przestrzegać następujących zasad:
- jeśli zostanie wykryte przejście na przewodzie, ustaw poziom RX CLK (FD+PD) = 1.
- jeśli okres RX CLK (FD) zostanie zakończony po posedge na RX CLK(FD+PD) i nie zostanie wykryte żadne przejście na przewodzie, należy potwierdzić posedge RX CLK (FD+PD).
tutaj RX CLK(FD) to częstotliwość zegara zablokowana podczas procesu wykrywania częstotliwości, a RX CLK(FD+PD) to częstotliwość zegara podczas procesu wyrównywania fazy.
nadszedł czas, aby przyjrzeć się pracy wyrównania fazowego. Weźmy ten sam przykład rozważony wcześniej dla PPM jitter.
tutaj okres zegarowy RX CLK (FD) = 10
zegary, które nie zostały przypisane do okresu na rysunku, mają domyślnie okres 10.
na powyższym rysunku widzieliśmy wcześniej, że ostatni bit był pobierany dwukrotnie w wyniku ciągłej stałej zmiany (od 10 do 12) W TX CLK (może to być spowodowane PPM).Jednak teraz, jak pokazano w czerwonym polu, bit jest próbkowany poprawnie.
w pierwszym cyklu zegara TX okres to 10 jednostek czasu, które są blokowane po wykryciu częstotliwości, a także odbijane na RX CLK(FD+PD). Zgodnie z regułą 1 krawędź na danych spowoduje, że poziom RX CLK (FD+PD) wyniesie 1 (oznaczony pierwszą kropkowaną strzałką). Następnie negedge zostanie stwierdzony na RX CLK (FD+PD) po połowie okresu RX CLK (FD). Następnie posedge zostanie zapewniony na RX CLK(FD+PD) w zależności od połowy okresu RX CLK (FD) lub przejścia na dane, w zależności od tego, co nastąpi wcześniej (zasada numer 2).
w szóstym i siódmym cyklu zegara TX bity danych są 0 i 0, bez przejścia na linii. Tak więc RX CLK (FD+PD) będzie postępować zgodnie z zasadą numer 2, aby mieć okres zegara RX CLK(FD), przedstawiony w pierwszym cyklu RX CLK (FD+PD) w czerwonym polu. Ponieważ okres siódmego cyklu zegara wynosi 12 jednostek czasu, przejście na dane nastąpi po 2 jednostkach czasu niż oczekiwano. Teraz RX CLK (FD + PD)już zapewnił posedge i zaczyna czekać na zakończenie połowy okresu RX CLK (FD), aby potwierdzić negedge na RX CLK(FD+PD). Jednak po ukończeniu 2 jednostki czasu, Przejście zostaje wykryte, co powoduje ponowne uruchomienie czasu oczekiwania połowy RX CLK (FD). To prowadzi do negedge RX CLK (FD+PD) po 7 jednostka czasu zamiast 5 (i. e. połowa RX CLK (FD) okres). Następnie posedge po 5 jednostce czasu (2. cykl RX CLK (FD+PD) w czerwonym polu). Podobnie wyrównanie fazowe dostosowuje okres zegara na podstawie stałych zmian w przychodzącym strumieniu danych.
poniżej rysunek przedstawia przypadek ujemnego jittera…
trzeci okres zegara TX został zmieniony od 10 jednostki czasu do 7 jednostki czasu z powodu ujemnego jittera. Ta zmienność napotkała poprawnie przez wyrównanie fazowe, jak pokazano w czerwonym polu.
posedge na RX CLK(FD+PD) występuje jako przejście wykryte na danych. Negedge na RX CLK (FD+PD) występuje po zakończeniu połowy okresu RX CLK(FD). Teraz przejście jest widoczne na danych przed zakończeniem połowy okresu RX CLK (FD), co powoduje przejście poziomu z 0 do 1 Na RX CLK(FD+PD) (pokazane przez 3rd zakrzywioną kropkowaną strzałkę).
poniżej rysunek przedstawia przypadek pozytywnego jittera…
piąty okres zegara TX został zmieniony od 10 jednostki czasu do 13 jednostki czasu z powodu dodatniego jittera. Ta zmienność napotkała poprawnie przez wyrównanie fazowe, jak pokazano w czerwonym polu.
RX CLK(FD+PD) będzie postępować zgodnie z zasadą numer 2, aby mieć okres zegara RX CLK(FD), przedstawiony w pierwszym cyklu RX CLK(FD+PD) w czerwonym polu. Ponieważ okres dla piątego cyklu zegara wynosi 13, przejście na dane nastąpi po 3 jednostce czasu niż oczekiwano. Teraz RX CLK (FD+PD) już zapewnia posedge i zaczyna czekać na zakończenie połowy okresu RX CLK (FD), aby potwierdzić negedge na RX CLK(FD+PD). Jednak po ukończeniu 3 jednostki czasu, Przejście zostaje wykryte, co powoduje ponowne uruchomienie czasu oczekiwania połowy RX CLK (FD). To prowadzi do negedge RX CLK (FD+PD) po 8 jednostka czasu zamiast 5 (i. e. połowa RX CLK (FD) okres). Następnie posedge po 5 jednostce czasu (2. cykl RX CLK (FD+PD) w czerwonym polu).
to wszystko dotyczyło pracy procesu wyrównywania fazy.
jedno zastrzeżenie…!
jest jeden problem, który nie jest objęty detekcją częstotliwości i wyrównaniem fazowym! Wyrównanie fazy działa na przejściu w przychodzącym strumieniu danych. Możliwe jest jednak posiadanie długiego, identycznego strumienia bitów, który nie posiada w sobie żadnego przejścia. W tym przypadku, jeśli skumulowane przesunięcie krawędzi stanie się ponad połową odzyskanego okresu zegara (RX CLK(FD)), doprowadzi to do błędów bitowych i nieprawidłowego pobierania danych.
aby rozwiązać ten problem, sekwencje bitowe są przetwarzane z różnymi rodzajami kodowania przed przekazaniem ich na drucie. Ogranicza to liczbę kolejnych identycznych bitów do pewnego poziomu. Zmniejsza to prawdopodobieństwo zbliżenia się do skumulowanego przesunięcia do ponad połowy RX CLK (FD).
na przykład w USB 3.0 bity danych są przetwarzane z kodowaniem 8B10B przed przekazaniem ich na drucie.
poniższy rysunek opisuje behawioralny SCHEMAT BLOKOWY CDR
przychodzący strumień danych przekazywany jako wejście do FD(detektor częstotliwości), ED (detektor krawędzi) i klapki D. Detektor częstotliwości generuje częstotliwość na podstawie sekwencji treningowych. Edge detector daje wyjście za każdym razem, gdy wykryje przejście na przychodzących danych. Wyjścia detektora częstotliwości i detektora krawędzi przekazywane jako wejście do bloku generatora zegara, który generuje zegar do próbkowania danych. Ten wygenerowany zegar i przychodzące dane przekazywane do D flip flop, aby zregenerować strumień bitów.
poniższy rysunek przedstawia schemat generowania zegara po wyrównaniu fazy
RX CLK (FD+PD) zostanie zainicjalizowany na 1 lub 0. Po zainicjowaniu zostaną uruchomione dwa równoległe procesy, czas oczekiwania na połowę czasu RX CLK (FD) i detekcja krawędzi na przychodzących danych. W zależności od tego, które z dwóch równoległych procesów zostanie zakończone jako pierwsze, drugi proces zostanie wyłączony. Jeśli timer przekroczył czas przed wykryciem krawędzi, sprawdzi aktualny poziom RX CLK (FD+PD). Jeśli poziom RX CLK (FD+PD) wynosi 1, Przejdź do aktywności” RX CLK(FD+PD)=0 “i zresetuj RX CLK(FD+PD) na 0, w przeciwnym razie przejdź do aktywności” RX CLK(FD+PD)=1″. Uruchom ponownie oba równoległe procesy i poczekaj na zakończenie jednego z nich. Jeśli krawędź zostanie wykryta przed zakończeniem czasu oczekiwania, przejdź do aktywności” RX CLK(FD+PD)=0″ i ustaw poziom RX CLK (FD+PD) na 1.Uruchom ponownie oba równoległe procesy i poczekaj na zakończenie jednego z nich.
mam nadzieję, że ten artykuł pomoże inżynierom modelować zegar i odzyskiwanie danych.
autor: Deepak Nagaria with Aditya Mittal