【诊断数据库文件-CDD】创建速成班-北汇信息小课堂(一)
速成小课堂开课啦!课前小问请看题:
(单选题)可取读车辆内部参数功能的是_______。
A.娱乐功能
B.自动驾驶功能
C.车辆诊断功能
我们评论区揭晓答案~
—————————————————————
每一辆车都有很多功能,比如智能驾驶功能、娱乐域功能。但是无论怎么发展,我们车辆传统的诊断功能都是必须要有的,而且是十分重要的。那么什么是车辆诊断呢,简单来说就是在通过诊断服务一问一答的方式,获取车辆内部的参数信息。
车辆诊断过程:
在我们整个汽车开发、测试、生产、售后服务过程中,都需要用到车辆诊断功能。但是这些都是由不同公司或者不同部门完成的,那么在各个阶段我们就需要统一诊断数据库,去保证整个流程中诊断需求的一致性和诊断数据的复用性。
诊断数据库需要具备机器(如软件)可读的特性,从而使诊断自动化测试和诊断协议栈自动生成成为可能。诊断数据库平台还需要具备良好的交互性,便于不同格式的诊断数据库的交互和转换。
这里就给大家开一个速成班,让大家了解Vector诊断产品链CANdelaStudio工具,是如何生成诊断数据库文件,保持诊断规范的一致性。
一、CANdelaStudio简介
1.CANdelaStudio诊断规范定义
如上图所示,就是一个典型的V-L模型,从前期开发到售后阶段,以ECU的诊断数据库(对应于ECU的诊断需求)为核心。在开发阶段根据ECU诊断数据库,进行ECU诊断协议栈的实现。测试阶段,根据ECU诊断数据库,生成诊断测试规范和测试用例。生产阶段,根据ECU诊断数据库,开发、应用参数化的EOL设备。售后阶段,根据ECU诊断数据库,开发、应用参数化的诊断仪。不同阶段,使用的诊断数据库格式可能不一样,但是所有的诊断数据库都源于同一个数据源。基于机器可读的诊断数据库,实现诊断在开发、测试、生产和售后阶段的需求一致性、数据复用性和诊断设备参数化。
CANdelaStudio用于定义ECU的诊断需求,支持用户创建和编辑车辆ECU诊断需求,生成诊断数据库文件(CDD),实现我们诊断需求的一致性。
安装CANdelaStudio软件后,会自带CDDT模板,CDD文件是由CDDT模板文件生成,生成的CDD文件也可以导入不同软件中。比如基于AUTOSAR体系,CDD文件可以导入到达芬奇软件中,生成MICROSAR Diag部分的代码;CDD文件可以导入其他Vector软件中(CANoe、CANape、Indigo等),进行诊断的手动测试;还可以导入CANoe.DiVa软件中生成诊断自动化测试用例,最终在CANoe中导入CANoe.DiVa生成的测试用例进行自动化测试。
刚才说了CDD文件是由CDDT文件生成而来,那么它们之间到底有什么区别呢?CDDT文件就是CDD的模板文件。当CDD文件生成后,我们需要明确它是由哪个CDDT文件生成。
-
CDDT文件:定义宏观-整车级通信参数类型、服务列表、结构、整车通用的会话模式、
安全访问、DID等 -
CDD文件:定义微观-单个控制器级具体的通信参数、具体的服务参数、具体的会话模
式、安全访问、DID等
2.CANdelaStudio版本介绍:
- CANdelaStudio View:可以查看CDD文件,不能对CDD文件进行编辑。
- CANdelaStudio Standard:基于CDDT编辑CDD文件,但不可以编辑CDDT文件
- CANdelaStudio Pro:支持多语言版本
- CANdelaStudio Admin:权限最高版本,可以编辑CDDT文件
查看软件版本:
3.CANdelaStudio中诊断数据和架构介绍
工程创建方法:
a.点击New选择相应的CDDT模板来编辑数据库保存为CDD文件
b.点击Open,可以打开CDDT文件,编辑保存CDDT文件;或者打开一个CDD文件进行编辑保存。
CDD文件结构分析:
Variants: 变体,CDD文件的核心内容,包含一个ECU当中的所有诊断服务数据。在这里出现了Base Variant和Variants,可以简单理解为车型分高中低配,每个配置的车型对应一个Variant。在其他Vector工具(CANoe、Diva等)中导入CDD文件时可以选择相应Variant。
每个Variant下,都需要去选择所支持的类(Supported Classes):
打开每个类,下面都有不同的服务,比如Sessions类,下面就包含了10会话服务。可以查看支持的子功能和服务相关参数
再打开DID相关的类,可以去勾选是否支持可写
CDD数据复用性:
在CDD里面的数据内容Data Types、Variants、DTC、DID等,可以通过粘贴复制来完成数据复用,从CDD1到CDD2不用重新编辑
服务架构查看:
二、编辑CDD文件工程
1.创建新工程
- 接下来,我们就来通过CDDT文件创建一个新的CDD工程:
- 编辑作者、变更历史:Document->Revision History
- ECU信息描述编辑:
- 选择相关总线接口类型:
2.通信参数编辑
通信参数设置:需要设置请求ID、响应ID、时间参数、波特率等
3.DID编辑
DID是两个字节的标识符,不同的DID存放的数据格式不一样,比如存放多少字节的十进制数、ASCII码类型数或者线性的数据等。
那么在CANdelaStudio里面如何去编辑DID呢?
首先我们需要去创建DID,一般都是选择在Base Variant里进行创建。
步骤一:新建DID
1)选择DIDs
2)选择New DID
3)编辑ID和名称
步骤二:新建Data Type
1)选择Data Type
2)选择New
3)选择需要的数据类型
4)编辑参数
步骤三:DID与Data Type关联
1)选择DIDs,并选择之前创建的DID
2)选择相应的Data Type
步骤四:Class类关联
1)选择DID相关的Class类
如果有需要定义bit的DID,先在关联Data Type处选择New Bitfield,然后在关联Data Type。
2)无效值定义:
在定义Data Type时,选择Invalid Values,去定义无效值的类型。
3) 激活/取消激活DID:
针对我们创建的DID,可以选择进行激活或者取消激活
4.DTC故障码编辑:
在创建编辑DTC之前,我们先了解一下CDD里的DTC库:
新建DTC:
1.选择DTC数据库
2.点击新建DTC
3.DTC参数编辑
DTC故障码导入/导出:
在DTC数据库中,可以将Excle表中的DTC直接导入CANdelaStudio中,也可以将CANdelaStudio中的DTC导出成Excle表格。
将DTC库中的DTC加载到Variant中:
在Primary Fault Memory的DTC Table中,右键弹出的窗口中选择Copy & Reference from Available DTCs…,即可将DTC库中的故障码加载至Variant中。
虽然选择Copy和Reference都可以加载DTC,但是如果我们在DTC库中有修改DTC,通过Copy的方式加载的DTC在DTC Table中不会跟着DTC库的修改而自动更新。通过Reference的方式加载的DTC可以自动更新。
0x19服务设置:
设置需要应用的0x19服务
状态掩码设置:
1)根据需求进行Status mask设置
2)设置请求的默认值
DTC码总览:
在此处所有的DTC会显示出来,可以查看DTC码是否被应用。
5.快照数据编辑:
步骤一
1)定义所有DTC记录的快照数据个数
2)针对所有DTC,设置快照数据读取的DID内容;
步骤二
1)显示所有的DTC,可以单独选择进行编辑
2)可以针对单个DTC选择需要记录快照的DID
步骤三
显示快照数据的个数,可设置是否支持快照数据
6.扩展快照数据编辑:
步骤一
1)定义扩展快照数据个数
2)设置扩展快照数据内容
步骤二
1)显示所有的DTC,可以单独选择进行编辑
2)设置是否支持扩展数据
本堂课关于CANdelaStudio之CDD文件速成的分享就到这里,请继续关注我们下堂课的分享。
Vector Informatik公司 是全球领先的分布式系统设计开发工具、网络节点测试验证工具和嵌入式软件组件提供商,为汽车总线网络的设计、建模、仿真、分析、测试以及ECU的开发、测试、标定和诊断等过程提供一系列强有力的软硬件工具和组件,支持CAN、LIN、MOST、FlexRay、以太网、SAE J1939、OSEK和AUTOSAR等多种总线系统、协议和标准。在全球范围内,来自汽车、商用车、工程机械和控制工程领域的客户都在应用Vector提供的解决方案和产品。
北汇信息作为Vector中国的合作伙伴, 不仅提供相应的工具和技术支持服务及培训,还针对不同的应用提供相应的解决方案,助力中国客户的研发效率提升。欢迎联系北汇信息,为您答疑解惑!
注:图中部分图片来源于Vector
作者:北汇信息——安好
相关文章
- Django初识、应用创建、模板与静态文件配置、数据库连接
- 【Android 性能优化】应用启动优化 ( 方法追踪代码模板 | 示例项目 | SD 卡访问权限 | 示例代码 | 获取 Trace 文件 | Android Studio 查看文件)
- MongoDB数据库的日志文件深入分析
- 优化优化 Oracle 数据库表文件的技巧(oracle数据库表文件)
- Oracle数据库文件恢复控制实践(oracle控制文件恢复)
- 文件Linux 中如何快速删除.txt文件(linux删除.txt)
- Linux下文件查找与搜索的技巧(linux文件查看搜索)
- 深入MySQL: 利用CSV文件导入数据(csv文件导入mysql)
- Oracle数据库如何删除日志文件(oracle删除日志文件)
- 快速实现文件复制:Linux移动、拷贝与备份技巧(Linux复制某些文件)
- MySQL数据库文件.db.myi的作用及问题解决方法(mysqldb.myi)
- Managing Your MySQL Database Files: Tips and Tricks for Efficient Data Storage(mysql数据库文件)
- MySQL 数据库的 .dat 文件是什么?(mysql.dat文件)
- Linux将Zip文件解压至指定文件夹(linux解压zip到指定文件夹)
- MySQL数据库中的log文件解析(mysql中log文件)
- 使用CSC文件快速导入MySQL数据库(csc文件导入mysql)
- MySQL数据库恢复从bak文件中重建你的数据库(bak文件还原mysql)
- MySQL57发布一款别具特色的MSI文件(5.7mysql msi)
- MySQL数据库不会直接保存文件(MySQL不存储文件)
- Oracle数据库中二进制文件的存放格式(oracle二进制文件存放格式)
- ASP.NET文件断点续传实现代码
- 将本地文件通过远程桌面连接直接复制或粘贴到远程主机的具体方法
- 使用python将mdb数据库文件导入postgresql数据库示例
- DB2数据库创建、表的ixf文件导出导入示例
- PHP中使用imagick生成PSD文件缩略图教程
- java使用smartupload组件实现文件上传的方法