Sitemap
6 min readMay 23, 2026

--

πŸš— Understanding CDD File in UDS Diagnostics.

In automotive diagnostics projects, one file that every validation engineer works with almost daily is:
πŸ‘‰ CDD File

Whether it is:
βœ” UDS Testing
βœ” CANoe Diagnostics
βœ” ECU Validation
βœ” Flashing Activities
βœ” DTC Verification
βœ” Automation Testing

CDD becomes one of the most important files during the entire validation cycle.

But in many projects, engineers use CDD files daily without clearly understanding:
β€’ What exactly CDD contains
β€’ How CANoe uses it internally
β€’ Why diagnostics fail when wrong CDD is loaded
β€’ How sessions, DIDs, NRCs, and security access are linked with CDD
β€’ Why diagnostics debugging becomes difficult without proper CDD understanding

And in real projects, many diagnostics issues are not actually ECU software problems.

Most of the time, root cause comes from:
❌ Wrong DID configuration
❌ Session mismatch
❌ NRC mapping issue
❌ Incorrect scaling
❌ Wrong security configuration
❌ Old CDD version

That is why understanding CDD deeply is very important for every diagnostics engineer.

β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€”

# πŸ”Ή What Exactly is a CDD File?

CDD stands for:
πŸ‘‰ CANdela Diagnostic Description

It is a diagnostics database file used mainly in Vector tools like:
βœ” CANoe
βœ” CANalyzer
βœ” CANdelaStudio

A CDD file defines complete UDS diagnostics behavior of an ECU.

In simple words:
πŸ‘‰ CDD acts like a diagnostics dictionary between ECU and CANoe.

Without CDD:
CANoe only sees raw hexadecimal diagnostic communication.

With CDD:
CANoe understands:
βœ… DID Names
βœ… Diagnostic Sessions
βœ… NRCs
βœ… Security Access
βœ… Routine Definitions
βœ… DTC Information
βœ… Physical Parameters

β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€”

# πŸ”Ή Why CDD is Important in Diagnostics Testing?

During diagnostics testing, ECU communication happens completely in hexadecimal format.

Example:

Request:
22 F1 90

Response:
62 F1 90 54 45 53 54 56 49 4E

Without CDD:
Tester only sees hexadecimal bytes.

With proper CDD:
CANoe directly displays:
βœ… VIN Number

Now imagine diagnostics validation with:
β€’ Hundreds of DIDs
β€’ Multiple ECUs
β€’ Multiple software variants
β€’ Different sessions
β€’ Security-protected services

Without CDD:
Diagnostics testing becomes almost impossible.

That is why every diagnostics tester heavily depends on proper CDD configuration.

β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€”

# πŸ”Ή What Information Exists Inside a CDD File?

CDD does not only contain DID names.

It contains complete diagnostics behavior of an ECU.

Mainly it contains:

β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€”

## βœ… 1. Diagnostic Services

CDD defines all UDS services supported by ECU.

Examples:
β€’ 0x10 β†’ Diagnostic Session Control
β€’ 0x11 β†’ ECU Reset
β€’ 0x22 β†’ ReadDataByIdentifier
β€’ 0x2E β†’ WriteDataByIdentifier
β€’ 0x27 β†’ Security Access
β€’ 0x31 β†’ Routine Control
β€’ 0x19 β†’ ReadDTCInformation

These services are used daily during diagnostics validation.

β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€”

## βœ… 2. DIDs (Data Identifiers)

DIDs are used to read ECU-related information.

Examples:
β€’ F190 β†’ VIN Number
β€’ F188 β†’ Software Version
β€’ F187 β†’ ECU Part Number

Example:

Request:
22 F1 88

Response:
62 F1 88 31 2E 30 2E 35

With CDD:
CANoe directly displays:
βœ… Software Version = 1.0.5

Without CDD:
Tester needs manual decoding.

β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€”

## βœ… 3. Diagnostic Sessions

One of the most important areas during diagnostics testing.

Not every service works in Default Session.

Some services require:
βœ” Extended Session
βœ” Programming Session

