一种精密同步时钟的实现方法

文档序号:7653743阅读:133来源:国知局
专利名称:一种精密同步时钟的实现方法
技术领域
本发明涉及在测量和自动化系统中基于工业以太网传输精密同步时钟技术领域,特别是指在网络上传输精密同步时钟,时钟的传输精度可达亚微妙级别。

背景技术
精密同步时钟与其他常用于Ethernet TCP/IP网络的同步协议如SNTP或NTP相比,主要的区别是精密同步时钟是针对更稳定和更安全的网络环境设计的,所以更为简单,占用的网络和计算资源也更少。
精密同步时钟主要针对于相对本地化、网络化的系统,子网较好,内部组件相对稳定,特别适合于工业自动化和测量环境。与精密同步时钟不同,NTP协议是针对于广泛分散在互联网上的各个独立系统的安全描述。GPS(基于卫星的全球定位系统)也是针对于分散广泛且各自独立的系统。
精密同步时钟定义的网络结构可以使自身达到很高的精度,设定冗余的网络路径进入精密同步时钟协议的非激活状态。与SNTP和NTP相反,时间印章更容易在硬件上实现,并且不局限于应用层,这使得PTP可以达到微秒以内的精度。此外,PTP模块化的设计也使它很容易适应低端设备。
精密时钟协议将达到亚微妙范围内的同步精确度,它适用于需要实现最高精确度分布时钟的时间同步的有限网络领域,在分配控制工作时无需再进行专门的同步通信,从而达到了通信时间模式与应用程序执行时间模式分开的效果。精密同步时钟的另一大优点是其标准非常具有代表性,并且是开放式的。许多控制系统的供应商将该标准应用到他们的产品当中,不同设备的生产商都遵循同样的标准,产品之间保证很好的同步性。


发明内容
有鉴于此,本发明提供一种基于工业以太网传输精密同步时钟的方法。本发明包括两部分硬件检测、获取时间戳、维护时钟的实现方法和软件收发精密同步时钟协议报文、调整、校对系统时钟;为达到上述目的本发明的技术方案是这样实现的。



