J1939 Safety

J1939 Safety is an extension of J1939 which is described in the specification SAE J1939-76. The safety communication can be done in parallel to a normal J1939 transmission in the same network.


To increase the safety of the communication the following principles are used:

  • cyclic transmission with timing monitoring
  • Data consistency check with CRC
  • Sequence counter to check order of message


Data transfer according to J1939 Safety is only possible for parameter groups (PG) that don’t exceed a length of 8 bytes. Additionally, it is only possible for cyclic PGNs.

Safety Data Group

Safety Header Message

The Safety Header Message (SHM) is a parameter group (PG), which is send before the original parameter group – Safety Data Message (SDM).
The SHM consists of:

  • a 5-Bit for each SDM separately
  • a 32-Bit CRC over the SDM
  • the inverted CAN-ID (without priority bits) of the SDM

emotas CANinterpreter mit J1939 Interpretation und SHM
The receiver of the Safety messages need to check, if the CRC was calculated correctly and if the sequenzce counter was increased correctly.

Safety Data Message (SDM)

The Safety Data Message is the normal unmodified PGN with the payload.

The SDM is sent after the SHM and consumers without safety requirement may receive them as a normal PGN.


Safety Cycle Time (SCT)

Die Safety Cycle Time hängt von der Zykluszeit der PG ab, welche sicher übertragen werden soll. Dies bedeutet auch, dass nur solche Parametergruppen mittels J1939 Safety übertragen werden dürfen, welche entweder mit fixer Zykluszeit zu übertragen sind oder eine definierte Minimalzeit (“not faster than xy ms”) haben. In this case this minimal time is the cyclic time.
Bei Überschreitung der Zykluszeit plus einer in J1939-76 definierten Toleranz ist dies als sicherheitskritisches Ereignis der Applikation zu melden.

Safety Relevant Validation Time (SRVT)

Die SRVT ist der Abstand zwischen der Safety Header Message und der dazugehörigen PG als Safety Data Message. Die Zeiten für die SRVT hängen ebenfalls von der Zykluszeit der Safety Data Message ab und sind in J1939-76 definiert.

J1939 Safety Timings mit SCT und SRVT

Stacks and tools

The emotas J1939 stack supports the transmission and reception of safety header messages. To analyze it the CANinterpreter with J1939 extension may be used.