原创 国家兴亡匹夫有责,从神九用到CAN总线讲起(12) 公道自在人心

2013-6-3 13:07 1779 14 23 分类: 消费电子

国家兴亡匹夫有责,从神九用到CAN总线讲起(12) 公道自在人心


前不久看到癌症病人买到了假药的报道,使人对假药贩子从心底里产生仇恨,恐怕没人会让假药贩子逃过法网。因为人同此心,心同此理,人人都有父母亲友,人人都有得癌的概率,自然人人都有受假药贩子伤害的概率,即便得癌的概率是比较小的。安全乃是第一位的,就像电影《东京审判》中代表中国的法官梅汝璈用盛水的杯子比作人的生命而水是生命承载的人类文明,他用力一甩,杯子碎了,水也没了,没有了生命何处再能承载文明、期望、承诺、理想、……?我们考虑安全就要从这里出发。

 

本博文(11)讨论的这类CAN停止服务失效的概率有多大?它的决定因素有三个:是不是容易进入error passive状态;在error passive状态而在特定区出错的概率;总线上有16个待发帧而发生持续错的概率。

 

1.是不是容易进入error passive状态:


20130531101642936001.jpg

图1。ISO7637-3波形3a

 

无论是传导干扰还是辐射干扰,那种高频的干扰都被车企典型化归纳为100us为周期的干扰,幅度达到60v以上,持续约10ms,然后无干扰90ms。例如传导干扰ISO7637-2的波形3(图1)、辐射干扰ISO7637-3的快速脉冲。虽然出厂时要求各ECU通过测试的要求,但是在现场仍会发生错误,其原因是车经过的环境是不受限制的,使CAN可能面临更大更持续的干扰;另外由于老化,振动造成保护措施的失效也是不被随时测试的,例如设备上的干扰吸收回路老化、屏蔽磨破。如果进入了恶化的临界状态,那么节点就可能频发错误。任何一个接收节点有错,都可以否定发送节点的发送过程,假定正好碰到1个节点在10ms内有5条消息发送(2条10ms,1条20ms,1条50ms,1条100ms),每次都重发1次后成功,那么10ms后就可以使发送节点的TEC达到35,在无干扰的90ms里成功发送10ms消息18条,20ms消息4条,50ms消息1条,TEC将减到12,接着又进入坏状态,节点将很快进入error passive状态。

 

2.在error passive状态而在特定区出错的概率:由文(11)可知,产生发送节点等效离线错误的位置数为Ack~EOF共9位,其概率为9*BER。

 

3.总线上有16个待发帧而发生持续错的概率:


持续时间问题涉及挂起待发的消息队列有多长,以举例计算之。底盘CAN总线系统内一般有6个节点,约有60个左右的消息要传送,则每个节点平均有10条消息,假定周期为10、20、50、100、1000ms等各有2条,每条帧长为97bit,在500kbps下6个节点的总线负载率总计43.4%。当一个节点等效离线后,还有约50条消息要发。在时钟差的影响下,可以构成一个峰值。例如二个节点的晶振有200ppm的差,假设它们的初始相位差为5ms,那么在25s之后消失,该二个节点的消息就可能同时要求发送,在某个最小公倍数的时刻,所有节点的消息会同时要求发送,形成周期性的峰值。同一节点内的消息相互之间会有相位差,但是该相位差可能很小,以致小于一个帧的传送时间,从而可认为它们同时就绪,例如为了表达系统在同一时刻的状态,会同时采样几个电压和电流,并尽快地送出,以保证同步性。节点在相对频差-0.2、0.4、0.6、0.8*100ppm下的仿真结果见图2。

20130531101722545001.gif

图2仿真得到的挂起队长度与出现概率关系

 

这是仿真的程序:
Simulation:
1. Initialization: relative clock difference, message ID, offset, period and job state.
2. Calculate local time.
3. Check if new job is ready?
4. Calculate the number of jobs that were ready.
5. Clear one job with highest priority from queue.
6. Repeat 2 to 6 till the preset times.

 

