图5.8描绘了一个集群的唤醒。当集群处于睡眠中,而集群的第一个节点由一个外部事件唤醒时,它启动它们的操作系统并设置FlexRay控制器。一次只唤醒一个通道,以防有故障的主机干扰在两个通道上的一个已运行的集群的通信。因此主机必须选择通道来唤醒。主机通知控制器给此通道发送“唤醒模式”。一旦其他控制器收到此唤醒模式,它们将唤醒它们的主机。新唤醒的节点之一将唤醒第二个通道,而它将以与第一个通道相同的方式工作。由于至少要两个节点才能启动集群,因此第一个节点等待一段预定的时间,在这段时间里至少有一个其他节点假定是准备好启动的。然后被唤醒节点将进入启动阶段。
图5.8 集群唤醒[FPS05](NXP版权所有.已获许可)
启动
如图5.9所示,在启动阶段存在三种不同类型的节点:一个真正的主冷启动节点、至少一个紧随的冷启动节点和任意数量的非冷启动节点。如果一个冷启动节点处于启动模式且没有收到任何通信,那么该节点将成为“主冷启动节点”。如果它接收了通信,那么将成为“紧随的冷启动节点”,因为它假定这里已经有一个主冷启动节点。
主冷启动节点首先发送冲突符号(CAS),然后通过传输它的“启动帧”开始第一个通信周期。CAS用于检测是否多于一个冷启动节点正在尝试启动。每个冷启动节点都有一个真正的启动帧,一个在头段具有启动和同步位设置的帧(参见5.2.1节)。经过四个周期,主冷启动节点接收紧随的冷启动节点的启动帧。如果和其他冷启动节点的时钟同步是成功的,那么主冷启动节点将进入正常运行。(www.daowen.com)
图5.9 集群启动[FPS05](NXP版权所有.已获许可)
一个紧随的冷启动节点一直等到它从主冷启动节点接收到两个连续的帧。这两帧需要构造一个初步的调度表。如果成功,它将收集随后的两个周期的所有同步帧,并执行时钟同步。在时钟同步初始化成功后,它开始发送它的启动帧。如果三个以上的周期都没有错误,那么紧随的冷启动节点将进入正常运行。
一个“非冷启动节点”一直等到它从主冷启动节点接收到两个连续帧。它按照初始调度表对两帧执行时钟同步。对于接下来的四个周期,它收集所有的同步帧并执行时钟同步。如果成功,它将进入正常运行。非冷启动节点和紧随的冷启动节点间的主要区别在于:非冷启动节点在启动时不发送任何帧。
按照这一方案,如果没有错误发生,所有节点在第7个周期结束时完成启动。节点的启动和节点进入一个正在运行的集群中的“重新整合”是相同的。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。