CAN
接口如图所示,输入如下命令:
ifconfig -a
//
查看所有网卡
如果
FlexCAN
驱动工作正常的话就会看到
CAN
对应的网卡接口,如图。从图中可
以看出,有一个名为
“can0”
的网卡,这个就是
BL302
板上的
CAN1
接口对应的
can
网卡
设备。

BL302
板子上有一个
CAN
接口,如需测试
CAN
接口,还需要一个
CAN
设备,可
以使用另一块
BL302
板子,或者带有
CAN
的板子进行测试。
准备两块
BL302
设备,然后将
CAN
接口连接起来,
BL302
设备上
CAN
接线端子
如图
将两个设备的
CAN
接口连接起来,注意,
CAN_H
接
CAN_H
,
CAN_L
接
CAN_L
。
首先使用
ip
命令设置两个设备的
CAN
接口,首先设置
CAN
接口的速度,输入如
下所示命令:
ip link set can0 type can bitrate 500000
上述命令设置
can0
速度为
500Kbit/S
,两个
CAN
设备的速度要设置为一样的!速
度设置好以后打开
can0
网卡,命令如下:
ifconfig can0 up
//
打开
can0
can0
打开以后就可以使用
can-utils
里面的小工具进行数据收发测试了。一个设备用
来接收数据,一个用来发送数据,接收数据的设备使用
candump
命令,输入如下命令:
candump can0
//
接收数据
发送数据的设备使用
cansend
命令向接收单元发送
8
个字节的数据:
0X11
、
0X22
、
0X33
、
0X44
、
0X55
、
0X66
、
0X77
、
0X88
。输入如下命令:
cansend can0 5A1#11.22.33.44.55.66.77.88
cansend
命令用于发送
can
数据,
“5A1”
是帧
ID
,
“#”
号后面的
“11.22.33.44.55.66.77.88”
就是要发送的数据,十六进制。
CAN2.0
一次最多发送
8
个字节
的数据,
8
个字节的数据之间用
“.”
隔开。
如果
CAN
工作正常的话接收端就会接收到上面发送过来的这
8
个字节的数据
/ # candump can0
can0 5A1 [8] 11 22 33 44 55 66 77 88
从上面可以看出,接收端的
can0
接口接收到了
8
个字节的数据,帧
ID
为
5A1
,说
明
CAN
驱动工作正常。
如果要关闭
can0
的话输入如下命令:
ifconfig can0 down
如果要在一个板子上进行
CAN
回环测试,按照如下命令设置
CAN:
ifconfig can0 down
//
如果
can0
已经打开了,先关闭
ip link set can0 type can bitrate 500000 loopback on
//
开启回环测试
ifconfig can0 up
//
重新打开
can0
candump can0 &
//candump
后台接收数据
cansend can0 5A1#11.22.33.44.55.66.77.88
//cansend
发送数据
如果回环测试成功的话那么设备就会收到发送给自己的数据,如图所示:
/ # cansend can0 5A1#11.22.33.44.55.66.77.88
can0 5A1 [8] 11 22 33 44 55 66 77 88