认识can 总线错误的第一步就是了解认识can 总线协议和它的具体功能,这样才能更容易地理解can 总线是如何去发现并解决错误的。首先没有系统是完美的 ,错误难免发生,但一个优秀的系统知道如何检测错误,检查并重新发送修正后的数据。can 总线虽然也会出现错误,但却可以高效的解决错误。
在开始学习之前,我们需要先了解一下can 总线的数据帧,其如图所示。
对于标准can 数据帧而言,它有一个更详细的版本(如下图所示),它可以帮助我们了解错误位的位置和工作原理。
● 分隔符位:它们是隐性位,通常为完成一个特定动作提供时间/空间。这些位确保了在没有显性位填充的字段中,存在位转换。位转换对于恢复时间的同步是必要的,否则可能由于nrz 编码而无法实现同步。除了为同步提供时间外,分隔符在错误检测中还有一个特殊的地方,即分隔符位必须在一个预定的位置,以便保持can 帧的格式。
● crc 分隔符:crc 分隔符位给ecu 提供时间或空间来计算crc。
● ack 分隔符:一旦收到数据,接收端会向发送节点发送确认,这需要一些时间,因此使用ack分隔符。
● 位填充:一个节点在连续传输了五个相同值的位后,会在发出的位流中增加第六个相反的位。这个额外的位被接收器移除,不仅避免了总线上过多的直流分量,而且也使接收器能够检测到错误。由于这一般规则,接收器不需要关于填充位的额外信息来去掉填充。此外,填充位无法确保数据传输不被错误所破坏,它只能确保传输在正确的位置开始和结束。
can总线错误
can 总线错误共有五种不同类型的错误,这些错误可能会影响can 总线上的位传输,具体如下:
▶ 位错误:当收到的位与传输的位不一致时,每个接收数据的节点从总线上逐位读取数据,并将传输的位与接收的位进行比较,如果传输的和接收的不一样,就会发生“位错误”。
▶ 填充错误:在填充位过程中,如果总线上出现超过五个连续的同级位,就会发出“填充错 误”信号。
▶ 格式错误 :这指的是字段的固定形式,格式检查是指检查发送或接收的can 帧的标准格式,违反固定位的格式会导致格式错误。例如,crcd、ackd、eof 必须是隐性位,任何显性 位的出现将自动被视为格式错误。另外,分隔位必须出现在指定的位置,这样才能保证帧的格式,如果接收器不能在适当的位置找到分隔位,这也会产生一个格式错误帧,在这种情况下,固定形式的字段必须被重新传送。
▶ crc 错误:发送节点发送一个15位的crc 值到总线上,然后,接收节点根据它自己收到 的有效载荷计算出一个15位的数字, 它将其与作为信息的一部分收到的crc 分隔符进 行比较。如果收到的crc 与计算出的代码不一致,接收器就知道有效载荷的8个字节被损坏,或在传输过程中被修改,这被称为crc 错误。
▶ ack 错误:ack 位是一个确定的隐性1(由发送器节点传输),来自接收器的回复是一个确定的显性 0,但是如果情况不是这样,发射器没有收到回复的显性确认位, 则被称为ack 错误。
下面是asam 的can 总线错误标准表
错误帧格式
当一个节点检测到一个报文中的错误时,就会传送一个被称为”错误帧”的特殊报文,这个特殊的报文违反了can 报文的格式标准,导致所有其他节点(在网络上所连接的)也发送一个错误帧。这种有意违反can 标准的行为(即发送6个显性位)可以保证将有问题的数据或远程帧销毁,使得原来的发送器能够自动重传信息。
can-bus 的错误帧格式
▶ 错误帧:由6个显性位或隐性位组成,取决于传输它的节点的错误状态,它由可以检测到任何通信错误的节点来传输,它会导致传输的立即终止的,并在之后重新传输,不过这都是由控制器控制的,而不是应用软件。
▶ 错误标志 :总线上的每个can 控制器都会尝试检测报文中的错误,因为错误处理是内置在can 协议中的,总线上的每个can 控制器都会尝试检测报文中的错误。如果发现了错误,发现的节点就会发送一个错误标志,从而破坏了总线通信。如果使用错误计数器,can 节点不仅可以检测故障,还可以进行错误限制。
can总线的错误状态
根据具体的错误计数,由一个can 控制器处理错误状态的切换。
主动错误
一个节点在主动错误模式下启动,can 控制器承担正常状态下的主动错误。在这种状态下,can 控制器在检测到错误后发送6个显性位。当极限值低于127(tec127),节点将进入一个被称为错误被动的状态。
此外,在发送两个连续的数据或远程帧时,处于“被动错误”状态的can 控制器必须等待“暂停传输时间”(8位)。一个被动错误节点在检测到错误时将发送被动错误标志。
总线关闭
传输错误计数器上升到255以上(tec>255和rec>255),节点将进入总线关闭状态。当can 控制器发生故障或错误,累积到极限时,就会发生这种情况。在这种情况下,can 控制器将自己从can 总线上断开连接,那个特定的can 节点将从can 网络中被关闭,导致完全没有通信。
利用高分辨率透射电镜在UO2双晶中观察到了两种特殊的GBs
华为云CDN为什么能够打通数据传输阻碍?
移动五大特权来袭_你期待吗
3D打印用于航空航天工业中的好处有哪些
LeddarTech宣布3D固态激光雷达SoC芯片明年上半年批量供应
认识CAN总线错误 CAN总线错误分析与解决
智能网联将为交通出行带来广阔的发展机会
我们正式知道了今年Amazon Prime Day的日期
如何制作会说话的“金猪”储钱罐
友达光电确信司法公理正义将取得胜利
瑞典利用3D打印机开发用于机器人的微型执行器
苹果13价格大全表 苹果13售价多少
产品评测:LED日光灯1.2M T8
ZLG推出红外测温+人脸识别+身份验证系统化解决方案
疲劳试验机在机械制造业中的应用及加工优化
穿心电容是什么,它有哪些作用(二)
测土配方施肥仪的功能特点及测试项目
RelayCar应用程序正式支持增强现实体验
热导式气体传感器可以用在什么地方
FPGA的六大应用领域,你了解吗?