您当前的位置:五五电子网电子知识单片机-工控设备单片机通信关于车用通信协议中的假冒错 正文
关于车用通信协议中的假冒错

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

点击数:7596 次   录入时间:03-04 11:52:16   整理:http://www.55dianzi.com   单片机通信


3 CAN对抗假冒错的措施

CAN协议的CRC检验是在加入与去掉填充位后进行的,因此其报错能力受填充位的影响很大[1],要靠cRC来对抗发生在传送中误码形成的假冒错是不够的。因为传送中的比特错在接收节点可能引起后面比特流的错误解释,从而把填充位误作数据而未剔除,或将数据位解读为填充位误剔除,如图3所示。此时原来发送的比特流会向前或向后错一位,从而形成大量的误码(最坏的情况下,错位之后对CRC而言均为误码),很容易超出CRC的有效检错围,造成CRC的漏检(将错帧误判为有效帧),由于填充过程的影响,单个比特错的后果被放大了。所幸的是CAN还有其他的判错手段,例如格式错,那些漏过CRC校验的帧还可能被拦下。通过仿真,由CRC与各种判错手段综合的结果其漏判率还是比较小的,约为0.1×10-6,但是,并不是CAN协议所声个比特错(HD一6)。



CAN协议的2.0B版采用32位的仲裁区,它可以自动区分采用11位ID的消息(标准格式)或29位ID的消息(扩展格式)。如果在cc发送之前或发送中ID及另三位内容有变化,就有假冒发生的可能性。

CAN总线可以用ID的重新分配实现对假冒错的预防,这种重新分配的可能性在于29位的ID空间非常大,即使用去一部分对抗假冒错,剩余的部分依然足够消息的分配。对29位ID中取一部分作数字签名,这个数字签名为离线时用CRC生成的校验和。因此,仲裁域内发生等于该CRC生成多项式的Hamming距离个比特同时错才会有一个假冒错。小于卜tamming距离的比特错将是无效ID,该消息将被接收节点的过滤器滤掉,从而使假冒错无法产生影响。虽然在这里并没有进行接收ID的校验计算,因ID分配已经考虑了有效ID之间的距离,所以固定的接收滤波器足以防止假冒错。这样,无需增加软硬件的开销,CAN便可以实现与FlexRay同样的抗假冒错功能。

数字签名的生成方法,可以在现有的资料中选用,或者重新设计。例如参考文献[3],若取16阶的生成多项式,29位ID中去掉16位作数字签名后还剩13位,应能满足应用之需,须知FlexRay仅定义了11位的ID。也可以取更短的数字签名,例如和FlexRay相同的11位CRC生成多项式(它的CRC校验覆盖区为31位,}lamming距离为6),以留出更多的可用消息种类。重新设计时可以参考BCH码的设计方法设计生成多项式,以保证所需的卜tamming距离。选用16阶的CRC生成多项式时,它可以保证15位头部Hamming距离为8,在仲裁域ID的前13位内因CAN填充规则造成1位错被放大为多位错的情况,被检出的概率就增大。该多项式为:

0x8FDB—x16+x12+x11+x10+x9+x8+x7+

x5+x4+x2+x+l

选用16位CRC校验和时留给消息种类的大小为213=8 192种。采用上述方案,CAN在对抗假冒错上要比FlexRayr的方法简单。

CAN仲裁域里的SRR、IDE和RTR位的误码可能引起通信控制器对输入比特流的解释变化,但是可以采取措施防止假冒错。首先,如果仲裁域第12位、13位发生误码,就有可能在CAN2.0B的标准格式和扩展格式间产生转换(如扩展格式误为标准格式),那么节点对此时发生的假冒未加保护,因此应避免在系统里使用标准格式。标准格式误为扩展格式的情况,因帧长等被解释为ID,被滤波器及CAN的其他检错措施拦下的可能性增大。其次,在RTR位的误码将数据帧误为远程帧时接收节点收不到数据,属于故障-静默(fault—SILent),是一般容错理论所要求的,远程帧请求误为数据帧时,有可能引起不良后果,这是称的可以拦截5个以下的单个比特错(HD=6)。

CAN协议的2.0B版采用32位的仲裁区,它可以自动区分采用11位ID的消息(标准格式)或29位ID的消息(扩展格式)。如果在cc发送之前或发送中ID及另三位内容有变化,就有假冒发生的可能性。

