SAE J1939 Programming with Arduino - Address Claim And Preferred Address
This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino.
For the purpose of a quick address claiming process, each control application should maintain a preferred address. SAE J1939/81 recommends that the preferred address (i.e. the address the ECU/CA attempts to claim on power-up) should be re-programmable to permit the proper configuration of the entire vehicle network. It also helps to prevent delays/problems during the address claiming procedure. The proper procedure would be to determine all preferred addresses in the entire network and design the addresses in a way that no collisions will occur.
According to the SAE J1939/81 Standard, each CA should attempt to use preferred addresses assigned by the SAE in correspondence to the Industry Group, meaning each Industry Group comes with a list of preferred addresses according to the CA’s function.
In the case of the Global Industry Group, these addresses are in the range of 0 to 84, while the range of 128 to 247 is Industry Group specific. According to the SAE J1939/81 Standard the range of 85 through 127 are reserved for future assignment by the SAE.
Also, according to SAE J1939/81, a control application (CA) claiming a preferred address in the range 0 to 127 and 248 to 253 must perform the function defined for that process and specify that function within its NAME.
All these definitions may be confusing, even contradictory to the engineer when it comes to testing a J1939 ECU. For demonstration purposes (i.e. in our Arduino projects), we will assume a preferred address of 128 (0x80) and a negotiable address range between 129 and 247.
SAE J1939 has become the accepted industry standard and the vehicle network technology of choice for off-highway machines in applications such as construction, material handling, and forestry machines. J1939 is a higher-layer protocol based on Controller Area Network (CAN). It provides serial data communications between microprocessor systems (also called Electronic Control Units - ECU) in any kind of heavy duty vehicles. The messages exchanged between these units can be data such as vehicle road speed, torque control message from the transmission to the engine, oil temperature, and many more.
A Comprehensible Guide to J1939 is the first work on J1939 besides the SAE J1939 standards collection. It provides profound information on the J1939 message format and network management combined with a high level of readability.