# item.guide
Side-by-Side Comparison Diagnostics & Protocols

DoCAN vs. UDS Protocol

Comparing 2 standards across 13 specifications. 13 key differences identified.

Comparing:
DoCAN
UDS Protocol

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.

View full DoCAN spec sheet →

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.

View full UDS Protocol spec sheet →

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)