In-Depth Analysis of the SAE J1939 Breaking Down the PNG and SPN
- Introduction
In 1986, Bosch officially presented the CAN protocol at the Society of Automotive Engineers (SAE). However, unlike passenger cars, heavy-duty trucks, buses, and agricultural machines involved multiple manufacturers, a common higher-layer protocol was needed so that ECUs from different vendors could interoperate on the same CAN bus.
About 1994-1998, SAE (Society of Automotive Engineers) developed J1939 as a higher-layer protocol on CAN, defines higher-layer communication rules such as message format, addressing, and data encoding. for communication and diagnostics among ECUs in heavy-duty vehicles, agricultural machinery, marine vessels, and industrial equipment. This article will provide a more in-depth analysis of the J1939 message format.
CAN/J1939 7 layer OSI:
- PGN – Parameter Group Number
- The structure of the J1939 CAN ID field is as follows:
29bits CAN-ID | ||
Bit positions with the CAN-ID | ||
28...26 | 25…8 | 7…0 |
Priority | PGN | SA(Source Address) |
- PGN Format
PGN | |||
25 | 24 | 23…16 | 15…8 |
EDP(Ext. Data Page) | DP(Data Page) | PF(PDU Format) | PS(PDU Specific) |
1 bit | 1 bit | 8 bits | 8 bits |
PDU Format and PDU Specific are collectively referred to as the PDU (Protocol Data Unit).
According to J1939-21, PDU are divided into two types: PDU1 and PDU2.
If PF < 240, that is, in the range 0x00~0xEF, PS is used as the DA (Destination Address), if DA is 0xFF, it is called the Global Destination Address, all nodes on the network must receive this message and respond.
If PF ≥ 240, that is, in the range 0xF0~0xFF, PS is defined as the GE (Group Extension).
The total number of PGNs:
- PDU1
PDU1 Format | |
PF(PDU Format) | PS(PDU Specific) |
0x00~0xEF | DA(Destination Address) |
8bits | 8 bits |
- PDU2
PDU2 Format | |
PF(PDU Format) | PS(PDU Specific) |
0x00~0xEF | GE(Group Extension) |
8bits | 8bits |
- SPN – Suspect Parameter Number
The PGN 61444 and SPN 190 shown in the diagram below are taken from SAE J1939-71
![]() |
According to SAE J1939-71, SPN defines several important parameters: Data Length, Resolution, Data Range, and Type. Based on these definitions, engineers can convert the acquired raw data into actual values understandable to users, such as the engine speed shown on a vehicle’s dashboard.
In-Depth Analysis of the SAE J1939 Breaking Down the PNG and SPN
- Introduction
In 1986, Bosch officially presented the CAN protocol at the Society of Automotive Engineers (SAE). However, unlike passenger cars, heavy-duty trucks, buses, and agricultural machines involved multiple manufacturers, a common higher-layer protocol was needed so that ECUs from different vendors could interoperate on the same CAN bus.
About 1994-1998, SAE (Society of Automotive Engineers) developed J1939 as a higher-layer protocol on CAN, defines higher-layer communication rules such as message format, addressing, and data encoding. for communication and diagnostics among ECUs in heavy-duty vehicles, agricultural machinery, marine vessels, and industrial equipment. This article will provide a more in-depth analysis of the J1939 message format.
CAN/J1939 7 layer OSI:
- PGN – Parameter Group Number
- The structure of the J1939 CAN ID field is as follows:
29bits CAN-ID | ||
Bit positions with the CAN-ID | ||
28...26 | 25…8 | 7…0 |
Priority | PGN | SA(Source Address) |
- PGN Format
PGN | |||
25 | 24 | 23…16 | 15…8 |
EDP(Ext. Data Page) | DP(Data Page) | PF(PDU Format) | PS(PDU Specific) |
1 bit | 1 bit | 8 bits | 8 bits |
PDU Format and PDU Specific are collectively referred to as the PDU (Protocol Data Unit).
According to J1939-21, PDU are divided into two types: PDU1 and PDU2.
If PF < 240, that is, in the range 0x00~0xEF, PS is used as the DA (Destination Address), if DA is 0xFF, it is called the Global Destination Address, all nodes on the network must receive this message and respond.
If PF ≥ 240, that is, in the range 0xF0~0xFF, PS is defined as the GE (Group Extension).
The total number of PGNs:
- PDU1
PDU1 Format | |
PF(PDU Format) | PS(PDU Specific) |
0x00~0xEF | DA(Destination Address) |
8bits | 8 bits |
- PDU2
PDU2 Format | |
PF(PDU Format) | PS(PDU Specific) |
0x00~0xEF | GE(Group Extension) |
8bits | 8bits |
- SPN – Suspect Parameter Number
The PGN 61444 and SPN 190 shown in the diagram below are taken from SAE J1939-71
![]() |
According to SAE J1939-71, SPN defines several important parameters: Data Length, Resolution, Data Range, and Type. Based on these definitions, engineers can convert the acquired raw data into actual values understandable to users, such as the engine speed shown on a vehicle’s dashboard.
In-Depth Analysis of the SAE J1939 Breaking Down the PNG and SPN
- Introduction
In 1986, Bosch officially presented the CAN protocol at the Society of Automotive Engineers (SAE). However, unlike passenger cars, heavy-duty trucks, buses, and agricultural machines involved multiple manufacturers, a common higher-layer protocol was needed so that ECUs from different vendors could interoperate on the same CAN bus.
About 1994-1998, SAE (Society of Automotive Engineers) developed J1939 as a higher-layer protocol on CAN, defines higher-layer communication rules such as message format, addressing, and data encoding. for communication and diagnostics among ECUs in heavy-duty vehicles, agricultural machinery, marine vessels, and industrial equipment. This article will provide a more in-depth analysis of the J1939 message format.
CAN/J1939 7 layer OSI:
- PGN – Parameter Group Number
- The structure of the J1939 CAN ID field is as follows:
29bits CAN-ID | ||
Bit positions with the CAN-ID | ||
28...26 | 25…8 | 7…0 |
Priority | PGN | SA(Source Address) |
- PGN Format
PGN | |||
25 | 24 | 23…16 | 15…8 |
EDP(Ext. Data Page) | DP(Data Page) | PF(PDU Format) | PS(PDU Specific) |
1 bit | 1 bit | 8 bits | 8 bits |
PDU Format and PDU Specific are collectively referred to as the PDU (Protocol Data Unit).
According to J1939-21, PDU are divided into two types: PDU1 and PDU2.
If PF < 240, that is, in the range 0x00~0xEF, PS is used as the DA (Destination Address), if DA is 0xFF, it is called the Global Destination Address, all nodes on the network must receive this message and respond.
If PF ≥ 240, that is, in the range 0xF0~0xFF, PS is defined as the GE (Group Extension).
The total number of PGNs:
- PDU1
PDU1 Format | |
PF(PDU Format) | PS(PDU Specific) |
0x00~0xEF | DA(Destination Address) |
8bits | 8 bits |
- PDU2
PDU2 Format | |
PF(PDU Format) | PS(PDU Specific) |
0x00~0xEF | GE(Group Extension) |
8bits | 8bits |
- SPN – Suspect Parameter Number
The PGN 61444 and SPN 190 shown in the diagram below are taken from SAE J1939-71
![]() |
According to SAE J1939-71, SPN defines several important parameters: Data Length, Resolution, Data Range, and Type. Based on these definitions, engineers can convert the acquired raw data into actual values understandable to users, such as the engine speed shown on a vehicle’s dashboard.
In-Depth Analysis of the SAE J1939 Breaking Down the PNG and SPN
- Introduction
In 1986, Bosch officially presented the CAN protocol at the Society of Automotive Engineers (SAE). However, unlike passenger cars, heavy-duty trucks, buses, and agricultural machines involved multiple manufacturers, a common higher-layer protocol was needed so that ECUs from different vendors could interoperate on the same CAN bus.
About 1994-1998, SAE (Society of Automotive Engineers) developed J1939 as a higher-layer protocol on CAN, defines higher-layer communication rules such as message format, addressing, and data encoding. for communication and diagnostics among ECUs in heavy-duty vehicles, agricultural machinery, marine vessels, and industrial equipment. This article will provide a more in-depth analysis of the J1939 message format.
CAN/J1939 7 layer OSI:
- PGN – Parameter Group Number
- The structure of the J1939 CAN ID field is as follows:
29bits CAN-ID | ||
Bit positions with the CAN-ID | ||
28...26 | 25…8 | 7…0 |
Priority | PGN | SA(Source Address) |
- PGN Format
PGN | |||
25 | 24 | 23…16 | 15…8 |
EDP(Ext. Data Page) | DP(Data Page) | PF(PDU Format) | PS(PDU Specific) |
1 bit | 1 bit | 8 bits | 8 bits |
PDU Format and PDU Specific are collectively referred to as the PDU (Protocol Data Unit).
According to J1939-21, PDU are divided into two types: PDU1 and PDU2.
If PF < 240, that is, in the range 0x00~0xEF, PS is used as the DA (Destination Address), if DA is 0xFF, it is called the Global Destination Address, all nodes on the network must receive this message and respond.
If PF ≥ 240, that is, in the range 0xF0~0xFF, PS is defined as the GE (Group Extension).
The total number of PGNs:
- PDU1
PDU1 Format | |
PF(PDU Format) | PS(PDU Specific) |
0x00~0xEF | DA(Destination Address) |
8bits | 8 bits |
- PDU2
PDU2 Format | |
PF(PDU Format) | PS(PDU Specific) |
0x00~0xEF | GE(Group Extension) |
8bits | 8bits |
- SPN – Suspect Parameter Number
The PGN 61444 and SPN 190 shown in the diagram below are taken from SAE J1939-71
![]() |
According to SAE J1939-71, SPN defines several important parameters: Data Length, Resolution, Data Range, and Type. Based on these definitions, engineers can convert the acquired raw data into actual values understandable to users, such as the engine speed shown on a vehicle’s dashboard.