tag 标签: 容错

相关帖子
相关博文
  • 热度 7
    2023-2-27 10:04
    1032 次阅读|
    0 个评论
    科普系列—低速容错CAN的容错机制介绍
    汽车的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应用指南
  • 热度 31
    2014-10-19 10:55
    1501 次阅读|
    1 个评论
    汽车电子的容错处理 随着新能源汽车的逐步上路,车上EMC状况将是一个巨大挑战。软硬件方面都应采取一定的措施提高系统容错性能。下面是笔者的一些经验整理,希望能起到抛砖引玉之作用。   在实验室验证原型的时候,通常地我们只关注功能。当从原型转向产品时,我们需要更多地考虑稳定性——在极端情况下,我们可以允许车不动,但是绝不允许车乱动。 容错的定义 如果一个系统在存在故障的情况下仍然能够正确运行,那么这个系统就是容错的。 这里“正确运行”,最低要求就是系统仍然可控。当然,在某些情况下可能会导致系统性能下降——有时候这并不算是错误,而是事前控制的一种策略。   故障基本类型与检测 1)            永久性故障: 比如 MOS 管被击穿、继电器烧结等物理损坏。这一类故障通常可以在系统启动过程中被检测出来,而一旦在常规过程中发生就往往会造成系统严重错误甚至事故。检测方法常见为增加硬件回检功能,便于处理器尽早地做出动作抑制错误。 2)            间歇性故障: 常见的线束接触不良导致在振动过程中信号频繁跳变。这一类故障可以说是最为令人烦恼的。大多数情况下系统不应该随着间歇性故障频繁地切换状态,那么这就要求检测机制具有“消抖”特性。 3)            瞬时故障: 比如 ADC 在继电器动作期间采样,电源的波动导致采样偏移。这一类故障通常可以通过添加“限幅”环节进行检测。并且在大多数系统中,由于系统固有的时间常数较大,这些瞬时故障造成的瞬时错误尚未充分体现出来就已经被抑制。   容错的基本思想 1)          容错技术的实现,最基本的就是“冗余思想”,包括: 2)          硬件冗余,例如卫星上的双机备份系统。 3)          时间冗余,“消抖”处理也可以认为是一种时间冗余措施。 4)          信息冗余,例如将系统状态变量保存到多个不同的 RAM 地址,并在使用前先进行数据对比、筛选。 5)          程序冗余,例如在 ROM 中放置一套备用程序。当引导模块检测到主程序异常时就尝试切换至备用程序。   容错技术 1)          数据校验: 如同 RAM 存储器中常见的奇偶检验、 ECC 校验技术一样,我们也可以在软件中对关键变量生成相应的校验码(甚至是纠错码)。每次对关键变量的访问都需要处理校验码,虽然增加了 CPU 负担,但是可以获得很好的系统稳定性。 2)          多样本比较:通过不同的通道(途径)采集同一数据,并比较这些数据的一致性。 3)          多版本仲裁:通过不同的算法或者模块去计算同一输出,并比较这些输出的一致性。 4)          过程监控:适用于那些具有相对固定控制流的系统。该方法类似于“令牌”法则,前一个控制节点向后传递“令牌”,后一个控制节点收到正确的“令牌”后才能执行动作。 5)          周期自检:也就是系统周期性的停机挂起,然后检查错误,并恢复运行。 6)          错误捕获:通过硬件或者软件,在那些看似不可能出现错误的地方(逻辑不可达到)放置监控模块。以便当这些错误发生时可以向上报告异常,并尝试恢复正常的时序。   =========================== NO MORE =================================  
  • 热度 21
    2013-8-6 14:39
    1868 次阅读|
    7 个评论
      阅读电子工程专辑网站的邮件新闻,《 施工意外挖断2根光缆 微信宕机危机叩问 》,   7月22日,微信宕机.....,第一段内容就引起关注。   一看到“微信宕机”,立刻反映:这是必然会发生的!尤其是时下重利润、轻品质普遍意识和行为,愈演愈烈。   从质量保证角度看,关键是事前受控?还是事后挽控?论“钱”,就是先投资?还是后补偿(赔偿)?   其实,都是增加了成本,最终都是消费者买单。   这看似偶然的一件事,就质量保证而言,太多令人联想了......电子产业及信息化何去何从?   首先,联想到的是Internet的起源,我查阅了《羊城晚报》1995年12月10日星期日第十版,题为“Inernet走进中国”,文中写道Inernet的起源,如下图,红色圈内容。   试想,微信系统是不是也要建立容错系统?如果是,消费者是不是会接受提高售价?   自然,联想到如今互联网商业化了,当然经济利益最大化为第一,至于安全,就得过且过吧。   其实,容错系统,消费者日常都会接触到而使用了,当然售价高也必须接受,就是银行。   很多年来,聊天,话题到存钱取钱,对方往往会问:怎么手续费什么的都回贵了?   我的简要回答就是,现在电子化了,金融设备不是一台就够了,同时而且异地还要有至少2台,就是保证系统不能瘫痪。   噢...哦...O...   再联想如今的质量保证意识和行为,前面提到了是之前还是事后?   普遍是后者,用最低成本制造产品,然后销售给承诺——包换、保修(甚至终身,你信吗?),接着是所谓4S专业修理——都是打包大换,费用昂贵,你不想修吗?紧接着推出更新换代——不如在买个多功能智能化的最新款吧!(殊不知年年都在更新换代)。   再想想,微信宕机了?INternet没有啊,还能用别的啊?不行啊!如今网络服务产品制造和供应商都最大程度地把客户端给绑住,所以现在插件泛滥。其实,这也是一举两得的企业利益最大化,一是,消费者必须用;二是调用了消费者电脑资源。   。。。。。。
相关资源