Print Data Sheet

Technology Introduction

SAE J1939 Introduction

The SAE J1939 protocol was defined by the SAE for use in commercial vehicles, but it 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 J1939 protocol stack to also be used for these applications as well.

In the commercial vehicle sector, serial protocols standardized 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 of J1939.

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

Therefore, via SAE J1939, it is possible to both transmit measurement values and control data and to configure components. In addition, it is also possible 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 implemented 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 the content of the J1939 messages itself can also 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. In a fashion similar to practically all fieldbus protocols, since layers 5 and 6 are not needed in SAE J1939, they are also not specified.

Diagram - SAE J1939 in the ISO/OSI layer model

The functionality of SAE J1939 is divided into layers as follows:

  • 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) 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).
  • Since 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 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 the application level.