Example:

Request:
10 03

Positive Response:
50 03

Now ECU enters Extended Session.

Only after entering correct session:
β€’ Certain DIDs become accessible
β€’ Routines execute properly
β€’ Security access becomes active

Many β€œService Not Supported” issues during testing are actually caused by:
πŸ‘‰ Wrong diagnostic session.

β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€”

## βœ… 4. Security Access

Certain services are protected because OEMs do not want unauthorized access.

Examples:
β€’ Flashing
β€’ Variant Coding
β€’ Calibration Updates

Get Koteswara Rao Para’s stories inΒ yourΒ inbox

Join Medium for free to get updates fromΒ thisΒ writer.

Typical flow:

Seed Request:
27 01

Seed Response:
67 01 12 34

Then tester sends calculated key:

27 02 XX XX

If security configuration inside CDD is wrong:
❌ Security unlock fails.

This is one of the most common diagnostics integration issues.

β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€”

## βœ… 5. NRC (Negative Response Codes)

During diagnostics testing, ECU may reject requests.

Example:

Request:
22 F1 AA

Response:
7F 22 31

Meaning:
7F β†’ Negative Response
22 β†’ Requested Service
31 β†’ Request Out Of Range

CDD helps CANoe properly decode NRC information.

Without proper NRC mapping:
Debugging becomes difficult.

β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€”

## βœ… 6. Routine Control

RoutineControl (0x31) is heavily used during:
βœ” Flashing
βœ” ECU Self-Test
βœ” Memory Erase
βœ” Calibration Activities

Example:

Request:
31 01 FF 00

Positive Response:
71 01 FF 00

CDD defines:
β€’ Routine IDs
β€’ Input Parameters
β€’ Output Parameters
β€’ Session dependency
β€’ Security dependency

β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€”

## βœ… 7. DTC Information

CDD also contains:
βœ” DTC Definitions
βœ” Fault Descriptions
βœ” Failure Conditions

Example:

ECU reports:
P0123

CANoe directly displays:
βœ… Throttle Position Sensor High Input

instead of raw hexadecimal data.

β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€”

## βœ… 8. Scaling and Units

Some DIDs contain raw numerical values.

CDD defines:
βœ” Factor
βœ” Offset
βœ” Units

Example:

Battery Voltage Raw Value:
120

Factor:
0.1

Actual Voltage:
12V

Without scaling:
Raw data becomes meaningless.

β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€”

# πŸ”Ή How CDD Helps During CANoe Diagnostics Testing?

During diagnostics validation, CDD helps CANoe:
βœ” Automatically decode responses
βœ” Display readable DID names
βœ” Interpret NRCs
βœ” Handle sessions
βœ” Execute routines
βœ” Support diagnostics automation
βœ” Generate diagnostics panels

Without CDD:
Most diagnostics activities become manual and time-consuming.

β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€”

# πŸ”Ή One Common Real-Time Issue β€” Wrong CDD Version

This is probably one of the biggest issues during diagnostics integration.

Software team updates:
β€’ DID definitions
β€’ Security configuration
β€’ Session requirements
β€’ NRC behavior

But validation team accidentally uses old CDD.

Now CANoe starts showing:
❌ Wrong DID decoding
❌ Missing services
❌ Incorrect parameters
❌ Security failures
❌ Automation script failures

Eventually root cause becomes:
πŸ‘‰ Wrong CDD Version

This happens very frequently during vehicle integration phases.

β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€”

# πŸ”Ή Difference Between DBC and CDD

Many beginners confuse DBC and CDD.

## βœ… DBC

Used for:
βœ” CAN signal decoding

Contains:
β€’ CAN IDs
β€’ Signals
β€’ Scaling
β€’ Byte Order

## βœ… CDD

Used for:
βœ” UDS diagnostics decoding

Contains:
β€’ Diagnostic Services
β€’ DIDs
β€’ Sessions
β€’ Security Access
β€’ NRCs
β€’ DTC Information

Both are important…
but both solve different problems.

--

--