新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 关于车用迢信协议中的假冒错

关于车用迢信协议中的假冒错

作者: 时间:2009-05-08 来源:网络 收藏


2 FlexRay对抗错的措施
FlexRay是新兴的通信,它是因CAN在带宽和可靠性不足的情况下发展起来的,主要满足汽车线控技术(x―by―wire)的要求。在线控系统中,不再有机械或液压的后备,所有的操作都由电信号通过总线传送来实现,因此对通信的可靠性要求更高。为了对抗错,和过去的技术相比,FlexRay添加了帧头的CRC检验。
FlexRay的帧头部段由5位的先导、11位的帧ID、7位的数据长度、11位的头部CRC校验和以及6位的时钟周期计数构成。如果校验未通过,帧就判作出错而不予接收。5位的先导是保留位、数据区前导标志位、空帧标志位、同步帧标志位、启动帧标志位。头部CRC校验覆盖的范围仅包括同步帧标志位、启动帧标志位、帧ID和数据长度。在FlexRay发送节点中头部CRC校验和是离线计算好并在组态时提供给cc的,接收节点的cc则根据收到的在覆盖域的以及CRC校验和的比特流计算CRC校验和。头部CRC校验的生成多项式为:


其计算初值为0x01A。该头部CRC校验保证覆盖的20位内Hamming距离为6。由于接收节点的cc是根据收到的在覆盖域的以及CRC校验和的比特流计算CRC校验和,如果出错的位数较多,有可能减少此项检验的有效性,在FlexRay波特率较高的情况下,出错位数多是可能的。这里被保护的数据内容是:同步帧标志表明本帧是否是用于时钟同步;启动帧标志表明本帧是否是启动时用的;帧ID在静态段时是时间片(slot)的编号,在动态段内为优先级编号,在网络的同一簇内每一个帧有1个ID;数据长度在组态时也是确定了的。因此在组态时可以离线算好CRC校验和。如果在应用时这些内容不管何种原因发生了破坏,接收者就可以发现。
FlexRay在发送时间片的实际使用权上还加以控制,即有与节点cc相配的总线监守(bus guardian),用以对抗Babbling Idiot错。总线监守在调度规定的时刻开启发送通道,允许cc发送,否则cc是送不出去的。消息以广播方式送到各节点,若接收也以时间片确定的话,是很难的,除非总线监守与该节点的cc都出了错。但是FlexRay的总线监守并不保护发生在动态段的不准时发送,如果因为干扰,在周期内某节点cc的时间片指针vSlotCounter出了错,就有不准时的消息传送;若同时传送的ID也错,假冒错就会发生,vSlotCounter要等到新的时钟同步消息时再复位为1。
FlexRay对数据区前导标志和空帧标志未作头部CRC校验的覆盖,这可能引起问题。数据区前导标志用于标明数据区开始部分是否包含有消息ID(在动态段发送的帧)或者网络管理向量(在静态段发送的帧)。空帧标志用于标明数据区的数据是否可按原来的规定使用或者是空帧。网络管理向量是一个选项,作为应用的数据由host写入,为高一层的协议提供服务,目前还未有规定。显然这二位如果出错,头部CRC校验可以通过,但数据区的解释都会完全不同,其性质就是一种假冒错。虽然帧的发送节点未变,但是却是一个假帧代替了原来的帧。发生在这二位的错如果在节点发送帧以前就已有,那么帧尾部的CRC校验将不能检测出错。如上一节所分析,这种情况是有可能存在的。如果是在发送过程中产生的,那么帧尾部的CRC校验将有可能检测出错。
FlexRay帧尾部的CRC校验和为24位,它由发送节点的cc生成,覆盖由头部保留位到数据区的最后一位,FlexRay的2个信道采用不同的CRC计算初值。覆盖区长度在2 048位时Hamming距离为6,覆盖区长度为4 094位时Hamming距离为4。在汽车环境里,与CAN相比这一Hamming距离似不够。因为它们都要面对同样的机械设备,即同样的干扰。如图l所示,ISO7637中的试验脉冲1,对电源为12 V的系统,Us为一75~一100 V,tr为1μs,假定硬件无法在此时间内将它衰减到足够小,那么FlexRay将有10位受影响;td为2 ms,硬件应能克服电源的跌落。与此对比,CAN仅1位受影响。又如图2所示,试验脉冲3a,Us为一112~一150 V,tr为(5±1.5)ns,td为O.1μs,td允差的上下限为(+O.1,0),t1为100μs,t4为10 ms。对这种高频干扰,驱动器会有收发错,CAN的比特采样间隔为1μs,采到O.1μs错误的概率小,而FlexRay的位间隔为0.1μs,采到O.1μs错误的概率就大。由此看来,在带宽增加时,出错的概率增加多倍,而报错的能力并未增加多倍。为了成功应用,必须对硬件的抗干扰能力做大的提高。



关键词: 假冒 协议 车用 关于

评论


相关推荐

技术专区

关闭