SAE J1939 Programming with Arduino - The Two Elements of the SAE J1939 Protocol Stack
This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino.
Any SAE J1939 hardware must support SAE J1939/1x and SAE J1939/21, otherwise they’re useless, because these standards describe the CAN Bus physical layer and the basic protocol features. That part is sufficiently covered (i.e. for demonstration purposes) by our CAN Bus shield, while the cabling and connectors may not necessarily J1939-compliant.
A fully functional SAE J1939 protocol software must support one mandatory element, SAE J1939/81 (address claim process) and, if needed, SAE J1939/21 (transport of up to 1785 bytes per message).
Note: The implementation of the Transport Protocol (TP), i.e. the transport of up to 1785 data bytes in a message, is highly application-specific. Some ECUs and their control applications (CAs) will need it, some won’t.
In the following, I will cover the basics of the SAE J1939/21 Transport Protocol (TP) and the Address Claim Procedure according to SAE J1939/81. The information as presented is in reference to help understanding the ARD1939 protocol stack.
Note: For a more hand-on approach to the SAE J1939/21 and SAE J1939/81 requirements, please refer to chapter “Proof of Concept.” The tests accomplished in that chapter explain the actual SAE J1939 protocol in more detail than any other textbook or manual.
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.