碧波液压网 欢迎你,游客。 登录 注册

IEEE1588最佳主时钟算法的分析与实现

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  

  1 最佳主时钟算法(BMC)的相关概念

  在IEEE1588体系中, PTP(Precision Time Proto-col)时钟的端口状态被分为PTP_INITIALIZING, PTP_MASTER,PTP_SLAVE, PTP_DISABLED等9种状态,而BMC算法的目的就是为了计算出每个时钟端口的状态,从而确立网络中的最佳主时钟,以便于时钟之间的时间同步。BMC算法本身是由两部分组成的:

  状态决定算法:用来计算每个时钟端口的状态。 数据集比较算法:用来计算两个相关时钟端口数据集的二进制关系。

  而这两种算法进行计算所需要的信息主要来自两部分:时钟端口的默认数据集D0和时钟端口接收到的Sync报文中包含的信息。

  在这里我们使用IEEE1588标准的设定,假设某一具有N个PTP时钟端口的时钟C0的默认数据集为D0,则BMC算法计算时钟状态所需要的信息具体为:

  ■时钟的默认数据集D0;

  ■时钟端口r的Erbest数据集;

  ■N个时钟端口的Ebest数据集。

  其中,数据集Erbest是通过数据集比较算法计算和r端口相连的来自不同时钟端口的有效Sync报文所包含的信息得到的。而数据集Ebest则是通过数据集比较算法选择N个端口中最好的Erbest,作为时钟C0的信息更新来源。在这里, Erbest和Ebest所包含的信息主要是指, Sync报文中所携带的超主时钟(grandmaster,GM)的相关信息,如GMUUID,GMStratum,GMIdentifier等。

  2 时钟的状态改变机制

  由于在IEEE1588的初始化状态下,网络中各时钟节点的数据状态保持的是系统的默认状态或上一次系统关闭时的状态,因此在初始化状态下确立的主时钟是系统默认的主时钟或系统的上一次运行时确立的主时钟。但是在实际系统运行过程中,会出现网络中节点数目和网络拓扑结构的变化,以及网络中各时钟自身的状态变化等各种状况,使得网络的状态经常发生变化,这也就必然导致网络中各节点时钟状态的变化和最佳主时钟的变化。因此,在网络节点之间进行时间同步的同时,节点的时钟状态也必然随之不断的变化。

  在IEEE1588体系中,状态改变机制STATE _CHANGE_EVENT是时钟节点通过BMC算法利用时钟接收到的Sync报文中的信息来判断最佳主时钟的机制,它同时也用来判断接收到Sync报文的时钟是否需要改变现有的时钟端口的状态,其流程如图1所示。

  在图1中,时钟的状态改变机制首先会计算各时钟端口的Erbest数据集更新后的数值,这样做可以反映出时钟自上次时钟状态改变后,时钟是否收到新的有效Sync报文。随后,时钟的状态改变机制会利用更新后Erbest和Ebest数据集进行计算,并根据BMC算法的结果,更新时钟的端口状态和相应的数据集信息。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论