Aller au contenu
[Architecture · 07]

SAE J1939: the CAN language of trucks, buses and machinery

Passenger cars speak manufacturer-specific CAN. Heavy vehicles speak a shared language. SAE J1939 lets an engine from one supplier, a transmission from another and a braking system from a third work together on one network, and it has spread from highway trucks to buses, tractors, construction machines, gensets and boats.

Reading time
14 min
Updated
7 octobre 2026
Diagrams
02
Sections
09

This article is not yet available in your language and is shown in English.

One protocol for an entire industry

A heavy truck is assembled from major components made by different suppliers, often chosen by the fleet customer: engine, transmission, retarder, axle, brakes, body equipment. That only works if every ECU interprets the network the same way. SAE J1939 provides exactly that: a complete, openly documented stack on top of CAN 2.0B extended frames, from wiring rules to the meaning and scaling of individual parameters. It is not a single document but a family, each part numbered after the slash.

Table 01The SAE J1939 document family (selection)
DocumentScope
J1939Top-level recommended practice and overview
J1939-11Physical layer, 250 kbit/s, shielded twisted pair
J1939-13Off-board diagnostic connector (9-pin)
J1939-14Physical layer, 500 kbit/s
J1939-15Physical layer, 250 kbit/s, unshielded twisted pair
J1939-17CAN FD physical layer, 500 kbit/s arbitration and 2 Mbit/s data phase
J1939-21Data link layer for classic CAN, including the transport protocol
J1939-22Data link layer for CAN FD
J1939-31Network layer: bridges, routers and gateways
J1939-71Vehicle application layer, now maintained in the J1939 Digital Annex
J1939-73Application layer for diagnostics (DM messages)
J1939-81Network management and address claiming
J1939-DADigital Annex: the master definition of parameter groups and parameters

Anatomy of the 29-bit identifier

Classic CAN treats the identifier as one number that sets priority in arbitration. J1939 gives the 29 bits of the extended identifier internal structure, so that one field tells every receiver what the message contains and another tells it who sent it.

Fig. 01Interactive
Example
Priority
3
EDP
0
DP
0
PDU format
0xF0
PDU specific · Group extension
0x04
Source address
0x00
PGN
61 444 0x0F004

PDU2 (PF 240 or above): PS extends the parameter group.

Fig. 01The 29-bit J1939 identifier: 3 priority bits, extended data page, data page, PDU format, PDU specific and the 8-bit source address.
Table 02J1939 identifier fields
BitsFieldWidthMeaning
28–26Priority30 is highest, 7 is lowest; used only in arbitration
25Extended data page (EDP)10 for J1939 messages
24Data page (DP)1Selects one of two pages of parameter groups
23–16PDU format (PF)8Below 240: PDU1, addressed; 240 and above: PDU2, broadcast
15–8PDU specific (PS)8Destination address in PDU1, group extension in PDU2
7–0Source address (SA)8Address of the transmitting ECU

The parameter group number (PGN) is the 18-bit name of the content: EDP, DP, PF and, for PDU2 messages only, PS. In PDU1 messages the PS field carries a destination address and is not part of the PGN. The priority is deliberately excluded, so the same PGN can be sent at a different priority without changing its meaning. The standard recommends priority 3 for time-critical control messages and 6 for most other traffic.

Formula
PGN = EDP × 2¹⁷ + DP × 2¹⁶ + PF × 2⁸ + (PF ≥ 240 ? PS : 0)
How the parameter group number is assembled from the identifier fields.

Worked example: decoding four identifiers

  1. 01
    0x18EEFF00: Address Claimed

    Priority 6, EDP 0, DP 0, PF 0xEE (238, so PDU1), PS 0xFF as destination (global), SA 0x00. PGN 0xEE00 = 60928: the ECU at address 0, by convention engine #1, is announcing its address to every node.

  2. 02
    0x18EA00F9: Request

    Priority 6, PF 0xEA (234, PDU1), destination 0x00, SA 0xF9. PGN 0xEA00 = 59904: an off-board diagnostic tool at its preferred address 249 asks engine #1 to transmit a specific parameter group.

  3. 03
    0x18FECA00: DM1

    Priority 6, PF 0xFE (254, PDU2), group extension 0xCA, SA 0x00. PGN 0xFECA = 65226: the active diagnostic trouble codes of engine #1, broadcast to the whole network.

  4. 04
    0x1CECFF00: Transport protocol

    Priority 7, PF 0xEC (236, PDU1), destination 0xFF, SA 0x00. PGN 0xEC00 = 60416, TP.CM: engine #1 announcing a multi-packet broadcast (BAM).

