Retiprittp.com

the source of revolution

Shopping Product Reviews

SAE J1939 Introduction and Overview

This article is intended to provide engineers with a brief overview of the SAE J1939 protocol and how J1939 networks work. For additional information, including source code, CPU benchmarks, protocol specifications, and a presentation on J1939, visit our link at the end of this article.

SAE J1939 is the standard communications network for sharing control and diagnostic information between Electronic Control Units (ECUs) residing on heavy duty and commercial vehicles. Examples of these vehicles are school buses, concrete mixers, military vehicles, and semi-trailers. Due to its popularity and success, it has been adopted by the agricultural (ISO 11789) and marine (NMEA2000) industries.

SAE J1939 has been in use for 18 years and is replacing SAE J1587 / J1708 which is the previous standard communication network for heavy duty and commercial vehicles. J1587 / J1708 has been in use for 27 years, and as of 2011, some OEMs still use J1587 / J1708 and J1939 networks.

J1939 Overview:

SAE J1939 is a high-level communications protocol, operating on a Controller Area Network (CAN) bus. J1939 specifies exactly how information (for example, engine RPM) is exchanged between electronic control units in a vehicle.

Defines the priority, size, scale, offset, and transmission speed of the data. For example, J1939 specifies that the wheel speed has a default priority of 2, a size of 16 bits, a resolution of 1/256 km / h, an offset of 0, and a baud rate of 20 ms.

The standard continues to define additional aspects, including how large messages are fragmented and reassembled, message timeouts, network speed, the physical layer, and how applications, not ECUs, acquire source addresses. network.

J1939 Messages:

J1939 messages are defined and identified by their Parameter Group Number (PGN), which is a unique number assigned to each message. The PGN serves to identify the message and its data. Typically, a message will contain a parameter group, which is where the name Parameter Group Number comes from. However, sometimes a message will contain only one parameter. An example of a single parameter is the Vehicle Identification Number, or VIN, which is sent in a single fragmented message over multiple CAN data frames.

The vast majority of messages contain a group of parameters. A good example of this is PGN 65,134, which is the “High resolution wheel speed” message. This message contains 4 parameters: “Front Axle – Left Wheel Speed”, “Front Axle – Right Wheel Speed”, “Rear Axle – Left Wheel Speed” and “Rear Axle – Right Wheel Speed”.

In total, there are a total of 8,672 PGNs in the standard. And because there is still an unused reserved bit, future expansion is still possible.

J1939 parameters:

J1939 parameters are defined and identified by their Suspect Parameter Number (SPN), which is a unique number assigned to each parameter. For example, the previously mentioned parameter “Front Axle – Left Wheel Speed”, has an SPN of 1592. The purpose of the SPN is to identify a certain parameter without having to use its text representation of “Front Axle – Wheel Speed. left”.

One use of the SPN is when a failure occurs and a failure message is transmitted, the data portion of the failure message will contain the SPN of 1592. This method allows the receiving controller application to know exactly what failed, without having to send the rendering of text. It is important to note, and a common misconception, that the SPN is not used under normal operating conditions.

J1939 message sizes:

J1939 has three different allowed message sizes, which are: 3 bytes, 8 bytes, and variable length. The vast majority of J1939 messages are 8 bytes long. The 8-byte length comes from the fact that the largest single CAN data frame contains 8 bytes of data. Full packing of individual CAN data frames increases network bandwidth efficiency by minimizing the number of messages. For a detailed understanding of the associated overhead of CAN data frames, refer to the CAN specification which can be found on our J1939 software page.

Variable-length messages are messages that are 9 to 1785 bytes long. These messages are too large to fit into a single CAN data frame and must be fragmented by the transmitter and reassembled by the receiver. This process of fragmentation and reassembly of messages is known as “Transport Protocol” and is layer four in the OSI seven-layer model. The “Transport Protocol” is defined by document J1939-21.

There is only one message that is three bytes long, and it is PGN 59.904, which is the “Request” message. The “Request” message is used to request PGNs that have a baud rate of ‘on demand’. For example, the vehicle identification number (VIN) has a transmission rate of ‘on demand’. Therefore, the VIN is never present on the J1939 network unless an ECU sends a “Request” message that contains the PGN for the VIN message.

J1939 Physical Layers:

There are two defined physical layers, J1939-11 and J1939-15, with a third physical layer, J1939-14, redacted. These physical layer specifications detail a large amount of information. The most common points of interest for engineers are: maximum backbone length, maximum branch length, maximum number of ECUs, minimum and maximum voltage levels for the network, minimum and maximum bit time, and minimum response speed and maximum for signal transitions.

J1939-11 specifies a shielded twisted pair of cables with a maximum backbone length of 40 meters. It uses a three-pin connector and allows up to 30 nodes. It has a bit time of 4.00 us with a tolerance of 0.05%.

J1939-14 is a new physical layer that is currently in the draft process. The main purpose of this specification is to double the network speed from 250 Kbps to 500 Kbps. Although this specification is still a draft, as of 2010 there were HGV OEMs implementing it in their vehicles.

J1939-15 specifies a reduced physical layer that is a lower cost version of layer -11. It uses a pair of unshielded twisted cables with a maximum backbone length of 40 meters. It uses a two-pin connector, instead of three-pin for -11, and allows up to 10 nodes. It also has a bit time of 4.00 us with a tolerance of 0.05%.

J1939 Specifications:

J1939 Serial Control and Communications Vehicle Network

J1939-01 Control and communications network for road equipment

J1939-02 Control and communication of off-road agricultural and forestry machinery

J1939-03 Onboard Diagnostic Implementation Guide

J1939-05 Onboard Diagnostic Spark Ignition Engine and Marine Inboard Spark Ignition Engine

J1939-11 Physical Layer – 250k bits / s, shielded twisted pair

J1939-13 External Diagnostic Connector

J1939-14 physical layer, 500K bits / s

J1939-15 Reduced Physical Layer, 250K bits / s, Unshielded Twisted Pair (UTP)

J1939-21 data link layer

J1939-31 Network Layer

J1939-71 Vehicle Application Coat

J1939-73 Application Layer – Diagnostics

J1939-74 App – Configurable Messaging

J1939-75 Application Coat – Generating Sets and Industrial

J1939-81 Network Management

J1939-82 Compliance – Truck and Bus

J1939-84 OBD Communications Compliance Testing – Heavy Vehicles

LEAVE A RESPONSE

Your email address will not be published. Required fields are marked *