本人在用SJA1000做工业网络时遇到了一个问题,几个月来还是想不明白。
我用ARM做了一个以太网转CAN的集线器,ARM下面接了1个MAC和6个SJA1000。
在通信过程中,我的SJA允许两2-3天后,工作不正常了!!症状如下:
1.该SJA1000收一个数据包后把该包转发给服务器,服务器发回握手包,通过这个SJA1000发送给目标节点;这个过程花了1-2秒钟。
2.如果通过其他5个SJA1000进行通信,速度正常,大约10ms左右整个通信完成
3.我读取了这个不正常的SJA1000的接收、发送错误计数器,都为0,说明仍然处于主动错误状态。
4.我通过软件复位这个SJA1000,问题依旧。
5.我通过硬件复位这个SJA1000,问题依旧。
6.我重新启动这个设备,一切正常。
总结:
1.两三天下来,该CAN的通信数据包估计有200万左右,一般情况下,测了好几次,通信久了都出现这个问题。
2.读取发送和接收错误寄存器,都是0,说明该SJA1000仍然处于主动错误状态。
3.硬件复位、软件复位,该SJA1000故障仍然,只能重新上电才正常。
4.会不会是SJA1000本身质量问题?朋友们有没有遇到类似问题呢,我百思不得其解。
如果说是软件问题(内存泄露),但也觉得不可能,其他5个都可以正常工作。
5.补充,各个SJA1000都会出现这个问题 |