Das SAE J1939- Protokoll ist ein von der amerikanischen Society of Automotive Engineers (SAE) spezifiziertes Protokoll mit denen elektronische Komponenten von Nutz- und Spezialfahrzeugen miteinander kommunizieren. Eingesetzt wird J1939 in dem J1939-Bus, der als Feldbus auf dem CAN-Bus basiert.
Der Protokollstack des SAE-J1939-Protokolls orientiert sich am OSI-Referenzmodell und berücksichtigt funktional die Anwendungsschicht, Vermittlungsschicht, Sicherungsschicht und die physikalische Bitübertragungsschicht. Das bedeutet, dass der J1939-Bus Brücken- und Routingfunktionen besitzt und die SAE-J- Knoten über eigene Adressen verfügen. Möglich wurde dies durch das Extended-Format des Identifiers im CAN-Datenrahmen, das in diesem Format 29 Bits umfasst. 8 Bit des Identifier-Felds werden als Adressbits für die Quell- und Zieladressen der SAE-J-Knoten benutzt. Damit kann J1939 insgesamt 254 logische Knoten und 30 physikalische Steuergeräte pro Segment unterstützen. Die Informationen werden als Signale beschrieben und in Parametergruppen zusammengefasst.
Das SAE-J1939-Protokoll, das in Nutz- und Schienenfahrzeugen, in Landmaschinen und Schiffen eingesetzt wird, berücksichtigt eine Segmentierung, Flusskontrolle, die Art der Übertragung, die bestätigt oder unbestätigt sein kann, und spezifiziert auch den Nachrichteninhalt.