诊断协议那些事儿
本文为诊断协议那些事儿专栏文章,在CANoe诊断测试一文中介绍了导入CDD文件,CDD(CANdela Diagnostic Descriptions,CANdela诊断描述)是诊断数据的数据库,与CAN消息的数据库文件DBC类似,也就是上文提到的需求规范。本文以Vector提供的模板为例介绍CDD数据库的文件结构。
参考文章:CANoe诊断测试
文章目录
- 诊断协议那些事儿
- 一、什么是CDD?
- 二、打开CANdelaStudio
- 三、文档结构
- ECU Information
- Fault Memory
- DID Overview
- Base Variant:DIDs
- Diagnostics Classes
- State
- Data Types
- Protocol Services
- Negative Responses
一、什么是CDD?
在汽车电子行业中,通常主机厂OEM会对供应商提出诊断需求规范,供应商基于其规范实现软件的功能,在功能实现后,再进行集成测试,以确认其功能是否满足需求规范的要求,这也是我们常说的V-L模型。在研发、量产及售后阶段,使用的诊断需求规范都是一致的。
Vector提供了一整套的诊断开发工具链,如下图,后续我们会陆续展开。
二、打开CANdelaStudio
①打开CANoe后,在Diagnostics菜单下,可以看到CANdelastudio按钮,单击打开CANdelastudio软件,在拥有license的情况下才可编辑!!!
②使用菜单栏,选择英文版本软件打开。
软件提供模板ABS_ESP-Example.cdd数据库。
三、文档结构
CANdelaStudio 使用树状图显示 CANdela 文件,具体分为ECU信息、DTC池、服务列表、状态管理、数据类型、NRC池等
ECU Information
主要是ECU的配置信息:包括使用协议类型(CAN、CAN FD)、诊断ID、定时参数STmin、CS、BS等。
Fault Memory
包含了DTC的信息:故障码、故障名称、成立与故障恢复的条件、操作周期、老化等。
DID Overview
DID池,右侧显示了每一个DID在哪个变体中被使用(高中低配的概念)。
Variant的概念:每一款车可能分为A、B、C三个配置,代表着高、中、低配,在编辑数据库时,要分别基于A、B、C车型编辑这个数据库,这个时候会有3个诊断数据库CDD文件,这样对于版本管控就不是很方便了。这个时候Vector提出了一个解决方法,可以将功能最全的ECU需求规范生成一个“Base Variant”诊断数据库,在编辑A、B、C车型的数据库时,只需要对Base Variant里面的内容进行删除。
Base Variant:DIDs
Diagnostics Classes
每个“Variant”里面会有一个“Class”类,可以从需求规范选择支持的类,这些类就相当于UDS的不同服务,Session对应10服务,Identification对应读写DID等。
State
子集有“State Groups”、“Dependecies”和“Defaults”。“State Groups”界面下对ECU的状态划分,一般也是就标准的默认、编程、扩展会话。“Dependecies”对前面我们划分出来的ECU状态下的支持情况设置;“Defaults”设置各服务在我们划分的ECU状态间切换的默认支持情况。
Data Types
代表CDD数据库中数据参数的类型及其转换关系;
Protocol Services
包含了CDD数据库中所有UDS服务使用概况;
Negative Responses
包含了CDD数据库中UDS服务的NRC,如果模板提供的不能满足,也可以新建NRC码。