Beginners Guide to Clock data Recovery

pokud jste ve světě designu a ověřování noví, pravděpodobně máte spoustu otázek! Jeden z nich se může týkat důležitého prvku – obnovení dat hodin. V tomto blogu se snažíme tento proces de-mystifikovat.

účelem navrhování různých protokolů je přenos sady informací (dat) z jednoho místa na druhé. Sériová datová komunikace se často používá k přenosu dat vysokou rychlostí. Na konci přijímače musí být přenášená data načtena bez ztráty integrity s doprovodnými informacemi o načasování. Tento proces se nazývá hodiny a obnova dat.

v tomto článku se budeme zabývat požadavky CDR a jak to funguje, jak řešit problémy jako jitter a PPM při modelování CDR.

BTW, pokud trávíte spoustu času zíráním na průběhy a snažíte se dávat smysl, náš nástroj pro ladění protokolu (PDA) by pro vás mohl být zajímavý. Prosím, podívejte se na krátké 3 minutové demo zde (bez sluchátek? Bez obav! Má titulky!).

Různé Techniky Datové Komunikace:

Před zahájením na CDR, budeme se podívat na různé techniky datové komunikace, které jsou:

1. Sériová Datová komunikace

v sériové komunikaci jsou datové bity přenášeny postupně jeden po druhém.

serial-data-communication

2. Paralelní Datová komunikace

v paralelní komunikaci jsou datové bity poháněny na více vodičích současně.

parallel-transmission

při pohledu na výše uvedené údaje, lze snadno posoudit, že paralelní komunikace bude mnohem rychlejší než sériové komunikace.

ale pak vyvstává otázka, proč je sériová komunikace upřednostňována před paralelní komunikací???

je to proto, že v praxi není paralelní komunikace rychlejší než sériová komunikace. To je způsobeno následujícími důvody –

a) zkosení

délka cesty pro každý bit se bude lišit.Z tohoto důvodu mohou některé bity dorazit dříve nebo dříve než jiné, které mohou informace poškodit.

parallel-transmission-skew

Chcete-li to vyřešit, můžete vložit bity. Ale to by bylo na ceně rychlosti, protože to sníží rychlost každého spojení na nejpomalejší ze všech.

b) Inter symbol interference a Cross talk

vzhledem k několika paralelních vazeb ISI a Cross talk je zaveden v systému, který dostane vážnější jako délka spojení se zvyšuje. To omezuje délku spojení.

c) omezení počtu I / O pinů

paralelní datová komunikace vyžaduje mnohem více I / O pinů než to, co vyžaduje sériová datová komunikace.

co je obnova dat hodin?

protože většina vysokorychlostních sériových rozhraní nemá žádné doprovodné hodiny, musí přijímač Obnovit hodiny, aby mohl vzorkovat data na sériových linkách.

pro obnovení vzorkovacích hodin potřebuje přijímač referenční hodiny o přibližně stejné frekvenci. Generovat obnovené hodiny, přijímač musí fázově zarovnat referenční hodiny s přechody na příchozím datovém toku. Tomu se říká obnovení hodin.

vzorkování tohoto příchozího datového signálu s obnovenými hodinami pro generování bitového proudu se nazývá obnova dat. Společně se tomu říká Obnova dat hodin nebo CDR.

CDR je vyžadováno k obnovení dat z příchozího datového toku bez doprovodného hodinového signálu, bez bitových chyb způsobených nadměrným / nedostatečným vzorkováním.

Jak Funguje Obnova Dat Hodin?

dvě hlavní funkce pro provádění CDR jsou-detekce frekvence a fázové zarovnání.

I) detekce frekvence

Jedná se o proces blokování frekvence, která je načtena z příchozího datového proudu. To se provádí detekcí časového rozdílu mezi dvěma po sobě jdoucími hranami v datovém toku.

tato uzamčená frekvence se používá při regeneraci přenášeného datového bitového toku.

abychom vás lépe seznámili s detekcí frekvence, dovolte mi, abych vám dal analogii interpunkce ve větě. Možná jste si všimli, že kdykoli silnice prochází opravami, stavební společnost umístí na tabuli zobrazovací zprávu, aby zpomalila projíždějící vozidla. Tato zpráva je něco takového –

pomalu, muži v práci

nyní, pokud je stejná zpráva napsána bez řádné Interpunkce, může to znamenat něco úplně jiného! –

pomalí muži v práci

