原创 国家兴亡匹夫有责,从神九用到CAN总线讲起(8)不要迷信

2013-3-4 20:29 14137 16 39 分类: 消费电子

国家兴亡匹夫有责,从神九用到CAN总线讲起(8)不要迷信

 

这样细节的讨论对没有花力气读过CAN原理的人可能比较吃力。为此简单介绍一下CAN的帧结构:CAN的帧由头部的仲裁域、控制域、数据域、CRC校验和、认可域和帧结束部分(EOF)构成。仲裁域主要是消息的标识符,不同优先级的标识符同时出现在总线上时,优先级最高者胜出,就按帧的剩余部分继续发送,而竞争失败者停止发送,转为接收者。控制域内有4位,决定数据域的字节数。

 

CAN帧的查错措施中对发生在控制域的位错是靠EOF的设计实现的。其原理是规定填充位规则只管到CRC结束处,而EOF部分为连续的71。当控制域发生位错时,原来传送的帧长被误读,产生了变形的帧。如果变形帧长于原帧,那么原帧的EOF部分将落到变形帧的数据域或CRC域,由于EOF部分破坏了数据域或CRC域的填充位规则,接收节点就查到错,在EOF6位处发报错帧。如果变形帧短于原帧,那么接收节点会在期待的EOF部分收到原帧的数据或CRC,就不会有连续的71,接收节点就会发现不满足ACK分界符或EOF部分的格式错,从而在EOF的任一个位置(查到错后的一位)发报错帧。由于这种机制,不但有接收错的节点不会产生错收,也保证了系统内所有节点的一致性。

 

但是当有第二个位错时,这一机制存在漏洞。图1中发生在传送EOF5位的1如果有位错,那么EOF部分和数据部分的区别就不再存在。变形帧就存在漏检的可能性。就可以理解为收到了有填充位的数据F1,或者由于正在送数据F1的填充位时出了错,被理解为收到了期待的EOF

20130304202844811001.gif1数据流和EOF部分发生误解的条件

 

2DLC0111变为0011的例子(DLC2传送中由1变为0),长帧读为短帧:20130304202844773002.gif2  DLC2传送中由1变为0时帧的变化

此时原帧的第6个数据字节具有图1F1的值,其填充位在传送中出错变为1,从而使变形帧读为Ack+EOF,格式是符合标准的。对任意H*D1D2D3总存在一种C1*C2*,它满足CRC检验及其分界符的格式检验,所以出现变形帧通过CRC检验的概率是2-16。对D6F1来讲,只要前7位为0111111,就能保证接收节点在填充位传送出错时EOF的格式检验通过(因为CAN规定接收节点的格式检验只到EOF6位)。所以F1出现的概率是2-77字节的帧,11位标识符可能有2个填充位,自DLC1CRC结束共73位,可能含18个填充位,帧长最多为119位,原帧二位错发生位置的组合有119*118/2=7021种,所以发生在DLC2D6填充位处错的概率为1/7021=1.4*10-4。这一情形下的漏检概率为Pun=2-16*2-7*1.4*10-4=1.69*10-11

节点收下变形帧后,如果有新帧发送,它会干扰其它节点对原帧的收发,从而引起报错,但是这种后果已经影响不到该节点已经收下的帧。

 

这种漏检的情况还有;数据由6字节变到2字节(DLC2传送中由1变为0),Pun=1.69*10-4*2-23;数据由8字节变到0字节(DLC3传送中由1变为0Pun=1.21*10-4*2-23;数据由4字节变到0字节(DLC2传送中由1变为0),Pun=2.55*10-4*2-23。总的错帧漏检率为Pun=8.1*10-11,仅此一项,它已经大于Bosch声称的漏检率4.7*10-11,所以不要迷信外国。

 

说到迷信,从字面上讲,就是自己不动脑子,只要是权威说的就不加思考地接受了,这当然省事,因为有了事可以推托:外国人也是这样的,我们水平低,能不错吗?这样的态度无异于认为我们是****。我认为为了把我们的事做好,每个数据都应审核一下,也许过去没有发现错,才办了错事,那确实是当时认识水平不够。但今天已经给你指出了问题,就不要再推托了。

现在国际上在推行汽车的功能安全标准ISO26262,那么对于以前已经被安全认证过的东西,是否要因为新发现了有安全漏洞而推翻呢?我认为功能安全的概念中有重要的一条,即功能安全存在于整个产品的设计、生产、维修生命周期中。新发现有错表示原来的安全指标分解过程有错,不能被确认(Validation)了,自然要重新确认,否则搞什么认证和确认都是假的了,只留下粉刷现实的印记而已。希望管事的人不要叶公好龙。

 

现在谈谈CAN FD:这是2011Bosch推出的可变速率的CAN升级版本,它仍然声称在安全性方面错帧漏检率是4.7*10-11

 

Total residual error probability for undetected corrupted messages: less than

message error rate * 4.7 * 10-11.

但是在它的二种速率交替时,会有慢速读取高速位流而出错的情况,形成第3种错帧漏检机制。详见:杨福宇,“有关CAN FD的评论“,《单片机与嵌入式系统应用》,2012,  No.7p.34-3640 。它在实质上与本文是一样的,第二个错造成误读为EOFCAN FDDLC的值大于1000之后定义的帧长变化是大于4的,所以长帧读为短帧出现的情况要多许多,同样可用上述方法分析。只是因为帧长加大,二位错发生位置的组合数变得很大,从这个角度使第三种错帧漏检率降下来。

 

文章评论23条评论)

登录后参与讨论

用户1454308 2015-8-10 13:13

Good

用户1406868 2015-3-25 09:30

其实有很多这种问题的,它自检能力看起来很强。但是致命弱点就是必须按照它的规则来,只要我走错一位它只能死死地按照它原本设计的来,就不知道检测了什么东西了。

用户1724555 2014-12-4 14:29

OK

用户1670098 2013-6-15 21:02

谢谢分享!

用户1328555 2013-4-21 00:09

名字起太花俏

用户1229813 2013-3-23 17:18

谢谢分享!

guojianjun5_823636633 2013-3-22 16:21

国家兴亡匹夫有责

用户1549025 2013-3-11 16:26

介绍的非常不错,让我开眼界学习了

用户1613976 2013-3-11 13:57

学习。

用户1659756 2013-3-9 07:11

这个问题原来真没有想到,学习了。
相关推荐阅读
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...
我要评论
23
16
关闭 站长推荐上一条 /2 下一条