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

国家兴亡匹夫有责(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)讲的用软件注 入求错帧漏检率会需要天文数字的时间。 而像现在要求的功能安全要求的更小的 概率, 基本上只能用分析的方法。所以只能用分析的方法判断以前的分析有无错 漏,而不可能以有限的实验的方法来判断以前的分析有无错漏。


相关文章:
八年级道德与法治上册教案:10.2天下兴亡-匹夫有责
八年级道德与法治上册教案:10.2天下兴亡-匹夫有责_语文_初中教育_教育专区。人教版八年级道德与法治上册教案 人教版八年级道德与法治上册教案 第 2 课时 天下兴亡...
...道德与法治8年级上册10.2《天下兴亡 匹夫有责》教学...
天下兴亡 ◆ 教材分析 匹夫有责》 本框是八年级《道德与法治》第四单元的第十课《建设美好祖国》的第二框,教材内容 主要是通过学生感知国家建设成就,认识到...
人教版道德与法治八年级上册:10.2《天下兴亡_匹夫有责...
人教版道德与法治八年级上册:10.2《天下兴亡_匹夫有责》教案 - 《天下兴亡 匹夫有责》教学设计 【教学目标】 1.帮助学生认识到劳动是财富的源泉,也是幸福的源泉...
最新人教版八年级道德与法治上册教案10.2天下兴亡 匹夫有责
最新人教版八年级道德与法治上册教案10.2天下兴亡 匹夫有责_初中教育_教育专区。第 2 课时 天下兴亡 匹夫有责 1 教学分析 【教学目标】 知识目标 能力目标 情感...
部编八年级上册10.2 天下兴亡 匹夫有责教案
部编八年级上册10.2 天下兴亡 匹夫有责教案_政史地_初中教育_教育专区。部编八年级上册10.2 天下兴亡 匹夫有责教案 人教版道德与法治八年级上册《天下兴亡 ...
...《道德与法治》上册教案10.2天下兴亡 匹夫有责
部编人教版八年级《道德与法治》上册教案10.2天下兴亡 匹夫有责 - (此文档为 word 格式,下载后可以任意修改,直接打印使用!)第 2 课时 天下兴亡 匹夫有责 1 ...
部编版八年级《道德与法治》上册10.2《天下兴亡 匹夫有责》导学案...
部编版八年级《道德与法治》上册10.2《天下兴亡 匹夫有责》导学案(含答案)_政史地_初中教育_教育专区。第 2 课时 天下兴亡 匹夫有责 一、学习目标 1.明确...
部编版八年级《道德与法治》上册10.2《天下兴亡 匹夫有责》教案_...
部编版八年级《道德与法治》上册10.2《天下兴亡 匹夫有责》教案_政史地_初中教育_教育专区。第 2 课时 天下兴亡 匹夫有责 1 【教学目标】 知识目标 能力目标...
部编版《道德与法治》八年级上册10.2《天下兴亡 匹夫有责》教案_...
部编版《道德与法治》八年级上册10.2《天下兴亡 匹夫有责》教案_政史地_初中教育_教育专区。人教版道德与法治八年级《天下兴亡 匹夫有责》教学设计 课题 天下...
部编道德与法治八年级上册:10.2《天下兴亡_匹夫有责》...
部编道德与法治八年级上册:10.2《天下兴亡_匹夫有责》导学案(无答案) - 《天下兴亡 匹夫有责》导学案 必会知识点: 教学重点:尊重和学习国家的建设者。 教学...
更多相关标签: