当前位置:首页 > 通信技术 > 通信技术
[导读]在CAN消极报错帧分界符中发生的格式错会引起该消极报错节点处于等效离线状态,以及由该节点发送的消息优先级逆转。本文讨论了发生此问题的情景、后果以及解决方案。

CAN是最成功的现场总线,特别是在汽车工业的应用方面。仅2006年一年,CAN有关的控制器出货量超过5亿个。在过去16年里,有许多关于CAN在安全攸关的系统中应用时的安全问题的研究。其中大部分是针对因CAN事件触发通信的性质引起的时间延迟问题,以及数据帧帧结束域倒数第2位出错时造成的节点间消息不一致的问题。有些研究着力于解决CAN系统中的Babb—ling Idiot问题,尚未见到有关源于标准协议设计本身的严重问题的相关文献。

1 出错的情况
    在CAN协议2.OA版3.1.3款中提到:为了使报错帧正确结束,消极报错节点可能需要处于空闲状态至少3位的时间(如果消极报错接收节点发生本地错),因此总线不应满负荷运行。这是引发应用故障的原因。节点间并无时间同步,因而即便总线有空闲时间,也不能保证像上述要求那样的分布。在总线的利用率较低时,挂起待发的消息将在服务间隔(intermission,缩写为I.M.)后立即发送。这在标准中也有规定:在另一条消息发送过程中挂起待发的消息在服务间隔后的第一位启动(发送)。
    现在考虑一种情况:由于电磁干扰,某消极报错节点发生一个本地错(其他节点未发现有错),它就发一个消极报错标志(P.E.Flag)。因为是隐位,其他节点对这个消极报错标志也无响应。这一消极报错帧的报错标志在数据帧ACK分界符后的EOF部分得到确认(如图1所示),但是它的消极报错帧分界符(P.E.Del)延续到EOF域最后一位以及服务间隔之后。如果此时有3位的总线空闲时间,那么新帧的开始位(SOF)将是该消极报错节点服务间隔的第一位。按ISO16845标准,此显位被解读为对超载帧的请求,由消极报错节点发送的超载帧将引起其他节点的位填充错,使它们发送主动报错帧。主动报错帧与超载帧将在总线上叠合,虽然比特流的解释对该消极报错节点和其他节点而言是不同的,但两种帧分界符的结束时刻是一样的。所有节点都会在此刻复位CAN协议状态机的状态,使它回到开始服务间隔的状态。这解释了。BoschCAN协议的说明。但如果对3位总线空闲时间没有保证,那又该如何呢?
    对报错帧分界符格式错的检查在国际标准化组织(ISO)的标准ISO16845中有明确的规定:在消极报错帧分界符中的任何显位是一种格式错。第7.5.6款和8.5.13款是对应消极报错接收节点和消极报错发送节点消极报错帧分界符格式错的测试方法,第7.6.12款和8.6.9款是消极报错节点消极报错帧分界符查到格式错时,接收错计数器与发送错计数器增加机制的检查方法。因此,消极报错节点与其他节点不同步时,另一个节点开始发送新消息,其SOF将被该消极报错节点视为消极报错帧分界符内的格式错。它将在其他节点新帧传送过程中开始一个新的消极报错帧,新的消极报错标志将在其他节点新帧的EOF部分得到确认,新消极报错帧分界符再一次延续到超过其他节点服务间隔之后。只要挂起的消息未发完,这一过程将不断重复。在此时间段里,消极报错节点不能接收或发送任何消息,因为它总在不断发送消极报错帧。这延迟了该节点应发送的消息,而不管消息的优先级有多高,也就引起了优先级逆转。由于电磁干扰的随机性,无法对系统进行调度分析。这个消极报错节点有2种可能的方式退出循环。如果在后面不断发送的新帧的某处出现了主动报错帧,该消极报错节点的消极报错帧将与主动报错帧重叠,重复过程结束。但在正常应用场合中,错误是很少发生的,因此后续的传送越正常,该消极报错节点等效离线状态时间越长。另一个可能是经过一些传送后不再有挂起待发的帧,总线空闲时间足够长,正如协议设想的那样,能使消极报错帧的分界符正常结束,消极报错帧分界符格式错的重复也就此结束。


2 可能的情景
   
