|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
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
(physical layer) describes among
other things the electric interface with the physical medium.
(data link layer) describes the
data communication via CAN based on the specification CAN 2.0B.
(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.
(transport layer) basically
describes the various network services for message request mode, acknowledged transmission
and fragmented transmission of large data blocks.
(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.