SAE J1939 Programming with Arduino - Parameter Groups
This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino.
Parameter Groups contain information on parameter assignments within the 8-byte CAN Bus data field of each message as well as repetition rate and priority.
The following is an example of a parameter group definition as listed in SAE J1939/71:
- PGN 65262 - Engine Temperature
- Transmission Rate: 1 sec
- Data Length: 8 bytes
- Default Priority: 6
- PG Number: 65262 (FEEEhex)
- Description of Data
- Byte 1: Engine Coolant Temperature – SPN 110
- Byte 2: Fuel Temperature – SPN 174
- Byte 3, 4: Engine Oil Temperature – SPN 175
- Byte 5, 6: Turbocharger Oil Temperature- SPN 176
- Byte 7: Engine Intercooler Temperature - SPN 52
- Byte 8: Engine Intercooler Thermostat Opening - SPN 1134
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.