prenos 16 bitovych dat po seriovej linke

Petr Tošovský PetrTos na altopro.cz
Čtvrtek Prosinec 22 20:23:58 CET 2011


Bitovou synchronizaci zajistuji Clock Data Recovery (CDR) obvody. Da se udelat i softwarove podle app note od Xilinxu, ale je to celkem na dlouhe badani. Lepsi bude podle me vyuzit transceivery v FPGA, ktere zajistuji obnoveni hodin sami a i sami urcuji jednotlive ramce. Jestli si dobre pamatuji, tak jsou 16 bitove, tak zbyvajici bity nad temi 12 bitovymi vyuzit na ovladani synchronizace. Pripadne na to jsou obvody od National a dalsich

http://www.national.com/en/interface/serdes.html#IntroducingChannelLinkIIChannelLinkIII

Osobni zkusenost mam jen s tou softwarovou CDR od Xilinxu na 155Mbps bez synchronizace ramcu, nebyla potreba.

Tosa





"balu na home" <daniel.valuch na orange.fr> napsal(a):

rozmyslam nad implementaciou jedneho problemu. Potreboval by som 
prenasat data z AD prevodnika, asi najskor 12 bitove slova, tusim tam je 
16 kanalov, par desiatok ksps na kanal. Celkovy datovy tok do 100Mbps, 
prenos po jednom drate, resp. optickom kabli.

Primitivny problem, ale ked sa zamyslim nad detailami tak je tam par 
otazok :-)

Ide o jednosmerny prenost bez akehokolvek handshake, t.j. linka by sa 
mala vediet sama zasynchronizovat a obnovit po preruseni media.
Ak by som implementoval prenos na sposob uart tak by bol asi 
najjednoduchsi. Neviem si ale predstavit synchronizaciu na zaciatok 
packetu efektivnejsie ako ze sa vysle vela nul ("start bit" o dlzke min. 
jedneho paketu) cim sa mi samozrejme znizi prenosova rychlost.
Ako sa to potom prijima? Posuvny register pozera ci je plny nul a na 
prvu zmenu sa zasynchronizuje?

Velmi atraktivna varianta je pouzit 16b20b kodovanie, Xilinx dokonca 
ponuka na stiahnutie koder aj dekoder. Otazka ale zostava, ako seriovy 
prijimac vie kedy sa mu zacina packet? Pozera sa v posuvnom registri ci 
tam najde comma character?
Ako sa z toho signalu zrekonstruuju hodiny ktore vzorkuju vstup? Na 
oboch stranach bude rovnaky krystalovy oscilator ale faza je samozrejme 
nedefinovana takze sa musi "nejak" zasynchronizovat.

Ku prevodniku je nalepene male cpld ktore by to malo zvladnut poslat.

Najjednoduchsie riesenie je pouzit dve vlakna a obdobu spi, ale ak by sa 
to dalo vyriesit jednym za menej ako 2-3 tyzdne kodovania bolo by to 
samozrejme efektivnejsie.

dik za nazory,
b.
_____________________________________________

HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20111222/7706ac46/attachment.htm>


Další informace o konferenci Hw-list