interpunkce jsou jako detekovaná frekvence. Pokud je uzamčen na nesprávné frekvenci, která povede k nesprávnému vzorkování dat!

frequency-detection

Otázkou tedy je, jak správně ochutnat příchozí datový bitový tok?

jedním z řešení, které přijde na mysl okamžitě, je vzorek bitového proudu na stejné frekvenci, při které byl přenášen.

k tomu je třeba generovat hodiny na přijímači se stejnou frekvencí, na které byla data přenášena. Není však možné generovat dvě hodiny s přesně stejnou frekvencí pomocí dvou různých generátorů hodin, i když mají stejné specifikace.

také není možné generovat hodiny s přesnou frekvencí.

Ve stejnou dobu, minutu se rozdíl ve vzorkovací frekvence může vést k trochu chyba, jak je popsáno v následujícím diagramu:

frequency-detection-minor-difference

Jak je uvedeno ve výše uvedeném obrázku výše, jeden bit je získání vzorku dvakrát, protože na minutu rozdíl v TX a RX kmitočtu.

jak jinak se generují hodiny se stejnou frekvencí “TX hodin”?

to lze provést kontrolou hran na příchozím datovém bitovém toku.V tomto procesu se však počáteční bity, které si zvyknou na detekci frekvence, ztratí. K vyřešení tohoto problému je před přenosem platných dat přenášena určitá sada bitových sekvencí. Tyto sekvence se nazývají jako tréninkové sekvence. Tréninkové sekvence mají velmi vysokou hustotu hran, takže přijímač může snadno uzamknout frekvenci kontrolou po sobě jdoucích hran na drátu před zahájením platných dat. Níže obrázek ukazuje sekvenci s vysokou hustotou hran.

frequency-sequence-high-density

frekvence z příchozích datových bitových toků byla obnovena. RX hodiny mohou být nyní generovány na základě obnovené frekvence.

výše uvedená obnovená frekvence je v pořádku pro ideální případ, kdy v přenosu není zaveden žádný šum, tj. frekvence hodin pro hodiny TX je po celou dobu stejná. Data jsou také integrálním násobkem doby TX hodin. To však není pravda prakticky, protože existuje řada atributů, které ovlivňují přenos dat a narušují uniformitu hodin.

níže obrázek zobrazuje hodiny v reálném čase, které mají variace ve své době.

variable-period-clock

Tam jsou především dva atributy, které postihuje většinu vysokorychlostní sériové datové komunikace-

) Jitter:

Jitter je posun v okrajích periodického signálu. Tím se přeruší periodicita signálu.

periodic-signal-jitter

Jitter je krátkodobý účinek. Z toho vyplývá Gaussovo rozdělení, proto je průměrný průměr jitteru nulový, tj. kumulativní efekt jitteru je nulový.

distribuce kmitočtu

vzhledem k tomu, že dochází k posunu okrajů hodinového signálu v důsledku chvění, je otázkou, Jaká je optimální poloha pro vzorek?

kousek by měl být odebrán ve středu. Je to optimální poloha, kde se lze setkat s maximálním posunem okrajů na obou stranách (zleva doprava nebo zprava doleva). Pokud se však posun v hraně stane větší než polovina bitové periody, dojde k bitové chybě.

frequency-jitter-distribution

B) PPM (díly na milion):

PPM je nepřesnost určitých komponent (křemenný krystal v případě generátoru hodin) v obvodu, která vede k generování signálu s nepřesnou periodou. PPM neporušuje periodicitu signálu. Jak již název napovídá, PPM je dlouhodobý efekt, který označuje nepřesnost v bitové periodě přes milion hodinových cyklů. PPM je aditivní nebo subtraktivní povahy.

jitter-free-range-frequency

pouze tehdy, pokud kumulativní účinek chvění nebo PPM v TX CLK se stává více než polovina RX CLK, pak by tam byly chyby, kvůli nad/pod odběrné.

níže uvedený příklad ukazuje, jak probíhající změny v příchozím datovém toku mohou ovlivnit vzorkování dat. Stejný příklad bude považován za řešení problémů, jak budeme dále postupovat.

clock-frequency-ppm-effect

RX CLK(FD) je frekvence uzamčena během detekce frekvence. Jako příchozí datový proud je ve vzorku na FD, jako zobrazen v červeném poli, jeden bit je získání vzorku dvakrát. K tomu dochází kvůli změnám v příchozím datovém bitovém toku.

