一种实现以太网精确对时的方法

文档序号:7760460阅读:530来源:国知局
专利名称:一种实现以太网精确对时的方法
技术领域
本发明涉及一种对时方法,尤其是涉及一种实现以太网精确对时的方法。用于网 络时间同步。
背景技术
随着计算机和网络通信技术的飞速发展,各行各业的自动化系统数字化、网络化 的时代已经到来。计算机及网络设备为各控制和信息系统之间的数据交换、分析和应用提 供了更好的平台、这样对各种实时和历史数据时间戳的准确性也就提出了更高的要求,然 而网络中的这些设备各自走自己的时间,日积月累中整个系统的时间混乱不堪,造成正常 的数据统计分析业务无法正常进行,这时就需要把整个网络时间同步起来。一般在小型的局域网内(如变电站的监控系统)需要精确的网络时钟,会有一台 网络系统作为时钟源,给其它网络设备对时。通过网络报文对时,因为网络报文在处理及发 送接收过程中有延时,特别是通过交换机路由器等装置,延时不好估计,产生毫秒级的误差 是完全有可能的。通过通用输入输出GPIO辅助对时信号可以把对时精度保证在微秒级。

发明内容
本发明所要解决的技术问题是,克服网络报文对时实时性的不足,提供一种以太 网对时的方法,使对时精度为微秒级的功能。本发明解决其技术问题所采用的技术方案如下CPU通过网口发送对时网络报文,通用输入输出GPIO(General_Purpose Input / Output)通过电平变化发送辅助对时信号。对时过程如下对时装置Dl的CPU读取实时时 钟tl之后,立即通过通用输入输出GPI0,发出辅助对时信号,只需将电平变化一次即可。然 后将读出的时钟信息组装成网络报文,通过物理层接口,发送给接收对时装置。接收对时装 置D2同样通过通用输入输出GPIO信号,接收到信号变化,并记录下该时刻,标记为t2。经 过一段时间的延时,接收对时装置接收到网络对时报文,送给接收对时装置D2的CPU处理, 接收对时装置D2的CPU分析完报文,提取出时间信息在写入实时时钟芯片前,记录下该时 刻,标记为t3。t3-t2作为网络延时及接收对时装置D2的CPU处理报文时延,用该值修正 时间信息,则写入接收对时装置D2实时时钟芯片的时间信息为tl+t3-t2。如果通过计算机 器周期,计算出写入实时芯片的固定延时,可以使对时更加精确。本发明的有益效果如下本发明装置易实现、安装方便,采用微处理器的通用输入 输出GPIO功能,保证了局域网内系统时钟的精确与同步。


