CDD文件的编辑与设置
1:cdd文件的重要性
CDD文件是我们执行开发,诊断测试中最为重要的一个文件,学会编辑,修改CDD文件对于我们来说很重要
2:编写cdd文件前,需要做的工作
**1)你首先安装一个CandealStudio程序到你的电脑上,一般安装CANoe时已经安装过了,大家需检查自己电脑,没有的话去官网下载即可。
**2)你首先需要一个带CandealStudio编辑权限的license,license具有三个种类,
#1Standard模式,
基于模板新建一个诊断数据库,更改诊断数据库的内容(更改DID,DTC这些);
#2Pro模式
支持多语言的,也就是添加支持德语,日语,
#3Admin模式
相比Standard模式,可以对CDDT进行编辑和更改,这些在Standard模式下是无法实现的。
**3)你必须有一个诊断规格书,有些公司叫做诊断调查表。反正本质就是一份对诊断归纳的一份表格或文字说明
3:开始编辑CDD文件
3.1 如何打开CandealStudio软件
步骤1:连接带有CDD编辑权限liences的工具到电脑上:
步骤2:打开CandealStudio软件,如下图,红框中,提供了三种语言格式的工具,我们要选择english版本的,如果精通德语和日语,那你随便

3.2 选择合适CDDT的模板文件
**1)CDDT和CDD的区别和联系
主要是用于整车规范的制定(新建或者删除服务,服务是否支持肯定响应抑制位;DTCtable里的内容),CDD是基于CDDT继续特殊定制。
**2)利用工具CDD和CDDT文件也是可以相互转换的
回到主题,打开软件后选择file-》new新建一个cdd文件

注意看图中的文件类型是CDDT,我们先要选取一个模板文件,就可以创建一个cdd文件了。
这里需要注意的是,CDDT模板文件,每个不同的主机厂都有自己的一套模板,即使同一个主机厂,不同的项目模板文件也会有区别。我们编辑cdd文件时,需要选择合适的模板。
如果连模板都没有的话,可以选择工具自带的模板来编辑cdd暂时应对一下。
或者自己先编辑一版符合要求的CDDT文件,这样对我们工具license的要求又高了。
3.3 依据框架填写式的编辑
CDDT模板文件打开后,得到如下一幅类似树的结构图文件,我们只需要从上到下依次填写,就可以得到一份我们需要的CDD文件,下图是软件自带的一份模板文件。

3.3.1 先从variant开始来了解CDD文件的架构

机翻的错误很多,更正一下
- variant 可以理解为,一种文件结构。这个结构包含了class(类)和instance的子模块。
- variant是cdd文件的组成单元,有一系列特征,每个cdd文件中,必须有一个variant,通常名称是 base variant。以这个base variant为模板,通过增加,删除等动作,可以新建其他variant

3.3.2 ECU Iformation
我们将该选项完全展开,得到如下图

我们还是从上到下依次点击和编辑
**1)ECUinformation

**Name:就输入对应的ECU名称即可,这里我们就改成HVAC(热管理系统)
**中间的工具栏
![]()
这些都是底下Description编辑器中的文本,设置的工具,设置字体大小,是否加粗,是否斜体,是否下划线,调整文本段落结构,字体颜色等等。。。大家可以自行尝试一下,这里没有特别重要的点
**2)Supported Interface 支持接口

如图所示,存在四种can类型可以选择,但是CDD license无法编辑,只能在CDDT中去选择编辑,既然这样我们不过多关注
**3)Supported Interface 支持接口

如上图,定义了诊断中很多的属性和参数,简单列举一下,诊断ID的类型,诊断ID多少,传输网络层的时间参数,应用层的时间参数,状态维持的服务数据,波特率,诊断填充数据等等,大家可以自行打开一个仔细观察都定义了啥
这些参数都是在cddt中定义的,cdd中是无法编辑的,这里需要注意
3.3.3 Diagnostic Trouble Code 即DTC
先看主体结构如下

先是一个标题,标题下面,分为了两个子类
子类1:叫做DTC Pool 可以理解为,是一个
子类2:叫做DTC Variants
3.3.3.1 :DTC Pool 操作和界面介绍
**1)标题栏,没有什么重要信息,主要是CDDT中定义的一些声明和说明信息

