Service Interaction Protocol
Diagnostic Session Control
Service Purpose
“DiagnosticSessionControl enables various diagnostic sessions in the server (ECU). The server always operates within exactly one session, defaulting to the Default Session (0x01) upon every reset event.”
Message Structure
Diagnostic Session Control requests are simple two-byte frames containing the SID and the session sub-function. Try toggling between request (TX), response (RX), and split views, filter by semantic type, inspect byte field definitions, explore alternative values, and export code snippets:
◆ PROTOCOL ANATOMY
0x10 DIAGNOSTIC SESSION CONTROL
0x10 RESPONSE
Response Suppression Logic (SPRMIB)
When the suppressPosRspMsgIndicationBit (bit 7) is set on the sub-function byte (e.g., 0x83 = 0x03 | 0x80), the ECU transitions to the requested session silently without transmitting a 0x50 positive response frame.
!Critical: NRC 0x7F bypasses suppression logic and will always broadcast.
Session Selection
The sub-function byte selects the target session. Each session grants a distinct privilege level, enabling or restricting access to specific diagnostic services.
Standard operating mode. Active after every ECU reset. Basic diagnostic read operations permitted. No security access required.
Request
Firmware update and bootloader operations. Requires prior Security Access (0x27). Vehicle must be stationary. S3 timeout active.
Request
Enables advanced diagnostics including I/O control, routine execution, and memory writes. Most common session for workshop diagnostics.
Request
Reserved for safety-critical ECU operations (airbag, ABS, ESP). Restricted transitions. OEM-specific security levels required.
Request
Timing & S3 Timeout
Timing parameters define the window for server responses (P2) and client keep-alive signals (S3). When entering a non-default session, the S3 Server Timeout becomes active, requiring a Tester Present signal every 5000ms.
Operational Constraints
Transitioning between sessions triggers automatic resets of ECU security states and active diagnostic processes to ensure protocol integrity.
| System_Subject | Transition_Logic | Constraint_Level |
|---|---|---|
| Security Access (0x27) | Force_Locked | Protocol Requirement |
| Active Downloads (0x34) | Purge_Buffer | Critical Fault |
| Diagnostic Routines (0x31) | Terminate_All | Safety Buffer |
| Communication (0x28) | Default_Mode | Reset Protocol |
Protocol Interaction
Protocol Transition Sequence
2 steps0x01Power-on default. No security required.
0x02Flash reprogramming; requires SecurityAccess.
0x03Advanced diagnostics. Most common non-default.
0x04ASIL-rated system isolation.
- Default → Programming
10 02 - Default → Extended
10 03 - Default → Safety
10 04 - Extended → Programming
10 02 - Any non-default → Default
10 01 / S3 timeout - Safety → Extended
10 030x22 - Programming → Programming
10 020x22 - Safety → Any other
10 xx0x22
Request Processing & Validation
50 0X + timing parameters. S3 timer starts for non-default sessions.Click any step to expand validation logic.
Service Requirements by Session
Diagnostic Session Control Matrix
Which diagnostic sessions can be transitioned to from active sessions, and their security impacts. Select a row for details.
| Target Session | DEFAULT 0x01 | EXTENDED 0x03 | PROGRAMMING 0x02 | SAFETY 0x04 | Security |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | — | |
| ✓ | ✓ | ~ | ✓ | — | |
| ~ | ✓ | ✓ | ✗ | Level 3 Flash | |
| ~ | ✓ | ✗ | ✓ | Level 5 ASIL |
Security State Behavior
Security access (0x27) is session-specific. Changing sessions resets security, except when remaining in Extended Session.
| From Session | To Session | Command | Security Impact |
|---|---|---|---|
| DEFAULT | EXTENDED | No change (was locked) | |
| EXTENDED | EXTENDED | ✓ PRESERVED | |
| EXTENDED | DEFAULT | ❌ RESET (Locked) | |
| EXTENDED | PROGRAMMING | ❌ RESET (Locked) | |
| ANY | DEFAULT (Timeout) | Auto-reset | ❌ RESET (Locked) |
Common Workflow Patterns
Safest workflow. No session elevation or security unlock required. Suitable for field technicians reading vehicle health data.
10 01Enter Default SessionExplicit reset to known state
22 F1 90Read VINVehicle identification number
19 02 09Read Active DTCsstatusMask = 0x09
19 06 01Read DTC SnapshotsFreeze frame data
Service Dependencies
0x10 manages diagnostic sessions which restrict or permit other UDS services. Select a node to inspect protocol interactions.
Negative Response Codes
EXCEPTION_MATRIX_V3
The requested diagnostic session type (sub-function value) is not supported by this ECU.
This negative response indicates a rejection while processing the Diagnostic Session Control (SID 0x10) request. Verify preconditions, session levels, and message formatting per ISO 14229.
Debugging & Troubleshooting
Click any issue card to reveal cause and fix.