Forum: FPGA, VHDL & Co. Spaßprojekt - Ethernet over CAN


von Zynq (Gast)


Lesenswert?

Hey Leute,

ich würde gerne ein Spaßprojekt starten und eine Ethernet Verbindung 
über einen CAN tunneln (mithilfe von FPGA).


Idee in etwa so

Ethernet - MAC - FIFO - CAN-Core - Can-Leitung - Can-core - FIFO - MAC - 
Ethernet

Ich habe bisher nur zweimal mit Ethernet gearbeitet.
Einmal auf einem Zynq mit einem Linux, da lief das mehr oder weniger 
alles out-of-the-box und einmal auf einem STM32. Da habe ich eine fertig 
angepasste library genutzt und dann lief auch direkt alles.

Ich fange gerade an, mich einzulesen und habe aktuell auch noch nicht 
den Überblick, was mich erwarten wird.

Meine erste Idee war einfach: Ich docke an das MII-Interface an, buffere 
die über RX ankommenden Daten in einem FIFO, bette sie in ein CAN-Frame 
ein und an der Gegenstelle schiebe ich die Daten einfach auf den TX den 
Transceivers.


Natürlich ist mir klar, dass die Datenrate nicht sehr hoch sein wird, 
aber mir geht es mehr um den Lerneffekt und Spaß an der Sache.

Was müsste ich beachten auf die Schnelle?
Brauche ich evtl. doch einen richtigen MAC-Controller?

Danke & LG

von S. R. (svenska)


Lesenswert?

Ein normaler Ethernet-Frame kann bis zu 1,5 KB groß sein kann 
(Jumbo-Frames sind noch größer). Das heißt, du musst für den CAN-Bus 
ohnehin ein eigenes Framing-Protokoll entwickln.

Sinnvoll wäre es also, auf beiden Seiten ein vollwertiges Ethernet zu 
implementieren und nur die Inhalte zu tunneln - zum Aus- und Einpacken 
reicht ein beliebiger Mikrocontroller mit Ethernet und CAN. Ein FPGA 
scheint mir da irgendwie nicht sinnvoll zu sein.

Die Geschwindigkeiten und Zeitverhalten beider Busse sind extrem 
unterschiedlich, also kannst du jede Form von "ich übertrage die 
Signale" vergessen - du musst zumindest die Frames aus- und wieder 
einpacken.

Für Spaß kannst du dir auch mal SLIP anschauen, das ist nacktes IP über 
serielle Leitungen. Vielleicht wäre das was - auch ein aktuelles Linux 
spricht das noch ohne weiteren Aufwand. CSLIP reduziert die benötigte 
Bandbreite für TCP-Verbindungen (dank Header-Komprimierung) deutlich 
weiter.

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.