**2)DTC Pool Fault Memory(24bit 3个Byte)

新建一个DTC,在DTC展示区鼠标右键单击,出现选择菜单,如下,选择New DTC Code

找到新建的DTC,如下图

选中这个新建的DTC,右键单击选择properties(这里是个复数形式,说明了属性存在多个)如下两图


重点关注DTC的编辑界面,主要可以分为两个部分
部分1:导航部分

给编辑增加了便利
部分2:属性说明和定义部分

** General:如上图主要是对DTC置位,复位消除,自消除逻辑的一些,文字描述
**Authorization

这里看到 有两个属性可以选择配置,Required in all variants 和May be modified ,这里均不能修改(难道又是CDDT定义的?)
vehicle System Group 和Attributes都是没什么可以修改的地方
总结:此处的故障代码,均是不能自主编辑,那能添加还有什么意义?还是因为LICENSE的原因
回到主界面

- DTC Export 可以将pool中设置好DTC导出,我们看看导出的格式是什么?,从图中可以看出,文件格式大致分为表格格式,odx格式,和一个CDI格式(CDI我也不知道是什么东西)
- 我们选一个最常见的excel表格格式,直接保存。然后打开,如下图所示
3.3.3.2 DTC Variant Overview Fault Memory
打开后界面如下

大家放大一点,可以看到

这里显示了DTC被那些variant包含了,有没有被DTCpool包含等。。

同样的也显示了,哪个variant和哪一个sanple中存在这个DID
3.4 独立的DID OverView
就是一个预览页面,等我们在variant中编辑好了数据,就可以直接在这里检查编辑有没有错误,DID的数量有没有遗漏等操作。界面如下图
4:library
4.1 新建library
鼠标移动到libary处,鼠标右键单击,选择第一个“Create New Library”新建一个library。

library我的理解,是一个库
如图所示,我们新建了两个库

4.2 库中的配置和设置
可以看到,库里新建的Newlibrary 存在两个子选项,一个是DIDS,另外一个是“Support Diagnostic Class”(就是支持的class)
我们依次从上点击
4.2.1 library的总览界面

library总览界面底下,还有几个选项,如下图

关于Lock library,点击这个图标后,会有一段显示,如下图

4.2.2 library中的DID设置
然后接下来展开库,选择DID

我们发现箭头标注处,不可以选择,原因在于新建的没有导入Attribute, 导入后便可以创建DID了。
CDD文件把这个叫做 "DID Diagnostic Instance"(DID诊断实例???)
![]()
4.2.3 library中的"Support Diagnostic Classes_Session"设置
点击"Support Diagnostic Classes"选项并将其展开,单击该选项,选择

随后点击确定,我们勾选的Class,将会显示在 "Support Diagnostic Classes"子文件夹中。
**1)以session为例,来讲解如何具体的设置过程

将“session”展开,得到上图,鼠标单击“Default Session”,关注左边的设置界面,如下图

1:有些模板下,此界面下可能不显示否定响应,采取下图方式即可

2:重点是设置会话服务中的其他数据

1:注意,界面下方有一段浅色字体“Please click here to create element”(点击此处,创建element),会默认添加一个Data Object。
但是此处还能添加其他类型的数据,鼠标右单击,如下界面;

红框中,显示可以添加2种,数据类型(data object)和Bitfield。其他三种类型是在模板中选择,或以模板为参考,选择性的将部分属性添加。
这一段,比较难以理解,打个比方,我们编写一些技术资料时,通常都会选择一个模板,但是有时候模板也不能满足我们的要求,此时我们是不是可以找个类似产品的文档作为参考,在这个基础上编写新产品的文档。
2:参数设置的具体细节
就是需要将下图中,标选的选项依次设置

从左往右依次显示的是
1:Byte(字节位置)
2:bit (信号如果不是整个字节,则需要标注其在哪个字节中的起始bit位)。
3:name 可以按照诊断调查表中数据的名称填写,即可
4:DataType 数据类型,这个需要预先定义好!而且比较复杂,我们这里存在已经定义好的DataType,我们选择一个DataType,选择下拉列表,如下图。可以看到所有已经定义好的DataType。

3:参数设置的具体细节——NRC的定义

