CAN总线的功能安全问题

发布者:数据之翼最新更新时间:2014-03-08 来源: 21ic关键字:CAN总线  功能安全  错帧漏检 手机看文章 扫描二维码
随时随地手机看文章
引言
    ISO26262道路车辆的功能安全国际标准已经通过。车企实施这项标准是自利的事,因为可以减少出事故后的赔偿损失,同时也是争取客户的竞争手段之一。所以,回顾已有的实践是非常必要的。参考文献指出,ISO26262强调了安全的管理与安全的文化理念。安全不再仅是一种事后的风险评估,他还建议用参考文献系统原理性过程的风险分析方法(system theoretic processhazard analysis method)实施ISO262 62。在这种方法中人、组织、机器等相互之间信息传递出错的过程及其风险都要加以评估。作为车辆控制设备间的信息传递,当前的车辆中主要是CAN总线,CAN总线帧的丢失、错帧漏检、送达次序的错误、超过时限等带来的风险均应定量地分析。
    笔者在本刊就CAN总线的隐患发表过若干文章,简单地讲,主要有2个致命的隐患:非常大的错帧漏检率,比Bosch公司声称的大几个数量级;由于协议规则间的不匹配,连续出错造成的等效离线,可能的持续时间很长。这2种错误单独发生就会影响安全性,如果连着发生风险就更大:发生第1个故障时应用会收下错误的原始数据,接着发生的第2个故障将阻断数据刷新,从而使应用的错误持续一段时间,造成系统的安全事故。

1 错帧漏检造成的值域失误
   
图1是发生位错(bit flip)而产生错帧漏检的2个例子,具体构造方法可见参考文献。它们都满足差错Ec=U·G,其中G是CAN总线的CRC生成多项式G=(110o,0101,1001,1001)。图中,Ec=U·G=(1000,0010,0001,1100,1110,1001)。由于Ec是G的倍数,所以CRC检验不出错。


    构造错帧漏检的例子时,第1个1的作用是确保填充规则在第6位后发生,这个1既可以是发生在DLC中的代码,也可以视为数据域中填充进来的1。所以它的值可以不考虑作Tx与Rx的值。在此种情况下,如果第1个位错发生在Tx的第2位,收到的Rx值将是Tx的33倍,或者1/33。如果将第1次位错发生在1后面几位,Rx值也会比Tx变化很多倍。


2 等效离线发生的概率
   