其中队的长度每0.2ms统计一次,累计出该队长度在整个仿真时间内的出现次数。为了便于ECU编程,采样与写CAN控制器在一个任务中完成,所以假定10条消息在4ms内就绪。仿真开始时是最坏情况:所有节点同时开始写CAN控制器任务。在上述频差下,节点1、2经500s差10ms,也就是说二个节点的10ms周期的消息就绪时间又重合了,其它节点与节点1的组合各为为250s、166s、125s。由于较长周期消息对挂起队长的影响较小,所以仿真的时段取得较短。以600s的结果计算,挂起长度为16以上的情况(为图中曲线的积分)有3590次,占600秒内传送的1.2*10-3。需要特别注意的是,挂起队长的分布不是均匀的,因此处于等效离线而转为真正离线的机会也不是均匀分布的。由上述仿真60s、600s的结果看,挂起长度为16以上的情况都是3590次,如果在最坏情况60s内遇上了的机会便是1.2*10-2。如果在最坏情况6s内遇上挂起长度为16以上的情况有1005次,机会便是3.3*10-2。
图中队长度18的出现数比队长度17次的多,可以由下解释:虽然每个18队都要经过17队而下降,但是处于18队时仍可能增长到19队或更长,它们退下时又要经过18队状态。而在某时,由于同时就绪的消息多于2个,所以使队长度直接由小于17而跳到18,从而使18队的出现次数多于17队。

 

以600秒考察的有16个帧挂起的概率是1.2*10-3,于是这种失效的概率是P=BER*9* 1.2*10-3,其中BER为误码率。考虑到上述6秒、60秒时考察的概率,这是一个偏宽的估计。


如果在通道的坏状态下,总线上的BER=1*10-2,那么这种失效的概率将是P=1.0*10-4。

 

关于这种失效的成因我曾写成英文稿给美国交通部,他们把它转给CiA,一番周转后由Bosch给了回复,对他们的答复我也有回应给他们,我的分析也在国内发表了:杨福宇,“关于CAN隐患的争辨“,《单片机与嵌入式系统应用》,2009,  No.6,p.5-7。关键点是我认为总线上的流量峰值是各节点时钟差形成的,周期性可重复的,而Bosch认为峰值是出了错才积累起来的,因此是瞬时的。他没有回答在此状态下算不算失效,但承认有消极报错帧分界符结束晚于服务间隔的情况。总之,他们并没有承认失效,并且在新的CAN FD中没有处理。

 

对我们的用户,这算不算失效是很关键的。现在以2010年丰田召回风波中的事为例,当时有PRIUS混合动力车,在刹车能量回收的软件设计中有一个疏忽,造成了0.06秒的延迟,结果用户感到刹车不给力,追究后形成召回,这是当时网上查到的解读:由于延迟0.06S时速20公里的车的刹车距离会增加0.7m。对于在高速运动(如100km/h)而紧急刹车的情况,对于以CAN传送刹车的分散控制器的车,可能因40ms失效而增加刹车距离1.1m;对于踏板直接控制刹车的情况,也要经CAN通知油门减油,40ms失效使油量不减也会减弱刹车的效果。

 

20130531101817265001.jpg

图3被召回的prius延迟

 

ESP是新的车的卖点,国外已把它作为新车的必备功能,因为它对车的安全太重要了,它已经避免了许多可能发生的车祸。下面是Bosch的ESP8的要求:

 

20130531101949370001.jpg

20130531102017932001.jpg

 

你可以看到许多信号要通过CAN来传送,而且要求每20ms刷新一次,如果40ms的通信失效发生,如何确定ESP的响应?如何保证ESP的功能是安全的?这40ms的通信失效该不该重视?

 

现在进一步设想发生了错帧漏检,你超车时转向5度,而CAN告诉ESP是30度,接着EPS又通信失效40ms,没有正确数据可告诉ESP,ESP就一直帮你转向40ms,你可能发现有冲到逆向车道之可能,但是你已来不及反应了。刘翔的起跑速度是0.12秒,我想你的脚不可能快于他的脚吧。

 

有人曾声称他们的软件设计“已经考虑了各种安全机制,不会有问题“。每一个系统都有时间上的要求,越是安全攸关的系统越是时间上要求严。此时,除非有另一二条备份的重复CAN通道,对于通信离线这样的失效这样说恐怕只是假话。如果用时间触发协议,就会禁止出错自动重发,只能以大量丢帧来换取不会长时间停止服务,即以大量短时停止服务来换长时间停止服务,此时的风险也是未经评估的。比如说,Bosch的ESP要求20ms刷新,长了不能保证,若你的软件设计可以对抗40ms停止服务,你不是已超越Bosch了吗?

 