除了上述消极报错接收节点的本地故障会引起等效离线的失效以外,其他情景下消极报错节点也有可能与簇内其他节点丢失状态同步。这些情景在三方面超出了Bosch CAN协议设计时的设想:第一,不仅消极报错接收节点会丢失同步,而且消极报错发送节点也会丢失同步;第二,在有些场合,为了实现同步,所需的总线空闲时间要更多(至少为10位);第三,不仅消极报错节点的本地错会引起问题,在少数场合,主动报错节点的本地故障也会引起问题。下面举一些例子,实际上有问题的情景远不止这些。
    在图2中,消极报错接收节点由于电磁干扰而未能查出总线上的一个全局错(即漏判性质的本地错),但是过后它发现了因其他节点所发送主动报错帧引起的位填充错,它发送的消极报错帧将迟于其他节点的主动报错帧结束,因此丢失了同步。

    在图3中,消极报错接收节点在EOF域中发生误判性质的本地错。

    它的消极报错帧不会被其他节点看到,因而它们以正常方式结束收发。消极报错节点的消极报错帧要远迟于其他节点的结束时刻结束,在此情况下,为使消极报错节点能同步,最少要有10位的总线空闲时间。当总线有10位空闲时间时,新帧的SOF会被消极报错节点看作超载帧的请求,尽管在超载帧结束后节点间实现了状态同步,但却因超载帧造成不必要的开销。这里理想的总线空闲时间为13位。
    在图4中,由于电磁干扰消极报错发送节点未能正确读取ACK位,它发出的消极报错帧将被其他节点看作ACK分界符和EOF域,就像消极报错接收节点一样,它失去了与其他节点的状态同步。

    在图5中,消极报错发送节点的本地错发生在CRC分界符处,它的消极报错标志的第一位被其他节点的ACK位改写,消极报错帧的剩余部分被其他节点看作ACK分界符和EOF域,状态不同步再次发生。

    在图6中,消极报错发送节点的本地故障造成ACK分界符的误读,它开始一个消极报错帧,而其他节点把它误读为数据帧的EOF域,此时消极报错发送节点状态与其他节点不同步。

    当一个规模较小的系统仅剩一个主动报错节点时,它的本地错将引起一个主动报错帧。其主动报错标志会被其他消极报错节点视为位填充错或格式错,从而开始它们的消极报错帧(见图7)。结果是主动报错帧较早结束,状态的不同步再次出现。

3 后 果
    当消极报错节点出现上述分析的情景时,就没有机会收发消息。直到总线空闲或者有一个主动报错节点发主动报错帧时,才可能恢复正常。由于错误的发生是随机事件,在正常应用环境中其间隔会相当长。消极报错节点逸出这种等效离线状态的最坏情况是,它要等到总线成为空闲。此段时间为系统中所有消息的最坏响应时间中最大的那个。以Tindell改造过的SAE典型试验数据集为例,最大最坏响应时间在总线速率为125 kbps时为49.192ms,250kbps时为14.404ms。总线的利用率相应为94.2%和47.1%。如果故障发生在收发制动压力的消息(其周期为5 ms)的节点,则汽车可能在125 kbps时丢失10次数据,250 kbps时丢失3次数据。在此期间作用在轮子上的制动力不是所期望的,汽车将有难以预计的风险。以每小时100 km行驶的汽车将在1.4 m或O.4 m的距离上失去控制。
    消极报错节点状态同步的丢失可能比上述最坏情况早些结束,但这完全取决于错误的统计学特性,超出了CAN调度分析的假设,使CAN设计工具不精确。当消极报错节点丢失同步后,即使有一些未确知的总线空闲时间,它们可能引入超载帧,这也是调度分析时未加考虑的。因此设计工具难以给出有足够精度的真实结果。这会危害到所设计系统的安全性。另外,超载帧也降低了总线的吞吐率。

4 解决方案
    经仔细分析所有可能的全局错和本地错以后,各种情景和合适的消极报错帧分界符长度间的关系就建立起来了。所谓“合适”是指消极报错节点能在出错后依然与其他节点的状态保持同步。在有些场合中消极报错帧分界符应为原来的8位长,在有些场合中它应是2位长,在另外一些场合中它应是1位长。若本地错发生在数据帧或远程帧的EOF域,那么为了实现正确的同步,最好的选择是在EOF的最后一位处对CAN协议状态自动机进行复位。需要根据总线上的数据流以及错误发生的位置加以判断,该消极报错节点是发生了全局错还是本地错,从而确定应有的消极报错帧分界符长度,或者启动协议状态机的复位信号,完整的解决方案已申请了专利。
    将消极报错帧分界符长度简单地改为另一个固定的长度,可能简化实现的复杂性,在某些场合它可以避免在消极报错节点有本地错时产生长时间的等效离线状态的失效,但是这一解决方案无法应对所有可能丢失同步的情景。同时它还残留有其他的一些缺点:例如增加了消极报错节点不能接收的机会;因重复出错或超载帧造成调度结果确定性的下降;本节点或其他节点所发消息优先级的逆转;因超载帧造成带宽的无效占用。所以这种简化造成的性能下降是得不偿失的。
    按修改后实现的消极报错帧不能通过现有标准ISO16845第7.5.6款和8.5.13款的全部测试设置,因为消极报错帧分界符的长度不再是固定的8位。CAN标准ISO11898及ISO16845应依据应用中对安全的要求作相应的修改。


5 小 结
    在消极报错帧分界符内格式错的后果长期以来被忽视了。即使在一般应用中等效离线状态和优先级逆转也是不能容忍的,因为一次电磁干扰造成的1位错所要承受的惩罚太大了。为了将CAN用于更为严格的安全攸关的应用中,这个问题是非解决不可的。

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

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 信息技术
关闭
关闭