基于TMS320DM642的硬件实现IEEE1588时钟同步

2011-06-05 11:01常永亮黄晓革
电子设计工程 2011年19期
关键词:印章以太网延时

常永亮,黄晓革

(电子科技大学 电子工程学院,四川 成都 610054)

同步是指两个或两个以上信号之间,在频率或相位上保持某种特定关系,即在相对应的有效瞬间,其相位差或频率差保持在约定的允许范围之内。同步包括以下两种:频率同步和时间同步(相位同步)。现在要做的就是达到时间同步即相位同步。为了解决以太网的定时同步能力不足的问题,NTP曾经一直是用于以太网各分布节点时钟同步的传统方法,使用NTP协议可以使同步精度达到100 ms,提高网络设备之间的定时同步能力,但是仍然不能满足网络通信和测量仪器所需的准确度。

IEEE1588精准时间同步协议的全称是<<网络测量和控制系统的精密时钟同步协议标准>>(Standard for a Precision Clock Synchronization Protocol for Network Measurement and Control System)[1],鉴于网络系统定时同步能力不足的问题,提出了IEEE1588协议,主要参考以太网来编制,但是不仅仅局限于以太网,在RS232总线中也可以实现,使分布式通信网络能够具有严格的定时同步,并且广泛应用于网络音频传输系统和工业自动化系统。

2007年,美国国家半导体推出业界首款具备IEEE1588精准时间协议(PTP)硬件支持功能的高精度以太网收发器芯片DP83640[2],时钟可以实现高达8 ns的精确度,无论选用何种微控制器,ARM、FPGA或DSP,都可以确保系统设计的灵活性。这款高精度PHYTER收发器可以确保分布式节点网络通信系统能够按照主时钟同步。

1 系统设计框图

系统设计框图如图1所示。

图1 系统结构框图Fig.1 Block diagram of system

TMS320DM642是TI公司推出的一款C6000系列32位定点数字信号处理器[3],片上带有丰富的外围设备和接口,主要由片内存储器、片上外设和CPU 3部分构成。具有完整网络功能的以太网接口以及64位外部存储器接口,特别适合于开发基于以太网的音频实时传输系统。

DP83640芯片内置高精度IEEE1588时钟,与现有的软件方案或硬件装置不同,特别之处就是将IEEE1588高精度时间协议功能设于芯片的物理层内,因此可以在协议栈的最底层,靠近网线的位置记录获取时间标记,通过硬件执行的时间标记功能,并为接受及发送的信息包印上时间标记,从而实现高达8 ns的精确度。

2 系统原理解析

2.1 IEEE1588同步原理

IEEE1588基本思想是通过硬件和软件将网络设备 (客户机)的内时钟与主控机的主时钟实现同步,提供同步建立时间小于10 μs的运用,与未执行IEEE1588协议的以太网延迟时间1 000 μs相比,采用(精密时钟同步)协议,精度可以达到微秒级,使整个网络的定时同步指标有显著地改善。此标准的目的是为精确地把测量与控制系统中分散、独立运行的时钟同步起来。

IEEE1588将分散在以太网中的网络音频传输设备,如集线器、交换机或者路由器等设备,在这些分离节点上独立运行的从时钟同步到一个高精度和准确度的主时钟上的协议。通过最佳主时钟算法,确立主从时钟。IEEE1588通过主处理器发送PTP同步报文,与从时钟交换同步报文,校正从时钟的时间偏差,从而达到与主时钟实现高精度同步的目的。

在以太网上实现IEEE1588协议仅仅需要在原有的网络环境中增加时钟同步报文,这些报文只占用少量的网络资源,并不需要为时钟传递建立特别的网络,即只要更新软件程序,而不用再添加额外的硬件资源。

IEEE1588精准时钟同步协议为实现同步定义了四种同步报文和一种管理报文。同步过程可以分为两个阶段:偏移测量阶段和延迟测量阶段。

图2 IEEE1588协议同步过程Fig.2 IEEE1588 protocol synchronization process

1)偏移测量阶段:同步报文周期可以根据需要自行设定,一般设定为2 s。

①主时钟周期性地读取当前时间值,根据IEEE1588协议规定,构建Sync同步报文并向从时钟发送,此时,主时钟记录下报文的精确发送时间Tm1,从时钟接收同步报文,并在此时记录下精确的接收到的时间值Ts1。

②紧接着主时钟在软件应用层构建Follow_Up跟随报文,跟随报文中嵌有主时钟发送Sync同步报文的精确发送时间Tm1,从时钟接受跟随报文。

2)延迟测量阶段:在特定网络环境、负载变化不大的系统中,延迟测量不需要经常频繁的进行,一般根据需要可以设定4~60 s测量一次,这样可以减轻网络负荷,提高网络通信质量。

