SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino - Introduction
This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino.
Any embedded computing project is as much about the hardware as it is about the software. In this particular project, the ultimate goal is to run an SAE J1939 protocol stack (the software) on the Arduino (the hardware).
Only a few years ago, such a project required some major investments in embedded hardware combined with a steep learning curve, but, like in many other areas of embedded programming, the Arduino family of microcontrollers made it tremendously easier to build even complex embedded solutions. Moreover, the availability of various extension boards (Shields), such as a CAN Bus shield, opened the door to endless possibilities.
In the same sense, the use of an SAE J1939 protocol stack was out of financial reach for many engineers. The software (source code) is either grossly overpriced or comes with royalties (object code, libraries), meaning you have to pay for each copy. At least in the case of the Arduino hardware, this is going to change. The ARD1939 protocol stack library is available as a free download.
However, before we dive into the programming of an SAE J1939 protocol stack, we need to cover some basics such as the Arduino hardware, some special programming topics, the CAN (Controller Area Network) protocol, and, naturally, the SAE J1939 standard.
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 Bus). 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.