Forum: Mikrocontroller und Digitale Elektronik Serdes Chip mit Taktrückgewinnung


von M. Н. (Gast)


Lesenswert?

Hallo,

für ein Projekt möchte ich Daten über LWL von A nach B bringen. An 
beiden enden soll ein FPGA sitzen. Das Problem daran ist, dass es ein 
relativ low-cost FPGA ist (Cyclone IV).

Die Module für die Lichtmodulation haben LVDS Ein-/Ausgänge. Der FPGA 
hat kein SERDES.

Ich bin nun auf die DS90CR285/DS90CR286 Chips gestoßen, die einen SERDES 
TTL/Parallel <=> LVDS implementieren.

Das Problem daran ist nur, dass die Lichtwellenleiter eventuell 
unterschiedlich lang sind und so Synchronitätsprobleme entstehen.
Die LWL sind > 30 Meter lang. Da kann es vorkaommen, dass einer mal 
einige cm kürzer ist.

Das ist sowohl bei der Clock, als auch bei den 4 dazugehörigen 
Datenleitungen problematisch.

Lösungsansatz:

Meine Wunschlösung wäre ein "kleinerer Chip", der z.B. 8 bit in ein LVDS 
Datenpaar umsetzt. Mit dem passenden Empfänger kann man den Datenstrom 
dann dekodieren.
Das Ganze stelle ich mir ein wenig wie eine Ethernet PHY vor, die mit 
einer Präambel gefüttert wird, sodass sich die Gegenstelle 
aufsynchronisieren kann. Mit dem zusätzlichen Overhead kann ich leben.

Als Taktfrequenz für solch einen 8 bit SERDES stelle ich mir >50 MHz 
vor.
Also 50MB/s

Im FPGA geht das ganze leider nicht, da die serielle Übertragung des 
LVDS die Frequenzkapazität des FPGAs sprengt. Eine Taktrückgewinnung 
ist, soweit ich das nherausfinden konnte, eh nur in Logik möglich, da 
die PLL von Altera dafür nicht geeignet ist.

Abschließend nochmal zusammengefasst:

Ich suche einen parallel => seriell/LVDS Wandler+ passende gegenstelle, 
der asynchron Daten übermitteln kann. Schön wäre es, wenn das parallel 
Interface möglichst breit ist. Die LWL-Module können bis zu 4Gbit/s. Ich 
denke also nicht, dass ich diese mit einen cyclone IV annähernd 
auslasten kann.

Vielen Dank


PS. Für eventuelle Nachfragen:

Das Ganze soll für den Prototypen eines Logicanalyzers dienen, dessen 
Messeinheit und Verarbeitungseinheit galvanisch getrennt (LWL) sind.
Die Auswerteeinheit soll später einmal eine PCI(e) Steckkarte werden, 
sodass der eigentliche Logicanalyzer-Teil über LWL angeschlossen werden 
kann. Mir ist auch klar, dass dafür auch ein größerer FPGA notwendig 
wird. Allerding würde ich die Grundlagen gerne vorher mit bereits 
bestehenden Dev-Boards/kleineren Eigenentwicklungen austesten.

von Falk B. (falk)


Lesenswert?

@M. H. (bambel2)

>für ein Projekt möchte ich Daten über LWL von A nach B bringen. An
>beiden enden soll ein FPGA sitzen. Das Problem daran ist, dass es ein
>relativ low-cost FPGA ist (Cyclone IV).

Welche Datenrate?

>Die Module für die Lichtmodulation haben LVDS Ein-/Ausgänge. Der FPGA
>hat kein SERDES.

>Ich bin nun auf die DS90CR285/DS90CR286 Chips gestoßen, die einen SERDES
>TTL/Parallel <=> LVDS implementieren.

Das sind die klassischen Channel Link Bausteine. Nett,a ber für dich 
ungeeignet.
Bei LWL will man nur EINEN Datenstrom, nicht mehrere. Channel-Link 
braucht hier 4 Datenkanäle + 1 Taktkanal.

>Meine Wunschlösung wäre ein "kleinerer Chip", der z.B. 8 bit in ein LVDS
>Datenpaar umsetzt. Mit dem passenden Empfänger kann man den Datenstrom
>dann dekodieren.

>Das Ganze stelle ich mir ein wenig wie eine Ethernet PHY vor, die mit
>einer Präambel gefüttert wird, sodass sich die Gegenstelle
>aufsynchronisieren kann. Mit dem zusätzlichen Overhead kann ich leben.

Sowas in der Art. Hab ich vor Ewigkeiten mal in einem Virtex gemacht, 
der hat die 200 Mbit/s direkt ausgegeben, ich glaub mit PECL.
Der Empfänger war im PC als ASCI drin, das war einfach. Sowas in einem 
FPGA nachzubauen ist nicht unbedingt was für Anfänger.

>Als Taktfrequenz für solch einen 8 bit SERDES stelle ich mir >50 MHz
>vor.
>Also 50MB/s

Macht 400Mbit/s++, mit 8B10B Kodierung eher 500 Mbit/s. Das ist kein 
Problem mit den klassischen GBICs, die für 1G Ethernet sehr preiswert zu 
haben sind.

>Ich suche einen parallel => seriell/LVDS Wandler+ passende gegenstelle,
>der asynchron Daten übermitteln kann. Schön wäre es, wenn das parallel
>Interface möglichst breit ist.

Naja, so breit wie sinnvoll nötig. Auch ein Cyclone IV ist kein 
Lahmarsch, der kann locker mit 100 MHz Daten rein- und raus takten.
Man könnte über einen RMII-Serdes für Ethernet nachdenken.

> Die LWL-Module können bis zu 4Gbit/s. Ich
>denke also nicht, dass ich diese mit einen cyclone IV annähernd
>auslasten kann.

Doch, kann man, das sind "nur" 200 MB/s, das schafft man mit 16 Bit 
Datenbreite und 100 MHz.

>Das Ganze soll für den Prototypen eines Logicanalyzers dienen, dessen
>Messeinheit und Verarbeitungseinheit galvanisch getrennt (LWL) sind.

Wofür man das auch immer braucht.

Schau dir mal das hier an, sowas brauchst du.

http://www.ti.com/product/ds32elx0421

GGf. braucht man noch Umsetzer von LVCMOS auf LVDS, wenn dein FPGA 
WIRKLICH kein LVDS kann. Glaub ich aber nicht.

http://www.ti.com/lsds/ti/interface/more-interfaces/more-interfaces-products.page#p1389=Telecom 
SerDes

Man kann es mit einem Ethernet-Phy probieren, wenn man es schaft, ihn 
soweit auszutricksen, daß er nur als Leitungskodierer arbeitet. Könnte 
klappen.
Allerdings braucht man einen, der einen seriellen LVDS Ausgang für 
optische Module hat.

http://www.ti.com/lsds/ti/interface/ethernet/phy-products.page#p1323=10/100/1000

TI scheint nix zu haben.

Es gab mal schöne 10:1 SerDes, nur weiß ich nicht mehr von wem. Cypress?

http://www.cypress.com/search/psg/1226#/?_facetShow=ss_pstandard,fs_pmin_speed_mbps_,fs_pmax_speed_mbps_,fs_pmin_operating_voltage_v_,fs_pmax_operating_voltage_v_,ss_p8b_10b_endec,ss_pfunctions,fs_pno_of_channels,ss_ppackage,fs_pmin_operating_temp_c_,fs_part_price&_page=2

Ja, genau!

http://www.cypress.com/search/psg/1226

Diese ICs sind deine Freunde.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.