Service Interaction Protocol
Communication Control
Overview
“The CommunicationControl service is used by the client to switch on/off the transmission and/or reception of certain messages of the server.”
Primary Purpose
- Isolate target ECU for flashing
- Reduce bus load during diagnostics
- Disable Network Management (NM)
- Manage multi-node architectures
Critical Notes
Diagnostic communication is never disabled by this service. The ECU must always remain responsive to the tester.
Control Logic
SID 0x28 acts as a gatekeeper for different message types. By specifying the Communication Type, you can selectively block application data while keeping network management alive, or vice-versa.

Selective isolation of Normal vs. Network Management communication paths.
When to Use SID 0x28
🔄 Firmware Updates
Isolate ECU during flash programming to prevent network interference and bus errors.
🔧 Diagnostics
Test one ECU without interference from others. Reduce bus load during sensitive operations.
📦 Production Line
EOL testing with controlled communication environment. Configure VIN/calibration safely.
Interactive Control Type Explorer
Explore how different control types enable/disable RX and TX on the ECU bus. Click on a control type to see how the request bytes are assembled.
All non-diagnostic messages
Diagnostic messages (0x7DF, SID 0x3E Tester Present) are NEVER affected by control type changes. Only application and network management messages are controlled.
Sub-functions & Types
Understand the byte-level anatomy of a CommunicationControl request and how each byte controls the ECU’s communication state.
28 03 0368 03Control Types (Sub-function)
Byte 1: Controls whether RX and/or TX are enabled or disabled
Value | Action | RX State | TX State | Use Case |
|---|---|---|---|---|
| 0x00 | Enable RX, Disable TX | Enabled | Disabled | Listen-only mode |
| 0x01 | Enable RX and TX | Enabled | Enabled | Normal operation (restore) |
| 0x02 | Disable RX, Enable TX | Disabled | Enabled | Transmit-only (rare) |
| 0x03 | Disable RX and TX | Disabled | Disabled | Complete isolation (flash) |
| 0x04 | RX only + Enhanced | Enabled | Disabled | Advanced addressing |
| 0x05 | RX & TX + Enhanced | Enabled | Enabled | Advanced addressing |
Note: Diagnostic messages (0x7DF, SID 0x3E, etc.) are NEVER affected by control type. Only application and network management messages are controlled.
Communication Types
Byte 2: Specifies which message categories are controlled
Value | Type | Controls | Description |
|---|---|---|---|
| 0x01 | Normal | App messages | Engine RPM, vehicle speed, sensor data, actuator commands |
| 0x02 | Network Mgmt | NM messages | Node alive, sleep requests, network state transitions |
| 0x03 | Both | All non-diagnostic | Combined: normal + NM + all application-layer messages |
Subnet & Node Targeting
Bytes 3-4 (optional): Target specific ECU or subnet
Message Length | Format | Effect |
|---|---|---|
| 3 bytes | [28 CC TT] | Apply to ALL subnets and nodes |
| 5 bytes | [28 CC TT NN NN] | Apply ONLY to specified node ID (Bytes 3-4) |
Example: [28 03 03] = Disable all RX/TX on all subnets
Example: [28 03 03 F0 00] = Disable all RX/TX only on subnet 0xF0 (Powertrain)
Session & Security Requirements
Understand which sessions and security levels are required for different SID 0x28 operations.
| Session | Dis. Normal 0x01 | Dis. All 0x03 | Subnet 0x04–0x05 | Re-enable 0x00 | |
|---|---|---|---|---|---|
Default Session 0x01 | NRC 0x7E | NRC 0x7E | NRC 0x7E | NRC 0x7E | |
Extended Session 0x03 | Allowed | Secured | Allowed | Allowed | |
Programming Session 0x02 | Allowed | Secured | Allowed | Allowed |
SID 0x28 never blocks UDS diagnostic traffic. Functional addressing (0x7DF), SID 0x3E Tester Present, and all service responses remain active in all states. Only application and NM messages are controlled.
ECU Reset (SID 0x11), S3 session timeout, or power cycle automatically restores full communication (0x00 — enableRxAndTx) regardless of active control state.
Required Session Type
Session | SID 0x28 Allowed? | Notes |
|---|---|---|
| DEFAULT (0x01) | ❌ Usually NO | Service typically not available in default session |
| EXTENDED (0x03) | ✅ YES | Standard for diagnostics and isolated operations |
| PROGRAMMING (0x02) | ✅ YES | Standard for firmware updates |
Session Timeout: If session times out and reverts to DEFAULT, SID 0x28 becomes unavailable and communication automatically restores to normal. Use SID 0x3E (TesterPresent) every 2 seconds to maintain session.
Security Requirements
Operation | Security Required? | When |
|---|---|---|
| Disable normal messages | ⚠️ Sometimes | Depends on ECU configuration |
| Disable ALL communication | ✅ Usually YES | Safety-critical operation |
| Subnet-specific control | ✅ Usually YES | Requires unlocking |
| Re-enable communication | ⚠️ Sometimes | Some ECUs require re-unlock |
Typical Security Flow:
[10 03] → Extended Session
[27 01] → Request Seed
[27 02 KEY] → Send Key (Unlock)
[28 03 03] → Now communication control works
Examples
Full Isolation (Pre-Flash)
Request
28 03 03> Disable RX/TX for All message types
Response
68 03> Isolation successful
Restore Normal Communication
Request
28 01 03> Enable RX/TX for All message types
Response
68 01> Normal signaling resumed
Communication State Machine
SID 0x28 transitions the ECU between different communication states. The interactive state machine below shows all valid transitions and auto-restore triggers.
0x000x010x020x03Full communication enabled. ECU receives and transmits all application and NM messages normally.
Default operating state after power-on or ECU reset.
0x01enableRxAndDisableTxRX ONLY0x02disableRxAndEnableTxTX ONLY0x03disableRxAndTx[SID 0x27]ISOLATED0x00enableRxAndTxNORMAL MODEAlready in NORMAL_MODE. Use Send Command to enter a restricted state first.
—SID 0x28 never gates diagnostic communication. Functional addressing (0x7DF), SID 0x3E Tester Present, and all UDS service responses remain active regardless of comm state. Only application and NM messages are controlled.
Isolation Simulator
Watch the complete firmware flash isolation lifecycle in action. Play, pause, and control the speed to understand each step of the secure programming sequence.
10 02Waiting...
Persistence: Communication control is volatile. An ECU Reset (0x11) or session timeout (P3 timeout) will restore normal communication automatically.
Key Behavior:
- • Diagnostic RX/TX always work: TesterPresent (0x3E), session control (0x10), etc. cannot be blocked
- • Session change (Extended → Default): Communication automatically restored to normal
- • Session change (Extended ↔ Programming): Communication state is preserved
- • During isolation: Send TesterPresent [3E 80] every 2 seconds to maintain session and prevent timeout
Multi-Service Integration
Standard Protected Operation Pattern
[10 XX] → [27 01/02] → [28 03 03] → [Operation] → [28 01 03] → [10 01]
Session Security Isolate Do Work Restore Exit
Service Dependencies
Primary Service | SID 0x10 | SID 0x27 | SID 0x3E | Notes |
|---|---|---|---|---|
| SID 0x28 | Required (Ext/Prog) | Optional | Required during long ops | Core isolation service |
| Flash (0x34/36/37) | Prog Session | Usually required | Every 2 seconds | Isolation critical |
| Write Data (0x2E) | Extended/Prog | Often required | If slow write | RX-only mode option |
| Routines (0x31) | Extended | Sometimes required | If long routine | Network-quiet execution |
TesterPresent Integration During Isolation
When communication is disabled, diagnostic messages (including TesterPresent) still work:
T=0s [28 03 03] → [68 03] (Isolated)
T=2s [3E 80] → (No response, suppressed)
T=4s [3E 80] → (Session kept alive)
T=6s [3E 80] → (Continue every 2s)
Use 0x80 subflag to suppress response and reduce bus load.
Flash Programming Workflow
Negative Response Codes
| NRC | Name | Common Cause |
|---|---|---|
| 0x12 | Sub-Function Not Supported | Invalid control type (0x06+) or unsupported enhanced addressing |
| 0x13 | Incorrect Message Length | Not 3 or 5 bytes; incomplete Node ID |
| 0x22 | Conditions Not Correct | Vehicle in motion, engine running, or critical system active |
| 0x31 | Request Out Of Range | Invalid communication type (0x00, 0x04+) |
| 0x33 | Security Access Denied | ECU still locked; requires security unlock first |
| 0x7F | Service Not Supported In Session | Using in DEFAULT session; session timeout occurred |
Interactive NRC Decoder
Click an NRC card below to see the error description, what causes it, and how to recover.
Click a card to view description, message trace, and recovery steps.
Troubleshooting Guide
Encounter an issue? Select your symptom below to get a guided diagnostic checklist with ISO 14229 best practices.
Select a symptom card above to open the diagnostic checklist.
Quick Reference
SID 0x28 Quick Reference
16 ready-to-send commands across 4 categories. Click the byte string to copy.
Showing all 16 commands
controlType=0x03 = disableRxAndTx per ISO 14229
controlType=0x01 = enableRxAndDisableTx per ISO
commType=0x02 targets NM traffic only
commType=0x03 = normalAndNmComm. Most aggressive isolation.
controlType=0x00 = enableRxAndTx. Session reset also restores.
Must re-enable NM before transitioning back to DEFAULT session
Preferred recovery command after programming sequence ends
Implicit restore. Useful when explicit 0x28 re-enable is unavailable.
controlType=0x02 = disableRxAndEnableTx
Allows monitoring of incoming NM without polluting the bus
controlType=0x04 = enableRxAndDisableTx (enhanced addr.) — not universally supported
Combined commType=0x03 with Tx-disable only. Less drastic than full isolation.
Subnet ID 0xFE = all nodes. ECU-specific — verify ODX before use.
Response byte 4 = session ID: 0x01 DEFAULT, 0x03 EXTENDED
Subfunction 0x80 = suppress response. Critical during long 0x28 isolation windows.
NRC 0x22 often means a prior disable was partial. Full re-enable before retry.