本发明涉及一种IEEE1588对时装置,具体是基于PAC控制器的IEEE1588对时方法及装置。
背景技术:
IEEE1588对时是指利用《网络测量和控制系统的精密时钟同步协议标准》实现网络方式的对时,用来解决在以太网的定时同步能力不足的问题,目前在工业领域有广泛的应用。
PAC控制器具备了PC的开放性、高性能CPU、高容量的内存和软件的强大效能,并具有PLC的可靠性、强固性和分散特性。PAC采用现有的商业计算机技术,所以具有更优异的效能,并具有可伸缩性。透过商业化大量生产的平台,所以易于维护和具有较低的发生故障时间等特性。
实现IEEE1588对时的方法有很多,其中使用硬件实现高精度IEEE1588对时的方法比较普及,但是市面上暂时未发现利用PAC控制器优异的性能进行IEEE1588对时的装置出现。
技术实现要素:
本发明根据现有技术的不足提供一种基于PAC控制器的IEEE1588对时方法及装置,基于PAC控制器设计,实现高精度的时钟同步。
本发明的技术方案:
一种基于PAC控制器的IEEE1588对时方法,其特征在于:包括以下步骤,
时钟同步模块与IEEE1588时钟源同步:
IEEE1588时钟源周期性地向ACS200从时钟广播Sync同步报文,当时钟同步模块接收到CPU模块的时钟同步请求后,时钟同步模块对IEEE1588时钟源发送的报文进行处理,时钟同步模块截取IEEE1588时钟源的报文出口时间戳t1,时钟同步模块截取时钟同步模块接收报文的入口时间戳t2,报文从IEEE1588时钟源到时钟同步模块的网络传输延时为D,根据IEEE1588时钟同步原理可得,时钟同步模块与IEEE1588时钟源的时钟偏差为tΔ=t2-t1-D;
CPU模块读取时钟偏差值:
时钟同步模块与CPU模块是通过底板总线进行数据交换的,底板总线采用串行的通讯方式,即数据按一帧一帧传输的,数据传输存在一定的延时,当数据帧长度固定,底板总线传输速率固定时,数据传输延时tDelay是一个定值,即CPU模块与IEEE1588时钟源的时钟偏差为T=tΔ+tDelay;
CPU模块时钟校正:
CPU模块主要由ARM模块和FPGA模块组成,CPU模块读取的时钟偏差值首先T在FPGA模块中处理,将本地时钟做校正,实现时钟同步,此后,FPGA模块以该时钟为基准进行计时,FPGA程序是并行运行的,可以同时处理不同任务,因此时钟计时的任务不会受到其他任务的影响而产生不确定的时间延时,ACS200的FPGA模块主频为50MHz,即时钟周期为20ns,校正后的时钟以20ns的精度开始计时,当ARM模块需要获得时钟时可随时从FPGA模块中读取当前的时钟,进而实现高精度的时钟同步,基于PAC控制器的IEEE1588对时。
所述时钟同步模块包括STM32F407VGT6微型处理器以及PHY芯片DP83640,时钟同步模块对IEEE1588时钟源发送的报文进行处理具体包括PTP报文由DP83640传递到CPU模块后,首先通过MAC层,在此层,PTP时间戳驱动程序记录PTP报文的时间戳,然后报文通过TCP/IP协议栈传递给应用层PTP报文处理程序,报文处理程序对报文进行分析处理并提取相关信息后,调用本地时钟调节程序对本地时钟进行校正,如果接收到Announce报文,则调用最佳主时钟算法程序,重新计算本地PTP时钟状态。
一种基于PAC控制器的IEEE1588对时方法及装置,包括PAC控制器和IEEE1588时钟源,所述PAC控制器和IEEE1588时钟源通过网线进行连接,所述PAC控制器包括电源模块、CPU模块、功能模块一、功能模块二和时钟同步模块,电源模块、CPU模块、功能模块一、功能模块二和时钟同步模块通过底板总线进行连接,所述电源模块用于给CPU模块、功能模块一、功能模块二和时钟同步模块提供工作电压,所述CPU模块用于与时钟同步模块进行通信并输出控制指令,所述功能模块一、功能模块二用于实现PAC控制器的相应功能,所述时钟同步模块用于完成与IEEE1588时钟源的时钟同步。
所述时钟同步模块包括STM32F407VGT6微型处理器以及PHY芯片,STM32F407VGT6微型处理器支持IEEE1588协议,具有在MAC层的MII入口记录时间戳的功能,PHY芯片为德州仪器的DP83640芯片,STM32F407VGT6处理器通过MII接口与以太网PDP83640芯片连接。
所述CPU模块包括ARM模块、FPGA模块和RAM模块,ARM模块主要负责读取实时时标,FPGA模块负责与时钟同步模块通信并完成基板延时计算和守时功能,RAM模块用于存放实时时标。
CPU模块与时钟同步模块的通信周期为0.1ms,且CPU模块内部具备5ns步长的时钟更新频率,能够在不损失时间精度的前提下,完成CPU的守时功能。
本发明的技术效果:结构简单,使用方便,充分利用PAC控制器中的高性能硬件,实现IEEE1588的精确对时,不需要额外增加硬件,节约硬件成本。
附图说明
图1是本发明的整体结构示意图;
图2是本发明时钟同步模块结构示意图;
图3是IEEE1588对时示意图;
图4是本发明的对时方法流程图。
图中标号分别表示:1—PAC控制器,2—IEEE1588时钟源,3—网线,10—电源模块,11—CPU模块,12—功能模块一,13—功能模块二,14—时钟同步模块,15—底板总线,16—STM32F407VGT6微型处理器,17—PHY芯片。
具体实施方式
下面结合附图对本发明进一步说明:
如图1所示,一种基于PAC控制器的IEEE1588对时方法及装置,包括PAC控制器1和IEEE1588时钟源2,所述PAC控制器1和IEEE1588时钟源2通过网线3进行连接,所述PAC控制器1包括电源模块10、CPU模块11、功能模块一12、功能模块二13和时钟同步模块14,电源模块10、CPU模块11、功能模块一12、功能模块二13和时钟同步模块14通过底板总线15进行连接,所述电源模块10用于给CPU模块11、功能模块一12、功能模块二13和时钟同步模块14提供工作电压,所述CPU模块11用于与时钟同步模块14进行通信并输出控制指令,所述功能模块一12、功能模块二13用于实现PAC控制器1的相应功能,所述时钟同步模块14用于完成与IEEE1588时钟源2的时钟同步。
如图2所示,时钟同步模块14包括STM32F407VGT6微型处理器16以及PHY芯片17,STM32F407VGT6微型处理器16支持IEEE1588协议,具有在MAC层的MII入口记录时间戳的功能,PHY芯片17为德州仪器的DP83640芯片。
CPU模块包括ARM模块、FPGA模块和RAM模块,ARM模块主要负责读取实时时标,FPGA模块负责与时钟同步模块通信并完成基板延时计算和守时功能,RAM模块用于存放实时时标。
CPU模块11与时钟同步模块14的通信周期为0.1ms,且CPU模块11内部具备5ns步长的时钟更新频率,能够在不损失时间精度的前提下,完成CPU的守时功能。
STM32F407VGT6微型处理器同时具有调节本地PTP时钟频率的功能;DP83640PHY芯片除了具备一般PHY芯片的功能外,还具有支持IEEE1588v2协议的一系列功能,DP83640芯片可以在MII接口处记录PTP报文时间戳,并将时间戳储存在芯片的时间戳寄存器中。
STM32F407VGT6处理器通过MII接口与以太网PHY芯片DP83640连接,PTP报文由DP83640芯片传递到CPU后,首先通过MAC层,在此层,PTP时间戳驱动程序记录PTP报文的时间戳,然后报文通过TCP/IP协议栈传递给应用层PTP报文处理程序,报文处理程序对报文进行分析处理并提取相关信息后,调用本地时钟调节程序对本地时钟进行校正,如果接收到Announce报文,则调用最佳主时钟算法程序,重新计算本地PTP时钟状态。
如图3所示,一种基于PAC控制器的IEEE1588对时方法,其特征在于:包括以下步骤,
时钟同步模块与IEEE1588时钟源同步:
IEEE1588时钟源周期性地向ACS200从时钟广播Sync同步报文,当时钟同步模块接收到CPU模块的时钟同步请求后,时钟同步模块对IEEE1588时钟源发送的报文进行处理,时钟同步模块截取IEEE1588时钟源的报文出口时间戳t1,时钟同步模块截取时钟同步模块接收报文的入口时间戳t2,报文从IEEE1588时钟源到时钟同步模块的网络传输延时为D,根据IEEE1588时钟同步原理可得,时钟同步模块与IEEE1588时钟源的时钟偏差为tΔ=t2-t1-D;
CPU模块读取时钟偏差值:
时钟同步模块与CPU模块是通过底板总线进行数据交换的,底板总线采用串行的通讯方式,即数据按一帧一帧传输的,数据传输存在一定的延时,当数据帧长度固定,底板总线传输速率固定时,数据传输延时tDelay是一个定值,即CPU模块与IEEE1588时钟源的时钟偏差为T=tΔ+tDelay;
CPU模块时钟校正:
CPU模块主要由ARM模块和FPGA模块组成,CPU模块读取的时钟偏差值首先T在FPGA模块中处理,将本地时钟做校正,实现时钟同步,此后,FPGA模块以该时钟为基准进行计时,FPGA程序是并行运行的,可以同时处理不同任务,因此时钟计时的任务不会受到其他任务的影响而产生不确定的时间延时,ACS200的FPGA模块主频为50MHz,即时钟周期为20ns,校正后的时钟以20ns的精度开始计时,当ARM模块需要获得时钟时可随时从FPGA模块中读取当前的时钟,进而实现高精度的时钟同步,基于PAC控制器的IEEE1588对时。
所述时钟同步模块包括STM32F407VGT6微型处理器以及PHY芯片DP83640,时钟同步模块对IEEE1588时钟源发送的报文进行处理具体包括PTP报文由DP83640传递到CPU模块后,首先通过MAC层,在此层,PTP时间戳驱动程序记录PTP报文的时间戳,然后报文通过TCP/IP协议栈传递给应用层PTP报文处理程序,报文处理程序对报文进行分析处理并提取相关信息后,调用本地时钟调节程序对本地时钟进行校正,如果接收到Announce报文,则调用最佳主时钟算法程序,重新计算本地PTP时钟状态。
本发明的基于PAC控制器的IEEE1588对时方法及装置,结构简单,使用方便,充分利用PAC控制器中的高性能硬件,实现IEEE1588的精确对时,不需要额外增加硬件,节约硬件成本。