Chcete-li se setkat s těmito změnami frekvence TX CLK, je na obrázku druhá funkce CDR, fázové zarovnání. To upravuje RX CLK hrany.

II) fázové zarovnání

fázové zarovnání je proces porovnávání fáze signálu s jiným signálem. Zde je odpovídající fázi hodiny navrácena do detekce frekvence s příchozí data bit stream.

dovolte mi analogii pro fázové zarovnání.

možná jste viděli analogové rádio. Existují dva knoflíky, a to hrubé ladění a jemné ladění na analogovém rádiu. Když člověk chce poslouchat všechny zvukové signály, hrubý knoflík Melodie se používá k uzamčení na frekvenci, kde jsou signály slyšitelné, ale s některými poruchami. Zde hrubé ladění je stejně dobré jako detekce frekvence a poruchy jsou chvění a PPM. K odstranění těchto poruch, a aby hlas slyšitelný, jemné ladění knoflík je používán, který upravuje pre zamčené frekvence trochu tu a tam, aby si perfektní zvukové signály. Zde je jemné doladění podobné fázovému zarovnání.

phase-alignment-radio

pro zarovnání fází je třeba dodržovat následující pravidla:

  1. pokud je detekován přechod na drátu, proveďte úroveň RX CLK (FD+PD) = 1.
  2. pokud je doba RX CLK(FD) dokončena po položge na RX CLK (FD+PD) a na drátu není detekován žádný přechod, pak assert posedge RX CLK(FD+PD).

zde RX CLK(FD) je taktovací frekvence uzamčena během procesu detekce frekvence a RX CLK (FD+PD) je taktovací frekvence během procesu zarovnání fáze.

je čas podívat se na práci fázového zarovnání. Vezměme si stejný příklad uvažovaný dříve pro PPM jitter.

ppm-jitter-phase-alignment

zde hodiny perioda RX CLK (FD) = 10

hodiny, které nebyly přiřazeny s periodou na obrázku mají ve výchozím nastavení období 10.

V obrázku výše jsme viděli dříve, že poslední kousek byl stále vzorku dvakrát jako výsledek kontinuální konstantní variace (od 10 do 12) v TX CLK (může být kvůli PPM).Nicméně nyní, jak je znázorněno v červeném poli, bit je vzorkován správně.

v prvním hodinovém cyklu TX je perioda 10 časová jednotka, která je uzamčena po detekci frekvence a odráží se také na RX CLK (FD+PD). Podle pravidla 1 hrana na datech bude úroveň RX CLK (FD+PD) na 1 (označeno první tečkovanou šipkou). Poté bude negedge uplatněn na RX CLK(FD+PD) po polovině období RX CLK(FD). Pak posedge bude uplatněn na RX CLK (FD+PD) v závislosti na polovině RX CLK(FD) období nebo přechod na datech podle toho, co nastane dříve (pravidlo číslo 2).

v šestém a sedmém hodinovém cyklu TX jsou datové bity 0 a 0, žádný přechod na lince. Takže RX CLK(FD+PD) bude následovat pravidlo číslo 2, aby hodiny období RX CLK(FD), líčený v prvním cyklu RX CLK(FD+PD) v červeném rámečku. Protože období sedmého hodinového cyklu je 12 časová jednotka, přechod na DATA nastane po 2 jednotka času, než se očekávalo. Teď RX CLK(FD+PD) již tvrdil, posedge a začíná čekání na dokončení polovina RX CLK(FD) období prosadit negedge na RX CLK(FD+PD). Po dokončení časové jednotky 2 se však zjistí přechod, který způsobí restartování čekací doby poloviny RX CLK (FD). To vede k negedge RX CLK (FD+PD) po 7 časové jednotky namísto 5(tj. polovina RX CLK (FD) období). Pak posedge po 5 časové jednotky (2. cyklus RX CLK (FD+PD) v červeném poli). Podobně fázové zarovnání upravuje dobu hodin na základě konstantních změn v příchozím datovém toku.

níže uvedený obrázek zobrazuje případ negativního chvění…

negative-jitter-case

třetí doba hodin TX se lišila od 10 časová jednotka do 7 časová jednotka kvůli negativnímu jitteru. Tato změna se správně setkala s fázovým zarovnáním, jak je znázorněno v červeném poli.

