Kvaser的TRX工具是一款可以基于C语言编程环境下的T脚本编写软件。通过此软件我们可以实现既定CAN ID报文的定义和收发。这里我们通过使用双通道的CAN memorator记录仪与两条CAN卡实现单通道、双通道的数据通讯。
1、 Memorator Configuration
Kvaser对于CAN记录仪专门设计了一款软件CAN memorator config tool来完成对不同记录仪的配置。这里我们选用的是kvaser memorator Pro 2XHS来作为报文收发存储单元。其配置界面如下:
打开软件先实现connect,若正常连接,在主界面会出现连接记录仪的实物图片。在软件界面左侧我们会发现可以对相关属性的配置界面。例如下图所示的CAN配置界面:
在这里我们就可以对所选择通道的波特率、芯片参数、模式等等进行定义和更改。同时可以在Define中添加自主定义的signal,或者在数据库中导入基于CAN报文格式的DBC文件和uef文件,添加过滤和trigger机制。
同时,我们可以注意到存储上的Flash disk功能,这里可以对存储卡上的文件进行查看处理以及执行对SD卡的相关操作。
2、 单通道数据通讯
2.1 TRX软件
Kvaser TRX软件是一款基于C语言模型设计的用于kvaser eagle以及kvaser memorator定制的T脚本语言。可以实现基本message收发,定时器设置等功能。这里我们仅对软件操作简单描述,具体请参照Help文档。
软件主界面用于代码键入和修改,书写规范类似于C语言,界面如下:
Project界面:每一个T脚本程序都包含一个T文件以及一个project文件。要注意的是,我们每次打开一个脚本均需要先打开project文件,再导入T文件,这样才会真正实现程序的编译。检查窗口如下:
Build与output界面:build可以查看编译过程中是否有错误,只有编译成功才能进行程序运行。Output界面我们可以看到程序实际运行过程中我们想要显示部分,同时可以选择不同的slot。其对应界面如下:
窗口工具栏:
其中undo与redo是撤销与返回按键,同时有一个硬件端显示如:kvaser memorator Pro 2*HS V2 #0代表的是通道1。点击下拉可以观察目前所有连接到的CAN卡硬件。三角形符号是一键编译快捷方式。这里要注意的是,在我们出现程序问题和连接硬件通讯问题需要对代码进行更改的时候,要切换在线或是离线模式。截图如下:
2.2单通道通讯
使用T脚本进行报文传输最重要的一点是要保持波特率的一致性。单通道代码如下:
这里我们选择的是通道1,波特率设置的是250Kbit/s,驱动模式选择normal,总线on,之后定义想要传输的message报文属性。通过canWrite便可以实现传输。在canking中的output界面我们收的报文如下:
注意在结束端需要on stop然后关闭总线。
3、 双通道通讯
双通道通讯下我们既可以给每个通道安排一个CAN卡,也可以两个通道只使用一个CAN卡通讯。这可以理解为单总线与双总线的概念。下图所示为单个CAN下的程序代码:
在这个程序下我们可以发现除了添加了两个通道,还添加了canMessage程序段,因为我们知道CAN的报文发送发送方式是广播形式的,当channel1有接收到id为100的报文时,会发出一条300的报文视为回应。同理与channel0。同时为达到这种回应型的效果,我们必须保证两个通道的波特率设为同一值,这里我定义的是250Kbit/s,其在canking的输出窗口报文如下图所示:
我们也可以模拟双总线的通讯方式,使用两个connector。这样我们可以设置两个不同的波特率,其output界面如下:
可以发现在通道显示上会出现两个通道。需要注意的是,在设置不同波特率的情形下,是不可以将两个connector连在一起的,这样会出现总线传输混乱的情况。