SAE J1939 Applications with the Arduino
This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino.
In general, there are three different intentions for connecting to a J1939 vehicle network:
- Mere monitoring, processing, and display of network data traffic.
- All functions as described under 1. but extended by the ability of sending data into the J1939 bus.
- All functions as described under 1. and 2. but extended by the J1939 Transport Protocol, supporting messages with more than 8 data bytes.
Let's address these three approaches:
- The mere monitoring, processing, and display of network data traffic does not require any network management functionality (i.e. the actual SAE J1939 protocol). Simply connect your monitoring device to the vehicle bus and filter those messages relevant to your needs.
- The ability of sending or requesting data to/from the J1939 bus requires that your system (ECU = Electronic Control Unit) owns an 8-bit address. Since addresses in a J1939 vehicle network are dynamic (i.e. they may change after each power-up), your system must follow the J1939 Address Claiming Procedure according to SAE J1939/81.
- The J1939 Transport Protocol (SAE J1939/21) is that particular part of the network management functionality that raises the level of complexity. However, the vast majority of J1939 applications do not require the Transport Protocol (TP). The TP is mostly used for non-critical, data-intensive communication tasks.
The following chapter is about SAE J1939 monitoring and simulation projects, which do not require a J1939 protocol implementation. A later chapter will introduce the ARD1939 protocol stack, allowing full communication with a J1939 vehicle network.
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.