基于链状工业以太网的时间同步协议系统及同步方法
技术领域
本发明涉及一种时间同步协议系统及同步方法,尤其是基于固定延迟转发机制、时钟漂移和时钟偏移分开补偿和时钟戳物理层获取的链状网络时间同步系统及同步方法,属于通信技术领域。
背景技术
近年来,以太网由于其开发性、高传输速率、低硬件成本等众多优点,已经不断应用于工业现场领域,并取代工业现场总线成为第二代工业通信技术;同时,根据工业现场的加工制造精度要求需要以太网分布站点的时钟之间具有很高的同步精度。如何保证以太网同步精度成为其应用于工业现场的关键技术之一。
目前,常用于以太网的时间同步协议有:网络时间协议NTP(network-time Protocol)、全球定位系统GPS(Global Positioning System)和IEEE1588协议。在工业现场IEEE1588协议相对于NTP和GPS两种协议有精度高,硬件实施简单等特点,精度达到了亚微米级。并且IEEE1588v2提出了透明时钟的概念,对链状网络的设备级联的累积误差进行有效的消除。
2013年1月9日,中国发明专利CN101977104B,公开了一种基于IEEE1588精确时钟同步协议系统及其同步方法,给出了一种不带跟随报文的基于IEEE1588精确时钟同步协议系统及其同步方法,同时构建了一个频率可调的时钟计数器配合同步算法实现频率补偿功能;2010年09月08日,中国发明专利申请CN101827098A,公开了一种时间同步的处理方法和装置,给出了一种基于透明时钟准确获知消息在设备中驻留时间的处理方法和相关装置;2013年06月05日,中国发明专利申请CN103138865A,公开了一种时间同步方法和装置,给出了一种应用透明时钟获取驻留时间并处理主从时钟偏差的同步方法和相关装置;2012年01月25日,中国发明专利申请CN102332973A,公开了一种链状网络的实时通信与时钟同步方法,给出了一种基于集总帧和透明时钟的链状网络的实时通信与同步方法。
但上述技术均应用透明时钟时采用实时测量更新驻留时间的方法,加大了同步集总帧的负载,造成同步时间大幅延长,不能将同步过程与重复信息通信完全整合,降低了同步频率,时间信息的测量误差大。再者,上述技术中进行偏差补 偿时,没有将漂移和偏移分开补偿,在同步周期长时,虽然漂移量相对于偏移量可以忽略,但是限制了同步精度的进一步提升。最后,上述技术中时间戳获取是在MAC层,不能进一步前进至物理层(PHY),导致所获取的时间戳精度较低。
发明内容
本发明所要解决的技术问题在于克服现有技术的不足,提供一种精度高、误差小的基于链状工业以太网的时间同步协议系统及同步方法。
为了解决上述技术问题,本发明提供了一种基于链状工业以太网的时间同步协议系统,包括CPU管理控制模块、固定延迟即时转发机制控制器、数字PLL时钟漂移补偿模块、PI控制环时钟偏移补偿模块、MAC层、PLL时钟倍频模块及物理层时钟戳获取模块;
所述CPU管理控制模块、固定延迟即时转发机制控制器、MAC层、PLL时钟倍频模块均与本地时钟模块连接;
所述CPU管理控制模块用于管理同步系统并实现时间同步协议;
所述固定延迟即时转发机制用于减少同步集总帧的传播时间,提高同步频率进而减少测量误差;
所述数字PLL时钟漂移补偿模块和PI控制环时钟偏移补偿模块共用本地时钟模块,用于提供时钟漂移和偏移补偿,减少时钟频率偏差;
所述MAC层(14)用于数据包的发送和接收;
所述PLL时钟倍频模块(15)用于输出高频时钟,提高测量工具最小识别精度进而减少测量误差;
所述物理层时钟戳获取模块与固定延迟即时转发机制控制器、数字PLL时钟漂移补偿模块、PI控制环时钟偏移补偿模块、MAC层、PLL时钟倍频模块连接,用于减少物理链路的随机延迟;
所述本地时钟模块,用于提供、调节和控制本地时钟;
所述本地时钟模块与物理层时钟戳获取模块间通过固定延迟即时转发机制控制器、数字PLL时钟漂移补偿模块、PI控制环时钟偏移补偿模块、MAC层、PLL时钟倍频模块进行时钟信息的交换处理,本地时钟模块将处理后时钟信息反馈至CPU管理控制模块。
本发明中,所述的固定延迟即时转发机制控制器包括一个延迟计数器,其通 过获取的物理层时间戳信息,控制从站在接收同步集总帧经过固定驻留时间Tt后将同步集总帧完全转发给下一从站;同步时,固定延迟即时转发机制控制器接收到同步集总帧入站时间戳后启动延迟计数器,延迟计数器计量到固定驻留时间Tt间隔后转发同步集总帧,并复位计数器。
本发明中,所述数字PLL时钟漂移补偿模块包括数字PLL和本地时钟模块;所述数字PLL由数字鉴相器、数字环路滤波器和数字控制振荡器组成;数字鉴相器用于比较输入时钟信号Δtmi和反馈时钟信号Δtsi,然后输出误差信号ei;所述数字环路滤波器带有PI控制环,对误差信号ei进行滤波,输出没有高频噪音的控制信号ui;所述数字控制振荡器通过本地晶振提供的自由振荡频率fc控制调节输出信号fi频率随着输入信号ui变化;所述本地时钟模块接收输出信号fi来校正时钟频率后输出当前周期从站接收时间tsi,并将其和上一周期接收时间ts(i-1)一起反馈给数字鉴相器。
本发明中,所述PI控制环时钟偏移补偿模块包括PI控制环和本地时钟模块;所述PI控制环用于调节误差信号e[n]并输出时间偏移量θms给本地时钟模块,本地时钟模块根据时钟偏移量θms调节控制本地时钟,并将从站接收同步集总帧的本地时间ts反馈给PI控制环输入比较端。
本发明中,所述物理层时间戳获取模块包括PCS层收发器、PMA层收发器、数据包检测器和时间戳寄存器;所述数据包检测器嵌入物理层子层的PCS层和PMA层之间,用于检测从站接收和发送同步集总帧经过PCS层和PMA层时的数据包头,产生相应的时间戳;时间戳寄存器用于接收和存取时间戳信息,并向上发送给PI控制环偏移补偿模块和数字PLL漂移补偿模块。
本发明中,所述CPU管理控制模块包括实时以太网控制器、双端口内存和互斥器;所述实时以太网控制器通过互斥器控制双端口内存的读写、共享其他模块的实时信息,对整个同步系统进行管控并实现时间同步协议。
本发明中,所述同步集中帧包括先导域、帧开始标志域、目的地址域、源地址域、信息控制域、帧类型域、数据长度域、有效载荷域和校验域。
本发明还提供了一种基于链状工业以太网的时间同步协议系统的同步方法,包括以下步骤:
1)、测量出相邻两个站点之间的线路同级延迟tP2,并确定每个站点的固定 驻留时间Tt,相加得到主站和目标从站之间的线路端到端延迟Dms,保存在目标从站;
2)、主站发送同步集总帧,用PLL时钟倍频模块输出的高频时钟测量出的发送时间tmi存放在同步集总帧的有效载荷域;
3)、从站接收到同步集总帧时用PLL时钟倍频模块输出的高频时钟测量出当前周期从站接收时间tsi,然后再分别用PI控制环和数字PLL对本地时钟模块完成偏移补偿和漂移补偿,进行从站时钟和主站时钟的同步;
4)、从站在固定延迟即时转发机制控制器的控制下间隔固定驻留时间Tt后开始转发同步集总帧给下一级从站。
5)、下一从站接收到同步集总帧后,重复步骤3)和步骤4),如果达到最后从站,则执行步骤3)后结束。
本发明中,所述步骤1)具体过程为:
11)、主站向第一从站发送测量报文,该报文中包含了发送时间戳tmtc,第一从站接收到该报文后测量出报文入站时间戳tsic1,在进行第一从站对进行报文信息处理之后,第一从站向主站发送测量响应报文,该报文包括时间戳tsrc1和从站发送响应报文时间戳tstc1,主站接收到响应报文之后测量得到接收时间戳tmrc,由IEEE1588-2008的线路同级延迟tP2的计算方法可以得到主站和第一从站之间的同级延迟tP2ms1,并将其保存在前一站点即主站;
12)、第一从站在向主站发送测量响应报文的同时,向第二从站发送测量报文,具体步骤与测量主站和第一从站之间的同级延迟tP2ms1相同,测得第一从站与第二从站之间的同级延迟tP2s1s2,此时可以确定第一从站的固定驻留时间Tt1,将二者保存在第一从站;
13)、在测量结束后,即最后一从站发送测量响应报文一段时间之后,向主站发送延迟收集报文,该报文每经过一从站就获取保存在该站点的同级延迟tP2和固定驻留时间Tt,并继续发送直到主站接收;主站接收到延迟收集报文之后,将这些同级延迟tP2与站点的固定驻留时间Tt进行相加得到主站与目标从站之间的线路端到端延迟Dms,然后主站再用延迟分发报文将端到端延迟Dms发送给对应从站;
14)、对应从站接收到延迟分发报文之后,将端到端延迟Dms保存。
本发明中,所述步骤3)具体过程为:
31)、在同步集总帧进入从站的时刻从站测量得到当前周期从站接收时间tsi后保存,并将随后从同步集总帧中得到的发送时间tmi保存;
32)、从站将保存的上一周期接收时间ts(i-1)和上一周期发送时间tm(i-1)与当前周期从站接收时间tsi和当前周期接收到的发送时间tmi通过数字PLL调节后得到频率补偿信号fi,频率补偿信号fi输出给本地时钟模块实现从站时钟和主站时钟的漂移补偿;
33)、同时,从站将当前周期接收到的发送时间tmi与保存的当前周期从站接收时间tsi和端到端延迟Dms经过PI控制环调节后输出时间偏移量θms给本地时钟模块实现从站时钟和主站时钟的偏移补偿,最终实现从站时钟与主站时钟的同步。
本发明的有益效果在于:(1)、本发明通过采用固定延迟转发机制,使同步频率大幅提高,不仅可以实现一次循环通信时进行一次同步,而且减少了因时间信息测量时引入的测量误差;同时采用PLL倍频时钟提高测量单位的最小识别精度,减少了测量时间信息时引入的测量误差;(2)、采用数字PLL模块进行时钟漂移补偿和PI控制环进行时钟偏移补偿,实现了在高同步频率下的漂移和偏移分开补偿,保证了同步频率提高后的频率补偿算法的精度;(3)、采用集成PHY收发器的FPGA来将时间戳设置在物理媒介适配层PMA和物理编码子层PCS之间,减少了物理链路随机延迟对时钟戳获取精度的影响。
附图说明
图1为本发明中基于链状工业以太网的时间同步协议系统的结构示意图;
图2为本发明中数字PLL时钟漂移补偿模块示意图;
图3为本发明中PI控制环时钟偏移补偿模块示意图;
图4为本发明中物理层时钟戳获取模块示意图;
图5为本发明中同步集总帧的结构示意图;
图6为本发明中基于链状工业以太网的时间同步协议系统的同步方法的流程图。
具体实施方式
下面结合附图对本发明的进行详细说明。
如图1所示,本发明基于链状工业以太网的时间同步协议系统在FPGA中实现, FPGA采用Altera公司的Cyclone IV GX系列芯片,型号为EP4CGX30CF23C8。FPGA不仅集成了以太网收发器,而且逻辑门庞大可以实现所有该同步系统功能。本FPGA构架出两个CPU(即CPU0、CPU1)用于不同的功能,CPU0包括CPU管理控制模块10,CPU管理控制模块10由实时以太网控制器101、双端口内存102和互斥器103组成,实时以太网控制器101通过互斥器103控制双端口内存102的读写,共享CPU1的实时信息,对同步系统进行管理并实现时间同步协议。CPU1包括固定延迟即时转发机制控制器11、数字PLL时钟漂移补偿模块12、PI控制环时钟偏移补偿模块13、MAC层14、PLL时钟倍频模块15、物理层时钟戳获取模块16以及共用本地时钟模块17,其中固定延迟即时转发机制控制器11、MAC层14、PLL时钟倍频模块15均与本地时钟模块17连接。数字PLL时钟漂移补偿模块12和PI控制环时钟偏移补偿模块13共用本地时钟模块17。CPU1中的本地时钟模块17是时钟同步的核心模块,其与物理层时钟戳获取模块16通过固定延迟即时转发机制控制器11、数字PLL时钟漂移补偿模块12、PI控制环时钟偏移补偿模块13、MAC层14、PLL时钟倍频模块15进行时钟信息的交换处理,处理完成一次本地时钟模块17产生循环通信中断信号发送给CPU0。
固定延迟即时转发机制控制器11包括一个延迟计数器,通过获取物理层时钟戳获取模块16的时间戳信息,控制从站在接收同步集总帧固定驻留时间Tt后将同步集总帧原样转发给下一从站。固定驻留时间Tt在配置期间测量,每次同步时,固定延迟即时转发机制控制器11接收到同步集总帧入站时间戳后启动延迟计数器,延迟计数器计量到固定驻留时间Tt间隔后开始转发同步集总帧,并复位延迟计数器。IEEE1588-2008时间同步协议有主从时钟表达式:tm+Dms+θms=ts,Dms是主站到从站的总延迟,tm是主站发送同步集总帧的本地时间,ts是从站接收同步集总帧的本地时间,θms是主站和从站时钟偏移量。其中总延迟Dms分为两部分,一部分是两个连续站点之间的同级延迟tP2,由于采用基于硬件的时间戳,此延迟是固定的单路延迟,可以在配置期间一次性测量;另一部分是同步集总帧中间站点的固定驻留时间Tt。采用固定延迟即时转发机制可以大幅减少固定驻留时间Tt,并且将整个总延迟Dms量变为了固定值,那么不仅同步机制帧的每次传播时间减少,而且其每次需要携带的信息也减少了,进一步减少了传播时间。传播时间的减少意味着同步频率即测量频率的提高,减少了测量误差。
MAC层14主要包括MAC传输控制器,用于数据包的传输,应用硬件语言实现。
PLL时钟倍频模块15由PLL硬件电路组成,其中PLL由FPGA逻辑门经过硬件语言编辑实现,用于输出高频时钟,提高测量工具最小识别精度进而减少测量误差。
本地时钟模块17,用于提供、调节和控制本地时钟;
如图1、2所示,数字PLL时钟漂移补偿模块12,包括数字PLL21和本地时钟模块17;其中:数字PLL21包括数字鉴相器211(DPD)、数字环路滤波器212(DLF)、数字控制振荡器213(DCO)。数字鉴相器211用于比较输入时钟信号Δtmi和反馈时钟信号Δtsi,然后输出相关误差信号ei=Δtsi-Δtmi;数字环路滤波器212带有PI控制环用于对误差信号ei进行逐步滤波,最后输出没有高频噪音的控制信号ui并作为数字控制振荡器213的输入;数字控制振荡器213通过本地晶振提供的自由振荡频率fc控制调节输出信号频率fi随着输入信号ui变化;本地时钟模块17接收输出信号fi来校正时钟频率,之后本地时钟模块输出17当前周期从站接收时间tsi,并将其和上一周期接收时间ts(i-1)一起反馈给数字鉴相器211,最后完成一次频率漂移补偿。该漂移补偿过程是以误差信号ei与相对漂移量ρms成线性关系为补偿基础。
上述线性关系推导步骤为:
第一步,由时钟漂移ρ(t)定义和时钟漂移有界模型获得如下表达式:
t0到t为一段很短的时间,此时间段内ρ(t)=ρ,C(t)为本地时钟函数。
第二步,对于不同时钟i和j的本地时钟函数均存在第一步诉述关系式,两个关系式相减得到如下表达式:
Ci(t)-Cj(t)=Ci(t0)-Cj(t0)-(ρi-ρj)·t0+(ρi-ρj)·t
其中Ci(t)─Cj(t)为t时刻的相对偏移量θij(t),ρi─ρj为相对漂移量ρij,
关系式化简为:
θij(t)-θij(t0)=ρij·(t-t0)
第三步,当从站接收到当前同步周期主站发送时间tmi后,计算两个周期主站 发送时间差Δtmi,并将Δtmi和tmi存储在接收从站。当前周期从站接收时间tsi同样存储在接收节点,接收时间两个周期的差值为Δtsi,根据主从时钟表达式获得如下表达式:
Δtsi=tsi-ts(i-1)=(tmi+Dmsi+θmsi)-(tm(i-1)+Dms(i-1)+θms(i-1))
=Δtmi+Dmsi-Dms(i-1)+θmsi-θms(i-1)
第四步,由于电缆的随机延迟在10M长度只有3-5ns,加上将时间戳获取点设置在PHY层,链路随机延迟可以忽略,即Dmsi≈Dms(i-1)。同时所有从站同步都是以主站为基础的,可以将主站时间看作真实时间,则有Δtmi≈Δti,得到如下表达式:
Δtsi=Δtmi+ρms·Δti=Δtmi+ρms·Δtmi
由于误差信号ei=Δtsi-Δtmi,则误差信号ei与相对漂移量ρms成线性关系。
如图1、3所示,PI控制环时钟偏移补偿模块13包括PI控制环31和本地时钟模块17。输入信号r[n]和反馈信号y[n]经过PI控制环31输入比较端比较后得到误差信号e[n],误差信号e[n]通过PI控制环31调节后得到同步周期的时间偏移量θms,时间偏移量θms通过电压控制信号u[n]传递给本地时钟模块17对本地时钟进行调节,再将从站接收同步集总帧的本地时间ts反馈给PI控制环31输入比较端,最后完成一次偏移补偿。由于漂移补偿和偏移补偿都是对本地时钟模块17进行操作,电压控制信号u[n]作为输入量同时参与了图2数字PLL时钟漂移补偿模块12的漂移补偿。
如图4所示,物理层时间戳获取模块16,包括PCS层收发器41、PMA层收发器42、数据包检测器43和时间戳寄存器44。采用集成以太网收发器的FPGA可以使用硬件语言将数据包检测器43嵌入物理层子层的PCS层和PMA层之间;数据包检测器43用于检测从站接收和发送同步集总帧经过PCS层和PMA层时的数据包头,在物理层产生相应的时间戳。每当有信号从PMA层收发器42进入PCS层收发器41时,数据包检测器43记录对应数据接收时间戳,再在系统应用层判断哪个接收时间戳是同步集总帧的开始进入的时间戳,得到接收时间;相应的每当有信号从PCS层收发器41进入PMA层收发器41时,数据包检测器43记录对应发送时间戳,但是此时不需要判断开始发送时间。时间戳寄存器44用于接收和存取时间戳信息,并向上发送给PI控制环偏移补偿模块13和数字PLL漂移补偿模块12。
如图5所示,同步集总帧包括先导域51、帧开始标志域52、目的地址域53、源地址域54、信息控制域55、帧类型域56、数据长度域57、有效载荷域58和校验域59。该同步集总帧不同于标准以太网帧,为短帧格式。有效载荷域58为四个字节,携带主站发送时间戳tm,由于整个帧长度远小于标准以太网帧,则同步频率也远高于基于标准以太网帧的同步。
如图6所示,本发明中基于链状工业以太网的时间同步协议系统的同步方法包括以下步骤:
A、主从站连接初始化,在配置阶段通过IEEE1588-2008相关测量方法,测量出相邻两个站点之间的线路同级延迟tP2,并确定每个站点的固定驻留时间Tt,通过简单相加得到主站和目标从站之间的线路端到端延迟Dms,并将其保存在目标从站。
具体实施步骤如下:
a)、主站向第一从站发送测量报文,该报文中包含了发送时间戳tmtc,第一从站接收到该报文后测量出报文入站时间戳tsic1,第一从站在对报文信息进行处理之后,第一从站向主站发送包括时间戳tsrc1和从站发送响应报文时间戳tstc1的测量响应报文,主站接收到响应报文之后测量得到接收时间戳tmrc,由IEEE1588-2008的线路同级延迟tP2的计算方法得到主站和第一从站之间的同级延迟tP2ms1,并将其保存在主站;
b)、第一从站在向主站发送测量响应报文的同时,向第二从站发送测量报文,具体步骤与测量主站和第一从站之间的同级延迟tP2ms1相同,测得第一从站与第二从站之间的同级延迟tP2s1s2,此时可以确定第一从站的固定驻留时间Tt1,将二者保存在第一从站;
c)、在最后一从站发送测量响应报文之后,最后一从站向主站发送延迟收集报文,该报文每经过一从站就获取保存在该站点的同级延迟tP2和固定驻留时间Tt,并继续发送直到主站接收;主站接收到延迟收集报文之后,将这些同级延迟tP2与站点的固定驻留时间Tt进行相加得到主站与目标从站之间的线路端到端延迟Dms,然后主站再用延迟分发报文将端到端延迟Dms发送给对应从站;
d)、对应从站接收到延迟分发报文之后,将端到端延迟Dms保存;该实施步骤中的时间戳均由各个站点的PLL时钟倍频模块15倍频出的高频时钟测量得到。
B、开始同步通信,主站发送同步集总帧,用PLL时钟倍频模块15倍频出的高频时钟测量得到发送时间tmi并存放在集总帧有效载荷域;同步通信的开始时间即每次重复通信的开始,即将同步通信完全嵌入重复通信中。
C、从站接收到同步集总帧后开始进行从站时钟和主站时钟的同步。
具体实施步骤如下:
a)、在同步集总帧进入从站的时刻从站测量得到当前周期从站接收时间tsi后保存,并将随后从同步集总帧中得到的发送时间tmi保存;
b)、从站将保存的上一周期接收时间ts(i-1)和上一周期发送时间tm(i-1)与当前周期从站接收时间tsi和当前周期接收到的发送时间tmi通过数字PLL21调节后得到频率补偿信号fi,频率补偿信号fi输出给本地时钟模块17实现从站时钟和主站时钟的漂移补偿;
c)、同时,从站将当前周期接收到的发送时间tmi与保存的当前周期从站接收时间tsi和端到端延迟Dms经过PI控制环31调节后得到时间偏移量θms,时间偏移量θms输出给本地时钟模块17实现了从站时钟和主站时钟的偏移补偿,完成了漂移补偿和偏移补偿的从站时钟与主站时钟实现了同步;该步骤中的时间戳均由各个从站的PLL时钟倍频模块15倍频出的高频时钟测量得到。
D、从站在固定延迟即时转发机制控制器11的控制下间隔固定驻留时间Tt后开始转发同步集总帧给下一级从站;固定延迟即时转发机制控制器11在接收到同步集总帧的时刻启动延迟计数器,延迟计数器走过固定驻留时间Tt间隔后,复位并通知从站开始转发同步集总帧。
E:下一从站接收到同步集总帧后,重复C、D过程,如果达到最后从站,执行C过程结束。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下还可以做出若干改进,这些改进也应视为本发明的保护范围。