当前位置:首页 > 通信技术 > 通信技术
[导读] 摘要 对于在《单片机与嵌入式系统应用》上发表的关于CAN隐患的2篇文章,Bosch对比作出了答复。Bosch在声明中默认了故障约束机制会造成发送与接收延迟现象的存在,但未提及其带来的恶性后果;强调这样做的好处,称这

 摘要 对于在《单片机与嵌入式系统应用》上发表的关于CAN隐患的2篇文章,Bosch对比作出了答复。Bosch在声明中默认了故障约束机制会造成发送与接收延迟现象的存在,但未提及其带来的恶性后果;强调这样做的好处,称这是特色而不是错误。本文在分析等效离线或真正离线对应用带来坏处的基础上,说明此事的严重性——可能引起大规模的召回事件。故障约束机制的好处与坏处是可以分开的,改进CAN不仅在现在是必须,也可进一步提高CAN在未来应用中的竞争力。
关键词 CAN 故障 安全 故障约束机制


    关于CAN隐患的争辩始于本刊发表的2篇文章,一是“CAN总线系统中的一种安全隐患”,一是“CAN消极报错发送节点变为离线状态的故障“。这2篇文章在送稿前已经发给国内外的一些专家征求意见,尚未有反驳的意见。由于此事关系重大,涉及许多单位的利益,例如芯片供应商、开发工具供应商、ECU供应商、汽车制造商、高层协议供应商、高层协议产品提供商、各类服务提供商等等,为了避免这些单位由于既得利益的驱动有意无意地淡化问题的严重性,需要一个独立的代表第三者利益的机构来考察与评判问题是否存在,及其危害性。这个第三方利益就是终端用户,例如汽车的驾驶与乘用人员、行人及与此有关的保险公司、道路管理单位等。因此,不仅应该告知CAN产业的有关方,也应告知利益有关方,才能得到正确的恰如其分的应对。基于此种考虑,笔者将2篇文章的英文稿送美国国家交通部公路交通安全管理处(U.S.Department of Transportation,National Highwav Traffic Safety Administration)的网络热线,提请他们注意。后来这件事大概由他们转到了国际标准化组织(ISO)。ISO的TC/22/SC3负责车用通信有关业务,其TC/22/SC3/WG1/TF1的组长是CiA的主席Zeltwanger先生。CiA曾有人作了回复,笔者也作了答复,最后由 Zeltwanger。先生转来对此问题的正式声明作为答复。这是对问题的答复,并不是对个人的答复,这个声明是由ISO中国CAN专家组转来的。(它的英文全文见本刊网站www.mesnet.com.cn。)下面是Bosch声明要点与笔者的观点,在引述Bosch声明时将力求准确。
    Bosch声明的标题是“它不是隐患,而是特色”(It's not
a bug,it's a feature!)。在引用参考文献[1—2]时说,“在那2篇文章中有一些对CAN协议故障约束机制,特别是对由消极报错状态下看到本地错的关切。…… 在CAN总线上网络流量很高以致连续帧之间不再有空闲时间时,以及消极报错节点看到本地错(即未被其他节点看到的错)时,它将无法完成其消极报错标志。后果是这个节点将不再能收发帧,直到它遇到空闲时间或其他节点发的主动报错帧。消极报错状态的发送节点会由此而使出错计数器加上去,直到达到离线状态。…… 这是CAN协议故意要达到的行为。……2种方法企图解决的是1个并不存在的问题。”
    上述引述与原文略有差异。总线上空闲的分布是不受控制的,尖峰负载也是不可控的,即使有部分空闲也不能保障消极报错帧正确结束。尖峰负载是由消息到达时间的本质决定的,事件触发消息的到达时间是随机的,周期性消息的到达时间随本地时钟而变。例如,有2个初始相位相差5 ms的消息,它们的振荡器相差200×lO-6,它们的相位差在25 s后就消失了。在某个公倍数时间点上,所有的消息就会有接近O的相位差,就形成CAN调度分析最坏响应时间时假定的最坏峰值负载。这种差异不影响对 Bosch声明的进一步分析。就声明的上述表述而言,“特色”、“故意要达到的行为”等语句实际上同意了等效离线和真正离线后果的存在,后面还有 Bosch对此行为的直接描述。不过,Bosch并不认为此后果是有害的,而是强调此后果的有利方面。
    它说:“故障约束机制的目的是防止有故障的节点干扰其余节点间的通信。”然后解释了进入消极报错状态或离线状态就可以达到上述目的。并说“1个因REC而进入消极报错状态的接收节点在成功收到1个无错的消息后,它能切换回主动报错状态(见故障约束规则8),使它能至少再发1次主动报错帧。”在谈论总线负载应小于50%后,它说“尖峰负荷典型地是由总线上的扰动造成,此时通信要中断一段时间,待发的传送会累积起来。当扰动结束时,所有这些待发的消息将按它们的标识符一个接一个送出。……如果扰动是由有故障节点引起,并在节点进入消极报错状态结束,那么故障约束机制想要的功能是把该节点保持在消极报错状态,至少让被该干扰推迟的所有消息发完,即尖峰负荷结束。
    在这里,尖峰负荷并不随着干扰的消失而消失,CAN作为一种事件触发协议,负荷的分布完全是随机的,50%负载的约束并不能防止等效离线或真正离线状况的出现,参考文献[1]中引述的例子已证明了这一点。Bosch把引入消极报错状态的好坏后果混为一谈。当节点进入消极报错状态后其报错帧全是隐位,本来可以不再干扰其他节点的正常通信,没有必要让它退出通信。此外,在这一段表述中可以清楚地看到,CAN故障约束机制要让被该干扰推迟的所有消息发完,至少要禁止消极报错状态节点发送(不管消极报错状态节点待发的消息优先级多高),这印证了参考文献[1-2]的分析,但是它未提及接收也被禁止了。
    现在大家都认识到引入消极报错状态是一个积极的措施,对此并无异议。而bosch只看到故障约束机制设计的有利方面,未注意到它在帧同步上造成通信服务缺失的后果。在声明中对此只字未提。那么通信服务缺失的后果是否是一个故障或bug?这应该由用户根据其对应用是否有害来确定,并不能因把它称为“特色”而改变。进一步研究表明存在后果严重的可能性。基本的线索是:车内存在严重的电源传导干扰(ISO7637干扰类型D→CAN收发器在电源跌落时CANH— CANL差减少,会有写“0”读回“1”的bit错→CAN协议发现错后发报错帧的规定(即能重复发报错帧)→CAN协议在报错标志中发现bit错时出错计数器+8的规定。一个较长时问跌落就可以将节点推入消极报错状态(消极报错状态并非罕见)。然后一次本地故障把它推入失去服务能力的状态。CAN总线失去服务后对应用的危害的仿真已有文章报道,如在弯道上的外冲或急转。而故障约束机制设计上的这个bug是造成这一危险的因素中的关键一环。
    失去服务能力的后果破坏了实时控制应用的基础——正时性(timeliness)。现在许多应用只容许少量数据的丢失,而且能容许数据丢失的应用已经考虑了消息的冗余,若要考虑这样长时间的失去服务能力,数据的冗余就要多得更多,这将显著增加总线上的流量。要考虑这个bug,又要符合Bosch的50%的限制,使应用进入更加为难的境地。
    安全标准IEC61508、EN50159将在汽车行业推行,在执行这类标准时要从可靠性角度作故障的危害与风险分析。由于一个小故障会引起一个元件出错或失效,元件的错或失效造成部件出错或失效,然后造成子系统出错或失效,从而造成更上一层系统出错或失效。必须分析清楚这个链并研究其出错或失效的概率,才能判断这个最原始的错是否会对安全构成威胁。CAN的这个故障是引起系统失效的一个非常典型的故障。在一般通信系统中,一个本地错引起1帧的丢失,如该应用上可容忍,失效的后果到此为止。然而CAN的这个故障有可能引起100个左右不同接收帧的丢失。不仅如此,它使该节点的所有帧都暂时不能发送,也就是说会影响到其他的控制系统的功能。例如,对CAN总线挂上ECU节点的不同方案,不能发送发动机转速信号就会影响变速器、ABS、ASR、空调,轮速信号不能发送就可能影响电喷、变速器、ASR,变速比信号不能发送就会影响到电喷、ASR、废气再循环,含有网关的仪表板单元不能正常发送可能引起发动机不能点火。也就是说,由一个本地故障转为一个节点失效,然后又转为若干个功能失效。有些功能的失效会影响能耗或排放,或使设备运行不平稳,但有的功能会影响制动和转向。
    CAN总线失去服务能力会导致控制系统的失效。车辆是一个运动的物体,控制系统的失效会变为运动的失控,从而引起安全问题。这对所有人都是沉重的压力,采取审慎与观望的态度是符合情理的,但如果CAN失去服务能力的过程存在,这个后果是回避不了的。
    Bosch对恶性后果并未提及,这表示他们并未意识到这一点。参考文献[1]提到,这一等效离线或真正离线的开始源于消极报错状态节点的消极报错帧没有足够的时间结束。但可能的情景远超过Bosch在CAN2.O规范中的描述,如果他们原来就已知有如此多的情景,就会把这些情景都包括在CAN2.O中。他们也没有提醒过作调度分析工具软件的人们,由于任何优先级的消息在此隐患发作时都失去服务能力,且进入消极报错状态不是罕见的事,那么调度的效果就很小了 ——木桶的底是漏的,其余板长短的影响已退居次要地位甚至失去意义。bug影响了工具理论基础的完整性,调度的结果不能保证,就不能最终保障控制功能的实现。网上尚未见到Bosch有任何关于节点因故障约束机制设计而推迟收发的类似这次声明的报道。因此,由于未充分预计到故障会引起如此坏的后果,只能说这是一个bug。
    实际上,消极报错状态下出现坏后果及失去服务能力的毛病是可以克服的。参考文献[1]提出了2种方法,也是Bosch声明提到的2种方法。其实还存在其他可能的解决方案,例如将消极报错帧分界符内的显位不视为错而视为超载帧的请求。此时经超载帧与其他节点的报错帧重合,可以使消极报错状态节点迅速和其他节点取得同步,但这样做牺牲了超载帧占用的带宽,并使其他节点蒙受一次出错的不白之冤。所以参考文献[1]提出的是较好的方案。在保持引入消极报错状态的优点时不必死抱
它的缺点。失去服务能力的问题得以避免,由于这个因素造成的对CAN消息负载率的限制也可减少,这样对大多数人都有好处。
    已有的大量CAN应用,特别是那些现场条件较好,本身并非安全攸关的应用(即使在汽车内,也有许多节点与安全关系不大),对CAN隐患的讨论不要恐慌,只需对自己的环境和应用作评估,必要时补充作些测试即可。
    对CAN隐患的讨论并不是要全面否定CAN。尽管CAN尚有其他问题与不足,甚至较为严重的问题,但它仍然是当前最好的协议。CAN最突出的优点是出错自动重发功能。很久以来,关于事件触发协议与时间触发协议孰优孰劣的讨论中人们倾向于认为时间触发协议更为可靠,后者更适用于线控系统。但是研究表明,由于出错自动重发功能的存在,CAN的消息不正确概率比重复送2次消息的TTCAN小几个数量级。有理由相信时间触发的其他协议也会在类似的比较中显得逊色,除非它们采用更为复杂的上层纠错措施。上述bug使CAN的这一巨大性价比优势变得无用,所以对CAN进行改进是非常有价值的。现在谁作改进,谁就能解决当前的急需,也就有机会在未来胜出,这是一个重新洗牌的机会。这一争辩由于Bosch的声明而使事情变得明朗,国际国内对此作出自己的结论的时间已经同步。
    综合上述分析,笔者依然认为它是一个隐患。对我国IC、ECU、整车厂来说,必须加以重视并及时采取行动。决策是一个博弈的过程,落后将动摇消费者的信任,导致十分被动的境地。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