汽车的CAN总线大致可以分为三大类,分别是:单线CAN(GM专用的低速CAN)、高速CAN(通信速率高)以及低速容错CAN(通信速率较低但容错性能好)。本文所要讲述的是低速容错CAN。在传统的分布式架构中,车身舒适CAN节点对总线通信速率没有过高要求,但为了适应车型高中低配的变化,其节点数量和组合及在车中的布置更为多样,这就更多的引入了出现故障的因素,使得低速CAN在车身舒适网段得到了广泛的应用。 为了更好的了解低速容错CAN,首先要从它的协议讲起。低速容错CAN最早被定义在ISO11519协议中,后续因为符合11898-3协议标准的样件也完全符合ISO11519-2协议的要求,同时因为11898协议应用的范围更全更广,所以在2006年ISO11519-2协议彻底的被11898-3协议所替代。ISO11898-3定义了低速容错CAN的物理层、低速容错CAN的工作机制以及容错机制的实现。 低速容错 CAN 的物理层: 与高速CAN一样,低速容错CAN也使用了差分双绞线进行传输,有CAN_H、CAN_L两线,并且在严格的工业应用场合与高速CAN一样要求使用专用的屏蔽双绞线并加必要的防护电路。 在差分电压的变化上低速容错CAN在显隐性跳转的时候CANH和CANL电压的变化是比高速CAN要大的,这意味着低速容错CAN有着更高的抗干扰性。 11898-3定义了低速容错CAN在隐性状态时,CANH为0V、CANL为5V。而当低速容错CAN要发送显性位时,CANL会跳转到1V、CANH会跳转到4V,这个时候单一条总线的电压变化为4V,而且差分电压大概也为4V(如图1),而高速CAN的差分电压为2V(如图2),同时CANH与CANL从隐性跳转到显性的时候电压的变化仅有1V,这也意味着高速容错CAN的容错性能是不如低速容错CAN的。 图1:低速容错CAN总线电压 图2:高速CAN总线电压 在低速容错CAN的物理层中,11898-3还定义了它的终端电阻是直接端接在支线上的,电阻接线如图3所示。这样做的好处是在容错机制处理部分断路故障时,哪怕会出现单线通信的情况,也会有终端电阻的存在去匹配阻抗以及减小反射(如图4所示),这样便不会因为断开CANH或CANL的单线而对样件的通信传输造成影响。 图3:终端电阻接线图 图4:容错CAN单线工作时总线拓扑图 协议中容错机制的定义 11898-3分别定义了电源故障和总线故障两种类型,而容错机制主要是对总线故障进行处理。为了应对不同的总线故障,11898-3定义了低速容错CAN需要有三种不同的收发器工作方式:差分驱动和接收、CANH单线通信、CANL单线通信,三种工作方式对应的故障检测机制分别为状态0:正常工作状态、状态E1:CAN_L故障检测、状态E2:CAN_H故障检测。11898-3定义的几种故障检测机制的故障处理流程图如下。 图5:故障处理流程图 TJA1054 实现的容错机制 通过之前的介绍,我们对低速容错CAN的物理层有了较为全面的了解,现在我们便从物理环境的实现上来讲解低速容错CAN的容错机制。在这我需要为大家介绍一款适用于低速容错CAN的收发器芯片-TJA1054。首先是这款芯片的物理环境,其结构图和引脚定义如下图所示,TJA1054在CANH及CANL两端的电阻设计满足了ISO11898-3需求,同时TJA1054设计有门槛电压,能较好的实现低速容错CAN所需求的容错机制。 图6:TJA1054芯片结构图 图7:TJA1054芯片引脚定义图 TJA105 的功能描述 TJA1054是控制器局域网 CAN 中协议控制器和 CAN 物理总线之间的接口,它主要用于客车里最高 125KBps的低速应用,这个器件对 CAN 总线提供差动发送能力,对CAN 控制器提供差动接收能力。在正常操作模式时(没有线路故障),差动接收器在管脚 RXD 输出(见图 1)。差动接收器输入通过集成的滤波器连接到管脚CANH和CANL 波器输入信号也可以用于单线接收器。接收器连接到有门槛电压(差动接收器的门槛电压为-3.2V)的管脚CANH和CANL确保在单线模式里有最大的噪音容限。 同时定时器功能(TxD 显性超时功能)已在器件中集成,它可以防止由于硬件或软件程序故障,将管脚 TXD 持续地拉成低电平,使总线线路进入持续的显性状态(这种状态会阻塞整个网络的通讯)。 如果引脚 TXD 的低电平持续并超过某个时间后,发送器会被禁用,定时器会用 TXD 引脚上的高电平复位。而低速容错CAN的容错机制则是通过故障检测器监测总线电平,在监测到其中一条总线故障后,监测器便会切换到相应的模式,模式图如下表所示。这便满足了ISO11898-3中定义的正常工作模式下的三种故障检测机制。下图便是TJA1054在不同错误状态下的接收器模式列表。 图8:TJA1054在不同错误状态下的接收器模式 对于上表中出现的三种接收器模式,我将使用表格的形式为大家进行介绍。首先是差动模式,因为TJA1054设定了差动接收器门槛电压为-3.2V,这确保了当出现下表中故障1、2、5、6a时,虽然CANH和CANL的电压会因为以上四种故障有改变,但最终差分电压Vdiff都能在隐性时小于-3.2V显性时大于-3.2V,所以不需要进行调整便能继续通信。 当出现了下表中故障4、6、7三种故障时,差分模式已无法满足总线的正常通信。TJA1054会断开CANL,则CANL会保持Vcc的电压不变,一直为5V。此时差分电压Vdiff能满足在隐性时小于-3.2V显性时大于-3.2V,实现对故障4、6、7三种故障的容错。 当出现CANH单线通信模式也无法解决的故障时,如下表故障3和3a,TJA1054会先断开CANL尝试用CANH单线通信来保持通信,但故障3和3a在此时的差分电压会一直大于-3.2V,使总线长时间处于显性状态。所以这时TJA1054会尝试保持CANL通信不变,断开CANH。此时CANH上电平始终为0V,差分电压Vdiff在总线为隐性时为-5V(小于-3.2V),显性时为-1.5V(大于-3.2),符合规范规定及使用需求,所以低速容错CAN在发生故障3和故障3a时正常通信。 总结 当前,低速容错CAN由于其通信速率的限制,其在车载领域的应用更少了,本文所介绍的低速容错CAN的物理层、容错机制以及容错机制在芯片中的实现原理,希望可以加深大家对CAN通信原理的理解。 北汇信息专注于汽车电子网络通信、诊断刷写、逻辑功能测试开发服务,期待进一步沟通交流、共享合作的机会。 图片来源: 图1:源自于ISO11898-3(2006)第9页figure6 图2:源自于ISO11898-2(2016)第5页figure3 图3:源自于ISO11898-3(2006)第5页figure3 图4:源自于网图,11898-3(2006)第19页figure11移除CANH或CANL后可以得到这个简图 图5:源自于ISO11898-3(2006)第22页figure12 图7:源自于TJA1054应用指南第3页 图8:源自于TJA1054应用指南第3页 图9:源自于TJA1054应用指南第4页简化后 参考文档: ISO11898-2(2016)、ISO11898-3(2006)、TJA1054应用指南