当前位置:首页 >> 军事/政治 >>

国家兴亡匹夫有责(10)


国家兴亡匹夫有责,从神九用到 CAN 总线讲起(10)错难补救 由于掌握了错帧重构的规律,所以可以说,你想怎样错就可以构造出怎样错 的帧。 图 1 是一个数值被放大的例子,其中 U= x8+x7+x6+x5+x4+1, Ec=U*G= (1000, 0010, 0001, 1100, 1110, 1001)。Tx1 可以是以前连续 5 个 0 之后的填充位。也可 以解释为 DLC0,例如原来是有 3 字节的数据,送一个 0000010000…的值,结果 错帧变为 1000010000…的值,错帧将值放大了 32 倍。

1st bit flip
i 1 2 3 4 5 6 7 8 9 10 11 12

2nd bit flip
13 14 15 16 17 18 19 20 21 22 23 24 25

Tx 1 0 0 0 0 0 ① 1 0 0 0 0 0 ① 1 0 1 1 1 0 1 0 0 1 0 0 1 Rx 1 1 0 0 0 0 Ec 0 1 0 0 0 0

*

1 1 0 0 0 0 0①1 0 1 1 1 0 1 0 0 0 0 0①* 0 1 0 0 0 0 1 1 1 0 0 1 1 1 0 1 0 0 1 0

图 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,即第 3 种 Ut。得到 U=x9+x8+x7+x6+x5+x4+1,Ec=U*G= (1000, 0100, 1001, 0111, 0111, 0100,1)来重构 出可疑数据流,如图 2。因为算出的 Ec9 正好是 0,且 Rx7 由于有填充位设为 1, 所以实际的放大倍数达到 264 倍。当然选其它 Ut 也是可以的,不过可疑数据流 的位数稍多 1 位。

1st bit flip
i 1 2 3 4 5 6 7 8

2nd bit flip
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Tx 1 0 0 0 0 0 ① 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 0 0 0 0 ① Rx 1 1 0 0 0 0 Ec 0 1 0 0 0 0 1 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 0 0 1

* * 0

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

1st bit flip
i 1 2 3 4 5 6 7 8 9 10 11 12 13

2nd bit flip
14 15 16 17 18 19 20 21 22 23 24 25

Tx 1 1 0 0 0 0

1 1 0 0 0 0 0①1 0 1 1 1 0 1 0 0 0 0 0① * * 0

Rx 1 0 0 0 0 0 ① 1 0 0 0 0 0 ① 1 0 1 1 1 0 1 0 0 1 0 0 1 Ec 0 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 1 1 0 1 0 0 1
图 3 错帧将数值缩小 32 倍

在应用中数值的变化可能引起应用功能的错误,例如在变速器换档或刹车 时,希望油门暂时减少,但是结果是加大,甚至可能全开。在丰田突然加速事件 中,我是怀疑 VSC 经 CAN 传送到节气门的信号可能出错。美国的 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,例如加一个 8 位 CRC,这个 CRC 和原来的 CAN 的 CRC 没有共同的质多项式,此时可把漏检率缩小 256 倍,这 样的结果还是达不到 Bosch 原定的指标。由于要占去一字节,在原来已用掉 8 字节数据的场合就比较麻烦:一帧要分为二帧。这都会增加带宽要求。其次是为 取得不同接收节点的一致性,它们都要知道别人是否发现有附加 CRC 错,就要 等有没有 NACK, 这要添加新的规定: 例如必需在什么时限内发出 NACK; NACK 的形式(否定哪个帧)。时限的引入也产生了延迟。

