Site Information

 Loading... Please wait...

SAE J1939 Programming with Arduino - Parameter Group Numbers (PGN)

Posted by Wilfried Voss on

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino.

SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino

SAE J1939 is a very ingeniously designed protocol that takes a resourceful advantage of the CAN Bus 29-Bit message identifier. Rather than relying on a myriad of protocol functions, SAE J1939 uses predefined parameter tables, which keeps the actual protocol on a comprehensible level.

Parameters groups are, for instance, engine temperature, which includes coolant temperature, fuel temperature, oil temperature, etc. 

Parameter Groups and their numbers (PGN) are listed in SAE J1939 (roughly 300 pages) and defined in SAE J1939/71, a document containing roughly 800 pages filled with parameter group definitions plus suspect parameter numbers (SPN). In addition, it is possible to use manufacturer-specific parameter groups.

From a programming aspect, it is important to know that the combination of PGN, message priority, and the application’s node (source) address represents the 29-Bit message identifier of the CAN Bus message as demonstrated in the following image.

Note: For more detailed information on the J1939 message format, please refer to the official SAE documentation or my book A Comprehensible Guide to J1939. However, the definition of, for instance, “PDU Format” and “PDU Specific,” come with a great potential of confusing the J1939 novice, i.e. the educational value is questionable.

A Comprehensible Guide to J1939

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.