一旦程序启动,SocketCAN总线仲裁错误将增加

2024-10-03 04:31:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个项目,将通过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端的请求写入子系统

我的问题是-为什么每次python程序运行后,arbit lost都以大约5分钟的间隔递增1?这是否表明存在任何严重问题?这是否意味着数据帧丢失?如果我就让它这样,有什么关系吗?任何能够帮助回答和解释的人都将不胜感激

值得注意的是:项目开始约3天。只观察到arbit丢失,没有重新启动、总线错误、错误警告、错误通过和总线关闭。TX/RX字段中没有错误、丢弃、溢出、mcast、载波和collsns错误


Tags: 项目错误linkrootcan子系统state总线
1条回答
网友
1楼 · 发布于 2024-10-03 04:31:20

通常,您可以安全地忽略仲裁丢失的错误。这只意味着一条消息在有利于另一条消息的仲裁中失败。谢天谢地,CAN已经变得足够强大,因此“仲裁败诉者”将再次被发送

我建议如下:

相关问题 更多 >