服务与案例 Service 当前位置: 首页 > 服务与案例 > 应用案例 >
固定电话:028-68743610
客服手机:13730631678
客服QQ  :
 
联系地址:四川省成都市成华区双林横路12号
按键触发发送CAN数据(使用模块)
2015-08-19 22:07:31
 按下某个按键发送CAN数据,这是CAN分析测试中常用的一种操作。在CANupoks中,脚本功能对其提供了支持,而CANslinkal提供了脚本与模块编程两种方式来支持。我们在按键触发发送CAN数据(使用脚本)一文中,介绍了如何使用脚本来完成该功能。 这里以CANslinkal为例介绍如何使用模块编程方式实现操作。
 打开CANslinkal,新建一工程,如下图:
\

在工程导航栏中“仿真单元”项目上点击右键,建立一个仿真文件,如下图:
\

  建立仿真文件后,主界面如下:
\

 然后使用主菜单中的“查看/仿真模块”菜单,调出仿真模块库。然后拖放模块库中的“事件触发(按放键)”模块到仿真文件中,如下图:
\

然后双击刚才建立的“事件触发(按放键)”模块,调出其属性对话框:
\

 我们的任务要求与按键触发发送CAN数据(使用脚本)”一文中一样如下:
 按下“D”键,发送一个CAN数据。CAN ID为0x18FFDE00,扩展类型。从通道1发送,数据长度为8字节,分别为0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07。
 所以这里设置上述事件触发模块属性如下:
\

  事件类型与触发键与我们上面的任务要求是一致的,至于“触发标识”,它是用来关联后面会用到的“触发系统”标识符,可以为任意字符,没有限制。这里我们设置为“发送CAN数据”。
 然后从模块库中拖放“触发系统”模块到仿真文件中,如下图:
\

  然后右键点击刚才建立的“触发系统”模块,调出上下文菜单,选择“设置触发标识”:
\
 会弹出触发标识设置对话框:
\
 因为我们刚才输入了触发标识符,所以在这里设置相同名称即可。下拉输入框,可以看见“发送CAN数据”这样的文字已经存在,选择即可,不用重复手动输入:
\
 因为使用了同样的标识符。所以当“事件触发(按放键)”模块定义的事件发生后,就会触发执行该“触发系统”
执行

“触发系统”本身是一个子系统,它被调用执行时,会实际执行定义在其中的逻辑。相当于“触发系统”是一个函数,而其中的逻辑,就是函数内容。下面我们在该子系统下建立CAN数据发送逻辑。
 双击“触发系统”模块,就可以进入其编辑空间,如下图,可以看见它现在的内容是空的:
\

 因为我们要发送CAN数据。所以首先需要CAN发送模块。因为发送的是原始字节数据,所以使用“CAN单帧发送(通用)”模块即可。将其拖放到“触发系统”的编辑空间,如下图:
\

 然后双击该模块,调用其属性设置对话框,根据任务要求,设置如下:
\
  发送的字节内容需要用其它模块外部输入。因为是简单应用,这里我们使用“常数”模块即可。将“常数”模块拖放到编辑空间,如下图:
\

 双击“常数”模块,打开其属性设置对话框,设置其值为“0x00”:
\

  然后将鼠标放在“常数”模块的输出端口并按下左键,拖动鼠标到CAN发送模块的第0字节输入端口。这就建立一条信号线,表示“常数”模块的输出值会作为CAN发送模块第0字节的输入值,如下图:
\


 反复执行该操作,并分别设置其它常数模块的值为0x01,0x02,0x03,0x04,0x05,0x06,0x07。与任务要求一致,然后为了美观,隐藏所有常数模块的名称,最后结果如下图:
\

  这样我们就完成了整个发送逻辑。下面开始运行来确认逻辑是否正确。首先设置硬件参数如下:
\

  因为只是做逻辑确认,我们使用虚拟硬件即可,免得去接插实际硬件。该设置中,将CAN1与CAN2对接(只有虚拟硬件该功能才有效),好让CAN1发送的数据,在CAN2能够接收到,以方便我们确认。
  然后将运行模式设置为“运行于本机”,如下图:

\
  
  最后点击工具栏中的“运行”按钮,运行系统。打开ID观测页面,可以看见,什么数据都没有。因为我们需要按下“D”键,数据才会发送。
 使用主菜单中的“查看/按键触发输入框”调出按键触发输入框,然后在其中按下D键(注意关闭任何中文输入法),该操作与“按键触发发送CAN数据(使用脚本)”一文中所述一样,这里不再重复介绍了。
 然后查看“ID观测”页面,如下图:
\

  所显示的数据与我们任务要求一样,可以反复按下“D”键,在“ID观测”页面中,检视“已接收数量”,可以发现其值与按下D键的次数是一样的。说明我们的模块程序是运行正确的。
  模块编程与脚本编程都完成许多类似的功能。不同的是,模块编程更直观易懂,对不懂编程的用户来说,都可以轻易实现很多功能。而且模块编程设计出的程序,是可以直接运行在CANslinkal硬件上的,这就让程序具有与专用单片机同等性能的实时性,完全可以模拟实际单片机控制器的运行。这种能力市面上的其它CAN分析仪所不具备的。