Hardware

Der CAN-Bus

Ein Kabel bringt Versorgung und Daten von Modul zu Modul. CAN kommt aus dem Auto und ist für genau solche Umgebungen gebaut, mit langen Leitungen, Störungen und vielen Teilnehmern.

Auf dieser Seite

Der Modulbus

Eigenschaft Wahl Grund
Bus CAN Der Controller steckt im Chip, dazu kommt nur ein Transceiver. Störfest, eingebaute Fehlererkennung, jedes Modul darf von sich aus senden.
Kabel vieradrig 24 V, Masse, CAN-H, CAN-L. Wird von Modul zu Modul durchgeschleift.
Stecker M12, 4-polig Wasserdicht, fertige Leitungen in allen Längen erhältlich.
Rate 250 kbit/s Reicht für 40 m und mehr, also für Terrasse, Garten und Gewächshaus.
Abschluss 120 Ω An beiden Enden, am Modul zuschaltbar.
Am Modul 24 V auf 5 V Sicherung je Modul, Verpolschutz, Abwärtswandler auf den 5-V-Pin des Boards. Mehr unter Strom.
Hub CO₂ Bodenfeuchte Leistung DC Antrieb 120 Ω 120 Ω 24 V Masse CAN-H CAN-L Abschluss nur an den beiden Enden
Linie statt Stern: Das Kabel läuft von Modul zu Modul. Abgeschlossen wird nur an den beiden Enden.

Hohe Ströme für Heizung und Pumpe laufen nicht über das Buskabel. Leistungsmodule haben eine eigene Zuleitung.

Controller und Transceiver sind zwei Dinge

CAN-Controller im Chip: TWAI oder FDCAN Nachrichten Prüfsumme Vorrang Fehlerzähler TX RX 3,3-V-Logik Transceiver z. B. SN65HVD230 differenzielles Signal verträgt Masseversatz schützt den Chip CAN-H CAN-L Kabel, differenziell
Der Controller im Chip spricht Logikpegel. Der Transceiver setzt sie auf das differenzielle Signal des Kabels um.

Der CAN-Controller im Chip erledigt das Protokoll: Nachrichten zusammensetzen, Prüfsumme, Vorrang, Fehlerzähler. Beim ESP32 heißt er TWAI, beim STM32G0B1 FDCAN. Er arbeitet mit 3,3-V-Logikpegeln an zwei Pins, TX und RX.

Auf dem Kabel läuft CAN dagegen differenziell über CAN-H und CAN-L. Diese Umsetzung macht der Transceiver, zum Beispiel ein SN65HVD230. Er verträgt Störungen und Masseversatz auf langen Leitungen und schützt den Chip.

Deshalb braucht jedes Modul beides, egal ob ESP32 oder STM32.

Warum nicht RS485

Bei RS485 mit Modbus darf nur der Hub fragen. Module könnten nichts von sich aus melden, etwa Endschalter, Regen oder Überstrom. Die Erkennung neuer Module wäre umständlich.

RS485 bleibt als Zusatzport am Hub und am Bodenfeuchtemodul, weil viele fertige Sensoren Modbus sprechen.

Abschluss prüfen

Der Abschluss lässt sich mit einem Widerstandsmessgerät prüfen. Alles stromlos, dann zwischen CAN-H und CAN-L messen.

Messwert Bedeutung
etwa 60 Ω Der Abschluss stimmt: zweimal 120 Ω parallel.
etwa 40 Ω Ein dritter Widerstand ist noch drauf, meist an einem Modul in der Mitte.
etwa 120 Ω Ein Ende ist nicht abgeschlossen.

Die üblichen Transceiver-Platinen haben den Widerstand schon bestückt. An Modulen in der Mitte der Leitung muss er herunter. Das ist ein kleines SMD-Teil mit der Aufschrift „121“ nahe CAN-H und CAN-L.

Auf dem Steckbrett

Im Schreibtischaufbau laufen vier Kabel von Brett zu Brett: 5 V, Masse, CAN-H und CAN-L. Ein Netzteil mit 5 V versorgt über diese Leitung alle Boards. Bei 20 bis 50 cm Länge ist das unkritisch. CAN-H und CAN-L am besten miteinander verdrillen. Weil die 5 V direkt am 5-V-Pin ankommen, steht in den Einstellungen des Hubs „Erwartete Versorgung“ auf 5 V.

Die Masseleitung ist auch der Bezug für CAN. Die 3,3-V-Leitungen verschiedener Boards werden nie verbunden, jedes Board macht seine 3,3 V selbst. Der ganze Aufbau steht unter Steckbrett.

Was der Bus überträgt

Acht Nachrichtentypen mit fester Priorität. Ereignisse haben Vorrang vor Stellbefehlen, diese vor Lebenszeichen und Messwerten. Firmware-Updates haben die niedrigste Priorität, damit sie den Betrieb nicht stören. Einzelheiten unter Protokoll.

    Durchsucht alle Seiten. Die Suche läuft im Browser, nichts wird übertragen.