DoCAN vs. UDS Protocol
Comparing 2 standards across 13 specifications. 13 key differences identified.
Diagnostics on CAN (DoCAN, standardized under ISO 15765-2 and ISO 15765-4) is the network and transport layer protocol that enables diagnostic protocols (such as UDS ISO 14229 and OBD-II ISO 15031) to transmit multi-byte messages (up to 4095 bytes) over 8-byte CAN bus frames. Managing packet segmentation, Flow Control handshakes, and block sizes.
Unified Diagnostic Services (UDS, standardized under ISO 14229) is the international application-layer diagnostic communication protocol used across nearly all modern automotive electronic control units (ECUs). Defining standardized diagnostic request/response service IDs (SIDs) for reading Diagnostic Trouble Codes (DTCs), reading real-time live sensor parameters, running actuator self-tests, and cryptographic ECU security access.
Specification Comparison Table
13 Parameters| Parameter / Spec | ||
|---|---|---|
|
Standardization
|
ISO 15765-2 (ISO-TP Network Layer) / ISO 15765-4 (Emissions CAN) | ISO 14229-1 (UDS Application Layer) / ISO 14229-2 (Session Management) |
|
Maximum Message Length
|
Up to 4,095 bytes (segmented across multiple sequential 8-byte CAN frames) | — |
|
Single Frame (SF–PCI 0x0_)
|
Used when total payload fits in a single frame (up to 7 bytes in Classic CAN; byte 0 indicates data length) | — |
|
First Frame (FF–PCI 0x1_)
|
First frame of a segmented message; bytes 0-1 encode the total 12-bit message length (e.g. 0x10 0x80 = 128 bytes) | — |
|
Flow Control Frame (FC–PCI 0x3_)
|
Receiver sends Flow Status (Clear to Send), Block Size (BS), and Separation Time (STmin) pacing inter-frame delays | — |
|
Consecutive Frame (CF–PCI 0x2_)
|
Transmits remaining data with a 4-bit rolling Sequence Number (0 to 15) to detect dropped packets | — |
|
Emissions OBD Request IDs
|
Standard 11-bit functional broadcast ID: 0x7DF | Standard response IDs: 0x7E8 (Engine ECM), 0x7E9 (TCM) | — |
|
Diagnostic Session Control (SID 0x10)
|
— | 0x01: Default Session | 0x02: Programming Session (Flashing) | 0x03: Extended Diagnostic Session |
|
Security Access (SID 0x27)
|
— | Challenge-response seed & key cryptographic authentication unlocking protected ECU coding and calibration memory |
|
Read Data By Identifier (SID 0x22)
|
— | Queries 2-byte Data Identifiers (DIDs, e.g. coolant temp, fuel pressure, engine RPM, battery state-of-charge) |
|
Read DTC Information (SID 0x19)
|
— | Reads stored, pending, and permanent 3-byte Diagnostic Trouble Codes with freeze-frame environmental data |
|
Clear Diagnostic Info (SID 0x14)
|
— | Erases stored DTCs, freeze frames, and resets emissions monitor readiness flags |
|
Negative Response Code (NRC 0x7F)
|
— | Standardized error code returned when service is rejected (e.g. 0x33 Security Denied, 0x31 Request Out Of Range) |