①从时钟在应用层构建Delay-Req延迟请求报文,发送时记录下精确的发送时刻Ts2,主时钟监听延迟请求报文,当接收到报文时立即记录下精确的接受时刻Tm2。

②紧接着主时钟构建Delay-Resp延迟请求响应报文,报文中携带有Delay-Req报文精确的接受时刻Tm2,发送给从时钟。

这样从时钟就得到了4个时间印章值,设定网络时延为Delay,时钟偏差为Offset,则有如下式子:

根据上述式子,可以精确的计算出网络偏差和延迟时间[4]。

2.2 硬件嵌入DP83640的时钟同步

在以太网中,按照TCP/IP协议模型,IEEE1588规定:报文封装在UDP中。Sync同步报文在应用层打包并由UDP传输,向下经过IP层、数据链路层的逐层封装,在以太网的物理层MII接口处,DP83640中的IEEE1588包发送解析器检测数据包PTP事件消息,精确的捕获发送时间印章到DP83640寄存器中,并由软件通过串行管理接口(SMI)读取时间印章,从而主时钟获得Sync同步报文精确的发送时间,从时钟收到Sync同步报文,DP83640中IEEE1588包接受解析器检测数据包PTP时间消息,捕获接受时间印章以及其它信息,再由软件通过SMI读取时间印章。之后主时钟构建Follow_Up报文,报文中含有Sync同步报文精确的发送时间,发送给从时钟。除此之外,DP83640还可以通过在接受到的数据包中插入时间印章并递送给软件,这是一种比较简单的方法传送数据包给软件而不需要匹配时间印章到正确的数据包,从而避免了通过SMI读取DP83640寄存器中时间印章的必要。

在DP83640中增加了硬件辅助功能,对于Sync同步报文来说,可以采用一步操作,主时钟在发送Sync同步报文时,在发送的时候DP83640在MII处自动嵌入时间印章,发送给从时钟,从而避免了软件读取时间印章和发送Follow_Up报文的必要。

在延测量阶段,当从时钟发送Delay_Req报文时,报文同样封装在UDP中,经过协议栈时逐层封装,到达以太网物理层MII接口处时,发送时间印章被DP83640包发送解析器检测到,存到相应寄存器中,并由软件通过SMI读取时间印章。到达主时钟时,被接收包检测器检测到,捕获时间印章到寄存器中并被软件读取,主时钟同时构建Delay_Resp报文,报文中含有Delay_Req到达主时钟MII处的精确时间,发送给从时钟。

2.3 网络的传输延迟

图3 硬件嵌入DP83640的同步过程Fig.3 DP83640 Hardware embedded in the synchronization process

以太网应用于通信网络的关键技术之一便是要求实现对实时性的保证,以太网自身的CSMA/CD机制以及从物理层传输到应用层的延时不确定,低效率的交换、集线器、路由器的嵌入还有网络流量的不适当协调,还有在传输层上的误差检测以及翻译障碍,程序运行处理时间不稳定,操作系统和网络协议栈的延时等。

PTP时钟同步报文自主时钟节点的应用层发送到从时钟节点的应用层,要经历一系列延时,主要包括网络协议栈和操作系统延时、网络通信路径的延时和网络交换设备带来的延时。从网络协议栈的顶应用层向下层传递同步报文时,可以在如下图所示的3个位置打上时间戳,在应用层C点标记时间戳,即通常说的SNTP所采取的方法,网络协议栈延迟波动,同步精度低;在驱动层B点标记时间戳,会受到程序处理时间响应不确定的影响,同步精度也不高;采用硬件辅助的方式在MII处打上时间戳,并将获取的时间戳送给软件应用层,可以获得极高的同步精度[5]。

图4 可获取时间戳的位置Fig.4 The available position of timestamps

每一层运算处理时间不确定导致同步精度差,为了获得可靠的延时时间,需要尽可能的将获取时间戳的位置在底层实现,本文为了实现高精度亚微妙级同步的需求,采取DP83640芯片硬件辅助的方式在PHY层和MAC层的介质无关接口处(MII)标记时间戳,此时将不会有网络协议栈和操作系统的延时,而只是从标记时间戳的MII接口处和网线之间的延时,而这种延时是可以测量的,精确不变的。这个延时分为发送PTP数据包是从MII接口到网线之间的延时和接受PTP数据包时从网线到MII接口处标记时间戳的延时。

在软件中实现这样的功能,计算这个时间并插入到带有时间戳的数据包中修正时间值,对于不同的传输模式,修正值不同,如下所示。

当发送PTP数据包时:

100Base-Tx:0 ns

100Base-Fx:0 ns+光纤发送器发送延时(常量)

10Base-T:95 ns

当接收PTP数据包时:

100Base-Tx:215 ns