Source addresses and address claiming

The 8-bit source address gives 254 usable addresses (0 to 253); 254 is the null address used by a node that could not claim one, and 255 is the global destination. J1939 assigns preferred addresses to common functions: 0 for engine #1, 3 for transmission #1, 11 for the brake system controller, 23 for instrument cluster #1, 249 and 250 for off-board diagnostic tools. Fixed addresses keep simple vehicles simple, but a body builder adding a crane controller or a refrigeration unit needs a way to avoid conflicts.

J1939-81 solves this with address claiming. At power-up every node sends an Address Claimed message (PGN 60928) containing its 64-bit NAME. If two nodes claim the same address, the one with the numerically lower NAME keeps it. The other either claims a different address, if it is arbitrary-address capable, or announces that it cannot claim one by sending from the null address 254.

Table 03The 64-bit J1939 NAME, from most to least significant field
FieldBitsPurpose
Arbitrary address capable1Node may move to another address after losing a claim
Industry group30 global, 1 on-highway, 2 agriculture and forestry, 3 construction, 4 marine, 5 industrial and stationary
Vehicle system instance4Distinguishes identical vehicle systems, for example two trailers
Vehicle system7System the ECU belongs to, within the industry group
Reserved1Reserved
Function8Standardised function, such as engine or transmission
Function instance5Distinguishes identical functions, for example engine #1 and engine #2
ECU instance3Distinguishes several ECUs that implement one function
Manufacturer code11Code assigned to the ECU manufacturer
Identity number21Unique number set by the manufacturer, often a serial number

Physical layers: 250 kbit/s, 500 kbit/s and CAN FD

For two decades, 250 kbit/s was synonymous with J1939. Growing traffic from emissions aftertreatment, driver assistance and telematics pushed the industry to 500 kbit/s with J1939-14, and SAE has since published CAN FD variants. All variants are high-speed CAN per ISO 11898-2 with a linear backbone, short stubs and a 120 Ω terminator at each end of the backbone. J1939 practice places these terminators at the backbone ends in the harness rather than inside ECUs, so that removing an ECU never removes termination.

Table 04J1939 physical layer variants
SpecificationBitrateMediumKey topology rules
J1939-11250 kbit/sShielded twisted pairBackbone up to 40 m, up to 30 ECUs, stubs up to 1 m
J1939-15250 kbit/sUnshielded twisted pairReduced physical layer, backbone up to 40 m, up to 10 ECUs
J1939-14500 kbit/sTwisted pairUp to 30 ECUs, stricter stub and topology rules than at 250 kbit/s
J1939-17500 kbit/s / 2 Mbit/sTwisted pairCAN FD physical layer, used with the J1939-22 data link layer
Fig. 02Interactive
120 Ω120 ΩECU 1ECU 3ECU 5ECU 2OBDECU 6Stub← Trunk →

One trunk, a terminator at each physical end and short stubs to every control unit.

Fig. 02A J1939 backbone: one linear twisted pair with a 120 Ω terminator at each end and short stubs to each ECU; star wiring and long stubs are not permitted.

Every node on a segment must run the same bitrate. A 250 kbit/s ECU on a 500 kbit/s backbone does not just fail to communicate; it produces error frames that disturb everyone else. Mixed fleets and retrofits therefore rely on gateways between segments of different speeds, as described in Bitrates and bus types.

The 9-pin diagnostic connector

J1939-13 defines the off-board diagnostic connector, a 9-pin Deutsch-style receptacle: A ground, B battery positive, C CAN-H, D CAN-L, E CAN shield, F and G the legacy J1708 pair, H and J manufacturer-specific, often a second CAN. The original black Type I connector belongs to 250 kbit/s networks. The green Type II connector, seen on North American trucks from around model year 2016, marks vehicles whose diagnostic network may run at 500 kbit/s. Its centre pin is thinner, so a green tool cable fits both green and black receptacles, while an older black cable cannot be plugged into a green receptacle. A 250 kbit/s-only tool is mechanically kept off a 500 kbit/s network.

Parameter groups, SPNs and data representation

