基于IEEE 1588协议的网络时钟同步系统

2017-03-27 07:13许国强陈皓瑜张永刚周小林
关键词:基带报文时钟

许国强, 陈皓瑜, 张永刚, 周小林

(1.复旦大学 信息科学与工程学院,上海 200433; 2.联芯科技有限公司 运营管理部,上海 201206)

基于IEEE 1588协议的网络时钟同步系统

许国强1, 陈皓瑜2, 张永刚1, 周小林1

(1.复旦大学 信息科学与工程学院,上海 200433; 2.联芯科技有限公司 运营管理部,上海 201206)

提出一种基于IEEE1588协议和卫星授时的局域网内时间同步方案,将FC3180微控制器作为设备的核心控制单元,结合相应的硬件单元实现IEEE1588协议,将通过授时模块获取的卫星上的时间作为基准时间.IEEE1588将此基准时间分布到局域网中,并将各个从时钟设备的时间同步到基准时间源上.实验结果表明,该方案能够实现亚微秒级别的时间同步精度,达到了IEEE1588协议规定的精度,能够满足大部分应用系统对时间同步的要求,具有一定的应用价值.

IEEE1588; 时间同步; 精确时间同步协议; 卫星授时

0 引 言

时钟同步在分布式系统中具有重要的作用,它指的是系统中的时钟都以某个时钟为基准,各个时钟与基准时钟进行同步,该同步达到一定的同步精度以符合应用的需求,最后获得系统意义上的时钟同步.目前时间同步技术已经应用于通信、电力等众多领域[1].对于需要亚微秒同步精度的应用领域,之前的同步协议,如NTP,并不能满足要求[2],用卫星授时的方案虽能满足同步要求但需较高成本,且应用环境也受限制,因此需要研究更好的同步方案.

IEEE1588协议利用现有的以太网网络传递时间信号,通过一系列机制配合少量硬件支持,可达到亚微秒级别的时间同步精度[3],能够满足大部分的应用需求,非常适用于控制良好的局域网环境,具有扩展性良好,实现成本低,占用网络资源少等优点,有广阔的应用前景.

本文作者基于IEEE1588协议和FC3180微控制器[4],提出一种合理可行的同步方案.设备间通过以太网进行通信,每个设备上独立运行IEEE1588精确时间同步协议(Precision Time Protocol,PTP)协议引擎,通过交换PTP报文信息建立主从时钟体系网络,并据此实现时钟同步.

1 IEEE1588 PTP总体设计框架

本设计的网络时钟同步系统包括卫星授时模块、时间戳标记模块、IEEE1588 PTP协议引擎.

1)卫星授时模块.通过卫星接收机获取卫星上的时间,将此时间提供给IEEE1588网络,作为网络的基准时间源.

2)时间戳标记模块.在MAC里通过特有的逻辑和控制程序识别PTP事件报文,在MAC层标记并产生时间戳,保证了时间戳的精度.

3)IEEE1588 PTP协议引擎.PTP协议引擎负责收发报文,对报文进行处理并根据报文信息决定自身的状态,建立主从时钟体系,主时钟则不断发布相关的同步报文,从时钟根据收到的报文调整本地时钟使其与主时钟同步.

IEEE1588 PTP的主要功能为:通过套接字(Socket)接口收发PTP报文.在PTP事件报文通过MAC时由特定的数字逻辑和控制程序产生时间戳,并将时间戳存在列表中供PTP协议引擎利用,PTP协议引擎则负责时钟同步的操作,如图1所示.

图1 IEEE1588 PTP总体框架

2 卫星授时模块设计

卫星授时模块主要包括天线、射频芯片、AD转换器、基带处理芯片、微处理器等.由FC3180作为核心控制器控制基带芯片对卫星信号进行处理并得到时间信息.

2.1 授时模块硬件设计

1) 射频模块.射频部分的电路采用SFM95XDEQ射频芯片实现.SFM95XDEQ射频芯片支持BD2、B1/B2/B3、GPSL1、GLONASS等5个频段的信号接收,支持模拟中频(50 Ω负载),中频输出到AD转换器中进行转换,能够接收无源天线或有源天线信号输入,支持62MHz低相噪时钟信号输出.

