Protocol J 1939 for Dummies

Protocol J 1939 for Dummies

Modern electronically governed diesel engines are the upcoming technology with Stage V EU exhaust regulation starting in 2019. These can be controlled by digital commands. They also send information about their current status. Commands and status information are available via a digital bus. The defacto standard is a CAN bus with SAE J1993 protocol.

It consists of three different layers. The physical layer (J1939/11) describes the electrical bus interface. The data link layer (J1939/21) defines the structure of messages, bus access and how transmission errors are detected. The application layer (J1939/71, J1939/73) defines a set of messages and the data that is transmitted with each message.

At maximum 254 nodes can be connected to a CAN bus. These are either master or slave and generally have a pre-defined, fix and unique address. They communicate at a fix global bus speed of 125 kb/s, 250 kb/s or 500 kb/s.

CAN messages have a 29 bit identifier and a 8 byte data frame.

29 bit Identifier

8 byte Data Frame

The Identifier has a 3 bit priority field, a 18 bit so called PGN (Parameter Group Number) and a 8 bit source address.

3 bit priority

18 bit PGN

8 bit source address

The priority can be 0 to 7 where 0 is the highest priority. If a node tries to send a message and reads a message from a different node with higher priority it stops its own transmission. That means that in theory nodes with high priority can block the bus communication if they send lots of messages.

PGNs are furthermore broken into four fields. 1 bit is reserved, the data page has also 1 bit, 8 bit PDU format and also 8 bit PDU specific

CAN message types are are identified by unique so called SPNs (Suspect Parameter Number). These SPNs have a different length depending on the data they contain. Engine speed (SPN 190) e.g. has a length of 2 byte where engine starter mode (SPN 1675) only needs 4 bit. These are not long enough to fill the whole 8 byte data frame. For an efficient bus communication multiple SPNs are thus combined to PGNs. The PGN61444 contains Engine Torque Mode (SPN899), Driver’s Demand Engine % Torque (SPN 512), Actual Engine % Torque (SPN 513), Engine Speed (SPN 190), SA of Controlling Device For Engine Control (SPN 1483), Engine Starter Mode (SPN 1675) and Engine Demand % Torque (2432) in its data frame.

1 bit Reserved

1 bit data page

8 bit PDU Format

8 bit PDU Specific

The majority of J1939 messages are expected to be broadcasted. This means that any device connected to the bus can read this data. An advantage of this technique is that less request messages are needed which saves bandwidth for other data. Nevertheless messages can be send to specific addresses.

CAN messages are usually encoded in HEX format and thus hard to interpret by humans.

ehb electronics gmbh ( offers a controller for engines with CAN bus – the CANarmatur. It allows users to start and stop an engine, displays engine data in a human readable format, allows users to change the engine RPM and can be parametrized by the user. It is prepared for Stage V engines from manufacturers like Yanmar, Kubota, Lombardini and many more.

(Author: Matthias Hanke – ehb electronics gmbh)

To the top of the page Print page