A parameter group bundles related parameters that are transmitted together at a defined repetition rate. Each parameter is identified by a suspect parameter number (SPN), with a defined length, resolution, offset, data range and position in the group. Multi-byte values are little-endian. A powerful convention runs through the whole standard: the top of every value range is reserved for status, so a receiver can always tell a real measurement from an error or from a parameter the sender does not support.

Table 05Reserved ranges in J1939 parameters
SizeValid dataReserved and indicatorsError indicatorNot available
1 byte0x00–0xFA (0–250)0xFB–0xFD0xFE0xFF
2 bytes0x0000–0xFAFF (0–64,255)0xFB00–0xFDFF0xFE00–0xFEFF0xFF00–0xFFFF
2-bit status00 off, 01 onNone1011
Formula
physical value = raw × resolution + offset → 125 × 1 °C − 40 °C = 85 °C
A temperature parameter defined with 1 °C per bit and a −40 °C offset: raw value 0x7D (125) means 85 °C.

The same rule protects against a classic integration error. With that definition, a raw 0xFE does not mean 214 °C, it means the sensor or its ECU reports an error; a raw 0xFF means the parameter is not available from this sender. A receiver that converts every byte into engineering units without checking the reserved ranges will display impossible values the moment a sensor fails.

Transport protocol: messages longer than eight bytes

Fault code lists, vehicle identification and configuration data do not fit into eight bytes. J1939-21 defines a transport protocol that segments such messages into packets of seven data bytes plus a sequence number. Connection management uses TP.CM (PGN 60416, 0xEC00) and the data travel in TP.DT packets (PGN 60160, 0xEB00). With at most 255 packets, the limit is 255 × 7 = 1,785 bytes.

Table 06J1939 multi-packet mechanisms
MechanismAddressingFlow controlMaximum size
BAM (Broadcast Announce Message)Global, to all nodesNone: the sender paces packets itself, classically 50 to 200 ms apart1,785 bytes
RTS/CTSOne destinationThe receiver grants packets with Clear To Send and confirms with End of Message Acknowledge1,785 bytes
Extended transport protocol (ETP)One destinationLike RTS/CTS, with a data packet offset117,440,505 bytes
  1. 01
    Size the message

    A DM1 message with lamp status (2 bytes) and five active fault codes (4 bytes each) carries 22 bytes, so it needs ⌈22 ÷ 7⌉ = 4 TP.DT packets.

  2. 02
    Add the pacing

    Broadcast with BAM at the classic minimum spacing of 50 ms, the four packets take at least 200 ms after the announcement, compared with a single frame for a message of eight bytes or less.

  3. 03
    Scale it up

    A maximum-size BAM of 1,785 bytes needs 255 packets: at 50 ms spacing that is about 12.8 s; at 200 ms it is 51 s.

  4. 04
    Draw the conclusion

    Transport protocol is designed for occasional larger messages such as fault lists and identification. Fast control data always fits into single frames.

CAN FD removes much of this overhead. J1939-22 packs several parameter groups into one CAN FD frame of up to 64 bytes and defines its own transport mechanism for larger messages. The Classic CAN vs CAN FD article explains the frame format behind it.

Bus load at 250 and 500 kbit/s

Formula
Extended frame, 8 data bytes: 131 bits without stuffing … 160 bits with worst-case stuffing (including the 3-bit interframe space)
At 250 kbit/s one bit lasts 4 µs, so one frame occupies 524 to 640 µs.

Take a powertrain segment carrying 600 frames per second. At 250 kbit/s that is 600 × 131 = 78,600 bit/s, or 31.4 % load, rising to 600 × 160 = 96,000 bit/s, or 38.4 %, with worst-case bit stuffing. The same traffic at 500 kbit/s occupies 15.7 to 19.2 %. Each new function, from advanced emergency braking to aftertreatment diagnostics, adds messages, and the transport protocol adds bursts on top. That arithmetic is why new heavy-duty platforms move to 500 kbit/s and CAN FD.

Beyond the truck: ISOBUS, trailers, buses and boats

ISOBUS (ISO 11783)