2) 基带处理模块.基带处理部分采用JFM7201基带处理芯片.该芯片用于接收处理经过数字化后的北斗二号B1频点、B3频点或者GPS-L1频点的中频信号.它能够对导航信号进行捕获、跟踪并进行导航电文解码,提取原始观测量等操作,芯片处理所得结果,如导航电文、原始观测量以及基带芯片的工作状态信息等,通过数据总线接口输出给微处理器.

3) 控制器模块.核心控制部分采用FC3180微处理器.FC3180是一个低功耗、实时可重构处理器,非常适用于需要高速度处理、低功耗、定制化的应用场合.通过将编写的定位定时程序下载到FC3180中,对基带芯片JFM7201进行定位定时任务的安排,并实现定位和时间信息的获取等操作.

图2 卫星授时模块框图

图2为卫星授时模块框图,相应工作流程是天线收到射频信号后,通过SFM95XDEQ芯片,形成中频输出,AD采样后,形成数字输出到基带芯片.同时,FC3180微处理器负责进行控制.

2.2 授时模块软件设计

根据卫星定位授时原理,编写授时模块的软件程序.程序主要包括定位和获取卫星时间两大部分.定位程序根据伪距定位原理[5]进行编写,需要最少4颗可见卫星才能进行定位,伪距定位示意图如图3所示.要获取时间,首先需要成功定位,由于授时模块的本地时钟与卫星时钟之间存在钟差,定位后需再根据授时模块与卫星钟之间的钟差对本地时间进行调整,使其同步到卫星钟,然后再将同步后的本地时间通过相应接口输出,供IEEE1588使用.

图3 伪距定位示意图

1) 定位程序.定位程序主要通过微处理器FC3180和基带芯片JFM7201完成.定位数据需要通过设置基带处理芯片进行电文信号捕获.程序设置安排好基带芯片的相应通道进行捕获卫星之后,需要定时去查看捕获的结果,这一部分工作通过观测、测量中断完成.首先要提取环路的状态,查看通道是否完成跟踪,再算出卫星的发射时间和接收时间,从而算出授时模块与卫星之间的伪距,将结果保存在相应程序变量中.卫星的坐标和大气层延迟等数据则可以通过导航电文算出,利用这些数据再通过特定的算法(采用迭代法),便可算出用户接收机的位置.

2) 时间获取.虽然北斗的卫星电文里有周内秒时间,但没有更精确的时间,因此不能简单地从电文里获取准确的时间,而且卫星信号经过长距离传输,当其到达接收机时,本地时间已不是信号播发时的时间.本文作者通过时钟同步的方式来获取北斗卫星时间,即通过不断使授时模块上的时钟与星上时钟同步,根据定位程序算出的授时模块与卫星钟之间的钟差,对基带芯片JFM7201的时钟模块进行调整,从而使接收机上的时钟达到较高的精确度,从而能够向外提供精准的时间.

3 IEEE1588 PTP设计

3.1 时间戳标记单元设计

时间戳的精度对同步精度的影响至关重要,为保证同步精度应在尽量接近物理层(PHY)的地方标记时间戳.时间戳标记处位于MAC层,如图4所示.

FC3180通过微代码和数字逻辑实现Ethernet MAC以及Timer System,实现IEEE1588事件报文的检测、报文时间戳的生成.系统的MAC驱动经过专门的修改,具有检查以太网帧的有效负荷的能力,故能够分辨以太网帧是否是PTP报文,如果发现是PTP报文,则在该帧的帧起始分界符(SFD)发往PHY或者从PHY接收过来时进行时间标记.

图4 时间戳标记方案

3.2 最佳主时钟算法(BMCA)设计

当系统启动时,PTP首先进行初始化,然后迅速切换到监听状态,等待网络上其他PTP时钟发来的Announce报文,随后与之对比.如果发现该时钟的属性比自身的更优,则状态切换到从时钟状态.而如果在等待一段时钟后,未收到网络上其他时钟发出的Announce报文,则认为自己是最佳时钟,时钟状态转换为主时钟.实现最佳主时钟算法包括两部分,一部分是数据集比较算法,另一部分是状态决定算法.

1)数据集比较算法.数据集比较算法主要用于比较代表2个时钟优劣的数据,并选出较好一方.代表时钟好坏的属性主要有6个,数据集比较算法基于以下优先权属性进行两两比较:

(a)priorityl:用户指定一个时钟为主时钟;

(b)clockClass:定义时钟的可追踪属性;

(c)clockAccuracy:定义时钟的精确度属性;

(d)offsetScaledLogVariance:定义时钟稳定性的属性;

