Forum: FPGA, VHDL & Co. FTDI FIFO multiplexing


von Jonas H. (Gast)


Lesenswert?

Ich habe einen FPGA mit einem FT245 FIFO verbunden als Verbindung zum 
pc. Jetzt ist es so, dass es verschiedene datenquellen im fpga gibt, die 
ich gerne alle zum pc übertragen will. Wie mache ich das am 
geschicktesten? Ich dachte erstmal an jeweils einzelne fifos pro 
datenquelle und dann eine Art multiplexer. Der pc muss dann aber noch 
wissen woher der Datenstrom kommt.

von Gustl B. (-gb-)


Lesenswert?

Du könntest die Daten in irgendeinem Format übertragen. Also als 
Beispiel dass immer 64 Byte zusammengehören. Das erste Byte ist ein 
Startbyte mit definiertem Muster. Dann kommt ein Byte das sagt von 
welcher Quelle die Daten kommen. Und danach kommen 62 Bytes der 
Nutzdaten.

Ja du brauchst eine Art Multiplexer. Der Lässt von jeder Quelle ein 
Paket in den FIFO hinein und schaltet dann zur nächsten Quelle. Wenn 
eine Quelle nichts schicken will wird zur nächsten Quelle 
weitergeschaltet.

von Xerxes (Gast)


Lesenswert?

Abhängig von Datenrate und Datenmenge kann man auch alle Daten in ein 
Paket schreiben und das raussenden.
Also z.B. Datenwort Quelle 1 in Byte 0...15, Quelle 2 dahinter Byte 
16...31 usw.

Dann müssen die Daten nur in ein Array geschrieben und das Array dann 
ausgesendet werden.

von Gerd E. (robberknight)


Lesenswert?

Du brauchst eine Art Mulitplexing um die Daten auseinander zu halten.

Schau Dir dafür mal COBS an:
https://en.wikipedia.org/wiki/Consistent_Overhead_Byte_Stuffing

Das hat den Vorteil daß der Overhead konstant ist und daher nicht 
abhängig von speziellen Mustern im Datenstrom ansteigen kann.

von Duke Scarring (Gast)


Lesenswert?

Der Multiplexer muß natürlich wissen, wann ein Submodul mit seinem Paket 
fertig ist. Sonst gibt es Datensalat, wenn alle wild drauflossenden.

Alternativ werden alle Datenquellen verodert und der PC sagt an, von wem 
er was haben möchte. Im Ruhezustand müssen die Submodule eine '0' 
ausgeben.

Duke

von Jonas H. (Gast)


Lesenswert?

Es ist so, dass jede Datenquelle noch einen eigenen ausgangsfifo hat.

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.