Beaglebone Back学习六(Can总线测试)

Can总线测试

1 Can总线

  控制器局域网 (Controller Area Network, 简称 CAN 或 CANbus)是一种通信协议,其特点是允许网络上的设备直接互相通信,网络上不需要主机(Host)控制通信。是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并最终成为国际标准(ISO11898)。CAN总线原理是通过CAN总线、传感器、控制器和执行器由串行数据线连接起来。它不仅仅是将电缆按树形结构连接起来,其通信协议相当于ISO/OSI参考模型中的数据链路层,网络可根据协议探测和纠正数据传输过程中因电磁干扰而产生的数据错误。

2 Can通信协议类型

2.1 Canopen

2.2 ControlNet

2.3 DeviceNet

3 Can网络协议

Sokcetcan

linuxcan

Beaglebone back can接口操作

1 Beaglebone back 提供了两个can接口,具体如下图所示,P9部分的19、20组成Dcan0,24、26组成Dcan1。

2 在进行操作前,首先在终端输入ifconfig命令,查看是否有can0接口,如果没有,需要为其制作对应的dts文件。

 cd /lib/firmware

 vim BB-DCAN0-01-00A0.dts

 dtc -O dtb -o BB-DCAN0-01-00A0.dtbo -@ BB-DCAN0-01-00A0.dts

 echo BB-DCAN0 > /sys/devices/bone_capemgr.*/slots

 ifconfig -a

3 ip link set can0 type can bitrate 25000 triple-sampling on

   ip link set can0 type can loopback on

   ipconfig can0 up

   candump can0

   cansend can0 1 2 3 4 

4参考连接

1 三种高层协议比较 

CAN总线

3 linux-can协议源码(can-utilslinux-caniproute2...)

4 CanFestival协议栈源码

 5 can与Canopen总线(虹科)

 6 linux内核下的can文档

原文地址:https://www.cnblogs.com/gjianw217/p/3754046.html