beaglebone中的CAN总线通信

时间:2015-01-12 20:38:52

标签: c# beagleboneblack can-bus

我正致力于在大陆的ARS308雷达和beaglebone黑色之间实现CAN总线通信。除此之外,我还连接了MCP2551,将CAN信号转换为Rx / Tx。 问题是在配置通信时(一旦安装了lib-socket和can-utils包):

  1. modprobe可以
  2. modprobe can-dev
  3. modprobe can-raw
  4. ip link set can0 up type可以比特率500000
  5. 直到这一点,一切似乎都完美无缺,但是当能够开始沟通时:

    1. ifconfig can0 up
    2. beaglebone(MCP2551的Rx引脚)中Rx引脚上的信号波形改变其波形,低电压电平高于2伏。见下面的图片。

      http://imageshack.com/a/img910/3126/VufRWU.jpg

      http://imageshack.com/a/img903/2530/eusAhX.jpg

      通信开始后,测试candump命令会显示它们无法正常工作。因为,当创建虚拟CAN端口这些工具(candump / cansend)工作时,我的猜测是电压水平的问题。可以看出,当CAN通信开始时,低电压电平高于2V,并且beaglebone不能区分电平,它不会读取任何东西...... 有谁遇到过这个问题?我已经尝试过google了很多,但没有任何对我有用。任何可以帮助的想法?!

      提前谢谢!

1 个答案:

答案 0 :(得分:0)

你必须开始环回。 而不是:

ip link set can0 up type can bitrate 500000

放:

ip link set can0 up type can bitrate 500000 loopback on

这将使系统变得甜蜜。但是,重复使用candump的值。要测试您的网络,您需要另一台CAN设备。