(e)priority2:在若干个可选择的主时钟中挑选出更好的以及设置备用的主时钟;

(f)clockIdentity:统一标识符.

除了优先次序之外,如果两个边界时钟都是从同一个主时钟获取同步时间的,那么经过较少边界时钟的边界时钟更优,Steps removed用于判断边界时钟与最高级主时钟间经过的边界时钟的数量.

PTP时钟有可能收到若干个其他时钟发来的Announce报文,这些时钟都声称自身具有成为主时钟的能力,所以在程序中还需要实现关于收集各方传来的Announce报文的功能.作者设计一个数组来记录时钟收到的Announce报文,然后再通过上述数据集比较算法,从所有的数据集中选择最好的时钟.

2)状态决定算法.通过数据集比较算法选出本时钟端口接收到的最优数据集,最优数据集代表了除本时钟外网络上存在的特性最优的时钟.状态决定算法基于数据集比较算法和本地时钟属性,决定端口的下一状态.

3.3 计算主从时钟间的偏差

图5为报文交换的过程,从时钟需要拥有4种时间戳,其中2种来自主时钟,另2种由本地产生.这些时间戳用于计算主从时钟的偏移量和传输延时.

1)偏差计算.根据图5所示报文交换过程,从时钟端节点周期性地向主从时钟发送延迟请求报文Delay_Req,主时钟节点收到Delay_Req报文后会记录下接收时间,并通过Delay_Resp报文将此时间戳发给从时钟节点.而在此之前,从时钟节点通过Sync和Follow_Up报文计算出主时钟到从时钟的传输延迟,因此从时钟节点在收到通过Delay_Resp报文后能够计算出从时钟到主时钟的传输延迟,进而能够将计算出平均延迟(MPD),将该结果保存留待计算主从偏差量:

(1)

式中D为MPD,在收到t1和t2后,从时钟便可计算出它与主时钟的偏差O.再将偏差量除以Sync报文间隔可得到频率漂移.

图5 报文交换过程

2)调整本地时钟.根据计算得到的主从时钟偏差以及从时钟的频率漂移量,可对从时钟节点的本地时钟进行调整.FC3180的本地时钟主要由一个晶振和计数器构成,晶振驱动计数器进行计数,而晶振的频率以及计数器的值都是不可更改的,因此不能直接根据主从时钟的偏差对本地时钟进行调整.可采用数字调整法对本地时钟进行调整.

硬件计数器从使能时刻开始计数,计数值存放在一个64 bit的计数器中.计数器值代表的是从其被使能开始起时钟所跳动的次数(ticks)称之原始时间Traw,而每一个tick所代表的时长tunitlength则由晶振频率决定.故而从启动计数器起的时间长度为

(2)

再加上启动时的时间偏移量(从1970年1月1日0时0分开始)toffset,即可得到本地时刻:

(3)

因此,概括为表达式y=x×A+B,通过改变参数A和B达到调整时钟频率和相位的效果,增大A相当于增加时钟的频率,反之亦然.改变B相当于改变时钟的相位.

4 系统测试验证

4.1 授时模块功能测试

所设计的时间获取方式是:当在程序中收到第一条电文子帧时,根据测距码的性质解算出该电文的发射时间tTransmit,tTransmit是电文子帧发射时刻的精确周内秒,而周计数nweek则可以直接在电文中读取.北斗卫星的时间由周计数和周内秒计数构成,它的起始时间是2006年1月1日UTC时间0时0分0秒.最后将tTransmit拆分成周内秒ssow、秒内段计数nsos、段内计数ncos,然后将这3个值和nweek分别写入基带芯片的相应寄存器中,接着向基带芯片写入加载时间命令,即完成了对基带芯片内时钟初值的设置.然后根据授时模块与卫星之间的钟差修正本地时间.在得到经过校正的本地时间后,再通过串口向外提供推荐最小定位信息(RMC)格式的时间数据(TOD),如图6所示.

4.2 IEEE1588同步性能测试

图7为测试环境.授时模块输出UTC时间信号给同步网络的主时钟设备(搭载了IEEE1588 PTP软件引擎的FC3180),然后主时钟通过IEEE1588 PTP将此时间分布到网络中,测试过程使用2块FC3180板子,板子之间通过以太网通信,其中作为主时钟的一个板子同步到北斗卫星时间,另一块板子与主时钟通过IEEE1588 PTP实现同步.测量2块板子输出的脉冲序列的相位差,通过时序分析软件TimeMonitor Analyzer分析脉冲序列的相位差.测试结果如图8所示.

