当前位置:首页 > 问问

can异常是什么意思 “CAN总线异常解析”

1、CAN总线简介

CAN(Controller Area Network)总线是一种常用于嵌入式系统中的串行通信系统。其中,CAN总线通过双线结构实现节点间的通信。节点可以是传感器、执行器或者控制器等设备。由于CAN总线具有高速通讯、高可靠性、抗干扰性强等特点,因此在汽车电子、航空航天、工业自动化等领域被广泛应用。

2、CAN异常码简介

CAN节点在通信过程中可能会出现异常情况,此时可以通过异常码来指示异常情况类型。CAN总线的异常码分为错误帧和错误通知帧两种类型。其中,错误帧指出数据传输时出现错误,如格式错误、CRC校验错误、位错误等。错误通知帧则指出总线处于错误状态,如总线仲裁失败、总线错误等。

在CAN通信中,控制器会在特定条件下生成错误帧并发送到总线上,具体来讲,当以下情况发生时会生成错误帧:

(1) 校验和出现错误;

(2) ACK槽位(用于传输唤醒码)未被正确发送和接收;

(3) 重传计数器超过阈值(通常为128);

(4) 接收器未收到有效数据或仲裁场信号;

控制器生成错误通知帧的条件包括:错误帧出现次数达到阈值、总线上检测到错误(如总线被短路)等。此时,所有节点都会接收到错误通知帧,并根据其中的错误码进行相应操作,以保证系统的正常运行。

3、CAN异常码的种类

CAN异常码包含两种:指示错误帧的传输错误码和指示错误通知帧的错误状态码。

在标准CAN2.0B协议中,错误帧的传输错误码包括:

(1) 0x00 无错误;

(2) 0x01 传输错误(未完成数据传输);

(3) 0x02 报文丢失错误;

(4) 0x03 位错误;

(5) 0x04 校验错误;

(6) 0x05 丢弃错误(错误计数到达上限);

(7) 0x06 错误帧。

而错误通知帧的错误状态码包括:

(1) 0x00 通讯结束,无错误;

(2) 0x01 发生总线仲裁错误;

(3) 0x02 数据丢失错误;

(4) 0x03 错误的控制器应答;

(5) 0x04 错误的控制器状态;

(6) 0x05 错误的报文;

(7) 0x06 保留(错误状态码不使用);

(8) 0x07 错误的通讯。

4、CAN异常码的处理方法

当CAN总线出现异常码时,需要进行相应的处理以保证系统正常运行。具体处理方法如下:

(1) 首先需要根据异常码类型确定异常原因,如是数据传输错误还是总线状态出现问题等。

(2) 根据异常原因进行针对性的处理,如进行数据重传、休眠唤醒、重新初始化等。

(3) 在异常处理完成后,需要将错误计数器清零,以避免异常码的积累导致系统崩溃。

总的来说,对于CAN异常码的处理需要具有一定的技术功底和相关经验,因此建议在处理异常码时应该寻求专业技术人员的帮助,以提高系统运行的稳定性和可靠性。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com
标签:

  • 关注微信

相关文章