[软件诊断] CANoe和CANoe.DiVa关于通信测试的简略汇总

[复制链接]
查看3754 | 回复0 | 2022-7-23 09:49:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册 |

x
今天是2022年7月16日周六,魔都天气小雨,气温闷热、湿气很重。
老规矩,分享一段喜欢的文字,避免成为高知识低文化的工科男:

往往是那些看上去很坚强的人,最容易被忽视。所有人都觉得他们不需要任何东西,但是没有人不产生需要。

Teturn to today's topic!
本文分享关于通信在车载诊断测试过程中的应用。
本文涉及到的工具是CANoe和CANoe.DiVa,其中CANoe是业界常用工具:
c9abc93b-e167-434c-8bed-e019d14ea929.png
c77660a0-cb04-4cd9-a0e7-3e8798c31341.png
e85f0b95-0b02-4f96-b2d1-493c7ae1dcde.png
     
应用场景广,可用于(不限于):
-> 数据采集分析;
-> 车载诊断测试;
-> 整车网络仿真;
-> 车载通信、网络测试。
支持不同的车载总线类型。算是业界认可度很高的工具,我从读研的时候就被导师谆谆教导过:“笔记本电脑可以丢,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架构,车规级硬件可能单元化、可拆拔,信号也可以后续添加定义,极大的增加了整车系统的扩展性。
81f11ac2-c75c-48e5-beb9-488e79d2d8d9.png
20769bb6-4c89-4309-b2c1-e8e8e5226e73.png
24190563-f827-465c-b474-d29c5e2d5309.png
   
定义好dbc通信数据库后,在CANoe.DiVa工具设置Invalid Precondition的方式有如下两种,用户任意一种实现即可
1)在CANoe.DiVa中添加该dbc文件,设置信号值初始值为0,具体操作如下图:
  
2)添加CAPL:Invalid Precondition,操作参看下图:


生成测试用例后,将CANoe.DiVa生成的测试工程导入CANoe中,此时会生成System Condition的测试模块,如下图所示:
b4ebeaf9-9c3c-461b-a1e6-4df5f1bfef70.png
测试工程师需要编辑该测试模块,具体CAPL脚本如下:
7689236f-a67b-4ee5-b7b6-7ef65a857f6a.png
2.通过系统变量(可以快速关联双方link关系)和计时器在CAPL中实现循环发送报文,建立系统变量文件并导出,参看如下操作:

在CANoe工程中添加节点,编写CAPL测试脚本,具体如下:
   bca1c980-b108-41ea-bbf7-68b3d36b4cd6.png
在DiVa中添加系统变量文件,设置数值,操作如下:
  
这样可以控制CANoe.DiVa中通信内容,方便测试诊断用例中相关通信内容。

"您的鼓励,是我前进的动力"
还没有人打赏,支持一下
车研会员,开心每一天!
您需要登录后才可以回帖 登录 | 立即注册 |

本版积分规则