posedge na RX CLK (FD+PD) se vyskytuje jako přechod detekovaný na datech. Negedge na RX CLK (FD+PD) dochází po dokončení poloviny RX CLK(FD) období. Nyní je na datech vidět přechod před dokončením poloviny období RX CLK(FD), který způsobuje přechod úrovně z 0 na 1 na RX CLK (FD+PD) (znázorněno 3. zakřivenou tečkovanou šipkou).

níže uvedený obrázek zobrazuje případ pozitivního chvění…

positive-jitter-case

páté období hodin TX se lišilo od 10 časová jednotka do 13 časová jednotka kvůli pozitivnímu chvění. Tato změna se správně setkala s fázovým zarovnáním, jak je znázorněno v červeném poli.

RX CLK(FD+PD) bude následovat pravidlo číslo 2, aby hodiny období RX CLK(FD), líčený v prvním cyklu RX CLK(FD+PD) v červeném rámečku. Jelikož lhůta pro páté hodiny cyklus je 13, přechod na DATA dojde po 3 jednotky času, než se očekávalo. Nyní RX CLK (FD + PD)již uplatňuje posedge a začíná čekat na dokončení poloviny RX CLK(FD) období prosadit negedge na RX CLK(FD+PD). Po dokončení 3 časové jednotky se však zjistí přechod, který způsobí restartování čekací doby poloviny RX CLK (FD). To vede k negedge RX CLK (FD+PD) po 8 časové jednotky namísto 5(tj. polovina RX CLK (FD) období). Pak posedge po 5 časové jednotky (2. cyklus RX CLK (FD+PD) v červeném poli).

to bylo všechno o pracovním procesu fázového zarovnání.

jedna námitka…!

existuje jeden problém, který není pokryt detekcí frekvence a fázovým zarovnáním! Fázové zarovnání pracuje na přechodu v příchozím datovém toku. Je však možné mít dlouhý identický bitový proud, který v sobě nemá žádný přechod. V tomto případě, pokud kumulativní posun v hraně se stává více než polovina obnovené hodiny periody(RX CLK (FD)), pak to povede k bitovým chybám a vzorek dat nesprávně.

k vyřešení tohoto problému jsou bitové sekvence zpracovány s různými typy kódování před jejich přenosem na drátu. To omezuje počet po sobě jdoucích identických bitů na určitou úroveň. To snižuje pravděpodobnost přiblížení se kumulativnímu posunu na více než polovinu RX CLK (FD).

například v USB 3.0 jsou datové bity zpracovány kódováním 8B10B před jejich přenosem na drátu.

níže uvedený obrázek popisuje blokové schéma chování CDR

behavioural-block-diagram-cdr

příchozí datový tok prošel jako vstup do FD (frekvenční detektor), ED(detektor hran) a D flip flopu. Frekvenční detektor generuje frekvenci na základě tréninkových sekvencí. Edge detector poskytuje výstup vždy, když detekuje přechod na příchozí data. Výstupy detektoru kmitočtu a detektoru hran byly předány jako vstup do bloku generátoru hodin, který generuje hodiny pro vzorkování dat. Toto generované hodiny a příchozí data předána d flip flop regenerovat bitový proud.

níže obrázek znázorňuje vývojový diagram pro generování hodin po zarovnání fáze

clock-generation-post-phase-alignment

RX CLK(FD+PD) bude inicializován na 1 nebo 0. Po inicializaci se spustí dva paralelní procesy, počkejte časovač na polovinu času RX CLK (FD) a detekci hran na příchozích datech. To, co je dokončeno jako první ze dvou paralelních procesů, deaktivuje druhý proces. Pokud časovač vypršel dříve, než je detekován jakýkoli okraj, zkontroluje aktuální úroveň RX CLK (FD+PD). Pokud je úroveň RX CLK (FD+PD) 1, Přejděte na” RX CLK(FD+PD)=0 “aktivita a resetujte RX CLK (FD+PD) na 0, jinak přejděte na” RX CLK(FD+PD)=1 ” aktivita. Restartujte oba paralelní procesy znovu a počkejte na dokončení jednoho z nich. Pokud je detekována hrana před dokončením čekací časovač, přesuňte se na aktivitu” RX CLK(FD+PD)=0 ” a nastavte úroveň RX CLK (FD+PD) na 1.Restartujte oba paralelní procesy znovu a počkejte na dokončení jednoho z nich.

doufám, že tento článek pomůže inženýrům modelovat hodiny a obnovu dat.

Autor: Deepak Nagaria with Aditya Mittal

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.