100Base-Fx:120 ns+光纤发送器接收延时(常量)

10Base-T:300 ns

图5 栈内滞留时间Fig.5 Latency time within the stack

3 同步精度测试

测试一个系统达到的同步精度是很困难的,因为不仅仅有一种方法,目前有3种不同的测试方法:软件测试、PPS信号比较测试和输出时钟比较。

软件测试依赖于PTP协议栈报告的结果在PC上显示时间同步的质量,软件结果被PTP算法本身限制,不能纠正发送路径和接受路径的长度差异,再就是软件报告的错误只是之前的时间同步,具有滞后性。

最普遍常用的方法分析时间同步是观测PPS信号,传统的测量方法就是用PPS来测量时间同步,这种测量方法的主要缺点是每一秒取样可能存在错误,由于没有一定的第二次转型和时钟同步更新之间的关系,很难得到可靠的结果,测量同步精度误差较大。还有一个问题就是PPS信号通常是从一个数字输出,对于同步结果的产生将增加额外的误差,这些额外的误差本不应该在同步测量中的。

最精确的测量时钟同步的方法是观测一个输出时钟,设定主时钟和从时钟在同一个频率点上产生时钟输出信号并在示波器上比较这两个时钟信号,虽然在每秒内产生了一定数量的错误,但是却提供了一个更精确的时钟同步,并且通过模拟输出可以处理时钟输出,不增加额外的同步错误[6]。

图6 同步测试装置Fig.6 Synchronization test setup

本系统事先确定主从时钟,主从时钟之间通过CAT-5网线直接相连,测试时间为1 h左右,同步报文发送周期可以设定,室温下测量,主从时钟选用普通的晶振[7]。测试刚开始一段时间,主从时钟偏差较大,当系统稳定后,当同步间隔设定为0.2 s时,时钟偏移就可以缩小到了8 ns之内,达到了预计的效果,能够满足实际的需求。

表1 测试结果Tab.1 Test results

4 结束语

本设计主处理器采用TI推出的内置MAC功能的DSPC6000系列芯片TMS320DM642,PHY芯片选用美国国家半导体推出的以太网收发芯片DP83640,这样做的好处是省却了两者之间的MAC芯片;DP83640芯片内置高精度IEEE1588同步时钟,可以在最靠近网线的位置获取时间标记,通过硬件执行时间标记,不用再依靠复杂的FPGA逻辑电路来实现硬件获取时间标记;总之,本设计初步实现了在大规模的分布式以太网络中极大地降低成本,并且降低了电路的复杂性,更易于PCB布线,性价比更高。

[1]IEEE Std.1588-2002,IEEE standard for a precision clock synchronization protocol for networked measurement and control systems[S].2002.

[2]DP83640 Precision PHYTER-IEEE 1588 Precision Time Protocol Transceiver[S].National Semiconductor Corporation,2008.

[3]Texas Instruments.TMS320DM642 Video/Imaging Fixed Point Digital signal Processor[EB/OL](2010-02-08)[2010-07-05].http://focus.ti.com/lit/ds/symlink/tms320dm642.pdf.

[4]戴宝峰,崔少辉,王岩,等.基于IEEE1588协议的时间戳的生成与分析[J].仪表技术,2007(7):15-17.DAI Bao-feng,CUI Shao-hui,WANG Yan,et al.Implementation and analysis oftime stamping techniques based on IEEE1588[J].Instrumentation Technology, 2007 (7):15-17.

[5]魏丰,孙文杰.IEEE-1588协议时钟同步报文的精确时间标记方法研究[J].仪器仪表学报,2009(1):163-165.WEI Feng,SUN Wen-jie.Precise time stamping method for IEEE1588 clock synchronization message[J].Chinese Journal of Scientific Instrument, 2009(1):163-165.

[6]IEEE 1588 Precision Time Protocol Time Synchronization Performance.National Semiconductor Corporation[EB/OL].http://www.national.com/an/AN/AN-1728.pdf.

[7]李二鹏,文开章,汪为伟.基于比时法的晶振频率测量建模与分析[J].现代电子技术,2010(16):119-121.LI Er-peng,WEN Kai-zhang,WANG Wei-wei.Modeling and analysis of crystal-oscillator frequency based on measuring time[J].Modern Electronics Technique,2010(16):119-121.

猜你喜欢
印章以太网延时
我们有印章咯
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
基于级联步进延时的顺序等效采样方法及实现
日光灯断电关闭及自动延时开关设计
自制橡皮印章
印章
谈实时以太网EtherCAT技术在变电站自动化中的应用
Two-dimensional Eulerian-Lagrangian Modeling of Shocks on an Electronic Package Embedded in a Projectile with Ultra-high Acceleration
一种90W高功率以太网供电系统的设计
大象的印章