如果一个缺陷已经有可能影响到当前产品的安全,而仍然放之任之,这就要受到消费者的惩罚了。在中国我们看到三聚腈氨事件,那些堆砌起来的所谓品牌价值一夜之间蒸发了,因为说到底,品牌是以品质作后盾的,不踏踏实实地去做品质,取巧是长不了的。特别现在是互联网的时代,信息的流动很快,已经没人能一手遮天了。只要不是虚构,大家说理,相信公道自在人心。中国的乳业由于毒牛奶而如此艰难,小白领千方百计找洋奶粉,弄得香港限制大陆客购奶粉的量,转而网购,把洋奶粉的价钱步步推高,大奶牛新西兰高兴不止。谁知新西兰也出了有双氰胺事件,又出现了冒牌的山寨新西兰奶粉,中国的妈妈们真是没办法了,我想唯一的办法是把中国的奶粉质量提高,让我们的下一代吃得放心。如果我们的车用CAN有问题,别人也不解决,我们是不是也得靠自己吗?


 

PARTNER CONTENT

文章评论9条评论)

登录后参与讨论

自做自受 2016-2-16 22:24

是啊,很不错了,知足常乐,是也。 愿你久等必有一善。 想开了,就是为企业的融资、众筹做贡献吧...呵呵飘来飘去

qijie72_812793070 2016-2-15 15:52

你这很不错了!我去年12月份的几千个大洋现在都没发下来呢,更别说什么年终了!呵呵 飘过飘过

用户1056304 2014-4-21 20:42

国家兴亡匹夫有责

yu_029_209198529 2013-11-1 11:04

在总线上经常能发现一些偶发故障,比如通信中断。原因可能包括电压的波动,干扰等,但是往往并不影响使用。大多数都可以作为历史故障清除。对于DSG的问题,大众内部已经有结论。但是从我掌握的信息看并没有关于CAN的。一般的经验是发动机和变速箱档位的匹配有一个转速范围,比如挂入4档,由于车速不同发动机转速可以从2000多转到5000转。如果CAN通信异常导致电脑无法解算换挡数据,恐怕需要很长时间的总线异常比如数秒?而CAN通信异常的时间一般以毫秒记,对现在汽车的工况来说不至于造成明显的影响。 方便的话您可在回复的同时给我留言,这样比较方便找到帖子。因为不知何故我的回复在我的论坛信息里没有记录。

yfy812_845263591 2013-9-6 10:26

关于can实用中是否出现问题,学术界的报道很少,所以印象中很可靠,但这次vw的dsg召回使我有机会认真查了一下,找到了22个例证,见本博客第15篇。要知道用dsg的车有70万辆,有多少百分比的人能提供诊断代码?恐怕千分之一吧!有通信错能诊断出而未及时记录的百分比是多少?u0101是250ms外通信中断才记录,那么短于250ms的通信中断是否要更多?假定为4倍。这22个例子中can中断的次数也是多次(2~8次),假定每辆车开了1000小时。那么dsg系统的can出错就不是小数了:22*1000*5/700000/1000=1.5*10-4个故障/小时 还有其他的系统,只是缺数据而已,不是代表不出故障。

yu_029_209198529 2013-9-3 14:37

CAN目前是汽车上应用最广泛最成熟的技术,其本身的容错机制也是比较可靠的。以目前汽车的行驶速度,还没有听说过CAN总线错误导致的大问题发生。至于干扰,汽车研发阶段是必须进行电磁实验的,对可预见的干扰也基本可以涵盖。在ESP系统中,方向盘转角信号放在驱动CAN总线,而车身的偏转率和侧向加速度这两个要求最高的信号一般是直接和ESP电脑相连的,并不放入车辆网络,这样做增加了可靠性。方向盘转角的影响因素很多,甚至轮胎气压高低的作用和转向机构的间隙影响力都会超过CAN总线延迟的几十毫秒,因此没有在这个问题上花费更高成本是有情可原的。至于博世公司的回复,我猜测有可能是他们和作者的实验条件不同造成的。对博世来说,时钟偏差,导线信号损失这样的问题可能早已不在考虑范围内,或者不是影响信号的主要因素,因此才会有以上的答复。

用户1666785 2013-6-5 09:57

应当有我们自己的总线技术.

用户1538441 2013-6-4 14:05

听起来很有道理,关键时候机器也靠不住啊

用户1130179 2013-6-4 11:20

是让人担忧啊!电控是双刃剑,控制方便带来操控的灵活,但反应速度和抗干扰则会影响到他到可靠性!

用户1173460 2013-6-4 09:16

认真拜读!
相关推荐阅读
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...
我要评论
9
14
关闭 站长推荐上一条 /3 下一条