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