CANoe三大工具链指的是数据库编辑器(CANdb++ Editor)、面板设计(Panel Design)和CAPL浏览器(CAPL Browser),如图1所示。
图1 CANoe三大工具链
在CANoe面板设计前需在CANdb++ Editor建立与面板控件相关的环境变量(Environment Variable)以及发送接收的报文和信号。环境变量是面板设计和数据库之间联系的纽带,通过CAPL(CAN Access Programming Language)进行相关联,从而实现节点的功能逻辑。我们将以CANoeDemo为例,Step by Step教大家快速入门CANoe三大工具链。
图2 CANoeDemo示意图
如图2所示,使用环境变量实现控制面板上点火开关、加速踏板、各种灯光的控制。通过CAN总线共享发动机和车灯的状态信息,实现仪表盘发动机状态和转速的显示以及车身灯的效果显示。主要分为以下7个步骤,今天主要为大家介绍的是网络规划与设计的三个步骤:
图3 CANoe三大工具链的7个步骤
❏需求分析
(1)整个网络中由几个ECU组成;(通信网络定义层面)
(2)每个ECU发送和接收哪些报文;(ECU定义层面)
(3)每个报文的优先级以及报文的信号组成;(报文定义层面)
(4)每个信号的数据类型和对应真实物理值之间的转换方式,即factor、offset值的设置;(信号定义层面)
(5)需要的环境变量(环境变量层面)
其中:
(1)~(4)是通信网络设计规划需要考虑的问题;
(5)是面板设计和CAPL编程来实现各个节点的功能需要考虑的问题;
❏网络设计规划
整个CAN网络由3个ECU组成,它们之间的报文收发关系如图4和表1所示。
图4 CAN网络中的报文收发关系
表1 CAN网络中的报文和信号
❏如图5所示,首先新建一个工程文件CANoeDemo,在该文件夹下新建四个子文件夹:
(1)CANdb:保存数据库文件(*.dbc);
(2)Panels:保存位图和面板文件(*.xvp);
(3)Nodes:保存节点的CAPL程序(*.can);
(4)Logging:保存记录文件(*.blf);
❏打开Vector CANoe 11.0软件,File->New新建配置模板,命名为CANoeDemo.cfg,并保存,如图6所示。
图5 CANoeDemo工程文件夹
图6 新建配置模板
图6 新建配置模板
❏点击Tool->CANdb++ Editor,在CANdb++ Editor新建数据库CANoeDemo.dbc,操作如下,见图7所示。
图7 新建数据库
图7 新建数据库
(1)报文和信号的定义
考虑到发动机ECU报文和灯光ECU报文优先级的关系,将发动机ECU报文定义为EngineState(0x123,DLC=1),灯光ECU报文定义为LightState(0x321,DLC=1),它们报文中包含的信号如表2所示。
表2 Demo中的报文和信号定义

(2)新建相关的信号
CANdb++ Editor左侧的浏览树中的Signals,右击->new,新建信号,这里以发动机转速EngineSpeed为例,其余的类似:
图8 发动机转速信号EngineSpeed
写入信号的名称、长度、字节顺序、数据类型、系数(Factor)、偏移(Offset)和最小值、最大值等。
(3)新建相关的报文
CANdb++ Editor左侧的浏览树中的Messages,右击->new,新建报文,这里以发动机报文EngineState为例:
图9 发动机报文EngineState定义
在上方的Signals中,点击Add将相关的Signals包含到报文中,如图10所示。
图10 EngineState报文中的信号组成
在上方的Layout中,进行EngineState报文中的信号布局,如图11所示。
图11 EngineState报文中的信号布局
在上方的Attributes中,进行EngineState报文中的属性设置,如图12所示。
图12 EngineState报文中的属性设置
(4)新建相关的节点
CANdb++ Editor左侧的浏览树中的Nodes,右击->new,新建节点,这里以发动机节点EngineECU为例:
图13 发动机节点EngineECU
在上方的Tx Messages中,点击Add将相关需要发送的Messages包含到节点中,如图14所示。
图14 EngineECU发送报文的关联
(5)新建相关的环境变量
为了能够通过面板设计来实现控件操作报文信号的收发、模拟汽车传感器输入(发动机点火开关和加速踏板)、汽车执行器输出(车灯)和人机交互界面(仪表盘),需要定义以下环境变量,如表3所示。
表3 环境变量的定义
CANdb++ Editor左侧的浏览树中的Environment variables,右击->new,新建环境变量,这里以加速踏板环境变量EnvEngineAcc为例:
图15 环境变量EnvEngineAcc
(6)执行一致性检查
经过以上五个步骤,已经基本完成了数据库文件中元素的定义,可以通过View->Communication Matrix来查看节点之间报文和信号的收发关系(通信矩阵),如图16所示。
图16 通信矩阵
点击File->Consistency Check来执行一致性检查,查看整个数据库的定义是否存在错误,如图17所示。
图17 一致性检查结果
如果不存在错误提示,则表示数据库的一致性检查通过。
到这里,我们就完成了一个CAN网络的需求分析和网络设计规划,同时也定义了网络中节点之间报文收发逻辑的通信矩阵,为后续CANoe的仿真、测试、诊断和界面设计奠定了基础。在《Step by Step学习CANoe三大工具链(下)》中我们将继续为大家介绍CANoe中的另外两个工具——面板设计(Panel Design)和CAPL浏览器(CAPL Browser),敬请关注!

![]()
怿星一意,专注车载
引领汽车科技新高度