等效离线的发生有3个条件:①节点已经在消极报错状态(error passive status);②该节点发生了局部错;③由于在消极报错帧分界符内遇到其他节点挂起待发帧的发送而造成连续出错。要考虑的是由于误码而报错的概率与处于总线峰值负载的概率。
    消极报错帧规定:在发送连续隐位时读回6个连续的相同位时视为报错标志发完,然后开始发隐位,读回隐位时作为消极报错帧分界符开始,开始后必须有连续7个隐位,如内又有显位,就作为新错,节点要重发消极报错帧。
    对于消极报错发送节点,发生局部错的位置有2种。在ACK分界符前时,消极报错标志的连续隐位会被接收节点以填充规则检验、CRC检验发现有错,引起接收节点报错。它们的主动报错帧的连续6个显位决定了发送节点消极报错帧报错标志结束时间的同步,不会发生分界符内出错的情况。
    在ACK及分界符后到EOF第3位间有局部错时,消极报错标志(P.E.Flag)的6个隐位会被接收节点认为是正常的发送帧结尾部分和2位服务间隔(I.M.)。别的节点所发新帧开始位(SOF),将落入发送节点消极报错帧分界符(P.E.Del)内,形成新错,如图2所示。发送节点新的消极报错帧将在新帧的ACK分界符处开始。然后,只要有挂起待发帧,这种出错状态就重复下去。而EOF第4~7位发送节点发的消极报错帧由于未见到连续的6个相同位,发送节点要等待别的节点所发新帧的ACK分界符处开始才有机会见到,等同于在ACK分界符处开始的消极报错帧。由此可知,产生等效离线错误的位置数为9位,其概率为9·BER。[page]


    在消极报错状态的发送节点遇到16次重复错后,会进入真正离线状态,所以要求取有16帧挂起待发的机会。这与ECU的设计有关,较难分析。我们以仿真来求取,底盘CAN总线系统内一般有6个节点,约有60个左右的消息要传送,则每个节点平均有10条消息,假定周期为10 ms、20 ms、50 ms、100 ms、1 000 ms等各有2条,每条帧长为97位,在500 kbps下6个节点的总线负载率总计43.4%。当一个节点等效离线后,还有约50条消息要发。在时钟差的影响下,可以构成一个峰值,节点在相对频差-0.2、0.4、0.6、0.8×100 ppm下的仿真结果如图3所示。其中队长度每0.2 ms统计一次,累计出该队长在整个仿真时间内的出现次数。


    为了便于ECU编程,采样与写CAN总线控制器在一个任务中完成,所以假定10条消息在4 ms内就绪。仿真开始时是最坏情况:所有节点同时开始写CAN总线控制器任务。在上述频差下,节点1、2经500 s差10 ms,也就是说2个节点的10ms周期的消息就绪时间又重合了,其他节点与节点1的组合各为250 s、166 s、125 s。由于较长周期消息对挂起队长的影响较小,所以仿真的时段取得较短。以600 s的结果计算,挂起长度为16以上的情况有3 590次,占600 s内传送的1.2×10-3。需要特别注意的是,挂起队长的分布不是均匀的,因此处于等效离线而转为真正离线的机会也不是均匀分布的。由上述仿真60 s、600 s的结果看,挂起长度为16以上的情况都是3 590次,如果在最坏情况60 s内遇上了的机会便是1.2×10-2。如果在最坏情况6 s内遇上挂起长度为16以上的情况有1 005次,机会便是3.3×10-2 。

    图中队长度18的出现数比队长度17次的多,解释如下:虽然每个18队都要经过17队而下降,但是处于18队时仍可能增长到19队或更长,它们退下时又要经过18队状态。而在某时,由于同时就绪的消息多于2个,所以使队长度直接由小于17而跳到18,从而使18队的出现次数多于17队。
    于是,消极报错发送节点发生等效离线而进入真正离线的概率是P=BER×9×1.2×10-3 ,其中BER为误码率。这是一个乐观的估计。
    对消极报错接收节点,发生在帧内任一位的局部错均可能产生类似的情形,即消极报错帧分界符内遇到其他节点挂起待发帧的发送,造成再出错的情形。假定帧长为135位,那么其等效离线的概率是P=BER×1 35×1.2×10-3。

3 离线的时间
   
发生等效离线的节点不再能发送,所以应扣除消息源是该节点的那些帧。此时的分析方法可以参考CAN总线的传统调度分析方法,最坏的情况是最低优先级消息的送达时间。这样分析的结果与应用的具体配置有关,对每一个节点是不同的。
    假定挂起待发的消息有4字节数据,采用11位ID,平均填充位取8位,再加3位服务间隔,那么16帧导致的等效离线为16×(84+3)=1 392位,真正离线的时间为128帧,最坏情况为帧间有10位的空闲。所以真正离线将有128 x(84+3+10)=12 416位。二者相加,消极报错发送节点出错后会有总计13 808位的不能服务的时间,在500 kbps速率下,这相当于27.6 ms。如果采用29位ID,填充位也增加,帧长变为105位,此时消极报错发送节点出错后不能服务的时间将达34.5 ms。有的车采用250 kbps速率,那将有69 ms不能服务的时间。[page]

4 2个隐患在应用上的影响
   
隐患实际发作时就表现为系统内的故障。
4.1 错帧漏检的影响
   
在单一接收节点的情况下,错帧传递的信息值域的变化很大,有些应用算法加有绝对值的限幅器,或者变化速度的限幅器,可以减少这一故障的危害性。但是这些措施有时是不可行的,或者以降低系统的动态性能为代价,显然是应用设计部门不希望的。
    在有多个接收节点的情况下,这一故障就造成数据完整性问题,例如在油门、离合器和刹车系统中油门的开度有不同的解释,系统就难以协调工作。
    在冗余系统中,如果没有表决机制,就可能收下错误的数据,就必须增加软件及时间资源来解决问题。
