Firefly开源社区

标题: CAN通信经常收到错误帧 [打印本页]

作者: 翁金平    时间: 2022-6-6 15:07
标题: CAN通信经常收到错误帧
本帖最后由 翁金平 于 2022-7-11 17:13 编辑

与电机控制器通信经常出现错误帧,打印如下:
[ERROR] [1654498195.150578337]: Received error frame: 20000088#0000020000000052
[ERROR] [1654498195.151746160]: Received error frame: 20000088#000002000000005b
[ERROR] [1654498195.152665568]: Received error frame: 20000088#0000020000000064
[ERROR] [1654498195.153192021]: Received error frame: 20000088#000002000000006d
[ERROR] [1654498195.153864890]: Received error frame: 20000088#0000020000000076

CAN详细信息如下:
3: can1: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/can  promiscuity 0
    can state ERROR-WARNING (berr-counter tx 0 rx 0) restart-ms 0
          bitrate 500000 sample-point 0.850
          tq 100 prop-seg 8 phase-seg1 8 phase-seg2 3 sjw 1
          rockchip_can: tseg1 1..16 tseg2 1..8 sjw 1..4 brp 1..128 brp-inc 2
          clock 100000000numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535

收到错误帧后can state 由ERROR-ACTIVE变为ERROR-WARNIN,通信波特率500k。
用研华工控机CAN设备控制都是正常的没有错误帧。


tchip_askquestions

log.txt

2.85 KB, 下载次数: 3, 下载积分: 灯泡 -1 , 经验 -1

candump-2022-07-11_090825.rar

3.67 KB, 下载次数: 0, 下载积分: 灯泡 -1 , 经验 -1


作者: Liuth    时间: 2022-6-6 15:50
去年的固件can时钟频率不足,换今年的固件试一下
作者: 翁金平    时间: 2022-6-6 15:58
Liuth 发表于 2022-6-6 15:50
去年的固件can时钟频率不足,换今年的固件试一下

请问今天的固件时钟频率是多少
作者: 翁金平    时间: 2022-6-6 18:01
Liuth 发表于 2022-6-6 15:50
去年的固件can时钟频率不足,换今年的固件试一下

换了新固件,时钟显示200m
3: can1: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/can  promiscuity 0
    can state ERROR-WARNING (berr-counter tx 0 rx 0) restart-ms 0
          bitrate 500000 sample-point 0.875
          tq 250 prop-seg 3 phase-seg1 3 phase-seg2 1 sjw 1
          rockchip_can: tseg1 1..16 tseg2 1..8 sjw 1..4 brp 1..128 brp-inc 2
          clock 200000000numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
但还是不断打印这个错误
[ERROR] [1654509526.782943988]: Received error frame: 20000088#000000000000002d
[ERROR] [1654509526.783218161]: Received error frame: 20000088#0000000000000036
[ERROR] [1654509526.783452958]: Received error frame: 20000088#000000000000003f
[ERROR] [1654509526.783655088]: Received error frame: 20000088#0000000000000040
[ERROR] [1654509526.783852259]: Received error frame: 20000088#0000000000000051
[ERROR] [1654509526.784058764]: Received error frame: 20000088#0000000000000052
作者: dengkx    时间: 2022-6-7 09:56
请问出现错误帧的接收频率是多少?
作者: 翁金平    时间: 2022-6-7 09:59
dengkx 发表于 2022-6-7 09:56
请问出现错误帧的接收频率是多少?

错误帧20000088对应的应该是
#define         CAN_ERR_BUSERROR   0x00000080U /* bus error (may flood!) */
#define         CAN_ERR_PROT   0x00000008U /* protocol violations / data[2..3] */
重启CAN后会正常几秒,后面频率越来越高 最后全部都是错误帧,收不到其他数据。
作者: dengkx    时间: 2022-6-7 10:35
翁金平 发表于 2022-6-7 09:59
错误帧20000088对应的应该是
#define         CAN_ERR_BUSERROR   0x00000080U /* bus error (may flood!) */
...

你接收到错误帧时,can的发送频率是多少?1K?还是2K?
作者: 翁金平    时间: 2022-6-7 15:00
dengkx 发表于 2022-6-7 10:35
你接收到错误帧时,can的发送频率是多少?1K?还是2K?

没明白什么意思,总线上大概每秒20条报文,总线占用率很低
作者: dengkx    时间: 2022-6-7 16:00
本帖最后由 dengkx 于 2022-6-8 17:21 编辑

用这
作者: dengkx    时间: 2022-6-7 16:05
等等,传错了

作者: dengkx    时间: 2022-6-7 16:12
出现这些错误的数据只特定的吗?还是随机数据?我好复现一下
作者: 翁金平    时间: 2022-6-7 16:27
dengkx 发表于 2022-6-7 16:05
等等,传错了


作者: 翁金平    时间: 2022-6-7 16:30
dengkx 发表于 2022-6-7 16:05
等等,传错了


作者: 翁金平    时间: 2022-6-7 16:38
dengkx 发表于 2022-6-7 16:12
出现这些错误的数据只特定的吗?还是随机数据?我好复现一下

看起来是随机的 方不方便微信沟通 项目比较急
作者: 翁金平    时间: 2022-6-7 17:08
dengkx 发表于 2022-6-7 16:12
出现这些错误的数据只特定的吗?还是随机数据?我好复现一下

暂时测不了了,刚刚板子上电完全起不来了
作者: dengkx    时间: 2022-6-8 09:39
500K用can输入时钟改成150M,用ip -details link show can0看一下有没有500K,如果没有:
--- a/arch/arm64/boot/dts/rockchip/rk3568.dtsi
++ b/arch/arm64/boot/dts/rockchip/rk3568.dtsi
@ -869,7 +869,7 @
<250000000>, <125000000>,
<100000000>, <62500000>,
<50000000>, <25000000>,
- <1188000000>,
<1200000000>,
<150000000>, <100000000>,
<500000000>, <400000000>,
<150000000>, <100000000>,
把这个改一下再看。
作者: dengkx    时间: 2022-6-8 11:04
时钟200M,波特率500K,使用分析仪测试,没发现问题,或者你发一下回放文件给我们
作者: 翁金平    时间: 2022-7-11 17:14
dengkx 发表于 2022-6-8 11:04
时钟200M,波特率500K,使用分析仪测试,没发现问题,或者你发一下回放文件给我们

你好 寄修返回了 我把candump日志上传了 麻烦分析下
作者: 翁金平    时间: 2022-7-11 17:18
翁金平 发表于 2022-7-11 17:14
你好 寄修返回了 我把candump日志上传了 麻烦分析下

目前波特率改为了250k 时钟200M
3: can1: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/can  promiscuity 0
    can state ERROR-WARNING (berr-counter tx 0 rx 0) restart-ms 0
          bitrate 250000 sample-point 0.875
          tq 250 prop-seg 6 phase-seg1 7 phase-seg2 2 sjw 1
          rockchip_can: tseg1 1..16 tseg2 1..8 sjw 1..4 brp 1..128 brp-inc 2
          clock 200000000numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
作者: 翁金平    时间: 2022-7-12 11:41
dengkx 发表于 2022-6-8 11:04
时钟200M,波特率500K,使用分析仪测试,没发现问题,或者你发一下回放文件给我们

请问还在吗,问题能不能复现




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1