CANoe基础教程:09发送模块-CAN IG
这篇博客参考的视频地址:https://www.bilibili.com/video/BV1t54y1s7Qo/
我们可以使用CAN IG来发送自定义的报文,或者发送数据库中的报文到CAN总线上来。
在CAN工程中添加IG模块
在Simulation Setup窗口中右键,选择Insert CAN Interactive Generator,然后就添加了一个IG模块在仿真窗口中,如图9-1所示。

双击添加的IG模块,就打开了CAN IG的配置界面,如图9-2所示。界面主要分为三个部分,最上方为菜单栏;中间是报文发送列表;下面是信号或是配置报文数据场原始数据列表。
Send a user defined Frame(发送用户自定义报文)
发送用户自定义报文,主要包含两个配置:报文的定义,发送方式的配置。
配置报文的定义
首先点击CAN IG窗口的Add CAN Frame选项,然后在报文的发送列表中会出现一栏报文配置条,我们需要设置看报文的几个关键属性,包括报文的ID、发送通道、数据类型以及DLC长度。
例如,我们设置这条报文的ID为1A,Channel(CAN通道)选择CAN1,Type(数据类型)选择标准的CAN报文结构(CAN Data),或者是远程帧(CAN Remote)、CAN扩展帧等其他的一些报文类型;DLC指示的是CAN报文数据场的长度,设置DLC长度之后,就可以看到下方Raw Data中显示对应字节数的数据场的长度,也就可以我们自己设置CAN报文数据场的内容。
通过以上操作,一条自定义的CAN报文就设置完毕了,如图9-3所示。
接下来我们需要设置报文的触发方式。
设置报文的触发方式
CAN IG支持多种报文的发送方法,例如手动控制发送、按键发送、周期性发送以及基于其他报文或是变量发送等等。
CAN IG默认为手动控制发送,我们需要点击Send栏下的启动按钮来触发报文发送到CAN总线上来。
首先启动CANoe工程,然后点击Send按钮,我们就可以看到一条CAN报文发送到了CAN总线上来,最后由Trace窗口读取到,如图9-4所示。
点开Trigger选项的下拉框,我们可以设置其他的发送方式,如图9-5所示。
例如,我们可以设置On Key值为“a”,那么当我们在键盘按下“a”时,同样绘触发报文的发送。
周期性的发送则需要激活Periodic这个选项,我们可以通过这个选项设置报文的发送周期,然后点击Send下的启动按钮,我们就可以触发报文的周期性发送。
此外,报文的发送还可以设置为基于其他的报文或者系统变量的触发而进行发送。如图9-6所示,我们可以选择总线上特定ID的报文,或者是某一个变量,当该报文发送到总线上时,也会触发IG中报文的自动发送。
Send CAN FD Frame(发送CAN FD报文)
我们还可以通过CAN IG发送FD报文。点击CAN IG窗口中的发送CAN FD报文的选项,选项位置如图9-7所示,就添加了一条数据类型为CAN FD的报文,我们需要像CAN报文一样配置报文的ID、通道以及DLC长度。
CAN FD报文的数据场长度最大可以达到64个字节,比如我们当设置DLC长度为15时,下方的Raw Data就显示了64个字节的内容。
Send Frame from Database(CAN IG发送数据库中的报文)
CAN IG模块还可以发送数据库中的报文。我们点击CAN IG菜单栏中的第一个选项按钮,就会弹出CANoe工程中加载的数据库,如图9-8所示,这里我们选择其中一个报文EngineState(表示发动机状态的报文),报文中的属性就会按照数据库中的设置来自动导入,我们只需要设置数据场的内容,以及报文的发送方式即可。
添加数据库中的报文与之前自定义的报文有所不同的是,报文的数据场会按照数据库的定义解析为不同的信号,如图9-9所示,我们可以看到下方的信号发送列表(Signals)中,EngineState这条报文的数据场中包含有两条不同的信号,这样方便我们通过修改有实际意义的信号值来设置报文数据场的内容。
例如,我们可以设置信号在报文中的原始值,即Raw Value,如图9-10所示。或者是修改具有实际意义,就是转换之后的物理值,即Phys Value,如图9-11所示。
另外,信号集成列表中还集成了信号发生器,它支持设置信号的变化曲线,我们可以在Generator Type中选择不同的曲线类型,比如随机波、正弦、切换或者是用户自定义等等,如图9-12所示。
这里我们选择转速(EngineSpeed)这条信号按照正弦(Sine)的波形,之后点击run,即启动信号发生器,那么信号就会随着报文的发送按照我们设置的规律进行变化,如图9-13所示。
曲线的属性还可以在信号发生器的属性列表中进行修改,点击此选项,如图9-14所示,就可以设置Sine这个波形相关的一些属性,比如幅值、周期、位移和偏移等等。之后的状态也可以随时选择暂停、或者是停止。
以上就是关于CAN IG模块的介绍。