CAN总线分析软件-智维Kvaser CanKing实验步骤
Kvaser CanKing是Kvaser公司开发的简易的CAN总线数据接收发软件,完全支持Kvaser公司的各类CAN测试议,包括单通道以及双通道。
下面我们使用Kvaser USBcan Ⅱ这款产品,该产品是带USB接口的双通道CAN总线,性能强大,同时又简单易用,我们使用它来进行CAN总线数据的发送与接收,从而详细分析CAN KING的使用步骤。
A、使用CAN KING接收总线数据
一、 点击电脑的“开始”选择“所有程序”里面的Kvaser CanKing,即可进入CanKing软件,见图1:
二、 点击CanKing软件后可以选择支持单通道的测试仪或者双通道的测试仪,见图2,因为本说明中使用的是Kvaser USBcan Ⅱ,因此选择CAN kingdom(2 channels)。
图2 选择支持的通道数
三、 软件的主界面如图3所示,通道的控制窗口主要用于选择波特率以及滤波器,接收发数据的显示窗口用于将已经发送的以及测试仪接收的数据显示在窗口上,具体的过程在后面的步骤中会详细讲到。
图3 软件的主界面
四、 选中CAN1窗口,在CAN Controlers里面设定总线参数。需要注意的几点有:
1、波特率必须和硬件的默认波特率要匹配――若波特率选择与硬件不匹配,则在接收硬件发送来的数据时显示窗口会显示错误帧,见图4。
图4 接收错误
2、采样率最好把范围设定在60-90%――CAN总线上的波特率并非一定需精确的值,可以设置相对精确波特率的相似范围,该参数便是这个用途。
3、选择模式,主要有两种 1、普通模式(支持接收和发送数据)
2、silent模式(只监听总线接收数据而不对接收到的数据进行确认,因此在一个一对一的网络上不可采用该模式)
设置参数见图5:
图5 CAN1参数设置
五、 通道2的控制窗口设置与通道1一样。在实验中因为使用的是将Kvaser USBcan Ⅱ的两个通道互连,并且中间不接终端电阻,因此CAN1设置的波特率需与CAN2的波特率一致,并且波特率不要设置得太高。见图6:
图6 CAN2参数设置
六、 选定模板,比如运行是需要过滤数据或者需要特定的报文等。
注:选择格式。里面有各种模板,支持标准显示数据或者过滤特定格式的数据等,根据测试需要进行选择。
图7 选定模块
七、以上的参数设置好后,就可以直接按GO ON BUS按钮开始测试了(也可以设置菜单栏的Start Run开始测试,这时两个通道同时开始测试)。
图8 GO ON BUS按钮开始测试
八、现在,完成前面的相关设计可以接收硬件发送来的数据了。在本实验中,采用Kvaser USBcan Ⅱ的通道1发送一个数据,通道2接收,具体的消息窗口见图9。
图9 接收发消息窗口
图9中显示的是通道1(窗口中显示的是chn 0)发送一个数据,通道2(窗口中显示的是chn 1)接收到通道1发送的数据。图中chn表示该数据是由哪个通道发送或者接收到的,Identified Flg表示发送或者接收的数据的标识符,因为发送与接收到的数据为同一个数据,所以标识符都是122,这里122是标识符的十进制码。DLC是数据帧长度代码,表示的是数据域的数据长度,亦紧跟在后面的D0-D6。D0-D6表示的是接收到的数据内容,共7个字节。Time表示的是发送或者接收数据的时间,每次点击GO ON BUS按钮或者Start Run按键开始测试时,时间就从零开始计算。
B、使用CAN KING发送数据到总线
上面已经讲述了CanKing接收数据的步骤,这里再讲述通过CanKing发送数据的步骤。
一、点击菜单栏的Messages菜单,Universal选项表示发送通用的消息,CAN Kingdom选项表示采用CAN Kingdom协议的页发送消息。通常情况下选择Universal选项。见图10,这里我们可以选择需要发送的消息的数据类型,对应上面接收到的数据类型,选择1-4 Ints。
图10 消息发送
二、点击1-4 Ints选项,可以看到图11的窗口。
图11 1-4 Ints选项窗口
窗口中CAN Envelope设置的是待发送数据的标识符,在CAN总线协议中,标识符越小,优先级越高。Length对应于显示窗口的DLC,表示的数据帧长度,Data0-Data3表示的是将要发送的数据内容,因为Int对应的数据类型占用两个字节,所以这里只有4个Int单元数据项。点击Send按键,可以将设置好的数据发送出去,见图9。
三、采用CAN Kingdom协议的页发送设置。见图12:
图12 CAN Kingdom协议的页格式消息
需要注意的内容有几点:
1、 当一个节点(city)需要很多的报文(Message),这时这些报文就形成一个Document,由于报文数据量大,发送到目的地址时容易出现差错,或发送给错误的目的地址,因此在报文里面采用分页机制(Form),发送到目的地址时(city),由Mayor进行译码。
2、 在一个报文(Message)里面,会有一个Byte(Line)进行分页,因此最大页数为255;有一个Byte(Line)进行标识(ID)Envelope,因此能发送到最大的city数为255。
3、 CAN Kingdom协议支持群发(Group),可将报文发送到一个city或一组city。
4、 编码形成的Document List和Form List主要用于不同模块间的通讯。
5、 Envelope 0只能由King接收。Null Document是指没有字节的报文,主要用于提示警告信息。
C、保存接收发数据消息窗口数据
有时需要将CanKing发送或者接收的数据保存起来,以便于日后查看或者进行深一层的数据分析,CanKing具有这样的功能,将消息数据保存在记事本上。下面介绍如何使用CanKing保存接收发数