4.2.3 library中的"Support Diagnostic Classes_Identification"设置
和上个章节一致,先鼠标单击“ Identification”,总览如下图

新建关于DID的Istance,上个总览界面视图下,左下角,存在一个新建按钮。如下图


鼠标点击一下,出现一个提示选项,如下图

这个提示是指?library中的添加的DID,是否作为其他几个variant的reference。一般全选,然后点击yes即可。
部分同学,走完这一步,有点蒙圈,新建的DID去哪了,下图解释了

需要编辑新建的DID,直接双击,进入编辑界面,如下图

4.2.4 library中的"Support Diagnostic Classes_Security"设置
直接看图,不在赘述。。。
4.2.5 library中的"Support Diagnostic Classes_FaultMemory"设置
这个class是指对DTC,以及DTC相关的一些诊断数据,进行设置,故看起来也是比较复杂。
如果读者对uds诊断中的Mask掩码,诊断19子服务,故障码snapshot,extense data record 等,诊断判定的起始条件,DTC老化计数等概念了解不清楚,建议直接找一份ISO-14229-1.彻底搞懂后,再来看此段。
4.2.5.1 DTC Setup
首先我们要确定最基本的,就是采取哪一种诊断协议,一般现在乘用车都是使用ISO-14229-1,就是UDS协议。

**1)简单了解下 ISO15031-6中的DTC结构


提取信息ISO15031-6中的DTC是两个字节长度,与ISO14229-1中定义的三个Byte是不一样的。
**2)简单理解下J1939协议:


19+5+7+1=32/8=4Byte,故也是4个字节,和ISO14229-1中定义的DTC字节数一致。
4.2.5.2 Service的设置


可以看到,诊断数据简单分类为6种,此界面可以设置其中4种,我们从左往右看。
DtcStatusMask:DTC状态掩码,这是大家都比较熟悉的 ,我们根据诊断调查表,选择勾选相关的选项即可。
format Identifier 数据格式,这里的yy是指DTC的数据格式。
GroupOfDtc

根据诊断调查表,勾选即可,从图表中可以看出,ww是专门针对0x14服务的,ww是相关三个字节
**1)Emission-relate systems :发射相关的系统
**2)Powertrain ;动力域 0x10 00 00
**3)chassis group 底盘域 0x 40 00 00
**4)body group 车身域 0x80 00 00
**5)Network communication group 0x C0 00 00 。网络域 0x C0 00 00
但是通常使用时,0x FF FF FF,即清除所有DTC,诊断时,是以ECU为单位的,现在情况下一个ECU一般只负责一个域,反应在DTC上,只包括,动力域/底盘域/车身域3选1,和NCG(网络通讯域),如果只想清楚其中一个域,就需要知道这些值
RC相关,即可以为不同的服务子功能,添加合适的NRC,按照诊断调查表的说明添加即可
4.2.5.3 DTCs的设置

接下来, 看看设置详情,

此处很多性质设置时,需要前提设置好相关参数。
4.2.5.4 EventSetup的设置
Opetation Cycle,操作循环,操作循环的意思,在于DTC检测中,DTC存在一个计数counter
那么这个counter,多久加一次,


这里说明一下常见的检测循环:
**1)Ignition,一般就是OFF-ON-OFF是一个循环
**2)Time循环,就是以固定的时间为检测循环
Debounce Algorithms (防反跳算法)
Count-Base,如下图新建和设置
4.2.4 library中的"Control DTC"设置
直接树形界面移动到此处,然后右击菜单选择“New Diagnostic Instance”。

如图所示,我们按照诊断调查表填写即可,其他class我们也按照诊断调查表,和之前的设置经验填写完成即可。
5:Variant 的设置
studeal工具默认的是,varint是完全继承,library中的全部性质。我们根据实际项目,如一个项目中分为高中低三个型号,我们就在variant中设置3个Sample,根据诊断调查表依次删除多余项目即可。
6:State
点击开来,显示存在3个小项

6.1 StateGroup

感觉像是Session中的NRC设置,暂时还没搞清楚这个选项具体干嘛?
6.2 Dependencies

7:VehicleSystemGroup
7.1 DataTypes

如果数据中不存在我们需要的DataTpye,我们就需要自行设置新的DataType
更多推荐




所有评论(0)