Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
SAE J2740 is an information report that defines the General Motors UART serial data communications protocol used in automotive networks. It outlines the system elements, communication timing, message formats, and error handling to ensure robust interoperability among electronic control units (ECUs). This article provides a practical overview of the standard for engineers working with GM diagnostic buses or implementing UART-based communication nodes.
The protocol relies on a master-slave architecture. A single Master ECU initiates all communication by polling slave ECUs. The Slave ECUs respond only when addressed. Additionally, a Tester (e.g., a scan tool) can connect via the Data Link Connector (DLC) for diagnostics. Each system element has defined operating modes (powered-up, normal, sleep) that must be properly managed to ensure correct bus operation.
🔍 In a typical vehicle, the Master ECU polls worst-case slave ECU groups to meet diagnostic requirements. Understanding the hierarchy and timing is essential for designing compliant nodes.
Messages follow a structured format. The table below summarizes the fields of a standard message frame.
| Field | Size | Description |
|---|---|---|
| Message Identification Byte (MIB) | 1 byte | Identifies the target function, node, or test address |
| Message Length Byte | 1 byte | Number of data bytes to follow (0 to 255) |
| Data Bytes | 0–255 bytes | Payload information |
| Checksum Byte | 1 byte | Two’s complement modulo-256 sum over all preceding bytes |
Timing is critical. Bit timing uses standard 10-bit UART frames (start, 8 data, stop). Byte-to-byte gaps and message turnaround times are strictly defined. The master must maintain a poll cycle within specified limits, and slaves must respond within a tight window. The protocol also defines detection of errors such as checksum mismatches, framing errors, overrun errors, and noise flags.
The standard defines two main operating modes. Normal mode covers routine vehicle communication using a fixed set of MIBs and timing parameters. ALDL (Assembly Line Diagnostic Link) mode provides an enhanced diagnostic channel that allows a tester to perform function-based operations like reading diagnostic trouble codes, streaming data, or running actuator tests. ALDL mode uses a specific subset of MIB codes (e.g., 0xF0 to 0xF4) and modifies the polling/response structure to accommodate tester requests. The standard details exact message sequences for various ALDL functions, ensuring uniform behavior across implementations.
For engineers, designing a robust UART node requires attention to electrical parameters such as line noise rejection, short-circuit protection, and bus pull-up resistors. The single-wire bus architecture simplifies wiring but demands careful transceiver design.
When implementing a slave ECU, ensure that the maximum response time after a master poll does not exceed the specified limit (e.g., 5 ms for general slaves). Use UART hardware with buffering and interrupt-driven reception to avoid overrun errors. For testers, always validate the checksum and MIB before acting on received data. The protocol’s deterministic nature makes it well-suited for real-time diagnostic applications, but timing violations can lead to bus instability.
SAE J2740 is specific to General Motors and uses a master-slave polling mechanism with a defined message format and timing. It is not a generic UART but an application-layer standard designed for diagnostic and control functions in GM vehicles.
The transmitter calculates the checksum as the two’s complement of the sum of the MIB, length byte, and all data bytes, modulo 256. The receiver sums all bytes including the checksum; if the result is 0x00, the message is considered valid.
If a slave detects a checksum error, framing error, or invalid length, it must discard the message and not respond. It may log the error for diagnostic purposes.
The standard supports a single tester at a time in ALDL mode. The master ECU remains the bus arbiter in normal operation, and testers should follow the defined arbitration rules to avoid contention.