Agricultural tractors and implements from different manufacturers connect through ISOBUS, standardised as ISO 11783 and built on J1939 principles at 250 kbit/s. Its physical layer (ISO 11783-2) uses four unshielded twisted wires: CAN-H and CAN-L plus TBC_PWR and TBC_RTN, which feed active terminating bias circuits at each end of a segment. Because termination is powered independently of the ECUs, the network stays correctly terminated when an implement is coupled or uncoupled in the field. Higher layers define the virtual terminal (ISO 11783-6) and the task controller (ISO 11783-10), and newer functions such as tractor implement management build on them. The Agricultural Industry Electronics Foundation (AEF) runs conformance testing between manufacturers.

Truck and trailer: ISO 11992

The link between a towing vehicle and its trailer uses ISO 11992, not the J1939 backbone. It is a point-to-point CAN connection at 125 kbit/s with a physical layer (ISO 11992-1) designed for the electrical environment of the coupling. ISO 11992-2 carries brake and running-gear messages over pins 6 and 7 of the ISO 7638 ABS/EBS connector; ISO 11992-3 covers other equipment such as lighting and body functions. The towing vehicle's gateway translates between this link and the internal J1939 network.

Buses, marine and stationary engines

City buses and coaches use J1939 in the powertrain just like trucks, often with a dedicated gateway that publishes a defined, read-only subset of vehicle data for fleet systems, the approach formalised in the FMS-Standard. Marine electronics use NMEA 2000 (IEC 61162-3), which builds on the J1939 data link layer and address claiming. Generator sets, compressors and construction machines with industrial diesel engines expose their engine controllers through J1939 as well. Wherever a heavy-duty engine goes, J1939 usually goes with it. Commercial vehicles also host the tachograph, covered in Tachographs and the 2026 rules for light commercial vehicles.

Diagnostics: the DM messages

J1939-73 defines diagnostic messages, abbreviated DM. The most important is DM1, broadcast once per second by every ECU that supports it, which lists active trouble codes together with the status of four lamps: malfunction indicator, red stop, amber warning and protect. Each diagnostic trouble code (DTC) is four bytes: a 19-bit SPN that names the affected parameter, a 5-bit failure mode identifier (FMI), a 7-bit occurrence count and a conversion method bit.

Table 07Frequently used diagnostic messages
MessagePGNContent
DM165226 (0xFECA)Active DTCs and lamp status, broadcast every second
DM265227 (0xFECB)Previously active DTCs, on request
DM365228 (0xFECC)Clear previously active DTCs
DM1165235 (0xFED3)Clear active DTCs
Table 08Selected failure mode identifiers (FMI)
FMIMeaningWhere to look first
2Data erratic, intermittent or incorrectSensor plausibility, connectors
3Voltage above normal or shorted to high sourceWiring short to supply
4Voltage below normal or shorted to low sourceWiring short to ground
5Current below normal or open circuitBroken wire, corroded pin
9Abnormal update rateNetwork problems: termination, load, missing node
19Received network data in errorThe sending ECU or the network between them
Is J1939 just CAN with 29-bit identifiers?

No. CAN defines how frames are transmitted. J1939 adds wiring rules, a structured identifier, addressing and address claiming, a transport protocol, diagnostics and a dictionary of standard parameters, so that ECUs from different suppliers interoperate.

Can a 500 kbit/s J1939 network include older 250 kbit/s ECUs?

Not on the same segment. Every node on a segment must use the same bitrate. Mixed installations use a gateway between a 250 kbit/s and a 500 kbit/s segment.

Is ISOBUS the same as J1939?

ISOBUS (ISO 11783) is based on J1939 and shares its identifier structure, addressing and transport principles, but it adds its own physical layer with powered termination and application layers for implements, such as the virtual terminal and task controller.

Does J1939 use CAN FD?

Yes. SAE published the J1939-17 CAN FD physical layer at the end of 2020 and the J1939-22 data link layer in 2021. Adoption in new heavy-duty platforms is gradual, and classic J1939 will remain in service for many years.

What does the green 9-pin diagnostic connector mean?

It is the J1939-13 Type II connector. It marks vehicles whose diagnostic network may run at 500 kbit/s and is keyed so that older 250 kbit/s-only tool cables cannot be plugged in.

End of articleUpdated 7 octobre 2026
[Santim SC-1]

Every CAN vehicle. Ready from day one.

Santim SC-1 supports every classic CAN and CAN FD vehicle on the market. When a new vehicle launches, it is compatible instantly. No waiting, no requests. A next-generation CAN device.

The Santim SC-1 CAN device