CANoe⼊门基础教程(⼀)
CANoe是Vector公司的针对汽车电⼦⾏业的总线分析⼯具,现在我⽤CANoe7.6版本进⾏介绍,其他版本功能基本差不多。
汽车入门硬件我使⽤的是CAN case XL.
1,CANoe软件的安装很简单,先装驱动,再装软件。安装完成,插上USB,连接硬件,这样在控制⾯板中,Vector Hardware 进⾏查看
通过查看信息可知,CANcaseXL中的两个piggy,⼀个是251(⾼速CAN),⼀个是7269(LIN),另外常⽤的还有1054(低速CAN,或称容错CAN),因为CANcaseXL中只能⽀持两路通讯,这样piggy可以⾃由组合
2,硬件连接正常,打开CANoe软件
File->New Configuration 可以选择新建⼯程的模版,我们这⾥选择,这样新建了波特率为500K CAN⼯程,可以File->Save Configuration,进⾏保存
3,接下来就要使⽤CAN db++ Editor⼯具对总线⽹络节点消息信号,进⾏定义了。
点击⼯具栏的这个图标  ,或 开始菜单中这个⼯具启动
启动后,File->Create Database,选择CANTemplate.dbc,选择⽬录及⽂件名,进⾏保存
右键 Network nodes->New ,进⾏⽹络节点的定义,这⾥只需要填写Name即可,例如:Node_A
然后添加Node_B,完成后如下图,这样在Network nodes⽬录下⾯添加出来两个节点
节点添加完成后,下⼀步添加CAN消息,右键Messages->New,这是需要定义名称,ID,DLC等信息,如下:
然后在Transmitters页⾯,点击Add按钮,添加Node_A为发送节点,意思就是说,此消息是从Node_A节点发送出来的
其实还有⼀种⽅法就是,此时暂时不定义发送节点,然后直接以拖曳的⽅式拖曳到发送节点上,功能上是⼀样的
有了消息,消息⾥携带的东西⾃然是信号咯,那么我们开始创建⼀个信号
右键Signals->New,填写如下信息
信号当然要放到消息中咯,切换到Messages页⾯,Add 我们刚刚建⽴的Message_A,当然和上⾯⼀样,采⽤拖曳的⽅式从Signal到Message中建⽴关联也是可以的。
上⾯信息中Intel模式和Motorola格式的区别如下:
⽤0和1来表⽰开关信号状态似乎还不是很直观,我们可以使⽤on和off来表⽰就好了,于是View->Value Tables,右键空⽩处->New,键⼊如下信息:
定义好了之后,还需要跟信号进⾏关联。右键需要关联的信号->Edit Signal,Value Table 中关联刚才建⽴的那个Value Talbe项
这样⼀个信号就完成了,另外还需要加⼀个类似的信号,可以点击Signal根⽬录,在右边选择Signal复制,及粘贴,然后双击复制好的Signal后,进⾏⼀些编辑,然后⽤上⾯⽅法关联Message即可快速建⽴第⼆个信号了,是不是很⽅便
继续添加第三个信号,Indicator_A,跟上⾯⼀样,但是我这个信号想放在Message的第⼆个字节的位置,怎么办?
其实很简单,有两种⽅法:第⼀种,右键已经关联好的,即在Message⽬录下的信号,Edit mapped signal,在弹出的对话框中的Startbit中填8,这样就这个信号就跑到该消息的第⼆个字节中了。第⼆种
⽅法,右键该消息->Edit Message,在Layout页⾯中,拖动信号的⾊块进⾏移动
以上Message_A消息及消息下所定义已经定义完成
如法炮制另外⼀个消息Message_B,完成后如下图。
下⾯创建环境变量,右键Environment variables
陆续把其他环境变量加好,Indicator的Access属性为Write哦,加完如下:
数据库的定义这款基本上就OK了。保存后关闭CANdb++ Editor,回到CANoe主程序中。
请在Configuration->Options->Configuration Settings->Channel Usage 设置使⽤的通讯通道,因为这个只需要1路CAN,其他都设置为0就可以。
点这个选项页⾯可出现Simulate Setup 界⾯
右键Databases->Add,把刚刚创建好的dbc给加载进来,之后再连线上右键->Insert Network Node
结果如下:
右键这个ECU模块->Configuration,在Network Node 选择Node_A,完成,然后添加Node_B
完成后如下图,这样dbc与CANoe的关联就好了。
4,界⾯设计
⽹络及相应的关系设置好之后,应该设计界⾯了,⼀个良好的界⾯可以直观的显⽰及控制各种信号。
界⾯设计⼯具有两种:⼀种是Panel Designer,新的界⾯设计⼯具,另外⼀种是Panel Editor是⽼的界⾯设计⼯具,⽆论采⽤何种⼯具设计的界⾯,都可以和CANoe很好的兼容,没有问题。下⾯我们先⽤第⼀种界⾯设计⼯具来完成界⾯的设计
点击⼯具栏的这个图标或File->Open Panel Designer,打开界⾯编辑器,界⾯如下:
保存⼀下该界⾯,起名为Panel_A,⼀个空的界⾯上可以放置右上边若⼲组件。放置好之后,选中界⾯上的组件的时候,右下侧回显⽰当前选中的组件的属性,可以更改相应的⼤⼩位置等,但最重要的是Symbol属性,这⾥要说⼀下,每个界⾯组件也都需要与CANoe关联,否则单纯的界⾯是没有任何意义的,关联主要是信号和环境变量,在Symbol属性的Symbol Filter属性中可以进⾏选择,我们这⾥关联的是环境变量,所以选择Environment Variable,然后再点击上⾯的Symbol属性,然后在弹出的页⾯中选择相应关联的变量
完成后可以按同样的⽅法设计Panel_B,也可以Save As 的⽅法快速建⽴同样的Panel但是与环境变量
的关联和界⾯的⽂字需要进⾏微调。这样两个Panel都已完成。也已经建⽴了与CANoe之间的关联。
5,CAPL编程
所有的前期准备⼯作和组装⼯作都已完成,现在需要编写程序使整个系统有机的运⾏起来。回到CANoe的Simulation Setup界⾯,然后点击Node_A模块的,像铅笔⼀样的图标,填写程序名称,这⾥Node_A,然后打开编程界⾯,完成以下程序。然后完成Node_B程序。⼩技巧:如果背不出具体的消息名称,信号名称或环境变量,可以右键程序空⽩处,你会得到意外的惊喜,试试看。
OK⼤功告成
6,运⾏
现在点击⼯具栏,运⾏程序。注意:这⾥表⽰实际的⽹络,所有的消息是发送到物理的⽹络上的,如果只是验证程序,设置成这样就可以了
完整运⾏结果如下:
就是这样,⼀步⼀步的,我们完成了第⼀个完整的CANoe应⽤⼯程,虽然这只是⼊门第⼀步,但整个CANoe的开发流程基本涵盖,如果能跑出上⾯的运⾏结果,依然能够给我们很多的惊喜。我们需要这样的惊喜,因为这是我们继续前⾏的动⼒。