新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 分布式嵌入系统中的交互一致性

分布式嵌入系统中的交互一致性

作者:时间:2011-03-14来源:网络收藏

  参考文献[3]建议了一个签名的方法例子,即用密钥ki对数据d求出签名a: a=(ki·d)mod p,其中p是2的幂,ki是小于p的一个奇数,接收节点用另一个密钥ki-1验证:d=(ki-1·a)mod p。ki和ki-1有如下关系:(ki·ki-1)mod p=1。这样,有错节点能作伪的概率为1/p。这种方案作伪者要不知道加密的办法才行。参考文献[3]认为要求更严的场合要采用密码学的方法。

  从工业应用来看,有错节点的作伪的可能性来源乃是电磁干扰,对人为的黑客攻击应另外采用对抗措施,所以可以采用较为简单常用的CRC校验和作为签名。注意,这个CRC校验和是应用数据的校验和,不要混同于通信帧的校验和。在冗余里关心的是应用数据的,而应用数据在MCU与通信控制器的传递过程中可能出错,通信帧的CRC校验不能覆盖这一错。例如,应用通过FlexRay的二个通道传送同一数据时,由于写入输出缓冲器的过程是分时的,如果其中一次受到干扰,应用数据与应用CRC(签名)不再匹配,那么接收方将能发现应用数据的传送错而加以丢弃。

  在总线广播通信中,由于各节点受干扰请况的不同,它们可能接收到不同的帧,一旦又发生了错帧漏检,那么就会发生一个节点给其他节点送不同值的情况,这与点到点通信的情况一样,是一种拜占庭错。同时,转发过程又涉及MCU与通信控制器的传递过程,其中也会发生错,所以转发过程也用数据加签名的方式。例如节点p在第3轮收到帧(((d:a0):aj):ai)时,检验ai的签名是否正确,如果错,那么在节点j到i的转发通信中有错。如无错,继续对((d:a0):aj)作aj签名的检验,如果错,那么在节点0到j的转发通信中有错。如无错,再对(d:a0)作a0签名的检验,如果错,那么在节点0的MCU与节点0的通信控制器通信中发生了错,或者它在计算签名时发生了错。

  未通过签名检验的数据将不提交到choice,如果主节点无错,从节点有m+1个,那么在第一轮中至少有一个从节点正确收到,在以后各轮中其他有错节点的转发将不会影响这个节点的choice。现在可以发现SM算法的一个有趣的特性:如果某些从节点只是发生了瞬时故障,由于无错节点的转发,它仍然有机会得到相同的choice。

  由于采用总线广播,主节点可以收到被转发的自己的帧,因此可以进行自检。若全部转发结束后自检不通过,就可以采取进一步的措施,例如本节点重算签名并写通信控制器,或者立即进入故障-静默模式。

  SM算法假设帧的丢失可以检测出来,这要靠另加的超时报警单元。一旦时间窗口关闭,各节点就根据已收到的各帧进行choice的更新工作。

  一次SM算法结束后就可认为将开始新的一次SM算法,也就可以初始化choice。如果将每一个节点开始发本节点数据的次序固定下来,并将以前节点开始发转发的时刻来预置本地定时器,那么在预定的时间窗口内上一节点因故障而未转发的错误可以被发现。上一节点转发结束的信号或时限到可用来触发本节点开始转发。

  2 互为冗余

  经过执行SM算法,所有无错节点和有瞬时故障的节点都可得到其他节点发送的一致的输入值。有错节点发出的输入值被所有节点(包括有错节点本身)识别,不被用来进一步作计算,此时有错节点进入故障-静默模式,其余正确节点直接开始重新分配刹车力矩的算法。输入值交换无错时每一个节点用相近的控制算法计算每个轮子的控制输出(刹车力矩)。然后再用SM算法交换各自计算结果,每个节点将有一致的各节点的输出值。

  在每个节点计算时,会因干扰(如EMI或热冲击等)而出现错误输出值。或因其他附加条件(例如刹车力矩传感器的失效,MCU自检错)等因素,人为使该节点计算得的输出值为非正常值。由于SM算法,这个错误的输出值一致地传送到每个节点。

  这样各轮子的刹车力矩就有4个来自各节点的冗余计算结果,这是一个二维的矩阵。在矩阵中找出有错的刹车力矩是哪一个,以及有可能发生永久故障的节点是谁。由于计算结果是模拟量,冗余又为了避免共同错(common mode faults)强调各备份间的多样性。同样算法也可能会使结果有微小差别,所以与其他计算结果偏离大于预定限值时视为有错。

  有严重故障的节点的输出值可能全是错的,有瞬时故障的节点可能只有一个计算结果是错的。由于所有正确的节点均采用同样的判别原则,一致的输入数据,它们作出同样的判别结论。

  如果有一个节点的一个刹车力矩计算是错的,那么可认为这个节点遇到了瞬时干扰。此时仍可按多数或平均方法确定各轮子的刹车力矩,各节点按该轮子对应的刹车力矩加以执行。

  如果有一个节点的刹车力矩计算都是错的,那么确定这个节点发生了一个严重的也许是永久性的故障,此时所有正确的节点将按补偿算法重新计算刹车力矩输出,以使车子减少偏航,减少颠簸。

  严重的错误是发生通信链路断开,正确节点按SM算法用超时可以发现有错节点。断开链路的节点按SM算法发现所有其他节点都错了,这时它应该判为自己错了,对本轮子的刹车力矩应取一个缺省值,这个缺省值也是在其他正确节点补偿算法中采用的对该轮子的缺省值。

  由上可见,由于出故障后节点只须保证故障-静默模式,刹车力矩的再分配保证了整车的故障-安全特性。控制器硬件将大为简化,虽然初期软件成本增加,其后可以分摊,总体成本是下降的。



评论


相关推荐

技术专区

关闭