CAN über 10BASE-T1S tunneln

On this page

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

CAN-Tunnel über 10BASE-T1S

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 Zauberlehrling kommt am entfernten CAN-Bus an

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