原创 国家兴亡匹夫有责,从神九用到CAN总线讲起(10)错难补救

2013-4-9 14:27 2195 14 21 分类: 消费电子

国家兴亡匹夫有责,从神九用到CAN总线讲起(10)错难补救

 

由于掌握了错帧重构的规律,所以可以说,你想怎样错就可以构造出怎样错的帧。

1是一个数值被放大的例子,其中U= x8+x7+x6+x5+x4+1, Ec=U*G= (1000, 0010, 0001, 1100, 1110, 1001)Tx1可以是以前连续50之后的填充位。也可以解释为DLC0,例如原来是有3字节的数据,送一个0000010000…的值,结果错帧变为1000010000…的值,错帧将值放大了32倍。

20130318132059701001.gif

1 错帧将数值放大32

 

观察图1的重构过程可见,如果将Ec7取为1,那么Tx7=0,错值倍数更大(为64倍),如果继续将Ec8取为0,那么Tx8=0,错值倍数更大(为128倍)。我们可以由修改后的Ec重新求Uh,例如为了达到128倍,由Ec=1000010,将Ec除以CAN的生成多项式G=(1100,0101,1001,1001),便可以得到Uh=(xk xk-1 xk-2 xk-3 xk-4 xk-5)。此时对照5种可能的Ut,我们可以选k-4=5,即第3Ut。得到U=x9+x8+x7+x6+x5+x4+1Ec=U*G= (1000, 0100, 1001, 0111, 0111, 0100,1)来重构出可疑数据流,如图2。因为算出的Ec9正好是0,且Rx7由于有填充位设为1,所以实际的放大倍数达到264倍。当然选其它Ut也是可以的,不过可疑数据流的位数稍多1位。

 

20130409142646445001.gif2 错帧将数值放大264

 

同样的多项式U= x8+x7+x6+x5+x4+1, Ec=U*G= (1000, 0010, 0001, 1100, 1110, 1001)。也可使值缩小32倍,如图3

 

20130318132059328003.gif

3 错帧将数值缩小32

 

在应用中数值的变化可能引起应用功能的错误,例如在变速器换档或刹车时,希望油门暂时减少,但是结果是加大,甚至可能全开。在丰田突然加速事件中,我是怀疑VSCCAN传送到节气门的信号可能出错。美国的NASA调查报告并未排除使节气门开大的可能性。见文(2)。当然,并非一次传送错就会错到底,但是CAN存在短暂一段时间失效的可能性,这在我以后的博文中会交待。

这种错帧漏检之后跟着失效一段时间的危害是很大的,例如你在超车,你的转向角是5度,但是电动助力转向单元经CAN传到ESP的角度是30度,那么ESP认为这是驾驶员的命令,协助你实现30度转向,CAN接着的几十毫秒失效,以及人不可能在几十毫秒内及时反应,你的车就可能冲到逆向车道了。

 

如果希望证实特定的数据变化,例如Tx=10100101是否可能变为Rx=01011010,我们只要由这二项比较得到Ec=11111111,将这个片断加上头部Ech,然后求出满足的多项式U,和以前的例子一样重构出Tx。不过,由于存在Ec的头部、尾部为特定形式的限制,这个可疑数据流不一定在你希望的位置,只有帧比较长时,帧的部分片断可以如愿重构。

 

错帧漏检的另一种危险是数据的相移,例如,你的帧内有许多表示状态和控制命令的开关量,一旦移相,状态和命令就乱了,有些保障措施也会失效,例如原来规定55表示开,AA表示关,可以抵御有干扰时形成的非法码,现在由于移相,55/AA就会互相转换。混乱的状态和命令会产生设计时未预计到的系统状态,导致系统失控。

 

那么应用上有没有办法化解这一问题?对于这样的值域错唯一的办法是某种型式的冗余:软件上的冗余、物理上的冗余或时间上的冗余。

 

软件上的冗余就是另加数据的补充CRC,例如加一个8CRC,这个CRC和原来的CANCRC没有共同的质多项式,此时可把漏检率缩小256倍,这样的结果还是达不到Bosch原定的指标。由于要占去一字节,在原来已用掉8字节数据的场合就比较麻烦:一帧要分为二帧。这都会增加带宽要求。其次是为取得不同接收节点的一致性,它们都要知道别人是否发现有附加CRC错,就要等有没有NACK,这要添加新的规定:例如必需在什么时限内发出NACKNACK的形式(否定哪个帧)。时限的引入也产生了延迟。

为了对付一个漏检的错帧,应用上的冗余要付出代价的,例如:

1。原来用二个物理通道,只要有一个通道“正确”收到了就可以了。现在由于所谓“正确”可能是错的,当二个通道结果不一致时,你无法断定谁是真正正确的。就必须要有二个通道的第二次传送结果,在假定连续二次都发生错帧漏检概率小到可忽略不计的情况下,就可以以二次结果相同的通道作最终决定的输出。这样,通信需要的带宽要加倍,CAN本来已为了减少竞争,把总线利用率定得较低,如30%~40%,这样做,有效负载降到只有15~20%。你为了满足余下的需求,要增加一套新的CAN系统,或者忍痛割爱,把控制闭环的采样周期加大,降低带宽需求,但也导致性能下降。