图1为本发明使用的装置的结构示意图。图2为延时测试示意图。
具体实施例方式实现以太网络精确对时功能的新型装置,其特征是组成包括对时装置(Dl),被对 时装置(D2)即为接收对时的网络设备,并且接收对时的装置个数可以大于1。本发明工作原理及过程如下首先只使用网络对时报文进行对时并估算对时误差。本例使用的网络装置为 INTEL的网络处理器IXP465,操作系统为Vxworks。在Vxworks系统下,利用网络套接字建 立基于UDP协议的客户端/服务器通信模式。由于UDP是无连接的协议,授时发送方并不清 楚发出的报文是否已经正确到达接收方,于是提出一种支持重传和定时等待确认的协议。这个协议要求发送方发送的网络对时报文与接收方回复的确认报文具有对应的 序列号,发送方和接收方都可以通过序列号来判断是不是想要得到的报文。序列号是循环 的。如果用1个字节来表示序列号,则可以设定序列号为256。Vxfforks内核时钟的tickLab库增加、改变、获得tick。在VxWorks中的一个参数 就是SYS_CLK_RATE,也就是系统时钟率,即系统时钟在一秒钟之内发生多少次。在IXP465 系统中可以设置SYS_CLK_RATE为1000,这样1个tick就是1毫秒。发送方送出一个对时 报文后立即记录下当前的tick为tl,接收到回复确认立即记录下此时的tick为t2。我们 用(tl-t2)/2计算出网络延时,经过多次测试计算出均值为2. 18毫秒。该值和网络设备、通 信链路等多种因素有关,具有很大的不确定性。图2所示为报文按时、正确地接收的情况。CPU通过网口发送对时网络报文,通用输入输出GPIO(General_Purpose Input / Output)通过电平变化发送辅助对时信号。则对时过程如下对时装置Dl的CPU读取实时 时钟tl之后,立即通过通用输入输出GPI0,发出辅助对时信号,只需将电平变化一次即可。因为VxWorks的中断响应时间比较小,INTEL465网络处理器的硬件平台在5微 秒左右(该时间与硬件性能相关)。如果我们认为晶振频率一直稳定,精确,这个定时最多 受中断响应时间的影响,或者是中断嵌套的影响(也就是若干个微秒,条件是把需要处理 的内容放在ISR中而不是需要调度的任务中,如果挂在主时钟上,就没有中断嵌套的影响 了,因为它的优先级是最高的),而且不会产生累计误差。所以接收端接收到通用输入输出GPIO的电平变化能在5微秒利用中断通知cpu 处理记录。此时为了精确到微秒,我们采用记录机器周期t的方法,INTEL425网络处理器 有一个64位寄存器用来记录CPU上电后的机器周期个数。在接收到通用输入输出GPIO后 中断服务程序立即获取一次CPU机器周期,读数cl为0X000001b37aClf701,即记录了发送 装置读取时钟芯片信息的时间戳。此时对时装置将读出的时钟信息组装成网络报文,通过 物理层接口,发送给接收对时装置。接收对时端收到网络对时报文再次获取CPU机器周期, 读数 c2 为 0x000001b37aclfbd9o对时装置Dl读取时钟芯片到被对时装置D2接收到网络对时报文的延时,通过d =(c2-cl)*t计算出来,INTEL425网络处理器的内核频率400MHz,机器周期f = 0. 0025微 秒,则能够计算出的延时d = 3. 1毫秒的修正时间信息,则写入接收对时装置D2实时时钟 芯片的时间信息则精确到微秒级。如果通过计算机器周期,计算出写入实时芯片的固定延 时,可以使对时更加精确。通用输入输出GPIO辅助对时装置,包括通用输入输出GPIO连接线及辅助对时程 序。在一个小型局域网内多个网络设备可能通过交换机路由器等通信,网络报文的延时具
4有不确定性,各个接收对时报文的网络设备收到的同一对时信息的延时将会不同,通过通 用输入输出GPIO的辅助信号校正延时的误差,将可以是小型局域网内的网络设备的时间 同步在微秒级。 本发明装置网络系统的处理器需要有通用输入输出GPIO功能,或者网络系统有 输入输出功能。 除上述实施例外,本发明还可以有其他实施方式。凡采用等同替换或等效变换形 式的技术方案,均落在本发明要求的保护范围。
权利要求
一种实现以太网精确对时的方法,其特征在于,包括如下步骤对时装置D1的CPU读取实时时钟t1之后,立即通过通用输入输出GPIO,发出辅助对时信号,只需将电平变化一次即可;然后将读出的时钟信息组装成网络报文,通过物理层接口,发送给接收对时装置;接收对时装置D2同样通过通用输入输出GPIO信号,接收到信号变化,并记录下该时刻,标记为t2;经过一段时间的延时,接收对时装置接收到网络对时报文,送给接收对时装置D2的CPU处理,接收对时装置D2的CPU分析完报文,提取出时间信息在写入实时时钟芯片前,记录下该时刻,标记为t3;t3 t2作为网络延时及接收对时装置D2的CPU处理报文时延,用该值修正时间信息,写入接收对时装置D2实时时钟芯片的时间信息为t1+t3 t2。
2.根据权利要求1所述的一种实现以太网精确对时的方法,其特征在于,所述接收对 时装置的数量为一个或者多个。
全文摘要
一种实现以太网精确对时的方法包括如下步骤对时装置D1的CPU读取实时时钟t1之后,立即通过通用输入输出GPIO,发出辅助对时信号,只需将电平变化一次即可;然后将读出的时钟信息组装成网络报文,通过物理层接口,发送给接收对时装置;接收对时装置D2同样通过通用输入输出GPIO信号,接收到信号变化,并记录下该时刻,标记为t2;接收对时装置接收到网络对时报文,送给接收对时装置D2的CPU处理,接收对时装置D2的CPU分析完报文,提取出时间信息在写入实时时钟芯片前,记录下该时刻,标记为t3;t3-t2作为网络延时及接收对时装置D2的CPU处理报文时延,用该值修正时间信息。本发明的有益效果在于装置易实现、安装方便。
文档编号H04J3/06GK101951300SQ20101028878
公开日2011年1月19日 申请日期2010年9月21日 优先权日2010年9月21日
发明者孙军陵, 田小锋, 邓路, 马新平 申请人:国网电力科学研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1