专利名称:基于ieee1588的同步系统及其同步方法
技术领域:
本发明涉及的是一种无线通信技术领域的装置及方法,具体是一种基于IEEE 1588精确时钟同步协议的同步系统及其同步方法。
背景技术:
近年来,以太网由于其开放性、技术成熟、高的传输速率、应用广泛以及价格低廉 等特点,已受到越来越多的关注,且有进一步应用到工业现场的趋势。但是,由于其MAC层 协议采用CSMA/CD,具有排队延迟不确定的缺陷,使之无法在工业控制中得到有效使用。响 应时间的“不确定性”(即实时性差)和系统内各模块的“不同步性”成为了阻碍以太网技 术“一网到底”的瓶颈。其中有些工业现场要求极高的时钟同步精度是以太网广泛应用于 工业现场的关键障碍之一。常用于以太网TCP/IP网络的同步协议有网络时间协议NTP (Network Time Protocol)和简单网络时间协议 SNTP (Simple Network Time Protocol)。NTP 是用于互联 网中时间同步的标准互联网协议。NTP的用途是把计算机的时间同步到某些时间标准。目 前采用的时间标准是世界协调时UTC (Universal Time Coordinated)。NTP协议的时钟同 步主要是在主从工作方式下实现的。由于NTP采用的是应用层同步方法,其时间同步精度 不高,一般在IOms到100ms之间,不能满足高速高精的多轴运动控制系统的要求。SNTP则 是一个简化了的NTP服务器和NTP客户策略,其时间精度依赖于客户端和服务端网络的情 况。但由于其采用的是与NTP相同的时钟同步机制,因此时钟同步精度也不高。和NTP,SNTP相比,IEEE 1588协议是以太网中一种较为精确的时钟同步解决方 案,其基本功能是使分布式网络内的其他时钟与最精确时钟保持同步。IEEE 1588协议中定 义了一种精确时间协议(PTP,Precision Time ftOtocol),用于对标准以太网或其他采用 多播技术的分布式总线系统中的传感器、执行器以及其他终端设备中的时钟进行亚微秒级 同步。经过对现有技术文献的检索发现,中国申请号为200810059859,公开号为 CN 10123M57A,名称为“一种基于IEEE 1588协议的高精度实时同步方法”的专利, 给出了一种基于IEEE1588的PTP精确时钟同步协议的硬件实现方式。中国申请号为 200810187676. 0,公开号为CN101447861A,名称为“IEEE 1588时间同步系统及其实现方 法”的专利,给出了一种IEEE 1588时间同步系统,通过增设时间戳处理模块,再结合交换 机模块、物理层模块以及实时时钟模块等外围部件形成一个具备时钟同步的硬件系统。但 上述发明中,虽然时钟同步技术采用的都是硬件的实现方式,但由于实现时钟同步的方法 仅仅是周期性的校正从时钟,使校正瞬时时刻主从时钟的偏差为零,而没有进行频率补 偿,导致从时钟和主时钟的偏差随时间的变化逐渐增加,这种漂移在高精度同步的情况下 是不能容许的。Balasubramanian等人在2003年的IEEE专题讨论会上发表了一篇题为 "A frequency compensated clock for precision synchronization usingIEEE 1588 protocol and its application to Ethernet”(一种使用 IEEE 1588 精确时钟同步协议的频率补偿时钟,以及其在以太网上的应用)的文章,提出了频率补偿时钟的结构以及一 种频率补偿方法。但是,提出的频率补偿方法在计算主从时钟的频率比时,没有考虑嵌入式 系统有限的机器精度,即截断误差带来的影响,从而降低了最终的同步精度。
发明内容
本发明针对现有技术存在的上述不足,提供一种基于IEEE1588的同步系统及其 同步方法,采用Balasubramanian等人提出的频率补偿时钟的结构,构建一个频率可调的 时钟计数器并实现频率补偿的功能,再采用一种改进的时钟同步方法,该方法考虑嵌入式 系统有限的机器精度,即截断误差带来的影响,从而达到更高的时钟同步精度。本发明是通过以下技术方案实现的本发明涉及一种基于IEEE1588的同步系统,由通过网络连接的主设备和从设备 组成,其中主设备包括主时钟模块和CPU管理控制模块,从设备包括从时钟模块和CPU管 理控制模块。所述的主时钟模块由时钟计时器和晶体振荡器组成,其中时钟计数器实现本地 系统时间的输出且当被触发时将系统时间增加一个时钟周期的数值,晶体振荡器用于产生 模块的工作时钟并输出至CPU管理控制模块。所述的从时钟模块包括时钟计时器、累加器、加数寄存器、晶体振荡器和锁相环 电路,其中加数寄存器与CPU管理控制模块相连并传输频率补偿信息并实现对时钟同步 方法计算出的频率补偿值进行锁存,累加器与加数寄存器相连并实现对加数寄存器锁存的 频率补偿值进行累加操作并产生进位标志位,时钟计数器与累加器相连并实现本地系统时 间的输出,当累加器产生进位标志位则时钟计数器将系统时间增加一个时钟周期的数值, 晶体振荡器和锁相环电路用于产生模块的工作时钟输出至CPU管理控制模块。当从时钟模块被触发时,累加器将自身的值与存储在加数寄存器中的值相加,结 果存储在累加器中,同时产生一个进位标志位表示这次的加法操作是否溢出,当发生溢出 则对系统时间增加一个时钟周期的数值。单位时间内时钟计数器数值增加的次数是由加数 寄存器的值和晶振频率共同决定的,改变存储在加数寄存器中的加数,就改变了累加器进 行加法操作时发生溢出的频率,从而改变了时钟计数器增加的频率并实现了对晶振频率的 补偿。所述的CPU管理控制模块包括通信接口单元、时钟同步单元和PTP协议栈;其 中通信接口单元分别接收来自PTP协议栈的数据并打包后通过总线发送至网络连接中的 数据链路层,并通过事件中断的方式读取数据链路层中的数据包,PTP协议栈判断当前节点 在网络中所处的主设备或者从设备状态并输出判断结果至时钟同步单元,时钟同步单元将 相应的频率补偿值以报文形式发送至数据链路层。所述的以报文形式发送是指当PTP协议栈判断本节点为主设备,则以周期方式 发送同步(Sync)报文,并随后发送跟随报文(FollowUp),在该报文中带有主时钟模块的发 送时间戳信息,同时主设备在接收到从设备发送过来的延迟请求(DelayReq)报文后,发送 延迟响应(DelayResp)报文;当PTP协议栈判断本节点为从设备,则在接收到主设备发送过 来的跟随报文后,启动时钟同步算法将计算出的频率补偿值传输至从时钟模块,同时从设 备向主设备发送DelayReq报文。
本发明涉及上述系统的同步方法,包括以下步骤第一步、主设备以组播的方式周期发送同步报文至从设备,从设备接收该同步报 文并记录其对应的接收时间作为同步报文接收时间戳,然后主设备发送带有发送时间戳的 跟随报文,从设备根据当前测量的线路时延进行时钟校准;所述的发送时间戳是指带有精确的同步报文的发送时间戳tM1 DO,其中k代表第k 次时钟同步过程;所述的时钟校准是指从设备利用最近测量的线路时延值,按照时间偏移量计算 公式和频率补偿计算公式得到从时钟与主时钟之间的时间偏移量和频率补偿值,然后利用 频率补偿值对从时钟模块进行校正;所述的时间偏移量Offset [k] = tsl[k]-tM1[k]-Delay_latest,其中:Delay_ latest = Delay_neW,初始值为0,k为第k次时钟同步过程,不论该时钟同步过程中是否进 行线路时延测量。所 述 的频率 补 偿 值
权利要求
1.一种基于IEEE1588的同步系统,由通过网络连接的主设备和从设备组成,其特征在 于主设备包括主时钟模块和CPU管理控制模块,从设备包括从时钟模块和CPU管理控制模 块;所述的主时钟模块由时钟计时器和晶体振荡器组成,其中时钟计数器实现本地系统 时间的输出且当被触发时将系统时间增加一个时钟周期的数值,晶体振荡器用于产生模块 的工作时钟并输出至CPU管理控制模块;所述的从时钟模块包括时钟计时器、累加器、加数寄存器、晶体振荡器和锁相环电路, 其中加数寄存器与CPU管理控制模块相连并传输频率补偿信息并实现对时钟同步方法计 算出的频率补偿值进行锁存,累加器与加数寄存器相连并实现对加数寄存器锁存的频率补 偿值进行累加操作并产生进位标志位,时钟计数器与累加器相连并实现本地系统时间的输 出,当累加器产生进位标志位则时钟计数器将系统时间增加一个时钟周期的数值,晶体振 荡器和锁相环电路用于产生模块的工作时钟输出至CPU管理控制模块。
2.根据权利要求1所述的基于IEEE1588的同步系统,其特征是,所述的时钟计数器在 被触发时,累加器将自身的值与存储在加数寄存器中的值相加,结果存储在累加器中,同时 产生一个进位标志位表示这次的加法操作是否溢出,当发生溢出则对系统时间增加一个时 钟周期的数值。
3.根据权利要求1所述的基于IEEE1588的同步系统,其特征是,所述的CPU管理控制 模块包括通信接口单元、时钟同步单元和PTP协议栈;其中通信接口单元分别接收来自 PTP协议栈的数据并打包后通过总线发送至网络连接中的数据链路层,并通过事件中断的 方式读取数据链路层中的数据包,PTP协议栈判断当前节点在网络中所处的主设备或者从 设备状态并输出判断结果至时钟同步单元,时钟同步单元将相应的频率补偿值以报文形式 发送至数据链路层。
4.根据权利要求3所述的基于IEEE1588的同步系统,其特征是,所述的以报文形式发 送是指当PTP协议栈判断本节点为主设备,则以周期方式发送同步报文,并随后发送跟随 报文,在该报文中带有主时钟模块的发送时间戳信息,同时主设备在接收到从设备发送过 来的延迟请求报文后,发送延迟响应报文;当PTP协议栈判断本节点为从设备,则在接收到 主设备发送过来的跟随报文后,启动时钟同步算法将计算出的频率补偿值传输至从时钟模 块,同时从设备向主设备发送DelayReq报文。
5.一种根据上述任一权利要求所述系统的同步方法,其特征在于,包括以下步骤第一步、主设备以组播的方式周期发送同步报文至从设备,从设备接收该同步报文并记录其对应的接收时间作为同步报文接收时间戳,然后主设备发送带有发送时间戳的跟随 报文,从设备根据当前测量的线路时延进行时钟校准;第二步、从设备向主设备发送延时请求报文并记录其对应的发送时间作为延迟测量发 送时间戳,主设备接收并解析该延时请求报文后,向从设备回复延时答复报文,从设备在收 到延时答复报文后记录该报文带有的延时请求报文的接收时间,作为延迟测量接收时间戳 并更新线路时延值,并存储在从设备的CPU管理控制模块中。
6.根据权利要求5所述的同步方法,其特征是,所述的发送时间戳是指带有精确的同 步报文的发送时间戳tM1 ,其中k代表第k次时钟同步过程。
7.根据权利要求5所述的同步方法,其特征是,所述的时钟校准是指从设备利用最近测量的线路时延值,按照时间偏移量计算公式和频率补偿计算公式得到从时钟与主时钟之 间的时间偏移量和频率补偿值,然后利用频率补偿值对从时钟模块进行校正。
8.根据权利要求5所述的同步方法,其特征是,所述的时间偏移量Offsets]= tsl [k]-tM1 [k] -Delay_latest,其中:Delay_latest = Delay_new,初始值为 0, k 为第 k 次时 钟同步过程,不论该时钟同步过程中是否进行线路时延测量。
9.根据权利要求5所述的同步方法,其特征是,所述的频率补偿值
10.根据权利要求5所述的同步方法,其特征是,所述的更新线路时延值Delay_neW= ((tsl[k]-tM1[k]) + (tS2[k]-tM2[k]))/2,其中:k为第k次时钟同步过程,且在该时钟同步过 程中进行了线路时延测量,tsl[k]为同步报文接收时间戳,tM1[k]为第一步中所述同步报文 发送时间戳,tS2[k]为延迟测量发送时间戳,tM2[k]为延迟测量接收时间戳。
全文摘要
一种无线通信技术领域的基于IEEE 1588精确时钟同步协议的同步系统及其同步方法,该系统由通过网络连接的主设备和从设备组成,主设备包括主时钟模块和CPU管理控制模块,从设备包括从时钟模块和CPU管理控制模块。本发明采用Balasubramanian等人提出的频率补偿时钟的结构,构建一个频率可调的时钟计数器并实现频率补偿的功能,再采用一种改进的时钟同步方法,该方法考虑嵌入式系统有限的机器精度,即截断误差带来的影响,从而达到更高的时钟同步精度。
文档编号H04L12/56GK102104475SQ20111003346
公开日2011年6月22日 申请日期2011年1月31日 优先权日2011年1月31日
发明者朱向阳, 熊振华, 盛鑫军, 许雄 申请人:上海交通大学