4.2 离线的影响
   
如上所述,消极报错发送节点出错后不能服务的时间将达34.5 ms,这在一些应用中是不能接受的,例如电子稳定控制系统(ESP)中,Bosch ESP8要求信号更新周期最小20 ms。消极报错接收节点出错后不能服务的时间较短,但是其发生的概率远大于消极报错发送节点出错后不能服务的概率(15倍),其影响尚未充分研究。
    车辆以100 km/h速度运行时,延迟34.5 ms开始刹车意味着已运动0.94 m,对驾驶员来说是不能接受的。2010年丰田公司Prius的刹车能量回收软件有0.06 s延迟,造成刹车距离长了0.6 m,进行了召回。
4.3 2个故障先后发生
   
应用收下了一个错误的数据,然后又发生了第二个故障,无法改正第一个错误,就非常危险。例如向内道运动时转向角是5°,但是由电动助力转向ECu发往ESP-ECU的帧被读错为30°,则ESP帮助实现30°转向,如ESP-ECU或电动助力转向ECU发生离线故障,34.5 ms内仍保留这30°的错误命令,就会冲向隔离带或对方车道。
    下面分析其概率:假定总线工作于500 kbps,总线负载率为40%,平均帧长为100位,那么每小时送7.2×106帧。笔者对参考文献作了新的修正,得到错帧漏检概率为Pud=1.67×10-7,仍比Bosch的(Pud=4.7×10-11)高几个数量级,与Tran的结果相近(Pud=1.3×10-7)。
如考虑通道错概率=0.001(它考虑了误码率的不均匀分布,例如每1000帧错1帧),那么可算出残差率为Pres=1.67×10-10。可算得第1个故障造成的失效率Pfailure1=1.2×10-3/h。当ber=0.001时第2个故障出现的概率P2nd=1×10-5,造成的失效率为Pfailure2=72/h。由此推断2个故障先后出现时的失效率Pfailure1+2=1.1×10-3/h。
    CAN总线已经使用于安全攸关的系统中,例如电子稳定控制系统(ESP)。按照道路车辆的功能安全国际标准ASIL-C的要求,系统的故障率应小于10-7/h。这包括许多可能失效的因素,例如传感器失效、CPU失效、接插件失效、电源失效等,甚至镙钉未拧紧。通信系统分配的份额一般为1%,即要求达到小于10-9/h。由表1可知,错帧漏检与离线的故障都达不到。即使在ESP中,因连续发生2种故障而产生失效的概率也相当大,只有在误码率小于10-4的情况下才能达到安全要求。实际的车内环境很差,有的车厂为了节省费用,对电磁干扰源头处理就不足,干扰可能引起较大的误码率。还有车外环境的影响,高压线、大功率电台、雷达站等附近的干扰就大。这都可能造成误码率大于10-4,使系统失效。

5 软件补丁方案实现难点
   
在参考文献中提出过添加额外的CRC检验来改善错帧漏检,对已有的应用难以执行。它要占用数据域,由应用软件生成和检验,这要耗费一定的时间,检验出错误后要另外发帧通知别的节点,以及要求重发。所有节点为取得一致性都得有计时器,大大延迟整个接收过程。出错重发的时间也大于原CAN总线的时间,破坏了原调度分析的结果,因此需要重新进行认证。
    已有的应用已经采用8字节数据的,就需要拆分成2帧。需要增加标识符,这要在接收节点增加或修改滤波的设置,还要增加合并机制。这都增加了软件工作及其正确性的验证工作,特别是涉及不同厂家的ECU时就更复杂了。
    对等效离线问题,除了修改消极报错帧分界符长度外,还可以用完全取消消极报错状态的方法:例如用市售CAN总线芯片出错计数器达到96时的中断,由应用决定如何修改工作模式。新的模式可以是认为通信已失效,便进入降额使用状态,同时复位通信,等一段时间再投入正
