# SAE J1939

Das Netzwerkprotokoll SAE J1939 beschreibt die Kommunikation auf einem CAN-Bus in Nutzfahrzeugen zur Übermittlung von Diagnosedaten (z. B. Motordrehzahl, Temperatur) und Steuerungsinformationen.

## Einsatzbereich

Das Protokoll wurde von der internationalen Society of Automotive Engineers (SAE) definiert und arbeitet auf dem Physical Layer mit CAN-Highspeed nach ISO 11898. Der Anwendungsschwerpunkt liegt im Bereich des Antriebsstrangs und Chassis von Nutzfahrzeugen. Zum Einsatz kommt das Protokoll dabei in schweren Fahrzeugen sowohl für Straßen- als auch Offroad-Betrieb (Baumaschinen). Verwandt mit J1939 sind der ISOBUS nach ISO 11783 für Landmaschinen, NMEA 2000 für den maritimen Einsatz sowie das Truck & Trailer Interface gemäß ISO 11992. Ebenso basiert der FMS-Standard auf J1939-Kommunikation.

## Steckerpinbelegung

| Pin | Funktion |
| A | Masse/GND |
| B | Batterie + |
| C | J1939+ (CAN H) |
| D | J1939- (CAN L) |
| E | J1939 Abschirmung |
| F | J1708+ (Data A, ATA+) |
| G | J1708- (Data B, ATA-) |
| H | - |
| J | - |
* J1939 Stecker
* J1939 Pinbelegung

## Protokollbeschreibung

Bei J1939 handelt es sich um ein Multimaster-System mit dezentralisiertem Netzwerk-Management ohne kanalbasierte Kommunikation. Es unterstützt bis zu 254 logische Knoten und 30 physikalische Steuergeräte pro Segment. Die Informationen werden als Parameter (Signale) beschrieben und auf 4 Speicherseiten (Data Page) in Parametergruppen (PGs) zusammengefasst. Jede Parametergruppe kann durch eine eindeutige Nummer, die Parameter Group Number (PGN), identifiziert werden. Unabhängig davon wird jedem Signal eine eindeutige SPN (Suspect Parameter Number) zugewiesen.

## Datenübertragung

Der überwiegende Teil der Kommunikation erfolgt meist zyklisch und kann von allen Steuergeräten ohne explizite Anforderung von Daten empfangen werden (Broadcast). Zudem sind die Parametergruppen auf eine Länge von 8 Datenbytes optimiert. Dies ermöglicht eine sehr effiziente Ausnutzung des CAN-Protokolls. Bestimmte Informationen wie Konfigurationsdaten oder Diagnosedaten können auch ausschließlich zwischen zwei Steuergeräten (Peer-to-Peer) ausgetauscht werden. Die Festlegung der Kommunikation, Broadcast oder Peer-to-Peer, ist dabei eine Eigenschaft der verwendeten Parametergruppe. Damit hängt von der Parametergruppe neben der Definition, welche Parameter übertragen werden, auch die Übertragungsart ab.

## Transportprotokoll

Falls größere Datenmengen übertragen werden müssen, kommen Transportprotokolle (TP) zum Einsatz:
* BAM (Broadcast Announce Message) und
* CMDT (Connection Mode Data Transfer).
Beim BAM TP erfolgt die Übertragung der Daten per Broadcast an alle Busteilnehmer. Zwischen Sender und Empfänger gibt es keinen Kontrolldatenfluss (Handshake). Beim CMDT TP werden die Daten zwischen genau zwei Steuergeräten ausgetauscht. Der hierbei stattfindende Kontrolldatenfluss ermöglicht im Fehlerfall ein Wiederaufsetzen der Kommunikation ohne eine komplette Wiederholung der Datenübertragung. Außerdem ermöglicht das CMDT TP eine Empfangsbestätigung der Daten durch den Empfänger.

## Dezentrales Netzwerk-Management

Damit auf einem CAN-Netzwerk überhaupt Peer-to-Peer-Kommunikation möglich ist, muss jedem Steuergerät eine eindeutige Adresse im Bereich von 0 bis 253 zugewiesen werden. Um zu vermeiden, dass im Betrieb fälschlicherweise zwei Steuergeräte mit der gleichen Adresse vorkommen, bedarf es einer ausgeklügelten Strategie – dem Netzwerk-Management (NM). Bei J1939 ist das NM dezentral organisiert. D.h. jedes Steuergerät muss eine Mindestfunktionalität des NM implementieren. Die Aufgaben des NM sind:
* Auflösung von Adresskonflikten (Mindestanforderung)
* Laufende Prüfung, ob Steuergeräteadressen in einem Netzwerk doppelt vergeben sind (Mindestanforderung)
* Änderung der Steuergeräteadressen zur Laufzeit
* Eindeutige Identifizierung eines Steuergeräts mit Hilfe eines weltweit eindeutigen Namens
* Dieser Name dient auch zur Erkennung, welche Funktionalität ein Steuergerät im Netzwerk hat

## SAE-Dokumente

Die Norm ist in folgende Schichten (Dokumente) unterteilt:
| Norm | Beschreibung |
| SAE J1939 | Recommended Practice for a Serial Control and Communications Vehicle Network |
| SAE J1939-11 | Physical Layer – 250 kBits/s, Shielded Twisted Pair |
| SAE J1939-13 | Off-Board Diagnostic Connector |
| SAE J1939-15 | Reduced Physical Layer, 250 kBits/s, Un-Shielded Twisted Pair (UTP) |
| SAE J1939-21 | Data Link Layer |
| SAE J1939-31 | Network Layer |
| SAE J1939-71 | Vehicle Application Layer |
| SAE J1939-73 | Application Layer – Diagnostics |
| SAE J1939-81 | Network Management Protocol |

## CiA Dokumente

Der Verein CAN in Automation (CiA) e. V. beschreibt in der Spezifikation CiA-413 Gateways von J1939 zu CANopen und im Dokument CiA-602 ein Mapping von J1939-Nachrichten auf CAN-FD.