Paketaufbau CAN

Aus iSysBus Doku

Wechseln zu: Navigation, Suche

Allgemein / Protokoll / ISB-Protokoll

iSysBus Protokollschichten

Anwendung Bootloader Config-Dienst Input-Dienst Output-Dienst ...
Nachrichtentyp Unicast Multicast Broadcast
Transport ISB-Protokoll
Bussystem CAN USB RS232 RS485 ...

Diese Seite beschreibt den Aufbau der Datenpakete, wenn als Bussystem CAN zum Einsatz kommt


Die IDs werden nach einem festgelegten Schema vergeben, um verschiedene Kommunikationsmöglichkeiten zu bieten. Normalerweise gibt es bei CAN keine Möglichkeit, Knoten direkt zu adressieren, gesendete Pakete werden von allen Knoten empfangen und jeder hört auf vorher festgelegte IDs.

Für einen Hausbus müssen bestimmte Knoten aber häufig direkt adressiert werden, deswegen wurden die CAN-IDs ein wenig "umgebogen", um Adressen nachbilden zu können. Hierbei werden alle 29 Bit (11 Bit identifier A und 18 Bit identifier B)des extended CAN Frame Formats verwendet.

Inhaltsverzeichnis

Absender-Adresse

Die Absender-Adresse besteht aus 11 Bits, die prinzipiell frei vergeben werden können, lediglich die IDs 0 (0x0000) sowie 2047 (0x07FF) sind für spezielle Zwecke reserviert. Je niedriger die Adresse ist, desto höher ist die Priorität bei Verwendung von CAN als Basis.

Empfänger-Adresse / Multicast-ID / Broadcast-ID

Die Empfänger-Adresse besteht aus 16 Bit (5 Bit + 11 Bit) die abhängig vom Nachrichtentyp unterschiedliche Bedeutung haben. Nachrichtentypen sind: Unicast (Punkt-zu-Punkt-Kommunikation: Ein Knoten kommuniziert mit einem bestimmten zweiten Knoten), Multicast (ein Knoten kommuniziert mit einer Gruppe) sowie Broadcast (ein Knoten sendet ein Event an eine unbestimmte Anzahl von Empfängern, in der Regel an alle aktiven Knoten).

Anmerkung: Zum besseren Vergleich mit einem Datalogger oder Oszillogramm wurden die für die iSysBus Adressierung nicht relvanten CAN Bits mit dargestellt.

Unicast

Aufbau der Unicast Nachricht Für den Unicast sind die Bits A0 und A1 der CAN-ID auf 1 gesetzt.

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 SSR IDE B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 B15 B16 B17
Identifier A CAN Identifier B
=1 =1 Port Ziel-Adresse (1) CAN Ziel-Adresse (2) Absender-Adresse


Beispiel: Ein Taster schickt eine Aufforderung zum Öffnen an einen elektronischen Türöffner.

Multicast

Aufbau der Multicast Nachricht Für den Multicats sind die Bits A0 und A1 der CAN-ID auf 01 gesetzt.

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 SSR IDE B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 B15 B16 B17
Identifier A CAN Identifier B
=0 =1 Multicast ID (1) CAN Multicast ID (2) Absender-Adresse


Beispiel: Ein Taster fordert mehrere Knoten auf, das Licht im Treppenhaus einzuschalten

Broadcast

Aufbau der Broadcast Nachricht Für den Broadcast sind die Bits A0 und A1 der CAN-ID auf 00 gesetzt.

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 SSR IDE B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 B15 B16 B17
Identifier A CAN Identifier B
=0 =0 Broadcast ID (1) CAN Broadcast ID (2) Absender-Adresse


Beispiel: Alle Knoten Restart

Port

Ein Port ist ein logischer Endpunkt, welcher einen Wert von 0-31 annehmen kann, wobei die Ports 0 und 31 für spezielle Zwecke reserviert sind.


Flags

Datenlänge

Der iSysBus überträgt, wie auch CAN, zwischen 0 und 8 Byte an Nutzdaten je Paket, wobei immer ganze Byte, d.h. keine kleineren Einheiten, zulässig sind. Die Anzahl der übertragen Datenbytes wird im DLC Feld des CAN Frames mit übermittelt.

Daten

Der Inhalt und die Menge (Größe und Anzahl der Paktete) der Daten hängt von verschiedenen Umständen wie Pakettyp und Funktion ab. Mögliche Inhalte sind z.B. Befehle wie Licht ein/aus, Statusmeldungen wie Kontakt zu/auf, Messwerte wie Temperatur, Druck, etc. oder auch Softwareupdates für einzelne Knoten.

Prüfsumme

Als Prüfsumme wird CRC (siehe auch Zyklische Redundanzprüfung) verwendet. Berechnung und Prüfung übernimmt im Regelfall der CAN Controller. Im Falle, dass iSysBus Pakete über Medien ohne eigene Sicherungsschicht, wie z.B. RS232, übertragen werden, erfolgt eine CRC Prüfung durch die Software, die Prüfsumme wird jeweils für ein ganzes Paket berechnet.

Sonstiges

Datenrate

Meine Werkzeuge