BAM: J1939 Broadcast Announce Message

BAM Überblick

Das BAM Transportprotokoll von J1939 erlaubt die Übertragung von Parameter Groups (PG) von 9 bis 1785 Bytes im Broadcast-Verfahren an alle Teilnehmer im J1939-Netzwerk.
Seinen Namen hat das Transportprotokoll von dem Verfahren, dass zunächst der Broadcast angekündigt (announce) wird und dann die Daten in einem definierten Timing im Broadcast übertragen werden. Dabei erfolgt keine Empfangsbestätigung seitens eines Empfängers.

Sequenz der CAN-Telegramme

Connection Management

Zu Beginn der Übertragung wird Übertragung unter Angabe der Länge und der PG angekündigt. Diese Connection Management Nachricht hat die Länge von 8 Bytes und wird mit der PGN 60416/0xEC00 übertragen.
Sie hat folgenden Inhalt:

Byte Wert/Bedeutung
1 fest: 0x20
2-3 Länge der Nutzdaten in Bytes
4 Anzahl der folgenden CAN-Telegramme
5 reserviert: 0xff
6-8 PGN der übertragenen PG

Datennachrichten

Die einzelnen Datennachrichten (PG 60160/0xEB00) werden üblicherweise aller 50ms gesendet. Sie beinhalten im 1. Byte eine Sequenznummer von 1 bis 255 und die weiteren 7 Bytes der CAN-Telegramme sind die Nutzdaten.
Auf der Sequenznummergröße bis zum Wert 255 ist die Größe der maximal übertragbaren Daten auf 1785 Bytes begrenzt.
Sind die Nutzdaten kürzer als ein Vielfaches von 7, so sind die restlichen Daten mit 0xff (255) aufzufüllen.
Die Länge einer einzelnen Datennachricht ist immer 8 Bytes.

BAM Beispielübertragung

CANinterpreter Logging einer BAM Übertragung
emotas CANinterpreter Logging eines BAM-Transfers

In diesem Beispiel wird die PG mit PGN 0xfebc (65212) mit ingesamt 16 byte Nutzdaten via dem Broadcast Announce Message Protokoll übertragen.

Ein anderes Beispiel zeigt die Interpretation einer SPN in einer PG, welche per BAM übertragen wird.

Screenshot of J1939 Interpretation by CANinterpreter
J1939 Interpretation by CANinterpreter

Zusammenfassung

  • Übertragung von 9 bis 1785 Bytes
  • Broadcast(0xff) an alle Teilnehmer im Netzwerk
  • Keine Flußkontrolle/kein Hand-shake
  • keine Bestätigung durch Empfänger
  • mindestens 50ms Lücken zwischen den Telegrammen
  • PGN der BAM Connection Message: 0xEC00 / 60416
  • PGN der BAM Data Message: 0xEB00 / 60160

Das BAM Transportprotokoll wird vom emotas J1939 Protokollstack unterstützt.

Andere Transportprotokolle

Bei J1939 ist zusätzlich das CMDT Transportprotokoll definiert, welches Punkt-zu-Punkt-Verbindung mit Handshake und Connection Management beinhaltet. NMEA2000 definiert darüber hinaus zusätzlich das Fast Packet Protokoll zum Übertragen von bis zu 223 Bytes.