当前位置: 首页 > backend >正文

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

报文和信号分析

  • 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交互层作用 
      }
      

自动化测试

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
http://www.xdnf.cn/news/18236.html

相关文章:

  • 副文本编辑器
  • 23种设计模式——构建器模式(Builder Pattern)详解
  • PDF如何在Adobe Acrobat 中用OCR光学识别文档并保存可编辑文档
  • week3-[分支嵌套]方阵
  • 【39页PPT】大模型DeepSeek在运维场景中的应用(附下载方式)
  • SpringBoot集成WebService
  • PostgreSQL 中的金钱计算处理
  • SpringBoot 整合 Langchain4j RAG 技术深度使用解析
  • [论文阅读] 人工智能 + 软件工程 | 从用户需求到产品迭代:特征请求研究的全景解析
  • 微美全息(NASDAQ:WIMI):以区块链+云计算混合架构,引领数据交易营销科技新潮流
  • STM32学习笔记16-SPI硬件控制
  • 力扣48:旋转矩阵
  • RAG拓展、变体、增强版(二)
  • redis执行lua脚本的原子性和数据库原子性的区别
  • C++STL-list 底层实现
  • GSPO:Towards scalable reinforcement learning for language models
  • Web 安全之延迟攻击(Delay Attack)详解
  • 从基础到本质:文件 IO 操作全解析
  • 【Linux仓库】进程等待【进程·捌】
  • vc++调试总结
  • E10 通过RPC实现账号批量锁定与解锁
  • 管理项目服务器连接数据库
  • 【语法】markdown非常用场景
  • 交叉编译.so到鸿蒙使用
  • ansible playbook 实战案例roles | 实现基于node_exporter的节点部署
  • AV1视频编码器2024-2025技术进展与行业应用分析
  • scikit-learn/sklearn学习|变量去中心化和标准化
  • 【iOS】NSRunLoop
  • PyCharm2025无法启动Powershell.exe的解决办法
  • Google Chrome 扩展不受信任 - 不受支持的清单版本 解决方案