常运行。这种方案是将离线的时间变为常量,并让应用知道。它并没有减少离线的概率,只是可能减少一次离线的时间。
    这种方案的问题是,从开始降额到实现降额的过程并不安全(没有刹车,车并不立即降速)。另外,频繁地在正常/降额模式间切换会引起消费者的不安,失去对车可靠性的信任感,对车厂是极为不利的。
    由此可见,软件补丁的方案对现有车的改进极为有限。
    以上分析的CAN总线隐患完全是协议设计不周造成的,因此协议要改。把CAN总线的优点继承下来,物理层仍可沿用,线缆也不用改,甚至印刷版都不用改,用到安全攸关的场合仍可能是合适的。

关键字:CAN总线  功能安全  错帧漏检 引用地址:CAN总线的功能安全问题

上一篇:RFID技术在农产品流通环节监控中的应用
下一篇:基于FlexRay的媒体接入控制设计

推荐阅读最新更新时间:2024-05-02 23:00

CAN总线接口电路原理及设计注意事项
  CAN 总线是一种有效支持分布式控制和实时控制的串行通信网络,以其高性能和高可靠性在自动控制领域得到了广泛的应用。为提高系统的驱动能力,增大通信距离,实际应用中多采用 Philips 公司的 82C250 作为CAN控制器与物理总线间的接口,即CAN收发器,以增强对总线的差动发送能力和对CAN控制器的差动接收能力。为进一步增强抗干扰能力,往往在CAN 控制器与收发器之间设置光电隔离电路。典型的CAN总线接口电路原理如图1所示。   图1   典型的CAN总线接口电路原理图 1 接口电路设计中的关键问题 1.1 光电隔离电路   光电隔离电路虽然能增强系统的抗干扰能力,但也会增加CAN总线有效回路信号的传输延迟时
[嵌入式]
基于CAN总线控制器82527实现智能节点的软硬件电路设计
引言 CAN(Controller Area Network,控制局域网)属于工业现场总线,是德国Bosch公司20世纪80年代初作为解决现代汽车中众多的控制与测试仪器间的数据交换而开发的一种通信协议。1993年11月,ISO正式颁布了高速通信控制局域网(CAN)的国际标准(ISO11898)。CAN总线系统中现场数据的采集由传感器完成,目前,带有CAN总线接口的传感器种类还不多,价格也较贵。本文给出一种由8051单片机和82527独立CAN总线控制器为核心构成的智能节点电路,在普通传感器基础上形成可接收8路模拟量输入和智能传感器节点。 1 、独立CAN总线控制器82527介绍 82527是Intel公司生产的独立CAN总线控
[单片机]
基于<font color='red'>CAN总线</font>控制器82527实现智能节点的软硬件电路设计
如何为下一代电动汽车创建安全可靠的电路
在电动化和自动化程度更高的车辆中建立可靠电路保护的设计注意事项。 图1。在混合动力电动汽车电气结构中,车载充电器必须与交流电源线及其可能产生的过载和瞬态过压相匹配。(Littelfuse) 图2。车载充电器框图和推荐的保护和功率控制器件。(Littelfuse) 图3。用于保护CAN总线的TVS二极管阵列。(Littelfuse) 为电动车辆设计电路极具挑战性。 为了确保能够承受过载,瞬态和静电放电(ESD)的可靠和安全设计,设计人员需要确保其电路具有必要的器件以防止损坏。 本文以车载充电器为例,提出了电路保护和高效功率控制的建议。 如图1示意图所示,对于必须开发能够承受来自内燃发动机和大功率电动机瞬
[汽车电子]
如何为下一代电动汽车创建<font color='red'>安全</font>可靠的电路
CAN总线学习笔记五:SJA1000硬件电路
  首先对CAN总线控制器SJA1000的管脚我们必须熟悉。下面是其各个管脚的功能参数。 本文引用地址:http://www.eepw.com.cn/article/268451.htm        各个管脚的符号功能什么的上面的表里介绍的很详细,我就不多废话了。   接着我们看SJA1000的这些管脚在实际电路中是怎么进行连接的,因为只谈SJA1000的硬件电路设计,所以就截一张PIAE提供的电路原理图里关于SJA1000的部分。        下面我们要具体解析这个电路图。   AD0-AD7是地址/数据复用总线。因为这个电路是把SJA1000做外部RAM扩展了,所以它的电路
