找回密码
 立即注册
查看: 11|回复: 1

关于Can总线的错误求教

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-09-18 09:56:15
已绑定手机

1

主题

0

回帖

11

积分

新手上路

积分
11
发表于 2 小时前 | 显示全部楼层 |阅读模式
各位大神,我在使用stc32g12k128做can总线,有一些关于寄存器的问题求教大神,还请不吝赐教。
1. 我看到ECC寄存器是总线错误寄存器,请问下这里面的8个位对应的错误,是否只要有一个置位了,就会反映到ISR寄存器的BEI位上来表征总线的错误吗?
2. ISR寄存器的EPI位是“CAN模块被动错误中断”,这个被动错误是在什么时候发生的,那主动错误的时候是否有对应的标志吗?
3. 我在做CAN数据发送的时候,通过写TXBUFF来进行数据的填写,但是从填写到发送完成是有一定的时间的,所以我去检测SR寄存器的TBS来确认是否可以写TXBUFF,而不是通过发送完成标志TI来检测,这样是否可以?
4. RXBUFF的大小是64字节,这个64字节是CAN1和CAN2共享的还是两个CAN各自有64字节的RXBUFF?
5. 对于CAN发送和接收过程中会发生各种错误,STC是否有针对不同错误的处理的建议?

感谢大神指教。
回复

使用道具 举报 送花

3

主题

1968

回帖

784

积分

等待验证会员

积分
784
发表于 2 小时前 | 显示全部楼层
您好,感谢您对STC32G12K128 CAN总线使用过程中的深入提问。以下是对您提出的五个问题的专业解答,供您参考:

1. 关于ECC寄存器与ISR寄存器BEI位的关系

ECC(Error Code Capture)寄存器用于记录CAN总线通信过程中发生的错误类型,其8个位分别对应不同的错误源,例如位错误、填充错误、CRC错误等。当任意一个错误发生并被ECC寄存器捕获后,CAN控制器会将ISR寄存器中的BEI(Bus Error Interrupt)位置1,表示总线错误发生。因此,只要ECC中任意一位被置1,BEI位就会被置位,作为总线错误中断的标志。

2. ISR寄存器中EPI位与主动错误标志

ISR寄存器中的EPI(Error Passive Interrupt)位用于指示CAN控制器进入了“错误被动”状态。根据CAN协议规范,当CAN控制器的错误计数器超过一定阈值(通常为127)时,其状态会从“主动错误”切换为“错误被动”状态,此时控制器不再主动发送错误帧,仅能被动响应其他节点的错误帧。

在“主动错误”状态下,CAN控制器会发送主动错误帧,但协议并未定义专门的“主动错误中断标志”。因此,只有当进入“错误被动”状态时,EPI位才会被置位,并可触发相应的中断。通过监测EPI位,可以间接判断是否发生过频繁的错误事件。

3. 使用TBS位判断发送缓冲区是否就绪

在使用CAN发送数据时,TXBUFF是用于暂存待发送帧的数据缓冲区。由于CAN总线的异步特性,写入TXBUFF后并不立即发送数据帧,而是由CAN控制器按总线仲裁机制进行发送。

为了确保数据写入的完整性,建议通过检测SR寄存器中的TBS(TX Buffer Status)位来判断当前发送缓冲区是否空闲。当TBS=1时,表示缓冲区可用,可以安全写入新帧;当TBS=0时,表示缓冲区正被使用,不应再次写入。

相比TI(Transmission Interrupt)位,TBS位更适合用于判断缓冲区状态,而TI位用于确认帧是否已成功发送完成。因此,您在发送前使用TBS位检测缓冲区状态是合理且推荐的做法。

4. RXBUFF的分配机制

STC32G12K128的CAN模块支持双通道(CAN1和CAN2),其接收缓冲区RXBUFF的大小为64字节。根据STC官方手册说明,该64字节的接收缓冲区是CAN1和CAN2并非共享的,各自独立拥有64字节。

5. STC对CAN通信中各类错误的处理建议

在CAN通信过程中,可能会发生多种错误,包括但不限于位错误、填充错误、CRC错误、应答错误等。STC32G系列芯片提供了丰富的错误状态寄存器(如ECC、ISR、TXERR、RXERR等)用于错误检测与诊断。

针对不同类型的错误,建议采取如下处理策略:
总线错误(BEI置位):应检查总线连接、终端电阻、波特率配置等物理层因素。
错误被动(EPI置位):说明错误计数已较高,需检查节点通信状态或进行复位处理。
发送错误(TXERR值上升):可能由于总线冲突或节点未正确响应导致,建议检查节点应答机制。
接收错误(RXERR值上升):可能由总线干扰或波特率不匹配引起,建议优化总线环境或重新校准波特率。

如需进一步技术支持,建议参考STC官网提供的技术文档或联系官方技术支持团队。希望以上解答对您的开发工作有所帮助,祝您项目顺利!

[本文内容由国芯人工智能辅助生成,仅供参考]
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-9-18 12:20 , Processed in 0.102402 second(s), 51 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表