图1硬件原理框图 图2FPGA程序工作原理框图 图3smii时序图 图4数据报文收发模块流程图 图5定时器模块流程图 图6Sync处理模块流程图 图7Follow_Up处理模块流程图 图8Delay_Req处理模块流程图 图9Delay_Resp处理模块流程图 图10系统管理模块框图 图11写时序 图12读时序
具体实施例方式 1.1总体方案 本发明定义的精确网络同步协议实现了网络中的高度同步,使得在分配控制工作时无需再进行专门的同步通信,从而达到了通信时间模式与应用程序执行时间模式分开的效果,其步骤包括 ●选择最优化的主时钟,根据最优化的主时钟算法从所有时钟节点中选出最优化的主时钟 ●偏移测量阶段用来修正主时钟和从属时钟的时间差。在这个偏移修正过程中,主时钟周期性发出一个确定的同步信息(简称Sync信息)(一般为每两秒一次),它包含了一个时间印章(time stamp),精确地描述了数据包发出的预计时间。
●延迟测量(delay measurement)阶段用来测量网络传输造成的延迟时间,需要说明的是,在这个测量过程中,假设传输介质是对称均匀的。
●经过同步信息的交换,从属时钟与主时钟实现了精确同步。
1.2硬件实现方案 采用硬件和软件实现的方式,其硬件实现原理框图如下图1 此精密时钟同步协议实现原理如上图1所示,在保证以太网通信正常的基础上,同时将信号连接到PHY芯片上,通过SMII接口与FPGA芯片相连,采用监听以太网数据包的方式,通过FPGA抓取以太网数据包的详细信息,获取以太网数据包的时钟同步信息,从而实现了精确的时钟同步协议。
FPGA程序的实现原理框图如下图2所示,由于采用监听的模式,FPGA只解析PHY收到的数据,将其收到的数据经过FIFO后,通过解包模块,将其数据包中的时间戳等相关信息解出,通过SPI总线与cpu之间实现数据交互,同时维护时钟系统,从而实现此精确时钟同步协议。
系统中利用FPGA协助CPU维护和调整时钟,捕捉和解析PTP报文。利用FPGA可以使系统设计更灵活,能够有效维护系统时钟,精确的确定PTP报文到达时刻,从而有效降低本地时钟和grandmasterclock的偏差,提高系统性能。同时可以缩减CPU处理PTP报文时间,使其有更多时间处理其他任务。
■FPGA内部设计了五个模块时钟管理模块(timer_manager),smii接口模块(smii_interface),报文解析模块(packet_check),spi接口模块(spi_interface),网络连接状态指示灯模块。各模块之间接口清晰,分工明确,协作流畅。
■smii接口模块(smii_interface)负责向PHY接口芯片提供复位信号,时钟信号,控制信号以及同步信号,控制和管理PHY接口芯片的工作,使其能正确提供以太网数据。
■报文解析模块(packet_check)负责解析报文,并向时钟管理模块提供锁定信号,锁定报文到达时刻,并将解析后的PTP报文id等信息记录下来,提供给时钟管理模块,由其管理。
■时钟管理模块(timer_manager)负责维护本地时钟,记录报文到达时刻,并管理报文信息。
■spi接口模块负责向时钟管理模块传达cpu命令,并将时钟管理模块记录的报文到达时刻值以及报文相关信息传递给cpu。
■网络连接状态指示灯模块负责指示网络线路连接状态。
其中报文解析模块(packet_check)波形如图3 报文解析模块(packet_check)根据smii时序接收并解析报文。模块内安排96bits FIFO接收rxd数据。首先从RXD(PHY芯片提供的数据信号)中解析出RX_DV信号,当RX_DV信号有效时,将RXD数据保存入FIFO中,设计counter_bits记录数据位,每输入8位数据就将FIFO中数据与PREAMBLE、SFD比较,如果一致就表明是以太网数据包开头,产生锁定脉冲,记录报文到达时刻,同时将counter_bits清零。由counter_bits派生出counter_bytes报文数据字节计数器。我们判断报文的UDP PORT(UDP端口号),IP multicast adderss(ip组播地址)字段,以确定报文是否是PTP报文,如果是PTP报文,则进一步判断messagetype和control字段,确定是sync还是delay_req报文,同时记录报文的packet uid、port number、sequence number信息。
1.3软件实现方法 ■数据报文收发模块负责接收和发送精密同步时钟数据报文。见图4。
■定时器模块负责处理精密同步时钟协议中与时间有关的信息,包括作为主时钟端口的定时发送sync,验证超时从而端口进入主端口状态和接收sync超时的相应处理。见图5。
■Sync处理模块负责处理接收到sync数据报文后的相应处理。见图6。
■Follow_Up处理模块负责处理接收到Follow_Up数据报文后的相应处理。见图7。
■Delay_Req处理模块负责处理接收到Delay_Req数据报文后的相应处理。见图8。
■Delay_Resp处理模块负责处理接收到Delay_Resp数据报文后的相应处理。见图9。
■系统管理模块负责对整个精密同步时钟协议的的配置,运行状态检测等。
如图10。
2具体实施 2.1硬件原理 CPU和FPGA之间采用自定义的3线接口实现通讯,且本接口为多板卡共用的总线型接口,数据采用广播式由CPU下发,下发报文中包含地址信息,同时只有1个地址相符的板卡对指令进行回复,其他板卡则处于侦听状态。
INT信号为硬件向CPU发送紧急情况,通知CPU进行及时查询的信号。
其中CPU作为总线的Master,FPGA作为总线的Slave。
2.2协议规范 2.2.1协议接口时序 本协议规范参考标准的SPI总线标准,接口时序如下图11,图12. 2.2.2协议指令格式 读指令 读指令格式如下 Bit7…..bit0 <CMD,CARD ID,R><REG ADDR><DATA0>…<DATAn> 说明 1.每个<>之间为8bit数据 2.CMD为command字段,占3bit,本协议中为011 3.REG ADDR为FPGA寄存器地址,占1Byte 4.DATA0~DATAn为Slave向Master返回的数据,具体n的长度由具体寄存器规定 写指令 写指令格式如下 Bit7…..bit0 <CMD,CARD ID,W><REG ADDR><DATA0>…<DATAn> 说明 1.每个<>之间为8bit数据 2.CMD为command字段,占3bit,本协议中为011 3.REG ADDR为FPGA寄存器地址,占1Byte 4.DATA0~DATAn为Master向Slave写的参数,具体n的长度由具体寄存器规定 CARD ID 2.2.3协议分类 全局寄存器表A 全局寄存器表B 2.2.4硬件版本号|软件版本号 REG ADD=0x00 2.2.5当前板卡的时钟(秒)值 REG ADD=0x01 2.2.6当前板卡的时钟(纳秒)值 REG ADD=0x05 2.2.7时钟调整(纳秒)值,有符号 REG ADD=0x09 2.2.8读取Port1 RXD的SYNC/Delay_Req报文时间戳 REG ADD=0x20 2.2.9读取Port1 TXD的SYNC/Delay_Req报文时间戳 REG ADD=0x38
权利要求
1.一种精密同步时钟的实现方法,其特征是基于以太网络传输精密同步时钟,使得在构建控制系统网络时无需再分配专门的同步通信通道。本发明包括两部分硬件检测、提取时间戳、维护系统时钟的实现方法和软件收发精密同步时钟协议报文、调整、校对系统时钟的方法。其精密同步时钟的精度可以达到亚微妙级。
2.根据权利要求一所述的方法,其特征在于硬件检测精密同步时钟报文、获取时间戳、维护系统时钟;硬件实现包括smii接口模块(smii_interface),报文解析模块(packet_check)时钟管理模块(timer_manager),spi接口模块(spi_interface),系统状态指示模块。
3.根据权利要求一、权利要求二所述的方法,其特征在于,时钟管理模块(timer_manager)负责维护系统时钟,记录报文到达时刻,并转发报文信息。
4.根据权利要求一、权利要求二所述的方法,其特征在于,smii接口模块(smii_interface)负责向PHY接口芯片提供复位信号,时钟信号,控制信号以及同步信号,控制和管理PHY接口芯片的工作,使其能正确提供以太网数据。
5.根据权利要求一、权利要求二所述的方法,其特征在于,报文解析模块(packet_check)负责解析报文,并向时钟管理模块提供锁定信号,锁定报文到达时刻,并将解析后的精密同步时钟协议报文id等信息记录下来,提供给时钟管理模块。
6.根据权利要求一、权利要求二所述的方法,其特征在于,spi接口模块负责FPGA与CPU之间的通信,将时钟管理模块记录的报文到达时刻值以及报文相关信息传递给CPU。
7.根据权利要求一所述的方法,其特征在于,软件收发精密同步时钟协议报文、调整、校对系统时钟,该部分包括了数据报文收发模块、定时器模块、Sync处理模块、Follow_Up处理模块、Delay_Req处理模块、Delay_Resp处理模块、系统管理模块。
8.根据权利要求一、权利要求七所述的方法,其特征在于,数据报文收发模块负责接收和发送精密同步时钟协议报文。
9.根据权利要求一、权利要求七所述的方法,其特征在于,定时器模块负责处理精密同步时钟协议与时间有关的信息,包括作为主时钟端口的定时发送sync,验证超时从而端口进入主端口状态和接收sync超时的相应处理。
10.根据权利要求一、权利要求七所述的方法,其特征在于,Sync处理模块负责处理接收到sync数据报文后的相应处理。
11.根据权利要求一、权利要求七所述的方法,其特征在于,Follow_Up处理模块负责处理接收到Follow_Up数据报文后的相应处理。
12.根据权利要求一、权利要求七所述的方法,其特征在于,Delay_Req处理模块负责处理接收到Delay_Req数据报文后的相应处理。
13.根据权利要求一、权利要求七所述的方法,其特征在于,Delay_Resp处理模块负责处理接收到Delay_Resp数据报文后的相应处理。
14.根据权利要求一、权利要求七所述的方法,其特征在于,系统管理模块负责对整个精密同步时钟协议的配置,运行状态检测等。
15.根据权利要求一、权利要求二、权利要求七所述的方法,其特征在于,在传输和校对时钟的过程中,首先选择最优化的主时钟,根据最优化的主时钟算法从所有时钟节点中选出最优化的主时钟;其次偏移测量阶段用来修正主时钟和从属时钟的时间差。在这个偏移修正过程中,主时钟周期性发出一个确定的同步信息(简称Sync信息)(一般为每两秒一次),它包含了一个时间印章(time stamp),精确地描述了数据包发出的预计时间;再次延迟测量(delay measurement)阶段用来测量网络传输造成的延迟时间,最后经过同步信息的交换,从属时钟与主时钟实现了精密同步。
全文摘要
本发明是一种精密同步时钟的实现方法,本发明传输同步时钟的精度可达到亚微妙级;本发明采用硬件FPGA检测精密同步时钟协议报文、维护时钟、软件(CPU)计算、校正的方法来实现。FPGA内部设计了五个模块时钟管理模块(timer_manager),smii接口模块(smii_interface),报文解析模块(packet_check),spi接口模块(spi_interface),系统状态指示模块。来保证时间戳的正确获取、维护系统时钟;软件部分设计了七个模块数据报文收发模块、定时器模块、Sync处理模块、Follow_Up处理模块、Delay_Req处理模块、Delay_Resp处理模块、管理模块,来保证精密同步时钟协议报文的发送、接收;系统时钟校正等。
文档编号H04L12/24GK101114896SQ200710106948
公开日2008年1月30日 申请日期2007年5月15日 优先权日2007年5月15日
发明者张鸿雁, 张国刚, 王贵涛, 陈凡民, 马化一, 薛百华 申请人:北京东土科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1