为了对付一个漏检的错帧,应用上的冗余要付出代价的,例如: 1。原来用二个物理通道,只要有一个通道“正确”收到了就可以了。现在 由于所谓“正确”可能是错的,当二个通道结果不一致时,你无法断定谁是真正 正确的。 就必须要有二个通道的第二次传送结果,在假定连续二次都发生错帧漏 检概率小到可忽略不计的情况下, 就可以以二次结果相同的通道作最终决定的输 出。这样,通信需要的带宽要加倍,CAN 本来已为了减少竞争,把总线利用率 定得较低,如 30%~40%,这样做,有效负载降到只有 15~20%。你为了满足余下 的需求,要增加一套新的 CAN 系统,或者忍痛割爱,把控制闭环的采样周期加 大,降低带宽需求,但也导致性能下降。 2。原来一个物理通道时,你需要至少送 3 次才能作出表决。此时带宽的需 求增到 3 倍,比上一条一样面临必须付出的代价。 3。用对象输出变化的已知极限,拦截漏检的错帧,有时不可行。例如 Audi 方向盘角度传感器 G85 到 ESP 的信号本来应该识别 0-2000°/S,这相当于 40° /20ms,那么用拦截方案,变化超出 40°就限值,但是由于传送值不是增量,方 向盘角减少后的值(比上次采样小 40°)在 CAN 传送中变大且被限值(比上次 采样大 40°),误差被限在 80°,仍然是严重错误。 4。接连多个采样值后作各种滤波,就像一般的抑制信号中干扰所取的办法, 越是想抑制输入的干扰,就越要减少当前输入的权重。但这种办法完全不适用, 因为原来的噪音只是信号范围的 1%或更小,现在的错误值可能是信号范围的 80%。要想抑制错帧,就会减少当前输入的权重到非常小,此时产生多个周期的 延迟,就连累正常输入也有这样的延迟。若不想延迟,就要加快采样,把占用的 带宽增加,而且不能完全消除错帧的影响。 这些方法显然会增加成本, 增加重量、 能耗, 使设计、 生产和维修变得困难, 同时应用的性能仍然有可能下降。 这样的措施只能是克服困难的暂时性的不得已而为之的措施。 就好比肚子饿 的时候,先填饱肚子再说,饥不择食。我们总不能一直这样吧,因为这样总在付 出别的代价。每一个人在作决择的时候总会有得有失,只是有的人看得远点,未 雨绸缪,在长时间的刻度上损失小,有的人看得近点,只能委曲求全。不能说谁 更高明,因为这只是目标函数的不同,约束条件的不同。而高明不高明往往是对 约束条件的认识上的差别, 有人认为做得到的事有人认为做不到。有人认为自己 做不到,别人也做不到。有人认为自己做不到,也想不到去请别人来做,如此等 等,诸葛亮的运筹帷幄,全在于他的审时度势,否则难有赤壁之胜,三国鼎立的 局面。 有人会认为这是危言耸听, 最好有实验数据来证实。这是非常朴素的实证观 念,在简单的物理系统中常常是这样做的。但是在可靠性分析上,往往无法作这 样的实验,把小概率的事件来作实验会非常费时间,就像文(6)讲的用软件注 入求错帧漏检率会需要天文数字的时间。 而像现在要求的功能安全要求的更小的 概率, 基本上只能用分析的方法。所以只能用分析的方法判断以前的分析有无错 漏,而不可能以有限的实验的方法来判断以前的分析有无错漏。


赞助商链接
相关文章:
...道德与法治8年级上册10.2《天下兴亡 匹夫有责》教学...
天下兴亡 ◆ 教材分析 匹夫有责》 本框是八年级《道德与法治》第四单元的第十课《建设美好祖国》的第二框,教材内容 主要是通过学生感知国家建设成就,认识到...
人教版道德与法治八年级上册:10.2《天下兴亡_匹夫有责...
人教版道德与法治八年级上册:10.2《天下兴亡_匹夫有责》教案 - 《天下兴亡 匹夫有责》教学设计 【教学目标】 1.帮助学生认识到劳动是财富的源泉,也是幸福的源泉...
...八年级上册10.2《天下兴亡 匹夫有责》同步习题(含答...
人教版《道德与法治》八年级上册10.2《天下兴亡 匹夫有责》同步习题(含答案) - 第十课第二节《天下兴亡 匹夫有责》同步练习 一、选择题 1、 小李同学准备在...
2017秋部编人教版道德与法治八年级上册10.2《天下兴亡 匹夫有责》...
2017秋部编人教版道德与法治八年级上册10.2《天下兴亡 匹夫有责》教案_初二政史地_政史地_初中教育_教育专区。第 2 课时 【教学目标】 知识目标 能力目标 ...
部编八年级上册10.2 天下兴亡 匹夫有责教案
部编八年级上册10.2 天下兴亡 匹夫有责教案_政史地_初中教育_教育专区。部编八年级上册10.2 天下兴亡 匹夫有责教案 人教版道德与法治八年级上册《天下兴亡 ...
...八年级上册第4单元第10课10.2天下兴亡匹夫有责教案
【整合】部编《道德与法治》八年级上册第4单元第1010.2天下兴亡匹夫有责教案 - 10.2 天下兴亡 匹夫有责 教学目标 知识目标:知道国家所取得的成就离不开广大...
...版道德与法治八年级上册10.2《天下兴亡 匹夫有责》w...
2017秋部编人教版道德与法治八年级上册10.2《天下兴亡 匹夫有责》word教案_初二政史地_政史地_初中教育_教育专区。第 2 课时 【教学目标】 知识目标 能力目标...
天下兴亡,匹夫有责
天下兴亡,匹夫有责_小学作文_小学教育_教育专区。天下兴亡,匹夫有责老师,同学,大家好。 很高兴站在这里与大家一起分享我对于“天下兴亡,匹夫有责”这句话的思 ...
天下兴亡匹夫有责演讲稿
天下兴亡匹夫有责演讲稿 同学们,你们说天下兴亡的下一句是什么——不,是我的责任!如果这次期 中考试每个人都额外加 10 分,那不等于没加吗天下兴亡,匹夫有责...
国家兴亡 匹夫有责
国家兴亡 匹夫有责 - 国家兴亡 匹夫有责 摘要: “国无防不立,民无兵不安” 。国防是人类社会发展与安全需要的产物,关系到国家和民族 生死存亡、荣辱兴衰的根本...
更多相关标签: