理论教育 嵌入式系统同步时钟需求与校正方法-汽车系统手册

嵌入式系统同步时钟需求与校正方法-汽车系统手册

时间:2023-08-26 理论教育 版权反馈
【摘要】:在系统启动阶段,节点的所有本地时钟必须同步以提供全局时间。在运行过程中,将调整该数以适应不同节点的时钟同步。一个同步帧是有一组同步位的帧;不考虑非同步帧的时钟同步。表5.1 测量结果差异的案例5.3.4.3 校正值的计算FlexRay采用了两种不同校正值的组合:补偿校正和比率校正。

嵌入式系统同步时钟需求与校正方法-汽车系统手册

在诸如FlexRay的TDMA网络中,一个集群的所有节点需要一个共同的全局时钟,目的在于所有节点只在自己的时槽中发送(信号)。在系统启动阶段,节点的所有本地时钟必须同步以提供全局时间。每个节点都有一个本地时钟发生器,该发生器通常是基于石英晶体共振频率。由于两种晶体很少有完全相同的共振频率,所以本地时钟在操作过程中开始漂移分开。一个典型的石英晶体有量级为50×10-6的精度。晶体的频率并不能静态确定,因为它也受到外部因素的影响,如温度和振动[WG92]。因此,在系统的操作过程中必须定期同步本地时钟。

由于完美的同步在分布式系统中是不可能实现的,因此全局时钟在所有节点上并不完全相同,但是本地时钟间的差异有一个上限。假设这个界限对于应用程序域而言足够低,那么一个共同的全局时间可以被假定在一些抽象的水平上。下面将介绍FlexRay的定时机制和时钟同步算法

5.3.4.1 FlexRay的定时

FlexRay中的时间由三个部分来定义,它们包括:周期、宏拍(macrotick)计时器和微拍(microtick)计数器,其中一个周期由几个宏拍层组成,且一个宏拍又由几个微拍组成,如图5.10所示。由于宏拍在所有节点上是同步的,所以每个周期的宏拍的数量对于整个集群而言是一个常数。微拍是由本地时钟发生器产生的,因而当前微拍的值仅在一个节点内有效。每个宏拍中的微拍数取决于本地时钟频率,并且对于每个节点它也是不同的。在运行过程中,将调整该数以适应不同节点的时钟同步。

FlexRay的时钟同步算法是韦尔奇-林奇算法[WL88]的扩展。主机的本地时钟可与FlexRay的全局时间同步,以便在主机上运行的应用程序也有一个集群范围的时间的同步概念(参见5.4.1节)。全局时钟也可以在两个集群间同步或基于一个外部时间源来同步。

只在静态段时进行定时的测量,并且在动态段时和/或NIT时计算修正值(参见5.2.2节)。

978-7-111-52251-5-Part02-26.jpg

图5.10 定时层级[FPS05](飞思卡尔半导体公司版权所有,包括2004,2007.已获得许可)

5.3.4.2 时钟漂移的测量

一个节点可以通过观察其他节点的帧的到达时间来计算其本地时钟和其他节点的不同时钟的定时误差。这种方式不需要额外的通信

每当一个节点从另一个节点接收一个同步帧时,一个时间标记将随此帧一起存储。一个同步帧是有一组同步位的帧(参见5.2.1节);不考虑非同步帧的时钟同步。所有同步帧的奇数和偶数周期数的偏差被分别储存。基于这些测量来计算时钟修正值。测量结果的一个案例见表5.1。

表5.1 测量结果差异的案例

978-7-111-52251-5-Part02-27.jpg

5.3.4.3 校正值的计算

FlexRay采用了两种不同校正值的组合:补偿校正和比率校正。补偿校正用于减少当前的时钟偏差,而比率校正用于预测时钟偏移率,如图5.11中描绘的四个本地时钟。灰色垂直线表示时钟校正的应用。(www.daowen.com)

“容错中点算法”[FPS05]被用于计算校正值。该算法接收一列数字作为输入,并发送中点作为输出。表5.2描述了该算法的一个案例。从首列中删除k个最大数和k个最小数,从而排除了k个可能出现故障的影响时钟同步的节点,获得第2列。根据输入值的数量来选择参数k:1或2个输入值,k=0;3至7个输入值,k=1;大于7个输入值,k=2。在这一步之后,算法将保留最大和最小的元素在第3列中,并在第4列中返回这两个值的平均值。

978-7-111-52251-5-Part02-28.jpg

图5.11 时钟同步算法补偿校正(左)、比率校正(中)、补偿校正和比率校正的结合(右)

表5.2 容错中点算法的案例

978-7-111-52251-5-Part02-29.jpg

在每个奇数通信周期中计算“补偿校正”值。将计算这个周期中接收的每个同步帧预计到达时间和实际到达时间之间的差。应用容错中点算法于该列表,并且发送一个补偿校正值。如果校正值处于一定的范围内,那么它将应用于周期结束时。在表5.1的案例中,“补偿误差”一列表示“预计值”和“奇数周期测量值”两列数之间的差。在该案例中,此补偿误差结果是1。

在奇数通信周期中计算的“比率校正”值,是基于当前和之前偶数周期测量值。对于每个测量的同步帧,将计算这个周期和上个周期的偏差值的差。它将给其他每个节点发送一个漂移率。把容错中点算法应用到这些漂移率上,并将比率校正值发送给该节点。同样的,如果校正值在一定的范围内,那么它将在这个周期结束时被应用。在表5.1的实例中,补偿误差按照“偶数周期测量值”和“奇数周期测量值”之间的差来计算。在该案例中,比率误差是-1。

5.3.4.4 校正值的应用

当前的校正值被应用于当前周期的NIT中。补偿校正在每个奇数周期中执行,而比率校正在其接下来的偶数周期中执行。

如图5.12所示,补偿校正值被简单地添加到NIT中,从而缩短或延长通信周期的总长度

978-7-111-52251-5-Part02-30.jpg

图5.12 校正值的应用[FPS05](飞思卡尔半导体公司版权所有,包括2004,2007,已获许可)

比率校正值被添加到每个周期的微拍数中。因为每个周期的微拍数是静态的,因此基于每个周期的新的微拍数,计算出每个宏拍的微拍数。因此,比率校正值将影响接下来的两个周期的长度,它们是要重新评估的。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