BAM: J1939 Broadcast Announce Message

BAM Überblick

Das BAM Transportprotokoll von J1939 erlaubt die Übertragung von PGNs 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 PGN 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 übertragene PGN

Datennachrichten

Die einzelnen Datennachrichten (PGN 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
emtas CANinterpreter Logging eines BAM-Transfers

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

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 emtas 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.