【说明】:本贴主要为自己学习而总结。根据上海理工大学景传奇师兄的材料所总结,在此深表感谢。希望和大家一起学习,编辑仓促,内容有误,欢迎拍砖~同时如师兄所说,学习一款软件最好的教程最好不过是Help文档。
<入 门>:找视频学习——下好软件,跟着视频做一遍(B站上有),熟悉软件界面。
<理 解>:找培训文档——重点是CANoe三大编辑工具软件:数据库编辑器(CANdb++ Editor)、面板设计(Panel Designer)和CAPL浏览器(CAPL Browser)。另外官网的许多材料可以下载来,一般是英文的。
<自 学>:遇到不明白的地方,按F1查看Help文档。
<实 战>:自己设计一个基于CAN网络的监测、控制系统,全仿真也行(以下我以自己设计的直线倒立摆控制系统作为介绍)。研究在单片机上(如STM32Fx系列),实现CAN总线的报文通信,重点要自己规划设计CAN网络的通信报文(ID、DLC、Data)。
【CANoe(CAN Open Environment)简介】
CANoe是德国Vector软件公司(官网网址)的产品,这公司做各种总线、分布式系统的分析、仿真、测试软件,结合着卖各种硬件接口卡之类的,Vector公司的软件往往需要插上接口卡后一些功能才能用,所以这软件基本只有汽车行业人才接触到。Vector公司对CANoe的定位是:针对汽车行业,适用多种总线(CAN、FlexRay、LIN)为基础的ECUs、全网络或分布式系统的测试、仿真、诊断和分析。 Verctor也有其他总线开发测试软件,比如CANalyzer(CANoe功能子集)。
对CANoe,有PRO、PEX、RUN三个版本,注意别装成Demo版,不支持中文,CANoe最新版本Version 11.0,推荐10.0版本,新版本加强了对硬件卡的要求。CANoe也是向上兼容,新版本也能打开6、7版本工程文件。
硬件(系列)名 | 功能 |
---|---|
VN16系列 | 属于硬件接口卡,CAN/LIN网络 |
VN26系列 | 属于硬件接口卡,MOST网络 |
VN56系列 | 属于硬件接口卡,Etheren/CANt网络 |
VN76系列 | 属于硬件接口卡,FlexRay网络 |
VN8900 | 单机模块,内置了i7处理器 |
CANoe是标准的Windows窗口风格,有菜单栏(Ribbon风格)、窗口、桌面、状态栏。基本上CANoe的每个重要的功能就对应一个菜单栏的一个选项。
<介 绍>:该栏下有保存、另存为、打开、最近使用、新建、全局配置、帮助、示例配置、选项、支持、退出 11个选项,其中常用操作如高亮所标记。CANoe每次打开会默认加载上一次的工程。CANoe在Sample Configuration中提供了许多Demo示例,可以看看。
图2-新建模板(单通道500Kbps)
<操 作 >:
New 主要用于新建各种协议的模板。如图2所示。
新建CANoe工程(.cfg): File -> New -> 选择模板 。如图2所示
Options 用于软件运行的默认设置、用户偏好设置、拓展设置(Matlab、LabVIEW)等。如图3所示。
测量通道配置: File -> Options -> Measurement -> General -> 选择通道数目
历史数据保存设置: File -> Options -> Measurement -> Data History -> 选择临时数据缓存大小
图3-软件选项配置
<介 绍>:如图4,该栏有4块,功能如下,真实总线测试主要用到1,
(1)Channels: 包括前面选项设置里的通道数目设置,软硬件通道映射(激活),接口卡配置。
(2)VT System:VT板块配置
(3)Sensors:提供传感器与ECUs之间的分析、仿真、测试功能。
(4)I/O-Hardware:Vector I/O接口设备、GPS接口、摄像头接口、其他硬件。
图4-Hardware选项栏
<操 作>:
Network Hardware CAN通道设置(CAN/CAN FD协议选择),设置波特率、采样点设置
关联软硬件通道: Hardware -> Network Hardware -> Driver -> 如图5操作,则将硬件的高速口与CAN1通道关联
图5-完成接口卡关联
<介 绍>:主页栏主要涉及仿真/测试的控制、设置共3块,如图6所示,12个选项对应作用如下,都很实用:
(1)Start/Stop: 仿真-测试开始/停止
(2)Step:步进;Break:暂停;Animate:离线回放。
(3)时间步进值。
(4)在线/离线模式 切换。
(5)仿真总线/真实总线 切换。
(6)单机模式(针对VN8900等单机模块)。
(7)数据显示进制格式切换。
(8)窗口同步,比如你在图形窗口抓一个数据,按下该选项,对应在Trace窗口中该数据也会显示出来。
(9)信息输出窗口(该窗口既是系统报告窗口,我们在CAPL编程时可以把其当成printf()来使用)
(10)面板配置或新增面板窗口
(11)收藏的窗口所在的地方
图6-主页栏
<介 绍>:分析栏很重要,报文行为观察就是在这,也一共有3块,如图7所示,Configuration主要为测量设置,Bus Analysis则可以提供列表式、窗口化及统计性的信息,最后一块和拓展硬件有关,暂不用了解,其中1、5、6、7、9刚开始接触比较多:
(1)测量设置 ,包括插入过滤器、数据记录配置、插入CAPL节点或分析窗口。
(2)离线模式配置
(3)过滤器
(4)数据记录模块
(5)跟踪窗口,按时间列表式地实时显示总线报文情况,
(6)图形曲线窗口
(7)数据窗口
(8)状态跟踪器
(9)数据统计窗口
(10)GPS轨迹、视频配置、示波器配置,均需结合硬件。
图7-分析栏
<操 作>:
Measurement Setup 基本功能如图8,都有用。其中插入过滤器可以是针对总线通道、事件或变量,而插入CAPL节点,就是利用编程来过滤数据,其他还有插入触发等。
数据源切换: 实时数据/历史数据(.blf),也就是离线/在线模式切换。
数据记录设置: 如图9所示。
Tips:选中相应模块前面的蓝色块块,按下空格键,来激活/屏蔽相关模块~~~
图8-测量设置窗口
Logging 激活记录模块、触发设置、插入新的记录模块、记录文件配置(文件存储路径、存储文件格式、数据覆盖勾选等)
图9-记录设置选项
Trace 跟踪窗口会按时间显示报文信息,窗口子选项栏选项功能大部分如图10所示。窗口有很多小技巧:比如使用Marker标记重要报文,按ID等设置显示报文。
图10-Trace窗口编辑
Graphics 窗口选项主要用于设置信号/变量的曲线图形显示的方式,基本操作如图11所示。
图11-Graphics窗口编辑
Data 数据显示窗口,用于显示信号/变量的值(单位)、原始值、柱状显示。操作也是右击添加要显示的信号或变量。
Statistics 查看总线负载率、数据帧速率等。
Tips 信号互相拖动,比如可以从Trace窗口选中信号,左键直接拖入Data、Graphic、State Tracker等,Data、Graphic、State Tracker三个窗口也可以互相拖动信号。挺方便的~~~
<介 绍>:如图12,最重要的是Simulation Setuup选项,是添加仿真节点或一些功能模块的地方,2与DBC Node的IL属性相关,3是报文发生器,4为自动测试序列。
图12-Simulation栏
<操 作>:
Simulation Setuup 添加仿真节点/功能模块,整个窗口的基本操作如图13所示,需要提示的是利用数据库(.dbc)进行仿真是很实用的(将所用的信号、报文、变量、节点都建好,用到则直接调用)
图13-编辑Simulation Setup窗口
向总线发送特定信号(正弦、阶梯、周期等特点): 利用上面的IG模块(交互发生器)便可以实现,如图14所示。
图14-配置IG模块
3. 测试(Test)
诊断(Diagnostics)
环境(Environment)
硬件(Hardware)
软件通道与硬件通道的映射
主页(Home)栏
工具(Tools)
输出(Layout)
三大件(工具链或叫编辑环境):DBC编辑器、CAPL编程浏览器、面板设计
节点、ECU、报文、信号、系统变量、环境变量的关系与区别
报文(Message)概念与现实中的一样,节点发送的便是报文;信号(Signal)是对划分封装在报文数据场中数据的称呼,
CANoe中报文值转换
真实值(Phys)=报文值(Raw Value)×比例因子(Factor)+偏移值(Offset)
环境变量与系统变量的区别:环境变量是节点的I/O信号,典型用在真实I/O或面板,面板设计时关联的便是环境变量;系统变量是节点内部参数,比如 系统变量a = 报文1.信号1 - 报文2.信号2
CANoe的高级用法(需要结合实际的项目),分为以下几个方面:
-汽车网络总线(CAN、LIN、FlexRay、Ethernet等)的诊断——基于UDS协议
-汽车控制器标定,例如常见的TCU、VCU标定——基于CCP/XCP协议,可以结合CANape软件使用
-自动驾驶ADAS测试
-汽车网络的设计仿真——对应OEM在V字模型的规划设计,制定Spec阶段
-CAPL程序设计(.can/.cin文件),支持诊断、网络管理、ECU标定等
-对于外部程序的接口支持,常见的有Matlab、LabVIEW
-对于底层库(.dll)和脚本文件的支持(.xml)——用于建立测试用例(TFS)
一、需求分析,网络规划,报文设计(根据实际项目)
二、新建CANoe配置模板(CANoe)
三、新建dbc数据库(CANdb++ Editor)
四、在仿真设置中导入数据库(Simulation Setup)
五、新建面板(Panel Designer)
六、仿真节点编程,实现功能(CAPL)
七、运行仿真
注:这里使用我自己的一个小项目来做学习,项目详细资料:
此外CANoe中的Easy Demo也可以打开对照看看,大同小异
名词 | 解释 |
---|---|
License | 不同一般的密钥许可的证书形式,Vector公司把软件许可烧在接口卡等硬件上 |
Piggy | 各种总线收发器的昵称(CANPiggy1040等) |
ECU | (Electronic Control Unit)电子控制单元,一般为嵌入式设计,一般小型车单元数目<100 |
DLC | – |
OEM | (Original Entrusted Manufacture)代工厂商的英文缩写 |
DLL | (Dynamic Link Library)动态链接库文件,标准化的,提高软件复用性 |