原创 国家兴亡匹夫有责,从神九用到CAN总线讲起(16)一块短板与二块短板

2013-7-2 14:34 2093 15 19 分类: 消费电子

国家兴亡匹夫有责,从神九用到CAN总线讲起(16)一块短板与二块短板

 

我们面临的困难很多,在想到要改进CAN时就有这样的困难:大多数CAN已嵌入到MCU中,而我们能做出满足抗干扰要求的MCU吗?这就是我要说的一块短板与二块短板的问题。


国外公司在汽车电子市场中占的份额有各种统计方法,现在仅就MCU的统计摘录如下Renesas still dominates MCU market
  20130701143541253001.jpg

 

市场与技术、营销有关。从上表看到Freescale在增长,Atmel和Infereon的增长很快,我仅就技术发表点意见。

 

我听到过有人讲车厂喜欢用Freescale的芯片。后来我也留意了一下。在邵贝贝、宫辉等著的“嵌入式系统中的双核技术”(北京航空航天大学出版社2008)第32页提到了片内容错与纠错技术:


当系统遇到强干扰时,CPU在读取指令或数据时可能出现错误,如果指令或数据仅仅是某一位出现错误,ECC模块会自动纠正这一位的错误,使系统照常运行,如果出现二位或二位以上的错误,则ECC会以中断方式通知CPU,出现了读程序错或读数据错。


该节后面的如何实现我没有查实,但是我查了MC9S12P128.pdf,p19:
Up to 128 Kbyte of program flash memory
32 data bits plus 7 syndrome ECC (error correction code) bits allow single bit error correction and double fault detection
4 Kbyte data flash space
16 data bits plus 6 syndrome ECC (error correction code) bits allow single bit error correction and double fault detection


32位程序用7位保护,16位数据用6位保护,为了纠错可能采用了类似BCH码的技术。我觉得要对抗电磁干扰,工艺当然重要,而架构更为重要,有数据与程序的检错是非常重要的。从可信赖性的分析角度,也就是故障的覆盖率问题,缺了这一环就会放过很多错。我在写“MCU需要改进”一文(杨福宇,“MCU需要改进“,《单片机与嵌入式系统应用》,2008,  No.4,p.5-6,36)中提到了51单片机指令有一位变化的后果,(发现此问题是1990年代比较早,写文章时我还不知道Freescale已有这种技术。)
 
Bit 第一字节 变化后指令 意义   
- 1000 0101 85 50 37 MOV 50,37   
0 1000 0100 84 50 37 DIV AB; JNC 37   
1 1000 0111 87 50 37 MOV 50,@R1; ADDC A,@R1   
2 1000 0001 81 50 37 AJMP 0450; …   
3 1000 1101 8D 50 37 MOV 50,R5; ADDC A,@R1   
4 1001 0101 95 50 37 SUBB A, 50;ADDC A,@R1   
5 1010 0101 A5 50 37 ?; JNC 37   
6 1100 0101 C5 50 37 XCH A,50; ADDC A,@R1   
7 0000 0101 05 50 37 INC 50; ADDC A,@R1 


从表可见,一bit的变化完全改变了原来MOV指令的意义,程序流或数据产生不可予测的变化。例如表中(bit 0, 2 或5发生变化)变为跳转指令,可能不转入死循环,不引起watchdog动作,也有可能跳到非正常指令处,直至死循环。表中变为非跳转的其他指令则有可能改变累加器(bit 0, 1, 3, 4,6或7发生变化)、数据RAM(bit 1,3, 6或7发生变化)或状态寄存器(bit 0, 1, 3, 4,6或7发生变化)的变化。如果错误发生在指令的第二或第三字节,数据的源或目的地址就错了。这些都会造成数据错,因此,即使watchdog没动作,不能保证程序运行正常。对8051其它指令作分析可得到类似的结果。

 

对其它品种的CPU也可以作类似的分析,即使新的ARM机也一样,因为CPU的指令设计总要使同一长度内尽量多地做不同的工作。采用Freescale的纠错方法固然先进,但是代价大。如果只检错会简单得多,发现错产生中断,单次错则指令重执,多次错还可设计其它的应对方法,总之不让错扩散。数据检错已经是通信和数据存储的成熟的技术。我国已经有较多的CPU设计单位,也已经生产了一些CPU,只要加这一块就可以跳一跳,当你看到大多数国外厂商还没有采用Freescale已用的这一技术时,这跳一跳的意义是不言自明了,所以第二块短板也是可以较快地补长的。当别人还没有补CAN的短板时,你再把CAN的改进提上日程,岂不更好?


 

文章评论4条评论)

登录后参与讨论

用户1601560 2013-7-3 13:01

good, 小弟長見識了...

用户1245506 2013-7-3 09:59

这属于功能安全的范畴,属于测试覆盖的内容. 目前已经有至少3家公司提供这样的硬件. 汽车行业在功能安全方面有新的国际标准了

用户1610239 2013-7-3 09:39

非常好!

ssyniuej_957112275 2013-7-3 09:02

一直在学习中。也应用过CAN。开始以为不用考虑CAN通讯出错。现在看还是学的不够。
相关推荐阅读
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...
我要评论
4
15
关闭 站长推荐上一条 /2 下一条