【发布时间】:2021-02-05 14:54:55
【问题描述】:
我的问题好几天了,我的 Can Bus 在发送第一条消息后停止工作。
我使用 IOT-Gate-RPI 作为客户端,它具有 raspberry pi 3 计算模块和带有用于 can Bus 的 MCP2551 芯片的集成帽子。 线路的另一端,作为一个监视器,我使用的是运行在 W10 上的 IXXAT 软件 CANAnalyzer 3 Mini。
这是我在 Linux 上的设置: 在 /Boot/config.txt 上,我添加了:
dtparam=spi=on
dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25
dtoverlay=spi0-hw-cs #(For Kernel > 4.4.x)
我还确保它将在启动时安装:
auto can0
iface can0 inet manual
pre-up /sbin/ip link set can0 type can bitrate 125000 triple-sampling on restart-ms 100
up /sbin/ifconfig can0 up
down /sbin/ifconfig can0 down
然后,使用 can-utils:
$sudo ip link set can0 up
$cansend can0 111#1122334455667788 #Random message
到目前为止,一切顺利,消息出现在另一边的监视器上。但是,如果我再次发送它,什么都没有出现,我必须将 can0 设置为向下然后再向上,以便能够发送新消息。
[编辑 2021-02-10] 正如@Lundin 所问,我使用了示波器来检查信号形状。 因此,为了解释新设置,数据由连接在 CAN 总线上的 BMS(电池管理系统)连续发送。在第一张图片上,只有这个 BMS 和一个 IXXAT CAN 转 USB 加密狗。信号非常整洁,所有数据都安全到达。在第二张图片中,我只是插入了我的 IOT-Gate-RPI 的 MCP2515 帽子,信号直接变得混乱。而且我只能像上面描述的那样发送一帧。
Compulab 在 IOT-Gate-RPI 上给出的引脚排列也是第三张图片中的引脚排列。根据图 4,你会给出哪个引脚?
1 = ? 2 = ? 3 = ? 4 = ? 5 = ? 6 = ?
非常感谢您的帮助。
最好的问候
【问题讨论】:
-
可能是消息没有得到确认?这会导致控制器停止工作。如果您的分析器有此选项,请告诉它确认消息。
-
感谢@linuxfansaysReinstateMonica 的帮助!这是个好主意,但分析器似乎确实发送了一个 ACK。 “TX-passive”选项是禁用的,如果不是这样: 硬件阻止主动访问总线的模式。确认和错误都不能终止。 canAnalyser3 只是一个监听器
-
监听软件是否跟踪错误帧?当你用示波器检查时,CAN 线上会发生什么?
-
您好@Lundin,感谢您的帮助!所以只是为了解释示波器图片,数据是由连接在 CAN 总线上的 BMS(电池管理系统)连续发送的。在第一张图片上,只有这个 BMS 和一个 IXXAT CAN 转 USB 加密狗。信号非常整洁,所有数据都安全到达。在第二张图片中,我只是插入了我的 IOT-Gate-RPI 的 MCP2515 帽子,信号直接变得混乱。而且我只能如上所述发送一帧。 link谢谢大家!最好的问候
-
Compulab 在 IOT-Gate-RPI 上给出的引脚也是这个画廊的第一张图片上的引脚:link 根据图 2,你会给出哪个引脚? '1 = ? 2 = ? 3 = ? 4 = ? 5 = ? 6 = ?'谢谢大家 !最好的问候
标签: linux raspberry-pi3 can-bus canutils