CANoe使用介绍
前言
本文简单对CANoe进行了简单的介绍,并对CANoe的使用方法进行了总结,仅作为自学使用,以方便后续查漏补缺。
安装包
官方可以下载Demo版本,有功能限制(如:回放报文条数限制),但基本功能可以使用,仅满足学习使用。
总线支持
CAN、LIN、FlexRay、MOST、Ethernet等
工作原理
- 相当于CAN总线上外接了一个新的节点,能够对CAN总线上的报文进行读取和修改。
- 不同的CANoe硬件,如:通道数量不同,但在软件的使用上是一致的。
- 硬件:VN1630A、VN1640A等
CANoe在ECU开发过程中的三个阶段
全仿真
- 总线开发的初期,构建ECU的仿真模型,根据仿真节点对整个ECU进行评估,对节点的完整性及其网络的准确性进行前期验证。
半仿真(真实ECU和仿真节点共存)
- 用真实的ECU节点替换掉部分仿真节点,对其功能进行进一步验证。
全真实
- 最终实现全真实节点的总线网络系统,验证所有节点的功能是否满足需求及总线的负载率。
常用功能及使用步骤
新建工程
通道设置
- 配置通道数目
- Hardware / Channel Usage:根据需要设置通道数目
- 通道映射
- Hardware / Channel Mapping
- 硬件通道参数设置
- Hardware / Network Hardware:包括Mode、波特率等
CAN网络窗口:Simulation / Simulation Setup
- 设置CAN网络架构;加载DBC文件后,也会自动显示出对应的CAN网络架构。
- 红色线—仿真线;蓝色线—测试线;
- 添加信号发生器(I-Generator)
- 导入DBC后,可以设置报文/信号的模拟数据,用于测试
- 快捷操作
- 选中节点,按下空格键,即可快速屏蔽/启用对应的节点
制作/添加DBC文件
- DBC:Database Can,CAN的数据库文件。
- 描述CAN通讯的信息,包括message和信号,以及其属性。
- CANoe也可以制作DBC文件。
- 总线数据库创建工具:CANdb++ Editor
参考链接:
https://blog.csdn.net/qq_38705667/article/details/127096873
https://blog.csdn.net/qq_34414530/article/details/109235243
- 总线数据库创建工具:CANdb++ Editor
报文和信号分析
- Trace窗口
- 显示/查看报文和信号数据,支持:查找、过滤等
- Graphics窗口
- 选中Trace窗口中的信号,拖拽到Graphics窗口,即可可视化显示信号数据
- 支持对比分析多个信号之间的数值关系、查看指定信号值的变化规律
- 选中Trace窗口中的信号,拖拽到Graphics窗口,即可可视化显示信号数据
报文录制和回放
录制报文
- 工程模式开关切换为:Online,即在线播放
- 设置录制log参数(存储路径、文件名、格式)
- 启动工程后开始录制,根据需要点击暂定/开始录制按钮
回放报文
- 工程模式开关切换为:Offline,即离线回播
- 添加需要回放的文件(常用为blf格式的文件)
- 点击Start(闪电图案)按钮
注:
如果log录制开关处于打开状态下,需先关闭
回播结束后,需要模式切换为Online后,才能恢复到正常使用功能
回放以太网(ETH)的BLF文件
- 步骤
- 建立Ethernet的模板工程,并设置Ethernet通道
- 加载SomeIP对应的数据库文件(ARXML格式)
- 打开Trace窗口,结合Detail View窗口分析网络报文
- 示例:验证向Lidar发送的UDP报文数据是否正常
- 台架模拟发送数据,并录制blf数据
- 查看指定的数据是否正常
- 如:参数VehBattU(float类型),设置为:10.4
- 报文值对比(有点误差,怀疑和fixd数据类型而手动设置数据产生误差有关???)
- 查看计算的CRC值是否正常
在线计算值 & 报文 对比。如下图所示,说明程序计算的CRC数值是正确的,即发送的报文中也是正确的。
- Wireshark也支持查看BLF格式日志文件
- 注:也就是说CANoe采集的数据,可以使用wireshark分析,反之也可以
- 参考:https://zhuanlan.zhihu.com/p/488834030
系统变量创建和使用
- 参考链接:https://blog.csdn.net/king110108/article/details/115831731
Panel:图形界面
- 修改控件、属性,来模拟汽车硬件相关操作
- 设置控件属性时,需注意:Signal / Variable的区别,对于CAPL语句调用有影响
- Signal:绑定的是DBC中的信号
- Variable:绑定的是设置的系统变量
- 参考链接:https://blog.csdn.net/king110108/article/details/115832116
CAPL:脚本语言
- 作用:模拟ECU内部的代码、自动化测试
- 工具:CAPL Browser
- 双击Simulation Setup窗口中创建的ECU,选择路径并设置文件名后,即可创建对应ECU的CAPL脚本文件,文件后缀为.can。
- 知识点:库函数、关键字、系统变量
- 使用CAPL发送数据
- 需关闭IL交互,否则Trace中显示的数据是混乱的(CAPL数据+DBC默认数据)
on preStart { ILControlInit();//初始化CANoe的IL交互层 ILControlStop();//禁止CANoe的IL交互层作用 }
- 需关闭IL交互,否则Trace中显示的数据是混乱的(CAPL数据+DBC默认数据)
自动化测试
CAPL测试节点
- 创建CAPL Test Module
- 编写CAPL 测试 case
- Run起来工程,双击CAPL节点,执行测试
XML测试节点
- 创建XML Test Module
- 编写CAPL 测试 case & XML测试代码
- Run起来工程,双击XML节点,执行测试
.NET测试节点
- 创建.NET Test Module
- 编写.NET测试代码
- Run起来工程,双击.NET节点,执行测试
IG模块(交互式生成器)
- 创建IG模块
- 双击IG模块,设置Message
- 可以添加自定义数据
- 也可以添加已有的报文
- 如果已经有Node在使用报文,可以暂时屏蔽该Node对应的总线报文,以方便IG测试
- 选择触发方式
- Run起来工程,执行测试
测试方式 | 对比结果 |
---|---|
CAPL测试 | 相对方便 |
XML测试 | 需要编辑2个文件 |
.NET测试 | 涉及C#语法 |
IG模块 | 可以在工程中进行更改并添加message,且不需要CAPL编程 |
断点调试
- Debug只支持CAPL和NET test module,不支持XML test module、network node
- 在对应Node上右键–Debug,进入调试模式
- 在需要的代码行设置/删除断点
- 在Variables窗口勾选需要观察的变量,并在Watch窗口查看变量值的变化
- Debug运行方式
- start / continue:开始 / 继续运行直到程序结束
- step info:运行到程序下一行,如果是函数,则进入
- step over:运行到程序下一行,如果是函数,则直接跳出来
- 参考
- https://blog.csdn.net/king110108/article/details/115832928
- https://blog.csdn.net/king110108/article/details/115834933
ECU诊断
Q & A
- Q:File / New / Available Templates中没有Ethernet:
- A:Environment / Licensing 中勾选“Ethernet”,点击“OK”
- Q:CANoe时钟异常,如:走的特别快:
- A:需要重新设置下仿真时间步长:home / Step,如设置为:1000
- Q:Canoe怎么查看走FlexRay的总线信号?
- A:需要加载FlexRay信号的XML文件,其他操作方式和查看CAN信号一致。
参考
- https://blog.csdn.net/qq_38705667/article/details/126879959
- https://blog.csdn.net/weixin_47082588/article/details/127594552
- https://blog.csdn.net/qq_38705667/category_12013739.html
- https://blog.csdn.net/qq_34414530/article/details/109235243