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