CAN总线的数据链路层抗干扰机制分析
近海
|
2019.12.30
|
0
+关注

CAN总线自诞生之日起就在汽车领域得到了广泛应用,如今更是占据了车内通讯网络的绝对地位。那么到底是什么原因使得各汽车厂家纷纷采用CAN总线呢?我想除了CAN总线的结构简单、成本低廉外,CAN总线通信的可靠性是很重要的因素。CAN协议规定了物理层和数据链路层,本文就从数据链路层的角度来分析一下CAN总线的抗干扰机制。

1. 位填充

CAN总线的位填充是在以前的位填充做法的基础上发展起来的。在高级数据链路控制规程(HDLC)中用01111110作报头与报尾的标志位;在其它部分为了不致引起误解,采用每连续5个“1”之后填入一个“0”的办法,接收后将填入的“O”去掉。CAN总线不仅在连续5个“1”之后填入1个“0”,而且在5个“0”之后填入1个“1”,接收后将填充位丢掉,如下图所示。这种机制不但为报错机制(报错帧)创造了条件,而且还有两个对信号传递有利的方面:一是为CAN总线的位同步创造了较短的同步间隔,有利于提高同步精确度;二是有利于在总线上引入适时的反向放电,减少总线长期同一极性充电造成的物理层误判。

2. 总线电平回读

CAN总线发送节点能够在发送1位的同时把它从总线上读回来,其它总线则没有这个功能。这个功能提供了无损仲裁的基础,让高优先级报文获得在总线上继续传输的权力;同时,增强了发送节点尽早检测错误的能力,一旦有错就可发送报错帧并停止原来帧的发送,节省了出错后无用部分的继续传送带宽。

3. 错误约束

CAN总线对错误的检测主要是编码与解码的过程,例如bit错、填充错、ACK错、CRC错和格式错。CAN总线对瞬态故障与永久性故障采用分类的约束办法。有错时错误计数器增加快,正常时错误计数器减少慢,按错误计数器的值把节点分为主动错误状态、消极错误状态和离线状态。处于消极错误状态的节点有可能无法正确接收报文。出错过于频繁时把有永久性故障倾向的节点关闭,虽然被关闭的节点失去了通信能力,但不会影响其它节点间的通信,这不失为一种有效的故障时性能逐步退化的策略。

4. 短帧结构

报文的出错概率与帧长成比例关系,报文越长在总线上传输的时间越长,就越容易受到干扰;报文越短在总线上传输的时间越短,就越不容易受到干扰。CAN总线采用短帧报文结构,数据段只有8个字节,加上其他辅助位也不过100多位,这使得CAN报文在总线上的传输时间很短,不容易受到干扰。如下图所示为标准帧和扩展帧在总线上以1Mbps速率传输所需要的时间。

从上图看出,标准帧在总线上的传输时间最长为123us,扩展帧在总线上的传输时间最长为146us,这个传输时间比大多数协议的传输时间都要短,大大降低了报文在总线上被干扰的概率,提高了总线可靠性。

以上从数据链路层的层面分析了CAN总线的抗干扰机制,包括位填充、总线电平回读、错误约束和短帧结构等,这些措施降低了CAN报文在总线上传输时的出错概率,提高了总线稳定性的同时也提高了总线带宽利用率,为汽车电子控制系统提供了稳定可靠工作的条件。

精选留言
延伸阅读
更多报告干货
写留言
2519
阅读
收藏
回到顶部