J1939 Source Code
Local Menu
IXXAT Platinum Partner
You are here: ".$breadcrumb->show_breadcrumb().""; ?>

SAE J1939 Protocol Stacks

The SAE J1939 protocol was defined by the SAE for use in commercial vehicles, but is also used in ships, rail-bound vehicles, agricultural machinery and large generators. In addition, SAE J1939 serves as the basis for the international standards NMEA 2000 (marine) and ISO 11783 (ISO bus for agricultural machinery), allowing the protocol stack to also be used for these applications.

In the commercial vehicle sector, serial protocols standardised by the SAE have been used for a long time, for communication between the individual electronic control units and components of the drive train. The J1708/J1587 protocol based on the serial port normally available in microcontrollers can be considered the predecessor.

Due to the required compatibility with the J1708/J1587 protocol, an extension of the CAN message identifier from 11 to 29 bits (extended format) and the development of CAN modules or protocol implementations which support this message format was required for J1939.

With the availability of the extended CAN identifier it is possible to map the principle of the definition of communication relationships to CAN as used in J1708. For this, part of the identifier is used to specify an 8-bit source and an 8-bit target address (node number). Via SAE J1939 it is therefore possible to transmit measurement values and control data and to configure components. In addition it is possible, for example, to read or delete diagnosis data of individual components and to carry out a calibration of individual controls.

To make this possible, all variables relevant for the commercial vehicle sector are defined with value ranges, resolution, identification number etc. in SAE J1939. This was mainly carried out on the basis of the specification already available for J1587.

Thus in the J1939 protocol not only are the type of transmission, the structure of messages and their segmenting, flow checks etc. specified but also the content of the messages itself can be precisely defined.

SAE J1939 in the ISO/OSI layer model

SAE J1939 is divided into several layers according to the OSI layer model, where each level is specified in a separate document. Similarly to practically all fieldbus protocols, the layers 5 and 6 are also not needed in SAE J1939 and are therefore not specified.

Layer 1 (physical layer) describes among other things the electric interface with the physical medium.

Layer 2 (data link layer) describes the data communication via CAN based on the specification CAN 2.0B.

Layer 3 (network layer) essentially describes the functionality of a bridge for the transmission of messages between two network segments and is only relevant for the implementation of a J1939 bridge.

Layer 4 (transport layer) basically describes the various network services for message request mode, acknowledged transmission and fragmented transmission of large data blocks.

Layer 7 (application layer) describes the actual data (parameters or network variables with value range, resolution, physical unit and the type of transmission). Each message is unambiguously referenced by a number (parameter group number).

As the network management can be regarded as a separate unit which reaches through to the hardware (layer 1), this block in the layer model is therefore shown as an independent function block on the right-hand side. The network management basically consists of the automatic allocation or determination of node addresses (plug&play principle). Node monitoring is not defined in SAE J1939 and must be implemented via cyclic messages at application level.

SAE J1939 Products available from Nohau UK

With our partner IXXAT Automotion Gmbh we offer the following products supporting engineers developing with J1939: