CAN über 10BASE-T1S tunneln
Single Pair Ethernet, insbesondere 10BASE-T1S, wird häufig als möglicher Nachfolger oder als Ergänzung zu CAN betrachtet. Für einen praktischen Einstieg muss jedoch nicht das ganze System neu entwickelt werden: CAN-Frames lassen sich zwischen zwei bestehenden CAN-Segmenten über Ethernet tunneln.
In diesem Demonstrator übernimmt 10BASE-T1S nur die Ethernet-Strecke. Der gleiche Tunnel kann ebenso über WLAN, Glasfaser, 10BASE-TX oder 10BASE-T1L laufen.
Warum CAN über Ethernet tunneln?
Der Ansatz ist kein Ersatz für einen durchgängigen CAN-Bus. Er ist ein Werkzeug, um CAN und Ethernet in einem bestehenden System gezielt zu verbinden:
- Ein Produkt, das CAN verwendet, benötigt dafür zunächst keine Hardware- oder Softwareänderung.
- 10BASE-T1S kann zwischen zwei CAN-Segmente eingefügt werden, um Kabellängen, Topologie und Verhalten der Ethernet-Strecke zu untersuchen.
- Ein Netzwerk kann schrittweise von CAN auf T1S umgestellt werden, statt alles auf einmal zu ersetzen.
- Bestehende CAN-Komponenten und neue T1S-Komponenten lassen sich koppeln.
Die CAN-Anwendung bleibt auf den beiden Seiten unverändert. Nur der Transportweg zwischen den Tunnel-Endpunkten wechselt.
Versuchsaufbau

Pi 2 und Pi 3 sind die eigentlichen CAN-Endpunkte. Sie senden und empfangen Frames über can0.
Pi 1 und Pi 5 bilden ausschließlich die Endpunkte des Tunnels. Jeder verbindet ein lokales CAN-Interface mit beiis-t1s0. Zwischen den beiden Geräten läuft 10BASE-T1S mit 10.10.10.2 und 10.10.10.1.
Logisch kommunizieren Pi 2 und Pi 3 direkt. Pi 1 und Pi 5 sind keine CAN-Teilnehmer der Anwendung. Anstelle von Pi 2 oder Pi 3 kann jeweils auch ein kompletter CAN-Bus mit mehreren Teilnehmern angeschlossen sein.
Wichtig: Der Tunnel transportiert CAN-Frames, verlängert aber keine CAN-Arbitrierung über Ethernet. Damit eignet er sich für Demonstrationen, Laboraufbauten und Prototypen – nicht als Ersatz für ein durchgängiges, echtzeitkritisches CAN-Segment.
Aufbau vorbereiten
Auf Pi 1 und Pi 5 müssen CAN und T1S als Linux-Netzwerkinterfaces verfügbar sein. Zuerst wird die T1S-Strecke adressiert:
# Pi 1
$ sudo ip addr replace 10.10.10.2/24 dev beiis-t1s0
$ sudo ip link set beiis-t1s0 up
# Pi 5
$ sudo ip addr replace 10.10.10.1/24 dev beiis-t1s0
$ sudo ip link set beiis-t1s0 up
Danach werden die lokalen CAN-Interfaces aktiviert. Der dargestellte Aufbau wurde bis 1 Mbit/s CAN-Bitrate getestet.
$ sudo ip link set beiis-can0 down
$ sudo ip link set beiis-can0 type can bitrate 1000000
$ sudo ip link set beiis-can0 up
Die Beispielquellen verwenden Python und SocketCAN:
$ sudo apt update
$ sudo apt install -y git python3 python3-pip
$ python3 -m pip install --user python-can
$ git clone https://github.com/philippbrechel/be-iis-sw.git
$ cd be-iis-sw
Der Python-Tunnel liest Frames von beiis-can0, versendet sie per UDP über beiis-t1s0 und schreibt sie auf der Gegenseite zurück auf das lokale CAN-Interface. Der Code bleibt dabei unabhängig von der Ethernet-PHY: T1S kann später beispielsweise durch T1L, WLAN oder Standard-Ethernet ersetzt werden.
Funktionsprüfung: Der Zauberlehrling auf dem CAN-Bus
Zum Test wird auf Pi 2 ein Text als Folge von CAN-Frames gesendet. Auf Pi 3 zeigt candump, dass die Bytes aus dem entfernten CAN-Segment eintreffen:
$ candump -a can0,700:7FFFF
can0 700 [8] 48 61 74 20 64 65 72 20 'Hat der '
can0 700 [8] 61 6C 74 65 20 48 65 78 'alte Hex'
can0 700 [8] 65 6E 6D 65 69 73 74 65 'enmeiste'
can0 700 [8] 72 0A 53 69 63 68 20 64 'r.Sich d'
can0 700 [8] 6F 63 68 20 65 69 6E 6D 'och einm'
can0 700 [8] 61 6C 20 77 65 67 62 65 'al wegbe'
can0 700 [8] 67 65 62 65 6E 21 0A 'gegeben!.'

Der „alte Hexenmeister“ kommt nicht über einen durchgehenden CAN-Draht an, sondern über einen Ethernet-Tunnel auf 10BASE-T1S – auf dem Zielbus aber wieder als normale CAN-Kommunikation.
Fazit
Die stapelbare BE-IIS-HPP-Plattform ist eine gute Basis, um solche Gateways schnell aufzubauen: ein CAN-HAT für das lokale Segment und ein Ethernet-HAT für die Transportstrecke. Das Demo zeigt, wie sich T1S-Tunneling in bestehende CAN-Architekturen einfügen lässt, ohne die Produkte an den CAN-Endpunkten sofort umzubauen.
Als Alternative zum T1S-HAT kann der BE-IIS-HPP-T1L für 10BASE-T1L eingesetzt werden. Die Tunnel-Logik bleibt gleich; nur das verwendete Linux-Netzwerkinterface und die IP-Konfiguration müssen angepasst werden. Der BE-IIS-HPP-LAN ist eine weitere Ethernet-Option für andere physikalische Strecken.
Dies ist ein getesteter Demonstrator, kein fertiges Serien-Gateway. Alle Quellen sind offen und bewusst überschaubar. Dadurch können Verhalten und Fehler schnell nachvollzogen werden; KI-Werkzeuge helfen zusätzlich, die kleinen Python-Komponenten zügig zu prüfen und weiterzuentwickeln.
Produkte und Werkzeuge
- BE-IIS-HPP-T1S
- BE-IIS-HPP-CAN
- Alternative Ethernet-HATs: BE-IIS-HPP-T1L und BE-IIS-HPP-LAN
- Werkzeug: HAT Stack Builder
- Offene Quellen: BE-IIS Software Repository