History of J1939 Protocol
The SAE-J1939 protocol is a set of standard protocols defined by the Society of Automotive Engineers (SAE). This protocol is used in Car and Heavy-duty Truck in the USA for the communication and diagnostic purposes in the vehicle components (ECU). But gradually it spreads all over the world due to its features and compatibility. The SAE-J1939 uses CAN (Controller Area Network, ISO-11998) as the physical layer for it. It is the recommended practice that defines which and how the data is communicated between Electronic Control Units (ECU) within a vehicle network. Typical controllers are the Engine, Brake, Transmission, etc.
The SAE-J1939 protocol is a software standard defined by the Society of the Automotive Engineers (SAE). SAE-J1939 Protocol software standard designed to ensure that ECU manufactured by any automotive suppliers is able to communicate within a vehicle network. SAE-J1939 protocol standard is defined for the applications in commercial vehicles for CAN (Controller Area Network) bus.
Features Of SAE-J1939 protocol
- It is an Extended CAN identifier (29 bit).
- It has Bitrate 250 kbit/s.
- It has both Peer-to-peer and broadcast communication.
- It sup[ports the Transport protocols for up to 1785 data bytes.
- It supports Network management.
- It allows a maximum of 30 nodes (ECUs) in a network.
- It allows a maximum of 253 controller applications (CA) where one ECU can manage several CAs.
- Definition of parameter groups for commercial vehicles and others.
- Manufacturer-specific parameter groups are supported.
- It has Diagnostics features.
The SAE-J1939 protocol defines five layers in the seven-layer OSI network model, and this includes the Controller Area Network (CAN) ISO 11898 specification (using only 29-bit extended identifier) for the physical and data-link layers. Under the J1939/11 and J1939/15, the data rate is specified as 250 kbit/s, with J1939/14 specifying 500 kbit/s. The session and presentation layers are not part of this specification. The later use of the CAN FD is currently discussed and this will be the future of Automotive vehicle communication network.
J-1939 Message Frame Format:
All the J1939 data packets, except for the request packet, contain eight bytes of data and a standard header field which contains an index called Parameter Group Number (PGN). This J1939 PGN is embedded in the message’s 29-bit identifier. A PGN used to identify a message’s function and associated data. The SAE-J1939 protocol standard defines the standard PGNs to encompass a wide range of automotive, agricultural, marine, and off-road vehicle purposes. In J1939, a range of PGNs (00FF0016 through 00FFFF16, inclusive) is reserved for proprietary use. The PGNs define the data which is made up of a variable number of Suspect Parameter Number (SPN) elements defined for unique data for a message. For example, there exists a predefined SPN for engine RPM, PTO, etc.
The AUTOSAR J1939 TP Module handles messages with a data length with more than 8 bytes and variable-length messages with a maximum length of more than 8 bytes when the CAN bus is supposed to conform to J1939. The module supports to SAE J1939 transport protocol modes Connection Mode Data Transfer (CMDT, also called RTS/CTS) and Broadcast Announce Message (BAM).
In AUTOSAR 3.0 and 3.1, the COM layer and the RTE do not support the handling of signals and data elements of variable size. To permit the transmission and reception of messages with variable length, which is essential for ECUs that support J1939, the J1939Tp needs a direct interface to the application to transport the length information independently of the message content.
The first three bits of the identifier is used for controlling a message’s priority during the arbitration process. A value of 0 has the highest priority. The higher priority values are typically given to high-speed control messages, for example, the torque control message from the transmission to the engine. Messages containing data that is not time-critical, like to the vehicle road speed, are given lower priority values. The next bit of the identifier is reserved for future use and should be set to 0 for transmitted messages.
The next bit in the identifier is the data page selector in the SAE-J1939 protocol. This bit expands the number of possible Parameter Groups that can be represented by the identifier. The PDU format (PF) determines whether the message can be transmitted with the destination address or if the message is always transmitted as a broadcast message.
The interpretation of the PDU specific (PS) field of SAE-J1939 protocol changes based on the PF value:
- If the PF is between 0 and 239, the message is addressable (PDU1) and the PS field contains the destination address.
- If the PF is between 240 and 255, the message can only be broadcast (PDU2) and the PS field contains a Group Extension. The Group extension expands the number of possible broadcast Parameter Groups that can be represented by the identifier. The term Parameter Group Number (PGN) is used to refer to the value of the Reserve bit, DP, PF, and PS fields combined into the single 18-bit value.
Ex: The ID 0xCF004EE can be divided into the following fields as:
a way to uniquely access a given device on the network. For a given network, every address must be unique (254 available). This means that two different devices (ECUs) Table 2. PGN example.
PGN = the R, DP, PF, and PS fields – in this case, 0x0F004.
PF = 0xF0 = 240, i.e. this is a PDU2 (broadcast) message
PS = 0x04, i.e. the Group Extension = 4
The last 8 bits of the identifier contains the address of the device transmitting the message. The address is the label or “handle” which is assigned to provide cannot use the same address.