[嵌入式]
STM32-(37):CAN总线(协议
CAN协议帧的概念 帧 帧用途 数据帧 用于发送单元向接收单元传送数据的帧。 遥控帧 用于接收单元向具有相同ID的发送单元请求数据的帧。 错误帧 用于检测出错误时向其它单元通知错误的帧。 过载帧 用于接收单元通知其尚未做好接收准备的帧。 帧间隔 用于将数据帧及遥控帧与前面的帧分离开来的帧。 另外,数据帧和遥控帧有标准格式和扩展格式两种格式。标准格式有11个位的标识符(Identifier:以下称ID),扩展格式有29个位的ID。 数据帧的组成 SOF(start of frame):帧的起始位 数据帧详解: (1)帧起始(标准、扩展格式相同) 表示帧开始的段。1个位的显性位。
[单片机]
STM32-(37):<font color='red'>CAN总线</font>(协议<font color='red'>帧</font>)
芯思维再接再厉,获TÜV莱茵国内第二张EDA工具功能安全产品认证
中国北京,2023年8月7日—— 上海芯思维信息科技有限公司(简称“芯思维”)宣布于近期获得德国莱茵TÜV大中华区(简称“TÜV莱茵”)针对其EDA逻辑仿真系列产品XSIM,颁发的国内第二张EDA工具功能安全ISO26262 TCL3和IEC61508 T2产品认证证书。 ISO26262是全球公认的汽车功能安全标准,覆盖汽车电子半导体的全生命周期,包括功能安全管理、概念、系统、硬件、软件阶段的开发、支持流程、安全分析、可靠性等所有环节。ISO 26262产品认证是汽车行业公认的车规芯片可以用于量产车安全相关系统应用的必要条件。 继2021年10月芯思维SSIM获得国内首张TÜV颁发的EDA功能安全故障注入仿真产品工具最高安全
[工业控制]
芯思维再接再厉,获TÜV莱茵国内第二张EDA工具<font color='red'>功能</font><font color='red'>安全</font>产品认证
CP2102与C8051的USB-CAN转换器设计
引 言 CAN(Controller Area Network,控制器局域网)总线是德国Bosch公司在20世纪80年代初为解决汽车中众多控制与测试仪器间的数据交换而开发的一种串行数据通信协议,主要用于各种设备检测及控制。CAN总线是一种多主机控制局域网标准,具有物理层和数据链路层的网络协议、多主节点、无损仲裁、高可靠性及扩充性能好等特点,能有效支持分布式控制系统的串行通信网络。一方面,其通信方式灵活,可实现多主方式工作,还可实现点对点、点对多点等多种数据收发方式;另一方面,它能在相对较大的距离间进行较高位速率的数据通信。因此无论是在高速网络还是在低成本的节点系统,CAN总线都得到了广泛的应用。USB(Universal S
[单片机]
瑞萨电子推出SIL3认证解决方案,扩大其在功能安全领域的优势地位
瑞萨电子为基于Arm® Cortex®-M23和-M33内核的RA MCU,推出SIL3认证解决方案,扩大其在功能安全领域的优势地位 用于RA产品家族的SIL3认证自检软件扩展了整个功能安全解决方案组合 2022 年 3 月 9 日,中国北京讯 - 全球半导体解决方案供应商瑞萨电子集团 今日宣布,为其RA产品家族微控制器提供符合IEC 61508标准的卓越功能安全解决方案。瑞萨此次面向 基于Arm® Cortex®-M23和-M33内核的MCU 发布提供IEC 61508 SIL3(注)认证的自检软件套件,成为业界率先提供此类硬件/软件解决方案的半导体供应商。 功能安全性是大多数工业自动化设备的一大关键考虑因素,
[嵌入式]
瑞萨电子推出SIL3认证解决方案,扩大其在<font color='red'>功能</font><font color='red'>安全</font>领域的优势地位
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved