BeagleBone Black的can通讯实现(一)

硬件版本:RC1

软件版本:Debian 8.7 2017-03-19 4GB SD LXQT(kernel 4.4.54-ti-r93)


在网上找了很多说是修改Device-Tree,禁用HDMI类的,但是发现系统默认启动,只是加载了一个tbdo文件。
BeagleBone Black的can通讯实现(一)_第1张图片

SLOT的路径为/sys/devices/platform/bone_capemgr/slots.
这里可以看到文件介绍https://github.com/cdsteinkuehler/beaglebone-universal-io
要想使用can,可以修改cape-universaln-00A0.dts文件,然后重新生成.tdbo,替换系统默认的。
目前还没有找到系统是怎么默认加载cape-universaln-00A0.tdbo文件的。
这里我使用的另外一个方法,就是使用config-pin重新配置IO。
1 这里使用的是can1,将P9.24和P9.26配置为can
config-pin P9.24 can
config-pin P9.26 can

2 使用命令设置can属性,启动can

ip link set can1 down
ip link set can1 type can bitrate 500000
ip link set can1 up
如果没有外接的can设备,可以使用回测功能,将上面第二条命令修改为
ip link set can1 type can bitrate 500000 loopback on


3 启动can数据检测

candump can1
如果提示candump命令找不到,是因为没有安装can相应的库,使用can-utils库
apt-get update && apt-get install git   
cd /tmp   
git clone https://github.com/linux-can/can-utils.git   
cd can-utils/   
make   
make install

如果网络不好,就下载后复制到BBB板子里面。


4 重启启动一个SSH窗口,发送数据

cansend can1 111#1122334455667788

111是can id, 1122334455667788是8字节的数据。


PS:经测试,如果没有配置IO功能为can,使用回测方式也正常。


你可能感兴趣的:(BeagleBone,Black)