图6 RMC格式TOD时间数据

图7 测试套件

图8 同步测试结果

由图8可以看到相位标准差小于2 ns,达到亚微秒同步精度.

5 结 论

提出了一种基于卫星授时的IEEE1588网络时钟同步方案.基于FC3180的IEEE1588时钟源授时模块能够成功实现高精度定位定时功能,并能够通过TOD方式向外提供时间基准,该时间基准可以通过串口的方式提供给IEEE1588主时钟,然后主时钟将该时间基准通过IEEE1588 PTP分布到网络中,网络中的从时钟据此进行同步,从时钟与主时钟达到亚微秒的同步精度.

[1] 薛昊,蒋南.时间同步及其在电力系统中的应用 [J].价值工程,2014(13):42-43.

Xue H,Jiang N.Time synchronous and its application in power system [J].Value Engineering,2014(13):42-43.

[2] 张城.基于IEEE1588协议的网络同步时钟技术的研究 [D].杭州:浙江大学,2013.

Zhang C.Research on time synchronization control technology based on IEEE1588 protocol [D].Hangzhou:Zhejiang University,2013

[3] IEEE.IEEE Standard for a precision clock synchronization protocol for networked measurement and control systems [S].New Jessy:IEEE,2008.

[4] Huan Y,Ma N,Blixt S,et al.A 61 μA/MHz reconfigurable application-specific processor and system-on-chip for internet-of-things [C].IEEE International SOC Conference (SOCC),2015.

[5] Kaplan E D,Hegarty C.Understanding GPS:principles and applications [M].Artech House,2006.

[6] 李晓珍.基于IEEE1588的网络时间同步系统研究 [D].西安:中国科学院研究生院,2011.

Li X Z.Research on the network time synchronization system based on IEEE1588 [D].Xian:University of Chinese Academy of Sciences,2011.

[7] 王伟东.精确时间协议的软件设计与实现 [D].哈尔滨:哈尔滨工业大学,2012.

Wang W D.Software design and implement of the precision time protocol [D].Harbin:Harbin Institute of Technology,2012.

[8] 关松青,肖昌炎,夏晓荣.IEEE1588协议在工业以太网中的实现 [J].计算机工程,2011,37(6):237-238.

Guan S Q,Xiao C Y,Xia X R.Implementation of IEEE 1588 protocol over industrial Ethernet [J].Computer Engineering,2011,37(6):237-238.

(责任编辑:包震宇,顾浩然)

Research and development of network clock synchronization protocolbased on the IEEE1588 system

Xu Guoqiang1, Chen Haoyu2, Zhang Yonggang1, Zhou Xiaolin1

(1.School of Information Science and Technology,Fudan University,Shanghai 200433;2.Department of Operations Management,Leadcore Technology Co.,Ltd.,Shanghai 201206)

In this paper,we proposes a local area network (LAN) time synchronization scheme based on IEEE1588 protocol and satellite timing.FC3180 micro controller is used as the core control unit of equipment combined with the corresponding hardware unit which realizes IEEE1588 protocol.The satellite time is gained through GPS clock module as a benchmark,and is distributed to LAN by using IEEE1588 protocol.The time on each clock equipment is synchronized to the benchmark.Experiment results show that sub-microsecond level time synchronization accuracy,as IEEE1588 sets,can be realized,and time synchronization requirements that most of application systems demand can be meet by using our scheme.

IEEE1588; time synchronization; precision time protocol; satellite timing

10.3969/J.ISSN.1000-5137.2017.01.024

2016-11-27

国家科技支撑课题项目(2015BAD17B04)

许国强(1992-),男,硕士研究生,主要从事物联网方面的研究.E-mail:xu7936@sina.com

导师简介: 周小林,(1973-),男,副教授,主要从事无线通信,移动通信,信号处理方面的研究.E-mail:zhouxiaolin@fudan.edu.cn(通信联系人)

TN 929.5

A

1000-5137(2017)01-0142-07

猜你喜欢
基带报文时钟
基于J1939 协议多包报文的时序研究及应用
别样的“时钟”
古代的时钟
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
有趣的时钟
ATS与列车通信报文分析
时钟会开“花”
2014年LTE基带收益占蜂窝基带收益50%以上
AIS基带信号的接收与处理