[MCU] 发送错误计数器到了128就不变了

[复制链接]
653|10
 楼主| supernan 发表于 2020-7-5 18:18 | 显示全部楼层 |阅读模式
使用TM4C123GH6PM芯片做有关CAN总线的应用开发,普通的收发功能都可以实现没问题,但考虑到系统可靠性的问题,想试试模拟出CAN总线上可能出现的故障模式。首先试的是CAN总线突然断开的问题,也就是TM4C单片机作为一个节点与总线突然断开了,我用了USB转CAN转换器,首先让单片机一直周期性地发送数据,我电脑通过转换器能一直接收到,然后我突然拔掉USB线。这时候通过CCS观察寄存器的值,CANSTS寄存器 是0x00000060 ,而CANERR寄存器是0x00000080.也就是说CAN模块处于被动错误状态 ,且是发送错误计数器到了128就不变了。
lium 发表于 2020-7-5 18:22 | 显示全部楼层

什么意思?不是很明白你说的什么,能再解释一下这个现象吗
chuxh 发表于 2020-7-24 18:20 | 显示全部楼层
CAN模块应该一直出错
 楼主| supernan 发表于 2020-7-24 18:28 | 显示全部楼层
并且到busoff的状态啊,但计数器到了128就不再增加了
 楼主| supernan 发表于 2020-7-24 18:34 | 显示全部楼层
BOFF位也是0.而且LEC位并没有给出上一个错误的模式
houcs 发表于 2020-7-24 18:37 | 显示全部楼层
是否可以这样理解,usb断开后,can被动错误,发送计数器累加计数,计数到128后,can自动纠正错误,重新正常发送,哪怕你接收端是离线的。
 楼主| supernan 发表于 2020-7-24 18:42 | 显示全部楼层
我设置的发送can报文的周期是20ms,拔掉usb口之后,状态寄存器和错误计数寄存器瞬间变成了上述值。错误计数不应该是慢慢变化的吗,单片机为什么错误计数累加得这么快?
morrisk 发表于 2020-7-24 18:47 | 显示全部楼层
单片机为什么自动纠错?
 楼主| supernan 发表于 2020-7-24 18:51 | 显示全部楼层
按照can协议不应该一直累加直到busoff吗?
hanwe 发表于 2020-7-24 18:54 | 显示全部楼层
你这个提问太高大上,没搞过can,只能是爱莫能助了。
 楼主| supernan 发表于 2020-7-24 18:57 | 显示全部楼层

唉,还是没有什么结果,算了,多谢大家啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

730

主题

10412

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部