SAE J1939 is a higher-layer protocol (HLP) based on the Controller Area Network (CAN Bus). It provides serial data communications between microprocessor systems (also called Electronic Control Units—ECUs) in any heavy-duty vehicle.
Everything that has to do with the CAN Bus provides reliability with the maximum possible performance in mind, not only regarding required electrical robustness but also due to high-speed requirements for a serial communication system.
The CAN Bus is quite suitable for communication in regular cars or small industrial applications. However, it has some limitations when it comes to network management. To overcome these shortcomings, additional software can be used to extend the physical layer of the CAN Bus protocol (which is on silicon). These additional protocols, also known as higher-layer protocols (like SAE J1939), can provide the required network management features.
SAE J1939 takes advantage of CAN Bus features such as:
- Maximum reliability
- Excellent error detection & fault confinement
- Collision-free bus arbitration
However, it’s important to note that SAE J1939 does have its limitations. Unlike the CAN Bus, which supports up to 1 Mbit/sec, SAE J1939 restricts itself to 250/500 kbit/sec. This is because the level of performance required for SAE J1939 does not necessitate the real-time capabilities of the CAN Bus.
It’s worth noting that the SAE J1939 Standard is evolving to incorporate new technologies like CAN FD (Flexible Data Rate), which allows for higher transmission speeds. Additionally, a new version, CAN XL, is currently in development and could potentially influence SAE J1939 in the future.
Looking deeper into the SAE J1939 bus arbitration, i.e., the address claim process, it becomes clear that the SAE (Society of Automotive Engineers) was not worried about violating the collision-free bus arbitration. They copied a feature from the Ethernet bus arbitration, where it is acceptable to “crash a party.” Under Ethernet, when two nodes compete for bus access, they both retreat and retry bus access after a random delay. SAE J1939 uses the same principle.
The Network Management (SAE J1939/81) allows scenarios where two CAN Bus nodes with the same message ID can access the bus. The result of such a situation can be unpredictable.
The scenario, as mentioned, may happen when two ECUs try to claim the same source address at the same time. The following picture demonstrates this possibility:

In this example, both nodes, A and B, are powered up at the same time, their Power-On Self-Test (POST) takes place at the same time, and both nodes send out their Address Claim message at the same time, claiming the same node address. The probability of such a situation occurring may be extremely low, but the consequences can be severe.
The CAN standard does not allow a situation where two nodes use the same message ID. This scenario will create a CAN error frame, and both nodes will attempt to claim the same source address repeatedly until both nodes switch into the Error Passive mode, limiting their network communication capabilities. Experience has shown that both nodes will eventually return to regular operation, but the time it takes is unpredictable, and proper network function cannot be guaranteed.
SAE J1939/81 recommends Address Claim Bus Collision Management. The procedure includes checking for an error frame and using different delays in both ECUs before they claim their address again. The transmission delay should be calculated by producing a “pseudo-random” delay value between 0 and 255.
SAE J1939/81 explains that, during this process, both nodes eventually enter BUS OFF mode. However, the CAN Bus standard (which categorically does not allow two messages with the same message ID) or empirical tests do not support this statement.
Tests (not accomplished by the SAE) have shown that the two competing nodes will go into Error Passive mode, and both nodes will eventually return to the regular Error Active mode. However, the time until both nodes return to regular activities is unpredictable, and so are the consequences for the application.
SAE J1939 Starter Kit and Network Simulator
Our JCOM.J1939 Starter Kit and Network Simulator is designed to allow the experienced engineer as well as the beginner to experiment with SAE J1939 data communication without the need of connecting to a real-world J1939 network, i.e. a diesel engine. It may sound obvious, but in order to establish a network, you need at least two nodes, and that fact applies especially to CAN/J1939 where the CAN controller will basically shut down after transmitting data without receiving a response. For that reason, our jCOM.J1939 Starter Kit and Network Simulator consists of two J1939 nodes, namely our jCOM.J1939.USB, an SAE J1939 ECU Simulator Board with USB Port.
The jCOM.J1939.USB gateway board is a high-performance, low-latency vehicle network adapter for SAE J1939 applications. The board supports the full SAE J1939 protocol according to J1939/81 Network Management (Address Claiming) and J1939/21 Transport Protocol (TP).









Comments are closed.