今天是2022年7月16日周六,魔都天气小雨,气温闷热、湿气很重。
老规矩,分享一段喜欢的文字,避免成为高知识低文化的工科男:
“
往往是那些看上去很坚强的人,最容易被忽视。所有人都觉得他们不需要任何东西,但是没有人不产生需要。
”
Teturn to today's topic!
本文分享关于通信在车载诊断测试过程中的应用。
本文涉及到的工具是CANoe和CANoe.DiVa,其中CANoe是业界常用工具:
应用场景广,可用于(不限于):
-> 数据采集分析;
-> 车载诊断测试;
-> 整车网络仿真;
-> 车载通信、网络测试。
支持不同的车载总线类型。算是业界认可度很高的工具,我从读研的时候就被导师谆谆教导过:“笔记本电脑可以丢,CANoe不能丢”。
CANoe.DiVa是一款基于加载诊断数据库自动化生成诊断测试用例(包括协议层用例、TP传输层用例(支持CAN/CAN FD TP)、刷写测试用例等)。原理是基于工具已经封装好的测试用例库,通过识别加载的诊断数据库(CDD/ODX),识别数据库中诊断描述内容(在OEM诊断需求规范中UDS服务、DID、DTC等内容)。
关于DiVa相关内容可参看如下文章:
本文主要描述在使用CANoe.DiVa时,涉及到通信相关的服务时,进行联合调试。具体步骤如下:
1. 在CANoe中通过DBC使用IL层循环发送报文,属性及信号设置如下:
注:dbc是车载CAN总线通信数据库,定义了整车级所需要使用的通信报文(Message)、Signal(通信矩阵8*8)。
在车设计初期,会设计好整车通信框架。不过是最初的CAN总线。伴随着车载以太网的引入,后续更可能是SOA架构,车规级硬件可能单元化、可拆拔,信号也可以后续添加定义,极大的增加了整车系统的扩展性。
定义好dbc通信数据库后,在CANoe.DiVa工具设置Invalid Precondition的方式有如下两种,用户任意一种实现即可
1)在CANoe.DiVa中添加该dbc文件,设置信号值初始值为0,具体操作如下图:
2)添加CAPL:Invalid Precondition,操作参看下图:
生成测试用例后,将CANoe.DiVa生成的测试工程导入CANoe中,此时会生成System Condition的测试模块,如下图所示:
测试工程师需要编辑该测试模块,具体CAPL脚本如下:
2.通过系统变量(可以快速关联双方link关系)和计时器在CAPL中实现循环发送报文,建立系统变量文件并导出,参看如下操作:
在CANoe工程中添加节点,编写CAPL测试脚本,具体如下:
在DiVa中添加系统变量文件,设置数值,操作如下:
这样可以控制CANoe.DiVa中通信内容,方便测试诊断用例中相关通信内容。
|