CAN总线可以用ID的重新分配实现对假冒错的预防,这种重新分配的可能性在于29位的ID空间非常大,即使用去一部分对抗假冒错,剩余的部分依然足够消息的分配。对29位ID中取一部分作数字签名,这个数字签名为离线时用CRC生成的校验和。因此,仲裁域内发生等于该CRC生成多项式的Hamming距离个比特同时错才会有一个假冒错。小于Hamming距离的比特错将是无效ID,该消息将被接收节点的过滤器滤掉,从而使假冒错无

法产生影响。虽然在这里并没有进行接收ID的校验计算,因ID分配已经考虑了有效ID之间的距离,所以固定的接收滤波器足以防止假冒错。这样,无需增加软硬件的开销,CAN便可以实现与FlexRay同样的抗假冒错功能。

数字签名的生成方法,可以在现有的资料中选用,或者重新设计。例如参考文献[3],若取16阶的生成多项式,29位ID中去掉16位作数字签名后还剩13位,应能满足应用之需,须知FlexRay仅定义了11位的ID。也可以取更短的数字签名,例如和FlexRay相同的11位CRC生成多项式(它的CRC校验覆盖区为31位,Hamming距离为6),以留出更多的可用消息种类。重新设计时可以参考BCH码的设计方法设计生成多项式,以保证所需的卜Hamming距离。选用16阶的CRC生成多项式时,它可以保证15位头部Hamming距离为8,在仲裁域ID的前13位内因CAN填充规则造成1位错被放大为多位错的情况,被检出的概率就增大。该多项式为:

Ox8FDB—x16+x12+x11+x10+x9+x8+x7+

x5+x4+x2+x+l

选用16位CRC校验和时留给消息种类的大小为213=8 192种。采用上述方案,CAN在对抗假冒错上要比FlexRayr的方法简单。

CAN仲裁域里的SRR、IDE和RTR位的误码可能引起通信控制器对输入比特流的解释变化,但是可以采取措施防止假冒错。首先,如果仲裁域第12位、13位发生误码,就有可能在CAN2.0B的标准格式和扩展格式间产生转换(如扩展格式误为标准格式),那么节点对此时发生的假冒未加保护,因此应避免在系统里使用标准格式。标准格式误为扩展格式的情况,因帧长等被解释为ID,被滤波器及CAN的其他检错措施拦下的可能性增大。其次,在RTR位的误码将数据帧误为远程帧时接收节点收不到数据,属于故障一静默(fault—silent),是一般容错理论所要求的,远程帧请求误为数据帧时,有可能引起不良后果,这是另一个问题,但同时存在的假冒错将由滤波器拦截住。

添加ID的数字签名并不改变原来的消息的优先级分配,因为优先级只在ID的前面部分确定好了。因此,采用不同数字签名的消息可以在同一系统里应用,只要收发节点的约定一致即可。但是,随便混用会使ID之间的距离变小。所以对一个高层协议,为了保证抗假冒错的能力不变,应该采用统一的CRC生成多项式。从()EM厂的总体利益看,开放其协议的数字签名方式较为有利。

4  小  结

假冒错在应用中是不能接受的,与一般数据错造成消息数据量上的变化不同,它可能造成消息质的变化。本文从信息传递的整个流程出发,讨论受干扰时的比特出错量,从而作为分析抗假冒错措施的依据。作为新一代的车用通信协议FlexRay,其头部CRC校验的覆盖面似嫌不足,由于带宽的增加误码率可能增大;尾部CRC检验也可能不够,从而仍有漏过假冒错的可能。本文讨论的CAN的抗假冒错方案实现比较简单,可以提升CAN的可靠度。需要指出,CAN的抗假冒错方案是基于出错时被丢弃的原理,它并不报错,发送节点无法知道已发送了错帧,从而进行重发。所以对那些重要的消息,在应用上仍要设置其他的保障措施。例如,预定时限到而未收到数据则通知应用层,或请求发送。由于CAN填充位规则对CRC的干扰,使C2RC拦截误码的能力下降,这是不理想的地方。虽然由CAN各种检错机制造成的漏检很小,但对一些重要的消息还应添加额外的校验。CAN的消息数据比较

短,一般只有一二字节。添加1个8位的CRC校验是一种可行的方法,在ECU增加的软件开销不会太大,但可进一步提高CAN的可信度。

对于较小的或专用的系统,也可以用本文的方案把固定的事件信号加数字签名一起传送,以提高通信的可靠性。例如开关信号分别用2个ID来表示1或0,传送时还有数据1或0,这样用多重检错方法来防止CAN的CRC检验的软肋.



上一页  [1] [2] 


本文关键字:通信  单片机通信单片机-工控设备 - 单片机通信

《关于车用通信协议中的假冒错》相关文章>>>