2。原来一个物理通道时,你需要至少送3次才能作出表决。此时带宽的需求增到3倍,比上一条一样面临必须付出的代价。

3。用对象输出变化的已知极限,拦截漏检的错帧,有时不可行。例如Audi方向盘角度传感器G85ESP的信号本来应该识别0-2000°/S,这相当于40°/20ms,那么用拦截方案,变化超出40°就限值,但是由于传送值不是增量,方向盘角减少后的值(比上次采样小40°)在CAN传送中变大且被限值(比上次采样大40°),误差被限在80°,仍然是严重错误。

4。接连多个采样值后作各种滤波,就像一般的抑制信号中干扰所取的办法,越是想抑制输入的干扰,就越要减少当前输入的权重。但这种办法完全不适用,因为原来的噪音只是信号范围的1%或更小,现在的错误值可能是信号范围的80%。要想抑制错帧,就会减少当前输入的权重到非常小,此时产生多个周期的延迟,就连累正常输入也有这样的延迟。若不想延迟,就要加快采样,把占用的带宽增加,而且不能完全消除错帧的影响。

这些方法显然会增加成本,增加重量、能耗,使设计、生产和维修变得困难,同时应用的性能仍然有可能下降。

 

这样的措施只能是克服困难的暂时性的不得已而为之的措施。就好比肚子饿的时候,先填饱肚子再说,饥不择食。我们总不能一直这样吧,因为这样总在付出别的代价。每一个人在作决择的时候总会有得有失,只是有的人看得远点,未雨绸缪,在长时间的刻度上损失小,有的人看得近点,只能委曲求全。不能说谁更高明,因为这只是目标函数的不同,约束条件的不同。而高明不高明往往是对约束条件的认识上的差别,有人认为做得到的事有人认为做不到。有人认为自己做不到,别人也做不到。有人认为自己做不到,也想不到去请别人来做,如此等等,诸葛亮的运筹帷幄,全在于他的审时度势,否则难有赤壁之胜,三国鼎立的局面。

 

有人会认为这是危言耸听,最好有实验数据来证实。这是非常朴素的实证观念,在简单的物理系统中常常是这样做的。但是在可靠性分析上,往往无法作这样的实验,把小概率的事件来作实验会非常费时间,就像文(6)讲的用软件注入求错帧漏检率会需要天文数字的时间。而像现在要求的功能安全要求的更小的概率,基本上只能用分析的方法。所以只能用分析的方法判断以前的分析有无错漏,而不可能以有限的实验的方法来判断以前的分析有无错漏。

文章评论7条评论)

登录后参与讨论

用户1678053 2015-10-29 09:15

看看

用户1454308 2015-10-29 08:43

Good

用户1406868 2013-3-21 13:33

好的技术需要用到合适的地方,用错了制造的产品同样会有缺陷,就看产品设计者的水平了。

用户1406868 2013-3-21 13:33

好的技术需要用到合适的地方,用错了制造的产品同样会有缺陷,就看产品设计者的水平了。

用户1145209 2013-3-21 09:59

以前用过 can 最近准备再使用 受教了

用户1610239 2013-3-19 11:12

博主非常敬业认真,值得学习。

用户1353954 2013-3-19 10:57

我正在聽... (記筆記..)

用户1167151 2013-3-19 08:26

欣赏博主的执著......可是为什么没人听呢?

用户1602177 2013-3-18 16:51

每个环节都应该做到万无一失~~
相关推荐阅读
yfy812_845263591 2016-03-08 13:50
audi自动泊车(3月7日)
奥迪CEO鲁伯特·施泰德(Rupert Stadler)与该市市长约瑟夫·库尔他托内(Joseph A. Curtatone)共同签署了谅解备忘录。 奥迪正与美国东海岸城市萨默维尔共同筹划未来...
yfy812_845263591 2016-02-18 10:46
自动驾驶车风口开大了
自动驾驶车风口开大了   近日sae报道(Why Audi boss Stadler believes in a hands-off future - SAE International ...
yfy812_845263591 2015-01-07 16:24
做中国的黑匣子吧
近一年来看到飞机失联之后找黑匣子的艰难,像马航MH370耗费的人财物不知有多少亿美元了。其实现有的技术可以大大降低成本,甚至可能还救出一些人:   1。事发后把黑匣子自动与机体分离,用到...
yfy812_845263591 2014-09-26 09:11
手机添加放大镜
我眼睛老化,感到要是手机上有放大镜软件就好了,不过市场上没找到。也许由于镜头关系,虽然像素高,没法把近的物象的像素提高,然后显示清楚。不过我想,添加第三个光学头,成本的增加也不过小半个光电鼠标的成...
yfy812_845263591 2014-09-22 15:43
你必须要知道风险的根源
你必须要知道风险的根源   因为现在的中国已进入了汽车社会,年轻人或迟或早会有自己的车,而每台车上都用CAN总线在控制刹车、转向…,所以你要知道CAN的风险。我对CAN总线的出错漏检率的分...
yfy812_845263591 2014-06-19 16:45
大公司的不地道
大公司的不地道   大公司由于过往的口碑,不惜有时说谎,不知道狼来了的故事何时使那个说谎的孩子受到惩罚?举四个例子:   1。前不久EETIME 专栏独家报道了丰田突然加速在Okl...
我要评论
7
14
关闭 站长推荐上一条 /2 下一条