Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
The SAE J2534-2/18_0500 Recommended Practice extends the J2534-1 API (version 05.00) to add TCP client functionality for diagnostics over IP (DoIP) conforming to ISO 13400. This standard is essential for engineers implementing pass-thru interfaces that communicate over Ethernet and TCP/IP stacks. It defines protocol requirements, API changes, error handling, and discovery mechanisms to ensure reliable DoIP communication.
For a pass-thru device to act as a TCP client over DoIP, the API must support logical connections via PassThruLogicalConnect, message queuing with PassThruQueueMsgs, and non-blocking reads using PassThruReadMsgs. The Ethernet physical channel is used exclusively, and the API must comply with version 05.00.
| Parameter | Minimum Value | Description |
|---|---|---|
| Receive Buffer | 1024 bytes | Minimum size for each receive message buffer |
| Transmit Buffer | 1024 bytes | Minimum size for each transmit message buffer |
Engineers must correctly configure the protocol and physical layer parameters in PassThruLogicalConnect to avoid misconfiguration. The RxStatus bit definitions provide status flags for each received message, such as start-of-message and end-of-message indicators, which are critical for message framing.
Robust error handling prevents data loss and connection drops. The standard specifies return codes for device-not-connected, receive buffer overflow, and network errors like timeouts or resets.
⚠️ Socket State Check Required
Always verify the socket state using the GET_SOCKET_STATE IOCTL before performing read or write operations. This prevents attempting communication on an invalid or closed socket.
Table 4 of the standard lists network errors that must be handled, including transmission timeouts and connection resets. Use the CLEAR_RX_QUEUE IOCTL after processing messages to avoid queue overflow and maintain deterministic behavior.
🛠️ API Version Compatibility
Ensure your implementation targets API version 05.00 as defined in J2534-1_0500. Older versions lack the extended features for TCP client and DoIP support.
The standard includes GET_PROTOCOL_INFO and GET_RESOURCE_INFO functions that allow a client to query the pass-thru device for supported protocols and resources. This enables dynamic configuration and ensures interoperability. The Ethernet stack construction follows a layered model (TCP/IP, UDP, DoIP) that aligns with ISO 13400, providing a clear separation of concerns for developers.
Both receive and transmit buffers require a minimum of 1024 bytes each. Using smaller buffers may cause data truncation or API errors.
It establishes a logical TCP connection by specifying the protocol (e.g., IPv4 or IPv6 logical channel), physical layer (Ethernet), and connection parameters. The function returns a handle used for subsequent communication.
Key IOCTLs include GET_SOCKET_STATE to query socket status, GET_CONFIG to retrieve current configuration, and CLEAR_RX_QUEUE to flush received messages.
Non-blocking reads are supported via the PassThruReadMsgs function with timing parameters to avoid indefinite waits. The API returns immediately with data if available or a timeout indication.
Adhering to the SAE J2534-2/18_0500 standard ensures that pass-thru devices can reliably communicate DoIP messages over TCP/IP, enabling advanced vehicle diagnostics in modern Ethernet‑based architectures.