一种精确时间同步协议的实现装置 【技术领域】
本发明属于网络通信领域, 尤其涉及一种精确时间同步协议的实现装置。背景技术 在目前的工业控制过程中, 由于工业控制网络中各时钟之间的不同或者同步误差 大给工业控制造成了一系列的问题。为了解决网络中各时钟的同步问题。现有技术提供了 多种可以支持网络时钟同步的协议, 如网络时间协议 (Network Time Protocol, NTP)、 简单 网络时间协议 (Simple Network Time Protocol, SNTP) 等。但这些支持网络时钟同步的协 议的共同不足是时钟同步精度不高, 一般都是毫秒级, 不能很好的满足现代工业控制, 如电 力行业、 轨道交通等的应用需求。
为了解决上述问题, 具有共同利益的信息技术、 自动控制、 人工智能、 测试测量等 领域的工程技术人员倡议成立了网络精密时钟同步委员会, 该网络精密时钟同步委员会制 订了网络测量和控制系统的精密时钟同步协议标准 (IEEE1588 标准 ), IEEE1588 的精密时 钟协议 (Precision Time Synchronization Protocol, PTP) 能够实现高精度的以太网时间 同步, 取得了很好的网络时钟同步精度, 显著的提高了网络的定时同步指标。
但是 IEEE1588 的 PTP 协议仅定义了同步的规范, 现有技术没有提供 PTP 协议的具 体实现装置, 使得该 PTP 协议难以得到推广。发明内容
本发明实施例提供了一种精确时间同步协议的实现装置, 旨在通过该精确时间同 步协议的实现装置运行 PTP 协议, 以达到网络中各时钟的高精度同步的问题。
本发明实施例是这样实现的, 一种精确时间同步协议的实现装置, 所述装置包 括:
系统初始化单元, 用于对精确时间同步 PTP 协议的实现装置进行初始化 ;
人机交互单元, 用于提供一种或者多种交互接口, 以供用户与 PTP 协议的实现装 置进行交互 ;
协议引擎单元, 用于运行 PTP 协议, 根据 PTP 协议组织各种 PTP 报文, 并根据 PTP 协议在主时钟设备和从时钟设备之间交互 PTP 报文, 根据各 PTP 报文的发送时间戳和接收 时间戳实现主时钟设备和从时钟设备之间的时钟同步 ;
硬件通讯单元, 用于对所述协议引擎单元组织的各种 PTP 报文打上时间戳, 并将 打上了时间戳的 PTP 报文在主时钟设备和从时钟设备之间进行传输。
在本发明实施例中, 提供了一种新的 PTP 协议的实现装置, 通过该 PTP 协议的实现 装置在网络中运行 PTP 协议, 以实现网络中各时钟的高精度同步, 从而解决了目前工业控 制上由于时钟之间的不同步或者同步误差大导致的各种问题。 附图说明图 1 是适用本发明提供的 PTP 协议的实现装置的网络结构图 ; 图 2 是本发明实施例提供的 PTP 协议的实现装置的结构框图 ; 图 3 是本发明实施例提供的主时钟设备和从时钟设备间的 PTP 报文交互的流程示 图 4 是本发明实施例提供的硬件通讯单元的结构示意图 ; 图 5 是本发明实施例提供的 PTP 协议的实现装置的详细架构图 ; 图 6 是本发明实施例提供的 PTP 协议的实现装置的启动流程图。意图 ;
具体实施方式
为了使本发明的目的、 技术方案及优点更加清楚明白, 以下结合附图及实施例, 对 本发明进行进一步详细说明。 应当理解, 此处所描述的具体实施例仅仅用以解释本发明, 并 不用于限定本发明。
在本发明实施例中, 提供了一种新的 PTP 协议的实现装置, 以在网络中实现 PTP 协 议, 满足网络中时钟的高精度同步需求。
本发明提供了一种精确时间同步协议的实现装置, 所述装置包括 :
系统初始化单元, 用于对精确时间同步 PTP 协议的实现装置进行初始化, 为 PTP 协 议的运行做准备 ;
人机交互单元, 用于提供一种或者多种交互接口, 以供用户与 PTP 协议的实现装 置进行交互 ;
协议引擎单元, 用于运行 PTP 协议, 根据 PTP 协议组织各种 PTP 报文, 并根据 PTP 协议在主时钟设备和从时钟设备之间交互 PTP 报文, 根据各 PTP 报文的发送时间戳和接收 时间戳实现主时钟设备和从时钟设备之间的时钟同步 ;
硬件通讯单元, 用于对所述协议引擎单元组织的各种 PTP 报文打上时间戳, 并将 打上了时间戳的 PTP 报文在主时钟设备和从时钟设备之间进行传输。
为了说明本发明所述的技术方案, 下面通过具体实施例来进行说明。
图 1 示出了适用本发明提供的 PTP 协议的实现装置的网络结构, 多个从时钟设备 与主时钟设备连接, 主时钟设备与各从时钟设备之间可以通过 PTP 报文进行通信。在本发 明另一实施例中, 多个从时钟设备也可以与多个主时钟设备连接。
图 2 示出了本发明实施例提供的 PTP 协议的实现装置的结构, 为了便于说明, 仅示 出了与本发明实施例相关的部分。
该 PTP 协议的实现装置可以用于通信设备, 如计算机设备等, 可以是运行于这些 设备内的软件单元、 硬件单元或者软硬件相结合的单元, 也可以作为独立的挂件集成到这 些设备中或者运行于这些设备的应用系统中, 其中 :
系统初始化单元 1 对 PTP 协议的实现装置进行初始化, 以为 PTP 协议的运行做好 准备。在本发明实施例中, 系统初始化单元 1 主要用于对定时器、 系统日志单元、 配置模块 等进行初始化。 其中初始化包括但不限于资源分配、 创建定时器、 创建消息队列以及初始化 系统日志等。其中定时器用于完成 PTP 协议交互时的逻辑操作, 保证 PTP 协议的正常运转。 消息队列用于为用户提供一个外部的 API 接口, 使得用户可以通过该 API 接口获取 PTP 协 议运转过程中发生的异常信息。其中需要分配的资源包括但不限于内存、 数据结构、 消息队列等, 如为 PTP 时钟数 据结构分配内存、 为外部主时钟 (Foreign Master) 分配内存。
其中 PTP 时钟数据结构用于定量描述当前时钟的属性, 对规范中定义的每一个数 据集的成员进行了包含, 记录时钟同步过程中发生的事件, 时钟端口的状态和数值等。
Foreign Master 用于存储外部主时钟设备发送的同步报文。其中 ForeignMaster 是针对本地时钟节点而言的, 所有从时钟设备接收到的外部主时钟的同步报文都需要被存 放在为 Foreign Master 分配的内存中, 用于 BMC 算法处理。 人机交互单元 2 提供一种或者多 种交互接口, 以供用户与 PTP 协议的实现装置进行交互。其中提供的交互接口包括但不限 于参数配置接口和用于测试的应用程序编程接口 (Application Programming Interface, API)。该人机交互单元 2 包括配置模块 21 和测试模块 22。
其中配置模块 21 提供参数配置接口, 接收用户输入的配置请求, 并根据该配置请 求对 PTP 协议的实现装置的系统参数进行配置。
其中可以配置的系统参数包括但不限于本地时钟参数属性和用户自定义参数两 部分。由于需要配置的系统参数在现有的 IEEE 1588-2008 规范中有规定, 在此不再赘述。
该配置模块 21 根据配置请求对 PTP 协议的实现装置的系统参数进行配置的方式 包括但不限于文件配置方式、 数据库配置方式、 WEB 配置方式等。 其中文件配置方式的具体流程如下 : 该配置模块 21 为用户提供文件配置接口, 用 户通过该文件配置接口输入配置文件, 并将该配置文件存储至该设置有 PTP 协议的实现装 置的系统的文件系统中, 在需要通过 PTP 协议的实现装置运行 PTP 协议时, 则直接读取该配 置文件中的内容, 并将该配置文件中配置的数值赋值到时钟数据结构中的对应变量, 以便 PTP 协议的实现装置使用。举例说明如下 :
假设配置文件名为 cfgFile.txt, 则该配置文件 cfgFile.txt 里的内容为用户 配置的系统参数。系统上电后首先打开该配置文件 cfgFile.txt, 然后将该配置文件 cfgFile.txt 中的所有字符读取到内存中, 解析每一个参数的完整性以及其对应的数值, 将 该数值分别对应赋值给时钟数据结构中的对应的变量, 以便被 PTP 协议的实现装置使用。
如果该配置文件 cfgFile.txt 不存在, 则 PTP 协议的实现装置将使用一组默认的 数值来赋值给时钟数据结构中的对应的变量, 然后将该默认的数值写到文件中, 作为后续 的配置文件。
其中配置文件中存储有用户配置的 PTP 协议的实现装置的系统参数。数据库配置 方式、 WEB 配置方式与文件配置方式类似, 不同之处仅在于采用数据库存储用户配置的 PTP 协议的实现装置的系统参数。在此不再一一举例说明。
测试模块 22 提供用于测试的 API 接口, 接收用户输入的测试请求, 并对该测试请 求指定的 PTP 协议的功能进行测试。该测试模块 22 进行测试的过程如下 :
首先调用一个测试程序入口, 进入到一个测试界面, 该测试节目包括多种功能测 试入口, 如定时器测试、 系统日志测试、 组播测试、 消息队列测试以及 PTP 消息测试等。
然后等待用户输入测试选项, 测试完毕退出到主界面等待再次输入。
协议引擎单元 3 运行 PTP 协议, 根据 PTP 协议组织各种 PTP 报文, 并根据 PTP 协议 在主时钟设备和从时钟设备之间交互 PTP 报文, 根据各 PTP 报文的发送时间戳和接收时间 戳实现主时钟设备和从时钟设备之间的时钟同步。
该协议引擎单元 3 包括定时器 31、 PTP 报文处理模块 32、 网络通讯模块 33、 同步算 法模块 34 和时钟处理模块 35。其中 :
定时器 31 为 PTP 协议的运行提供定时功能。该定时器 31 包括但不限于同步间隔 定时器、 接收超时定时器和延迟请求间隔定时器等三种类型的定时器。
其中同步间隔定时器用于控制主时钟设备向从时钟设备发送同步报文的间隔时 间。如当 PTP 时钟端口切换到 PTP_MASTER 状态后, 程序将会启动同步间隔定时器, 然后设 置定时的时间间隔为指定的时间, 定时的间隔时间是预先配置好的, 然后程序通过轮询的 方式查看定时的时间间隔是否到, 如果到了, 那么将该定时时间重新设置为指定的时间, 并 且发送同步报文到从时钟。
接收超时定时器用于控制从时钟设备从主时钟设备接收同步报文的间隔时间。 如 当 PTP 时钟端口状态切换到 PTP_SLAVE 状态后, 程序将启动接收超时定时器, 然后设置定时 的时间间隔为指定的时间, 定时的间隔时间是预先配置好的, 然后程序通过轮询的方式查 看定时的时间间隔是否到, 如果到了还没有收到 PTP 同步报文, 那么将 PTP 时钟端口切换到 PTP_MASTER 状态, 否则在该时间间隔内接收到了同步报文, 那么将该定时时间重新设置为 指定的时间。 延迟请求间隔定时器用于记录从时钟设备向主时钟设备发送延迟请求报文的间 隔时间。 如当从时钟接收到某一条同步报文后, 将会启动延迟请求间隔定时器, 然后将时间 间隔设置为同步报文间隔周期的整数倍, 该整数倍是预先设置好的。然后通过轮询的方式 查询该定时时间是否到, 如果到, 那么将时间间隔重新设置为同步报文间隔周期的整数倍, 并会发送延迟请求报文给主时钟设备。
在本发明实施例中, 同步间隔定时器、 接收超时定时器和延迟请求间隔定时器等 三种类型的定时器可以采用同一个定时器实现, 也可以采用不同的定时器实现。
PTP 报文处理模块 32 根据 PTP 协议组织并封装各种 PTP 报文, 通过网络通讯模块 32 发送 PTP 报文, 或从网络通讯模块 32 接收 PTP 报文, 并获取各 PTP 报文的发送时间戳和 接收时间戳。
在本发明实施例中, PTP 报文处理模块 32 根据 PTP 协议组织的 PTP 报文包括但不 限于同步报文、 跟随报文、 延迟请求报文和延迟响应报文。
其中同步报文是由主时钟设备周期性的发送至从时钟设备的报文。 在本发明实施 例中, 主时钟设备中的 PTP 报文处理模块 32 组织并封装同步报文, 通过网络通讯模块 33 发 送封装后的同步报文。从时钟设备的 PTP 报文处理模块 32 在接收到主时钟设备发送的同 步报文时, 获取接收到该同步报文时的时间戳 ( 以后都称为同步报文接收时间戳 )。
跟随报文也是由主时钟设备周期性的发送至从时钟设备的报文, 该跟随报文中包 含了同步报文的发送时间戳 ( 以后都称为同步报文发送时间戳 )。跟随报文和同步报文具 有跟随性, 同步报文发送后预定时间会发送跟随报文。
延迟请求报文是由从时钟设备周期性的发送至主时钟设备的报文。 在本发明实施 例中, 从时钟设备的 PTP 报文处理模块 32 组织延迟请求报文, 并在将延迟请求发送至主时 钟设备的报文, 获取发送延迟请求报文时的时间戳 ( 以后都称为延迟报文发送时间戳 )。
延迟响应报文是主时钟设备在接收到从时钟设备发送的延迟请求报文后向从时 钟设备发送的报文, 该延迟响应报文中包含了主时钟设备接收到延迟请求报文的时间戳
( 以后都称为延迟报文接收时间戳 )。
从时钟设备的 PTP 报文处理模块 32 在接收到主时钟设备发送的延迟响应报文时, 获取该延迟响应报文中包含的主时钟设备接收到延迟请求报文的时间戳。
同步算法模块 34 根据 PTP 报文处理模块 32 获取的各种 PTP 报文的发送时间戳和 接收时间戳计算从时钟设备与主时钟设备之间的时钟偏差和延迟。
在本发明实施例中, 同步算法模块 34 根据 PTP 报文处理模块 32 获取的同步报文 发送时间戳、 同步报文接收时间戳、 延迟报文发送时间戳和延迟报文接收时间戳计算从时 钟设备与主时钟设备之间的时钟偏差和延迟。
请参阅图 3, 为本发明实施例提供的主时钟设备和从时钟设备间的 PTP 报文交互 的流程示意图, 详述如下 :
1、 主时钟设备在 t1 时刻向从时钟设备发送同步报文, 从时钟设备在 t2 时刻接收 到主时钟设备发送的同步报文。
2、 主时钟设备在发送同步报文后, 在预设时间后发送包含有同步报文发送时间戳 t1 的跟随报文, 从时钟设备接收到该跟随报文后, 通过解析该跟随报文即可获取该跟随报 文包含的同步报文发送时间戳 t1。 3、 从时钟设备在 t3 时刻向主时钟设备发送延迟请求报文, 主时钟设备在 t4 时刻 接收到从时钟设备发送的延迟请求报文。
4、 主时钟设备在接收到从时钟设备发送的延迟请求报文后, 向从时钟设备发送包 含延迟报文接收时间戳 t4 的延迟响应报文。
根据图 3 所示的主时钟设备和从时钟设备间的 PTP 报文交互流程, 得到同步算法 如下 :
Offset = (t2-t1)-one_way_delay ;
one_way_delay = [(t2-t1)+(t4-t3)]/2 ;
根据上述两个公式, 即可得到 Offset = [(t2-t1)-(t4-t3)]/2 ;
其中 Offset 为从时钟设备与主时钟设备之间的时钟偏差, one_way_delay 为从时 钟设备与主时钟设备之间的时钟延迟。t1 为同步报文发送时间戳, t2 为同步报文接收时间 戳, t3 为延迟报文发送时间戳, t4 为延迟报文接收时间戳。
在本发明实施例中, 由于主时钟设备会周期性的向从时钟设备发送同步报文和跟 随报文, 从时钟设备也会周期性的向主时钟设备发送延迟请求报文, 在主时钟设备和从时 钟设备之间就会周期性的执行图 3 所示的同步过程, 同步过程反复执行, 最终将会使从时 钟设备与主时钟设备之间时钟、 频率和相位的一致。
时钟处理模块 35 根据同步算法模块 34 计算得到的从时钟设备与主时钟设备之间 的时钟偏差和延迟调整从时钟设备与主时钟设备之间的时钟偏差、 相位和频率。其具体过 程如下 :
当某一个时钟接入到一个子网后, 系统会很快进入到一个稳定的状态。其中一个 稳定的状态是指 PTP 时钟可以进行长时间的 PTP 协议交互的状态, 如主时钟 M 状态 (PTP_ MASTER)、 从时钟 S 状态 (PTP_SLAVE)、 或者被动状态 (PTP_PASSIVE)。其中被动状态在 PTP 规范文中可以理解为虚拟断开状态, 在被动状态下, 只接收 PTP 报文, 而不发送任何的 PTP 报文。
从时钟每次接收到同步报文和跟随报文后, 会完成一次偏差测量计算, 从时钟每 次发送了延迟请求报文和接收到了该延迟请求相关的延迟响应报文后, 会完成一次延迟测 试计算。
由 Offset = (t2-t1)-one_way_delay 可知, Offset 只和 one_way_delay 有关。为 了得到较为精确的 Offset, 则需要对 one_way_delay 进行适当的处理, 使该 one_way_delay 的值更精确。在本发明实施例中, 可以采用现有技术提供的多种算法对 one_way_delay 进 行处理, 也可以采用本发明实施例提供的如下方法对 one_way_delay 进行处理 : 在本发明 实施例中, 为了处理网络突发流量带来的抖动, 通过连续计算 3 次或者更多次的 one_way_ delay, 放在一个队列中, 然后过滤较大的异常数值和对多次计算的数值进行取平均值的方 式来得到 one_way_delay, 这样就可以减少网络突发流量导致的 one_way_delay 数值异常, 进而导致 Offset 异常。
得到了比较理想的 Offset 数值后, 通过计算从时钟和主时钟之间的偏差比率, 再 根据该偏差比率即可计算得到从时钟和主时钟之间的一个相位差和频率差。 如可以根据该 偏差比率通过 PHY 芯片提供的一个计算方式来得到从时钟和主时钟之间的一个相位差和 频率差。
在得到了从时钟与主时钟之间的时钟差、 相位差和频率差三个参数的偏差值后, 即可将该偏差值补偿到从时钟。
硬件通讯单元 ( 图未示出 ) 对协议引擎单元 3 组织的各种 PTP 报文打上时间戳, 并将打上了时间戳的 PTP 报文在主时钟设备和从时钟设备之间进行传输。
在本发明实施例中, 在主时钟设备中, 该硬件通讯单元对协议引擎单元 3 组织的 同步报文打上时间戳 ( 即为同步报文发送时间戳 ) 后, 传输至从时钟设备, 并在协议引擎单 元 3 组织好包含有同步报文发送时间戳的跟随报文后, 将该跟随报文传输至从时钟设备, 同时该硬件通讯单元在接收到从时钟设备发送的延迟请求报文时, 将该延迟请求报文传输 至协议引擎单元 3, 并在协议引擎单元 3 组织好包含有延迟请求报文接收时间戳的延迟响 应报文时, 将该延迟响应报文传输至从时钟设备。
在从时钟设备中, 该硬件通讯单元将接收到的主时钟设备发送的同步报文和跟随 报文传输至从时钟设备中的协议引擎单元 3, 在协议引擎单元 3 组织好延迟请求报文后, 将 该延迟请求报文传输至主时钟设备, 同时将接收到的主时钟设备发送的延迟响应报文传输 至从时钟设备的协议引擎单元 3。
请参阅图 4, 为本发明实施例提供的硬件通讯单元的结构示意图。
该硬件通讯单元包括用户数据包协议 (User Datagram Protocol, UDP) 传输层、 网 络连接协议 (Internet Protocol, IP) 传输层、 数据链路层 (Media Access Control, MAC) 传输层和物理层 ( 也称 PHY 传输层 )。在主时钟设备中, 在协议引擎单元 3 组织好 PTP 报文 后, 该 PTP 报文依次经 UDP 传输层、 IP 传输层、 MAC 传输层和 PHY 传输层传输至从时钟设备 中。从时钟设备中的 PHY 传输层接收到 PTP 报文后, 依次经 MAC 传输层、 IP 传输层、 UDP 传 输层传输至从时钟设备的协议引擎单元 3。
在本发明实施例中, 硬件通讯单元可以在 MAC 传输层或者 PHY 传输层为协议引擎 单元 3 组织的各种 PTP 报文打上时间戳。通过在 MAC 传输层或者 PHY 传输层为协议引擎单 元 3 组织的各种 PTP 报文打上时间戳, 可以极大的提高网络中的时钟同步精度。优选地, 在PHY 传输层为协议引擎单元 3 组织的各种 PTP 报文打上时间戳, 可最大限度的提高网络中的 时钟同步精度。
在本发明另一实施例中, 该 PTP 协议的实现装置还包括操作系统抽象单元 5。 该操 作系统抽象单元 5 提供操作系统的标准接口, 通过该操作系统的标准接口调用对应操作系 统的组件, 以使 PTP 协议的实现装置与硬件层进行通讯。其中操作系统抽象单元 5 提供的 操作系统的标准接口包括但不限于文件输入输出接口 ( 文件 IO)、 格式化输入输出接口 ( 格 式化 IO)、 网络接口、 网络输入输出接口 ( 网络 IO)、 中断管理、 时间管理、 定时管理、 任务管 理、 同步管理、 消息管理、 内存管理和系统断言等。
在本发明实施例中, 操作系统抽象单元 5 提供的操作系统的标准接口由构成不同 操作系统的基本组件组成, 这样 PTP 协议的实现装置可以直接通过操作系统抽象单元 5 提 供的操作系统的标准接口调用操作系统的组件, 实现与硬件层的通讯。 在本发明实施例中, 由于操作系统抽象单元 5 提供的操作系统的标准接口由构成不同操作系统的基本组件组 成, 从而用户无需对本发明实施例提供的 PTP 协议的实现装置进行任何修改, 即可将本发 明实施例提供的 PTP 协议的实现装置移植到多种操作系统。
在本发明另一实施例中, 该操作系统抽象单元 5 仅提供了操作系统的标准接口, 当需要将本发明实施例提供的 PTP 协议的实现装置移植到指定的操作系统时, 用户只需根 据指定的操作系统的组件实现操作系统抽象单元 5 提供的操作系统的标准接口, 就可以将 本发明实施例提供的 PTP 协议的实现装置移植到该指定的操作系统, 从而给跨系统移植带 来了极大的便利。 在本发明另一实施例中, 该装置还包括系统日志单元 6。 该系统日志单元 6 以日志 的形式记录 PTP 协议的实现装置在运行 PTP 协议的过程中发生的事件。这样根据系统日志 单元 6 记录的信息, 可以方便、 快速的对 PTP 协议的实现装置进行故障分析和维护。
为了进一步说明本发明实施例提供的 PTP 协议的实现装置, 请参阅图 5, 为本发明 实施例提供的 PTP 协议的实现装置的详细架构, 详述如下 :
在图 5 所示的 PTP 协议的实现装置中, 用户调用该 PTP 协议实现装置的外部接口 来启动并运行 PTP 协议。其中外部接口包括系统初始化单元 ( 图未示出 )、 人机交互单元 ( 图未示出 )、 协议引擎单元和系统日志单元。其中人机交互单元包括配置模块和测试模 块。
其中协议引擎单元是 PTP 协议的实现装置的核心, 该协议引擎单元完全遵守 IEEE 1588 规范的要求, 其包括多种协议引擎组件, 如定时器、 PTP 报文处理模块、 网络通讯模块、 同步算法模块和时钟处理模块。其中时钟处理模块还包括时间处理模块和系统相关模块, 其中系统相关模块如时间戳处理等。
该装置还包括操作系统抽象单元, 该操作系统抽象单元提供了操作系统的标准接 口, 这些操作系统的标准接口可以由构成不同操作系统的基本组件组成, 也可以在需要时 由用户实现, 这样就可以使本发明实施例提供的 PTP 协议的实现装置移植到任意的操作系 统。如网络通讯模块使用了操作系统的套接字访问, 时钟处理模块通过操作系统中的 IO 子 系统的接口来调用, 定时器的实现也是基于指定的操作系统中的组件来实现。
本发明实施例提供的 PTP 协议的实现装置的工作流程主要包括启动流程和 PTP 的 同步流程, 图 6 示出了 PTP 协议的实现装置的启动流程, 简述如下 :
在步骤 S101 中, 为 PTP 协议的实现装置分配系统资源。
其中需要分配的系统资源包括但不限于需要分配的资源包括但不限于内存、 数据 结构、 消息队列等, 如为 PTP 时钟数据结构分配内存、 为外部主时钟 (Foreign Master) 分配 内存。
在为 PTP 协议的实现装置分配系统资源时, 需要为自定义的时钟节点数据结构、 系统日志、 定时器、 配置参数等分配系统资源。
在步骤 S102 中。 判断资源分配是否成功, 如果是, 执行步骤 S103, 否则结束启动流 程。
在步骤 S103 中, 读取 PTP 协议的实现装置的配置的系统参数。
其中配置参数是指用户通过配置模块为 PTP 协议的实现装置配置的参数。该配置 参数可以以文本文件的形式存储在运行 PTP 协议的主机文件系统中, 也可以以数据库的形 式存储在运行 PTP 协议的主机的数据库系统中。该配置参数用于对 PTP 协议的实现装置的 固有属性进行变更。
在步骤 S104 中, 判断配置参数是否读取成功, 如果是, 执行步骤 S106, 否则, 执行 步骤 S105。 在步骤 S105 中, 加载默认的配置参数, 并将默认的配置参数写入文件。
在步骤 S106 中, 根据配置参数对定时器和消息队列进行初始化处理。
其中定时器是通过底层指定的操作系统提供的定时机制来是实现的。
消息队列也是通过底层指定的操作系统提供的机制实现的, 主要用于对事件消息 进行发送和接收, 提供用户接口。
在步骤 S107 中, 启动协议引擎任务。
在本发明实施例中, 协议引擎任务是通过底层指定的操作系统提供的机制来实现 的, 主要作用是将 PTP 协议的实现装置以一个任务来执行, 操作系统可以管理该任务。
在步骤 S108 中, 判断协议引擎任务是否启动成功, 如果是, 则结束 PTP 协议的实现 装置的启动流程, 如果否, 则先释放分配的系统资源后, 再结束 PTP 协议的实现装置的启动 流程。
由于 PTP 的同步流程在 IEEE 1588 规范中已有定义, 因此, 在此不再赘述。
本发明实施例提供的 PTP 协议的实现装置可以适用于多种网络, 如电网等, 以实 现网络中时钟的高精度同步。
本领域普通技术人员可以理解, 实现上述实施例方法中的全部或部分步骤是可以 通过程序来指令相关的硬件来完成, 所述的程序可以在存储于一计算机可读取存储介质 中, 所述的存储介质, 如 ROM/RAM、 磁盘、 光盘等。
本发明实施例通过提供一种新的 PTP 协议的实现装置, 通过该 PTP 协议的实现装 置在网络中运行 PTP 协议, 以实现网络中各时钟的高精度同步, 从而解决了目前工业控制 上由于时钟之间的不同步或者同步误差大导致的各种问题。同时本发明实施例提供的 PTP 协议的实现装置可以方便、 快捷的在各种操作系统进行移植。
以上所述仅为本发明的较佳实施例而已, 并不用以限制本发明, 凡在本发明的精 神和原则之内所作的任何修改、 等同替换和改进等, 均应包含在本发明的保护范围之内。