【发布时间】:2021-10-07 11:40:09
【问题描述】:
我正在做一个项目,它将通过 CAN 总线连接多个子系统(传感器、控制器等)。我正在使用 SocketCAN 并且设置如下:
root@ngtianxun-desktop:~# ip -details -statistic link show can0
5: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP mode DEFAULT group default qlen 10
link/can promiscuity 0 minmtu 0 maxmtu 0
can state ERROR-ACTIVE (berr-counter tx 0 rx 0) restart-ms 10
bitrate 500000 sample-point 0.600
tq 100 prop-seg 3 phase-seg1 8 phase-seg2 8 sjw 4
RDC_CAN: tseg1 5..16 tseg2 3..8 sjw 1..4 brp 2..131072 brp-inc 2
clock 20000000
re-started bus-errors arbit-lost error-warn error-pass bus-off
0 0 337 0 0 0 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
RX: bytes packets errors dropped overrun mcast
27841616 3498429 0 0 0 0
TX: bytes packets errors dropped carrier collsns
9504120 2357958 0 0 0 0
root@ngtianxun-desktop:~#
已编写 Python 脚本以持续监控子系统并根据 python 端的请求写入子系统。
我的问题是 - 为什么我看到 arbit-lost 在我的 python 程序运行后以大约 5 分钟的间隔每次递增 1?它是否表明任何严重的问题?这是否意味着数据帧丢失了?如果我让它这样,有什么担心吗?任何可以帮助回答和解释的人将不胜感激!
值得注意的是:这些计划大约开始了约 3 天。仅观察到仲裁丢失,没有重新启动、总线错误、错误警告、错误通过和总线关闭。并且TX/RX字段中没有errors、dropped、overrun、mcast、carrier、collsns错误。
【问题讨论】:
标签: python linux embedded-linux can-bus socketcan