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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.