一种基于双环总线的时间同步方法

文档序号:7985375阅读:287来源:国知局
一种基于双环总线的时间同步方法
【专利摘要】本发明涉及一种基于双环总线的时间同步方法,包括以下步骤:主/从设备初始化;主设备将发送时间封装到同步消息中,发送至相邻从设备;从设备i将在一个环路中接收到同步消息的时刻ti存储并将发送同步消息时间ti’封装到该同步消息中,发送至从设备i+1,从设备i+1保存接收到该同步消息时刻ti+1;同时在另一环路中,从设备i+1将发送另一同步消息到从设备i的发送时间si+1和时间ti+1通过该同步消息发送至从设备i;从设备i保存接收消息时刻si;从设备i计算从设备i和从设备i+1间的时钟偏移量和通信延迟并修正本地时钟,完成双环总线主/从设备的时间同步。在本发明的同步消息可以同时发送到传输线路中,并且同步都在一个通信周期内完成,有效地提高了实时性;且同步效率高。
【专利说明】—种基于双环总线的时间同步方法
【技术领域】
[0001]本发明应用双环结构总线提出一种新的设备间时间同步方法,属通信【技术领域】。【背景技术】
[0002]在工业控制领域中,为了能够即时地对异常情况进行检测与定位,通常需要在管理监控设备和相关的自动设备中保持严格的时间同步,通过控制系统将事件的发生次序以及时间及时记录下来。在传统的控制系统中,毫秒级的数据采样周期已经能够满足通常的监控需要,但在大规模工控系统中,随着现场设备在规模上的扩张,系统复杂度也相对较高,对同步精度的要求也日趋严格。例如,在类似于温度与压力监测的慢速系统中,同步的精度维持在毫秒级,但在高速的现场信息采集系统中,精度需求必须达到毫秒级。因此,精确的时间同步方法已经成为工业控制网络中必不可少的关键要素。
[0003]众所周知,现场设备主要依赖于串行的异步通信,没有同步定时上的要求。但近年来随着总线通信技术的不断发展与大量实时任务的迫切需求,即时没有配置内部时钟的现场设备也需要与服务器进行同步,这对时间同步精度提出了新的要求。为了解决这个问题,ITU-U、IETF、MEF等组织设立了相关的标准,如ΝΤΡ、IEEE1588、IEEE802.1等,这些标准都以传输时间戳的方式来实现设备之间的同步。
[0004]但在高实时的工业现场,现有的通信方式以及设备内的系统架构已不能满足其对时间精度的要求。因此,本发明提出了一种基于数控系统的时间同步控制模型,该模型在双环总线结构的基础上,设计高精度的时钟同步功能模块,以满足设备间通信对实时性的要求。

【发明内容】

[0005]为了克服现有的时间同步方法在设备内受协议栈延迟及控制系统架构制约而存在实时性的不足,本发明提供一种面向数控机床的基于双环总线的时间同步控制方法,可以通过单周期的同步消息传输降低设备间通信延迟,提高数控系统内时间同步方法的运行效率,保证数控系统运行的稳定性。
[0006]本发明解决其技术问题所采用的技术方案如下:
[0007]一种基于双环总线的时间同步方法,包括以下步骤:
[0008]主/从设备初始化:从设备的本地时钟单元计时器清零,清除其中存储的时间数据;主设备的本地时钟单元清空内部的偏移量数组和延迟量数组;
[0009]主设备通过双环总线发送同步消息时将发送时间生成时间戳,将其封装到同步消息中,通过主设备的两个端口发送至相邻从设备;
[0010]从设备i将在一个环路中接收到同步消息的时刻ti生成时间戳,并存储到本地时钟单元;该从设备发送同步消息时将发送时间t/生成时间戳其封装到该同步消息中,发送至下一个从设备i+1,从设备i+1将接收到该同步消息时刻ti+1所生成的时间戳保存;
[0011]同时,在另一个环路中,从设备i+1将发送另一个同步消息到从设备i的发送时间Si+1’生成时间戳,将其和ti+1的时间戳通过该同步消息发送至从设备i ;从设备i将接收到该同步消息时刻Si所生成的时间戳保存;
[0012]从设备i通过ti+1,V,si+1,,Si四个时间戳计算出从设备i和从设备i+1间的时钟偏移量Irffsrt和通信延迟Tdelay ;从设备i的本地时钟单元根据时钟偏移量Irffset和通信延迟Tdelay修正本地时钟,完成双环总线主/从设备的时间同步。
[0013]所述同步消息包括报头和报体;其中报头包括:协议类型、消息类型、消息长度、设备总数、标志域、源端口号、序列号;报体包括设备生成的时间戳。
[0014]所述计算从设备i和从设备i+Ι间的时钟偏移量Irffset和通信延迟Tdelay通过以下公式得到
[0015]Toffdet = ((ti+1-ti' ) +(S1-Si+/ ))/2
[0016]Tdelay =!!-(S1-Si+/ ))/2
[0017]本发明具有以下有益效果及优点:
[0018]1.实时性高。在本发明中,数据传输的线路是环形通路,同步消息可以同时发送到传输线路中,并且同步都在一个通信周期内完成,有效地提高了实时性。
[0019]2.同步效率高。在本发明中,在原有数控系统的基础上针对时间同步过程进行专门模块设计和功能划分的方法,将原有的集中处理方式独立出来,对同步流程加以分析并有效控制,通过合理的逻辑分层,实现各模块之间的功能联动,来最大限度地减小同步过程的时间开销。
[0020]3.采用时钟偏移量和通信延迟计算方法能够在单个通信周期内获得从设备间通信的收发时间戳,从而快速计算出修正设备时钟所需的偏移量与通信延迟。
【专利附图】

【附图说明】
[0021]图1为本发明的同步功能模型抽象层次结构图;
[0022]图2为从设备中时钟控制模型功能原理结构;
[0023]图3为主设备时钟控制模型功能原理结构;
[0024]图4为双环总线传输结构图;
[0025]图5为同步消息报头结构图;
[0026]图6为从设备时钟控制模型中各模块同步消息处理过程;
[0027]图7为主设备时钟控制模型中各模块同步消息处理过程;
[0028]图8为时钟偏移量与通信延迟计算方法图。
【具体实施方式】
[0029]下面结合附图及实施例对本发明做进一步的详细说明。
[0030]本发明所采用的技术方案如下:
[0031]基于双环总线的时间同步模型是指在原有数控系统的基础上针对时间同步过程进行专门模块设计和功能划分的方法,将原有的集中处理方式独立出来,对同步流程加以分析并有效控制,通过合理的逻辑分层,实现各模块之间的功能联动,来最大限度地减小同步过程的时间开销。
[0032]如图1所示,根据深入程度的不同,由现场设备抽象出的时钟功能模型可以划分为三层结构:网络层,接口层和控制层。接口层与网络层之间的通信主要依靠三个数据接口:消息接口,时间戳接口和时钟调节接口。同步消息通过时间戳接口记录收发时的时间信息并通过消息接口发送出去,接受同步消息时,相关的时间信息也是通过时间戳接口读取。时间同步模块负责处理通过接口读取的时间戳信息并计算出与本地时钟之间的偏移量与延迟。控制网络中的从设备会在主设备发送的同步消息中读取到时钟调节信息并通过时钟调节接口与本地时钟连线。上述单元都是软件实现,在硬件设备的支持下,对时钟信息的操作将会更加精确。
[0033]设备内部的时钟单元主要分为两个部分:计时器与时钟调节模块。计时器用于记录通信过程中的相关时间开销,而调节模块则通过同步算法周期性地修正本地时钟与时钟源的误差。这两部分也是保证设备间一致性的关键所在。
[0034]而根据同步过程中的功能定位,主设备中的主时钟控制模型与从设备中的从时钟控制模型也有着功能上的差异。主时钟模型是现场的标准时间来源,通过收发同步消息维护控制系统内的时钟状态。从时钟控制模型负责处理主设备发送的同步信息并对从设备的时钟做相关修正。
[0035]如图2所示,在从设备的时钟控制模型中,最为关键的功能模块是本地时钟单元。它维护着本地时钟的正常走时,并利用校准程序对本地时钟作偏离量上的修正,而偏移量则通过同步消息中的时钟信息计算得到。本地时钟单元里同时储存着进行同步所需的时间数据,以及时钟状态和对应属性的描述文件。时钟同步模块主要用于处理前段接口传送过来的同步消息,包括对报文的解析,偏移量和通信延迟的计算以及同步算法的调用。时间数据读写模块负责从本地时钟读取时间数据并进行按约定格式进行封装从而生成时间戳文件。时间戳处理模块将带有时间戳的报文与数据封装为用于网络传输的消息格式,并对从其他设备接收到的消息进行相应的解封。处于时钟控制模型上层的是通用接口模块,其中包含了功能消息接口与同步消息接口。这两个接口共用一个网络端口,但在逻辑上有着不同的功能划分。功能消息接口负责处理功能性的网络消息如数据报文、控制命令等,并将数据信息直接送往设备中对应的功能模块。而同步消息接口对应于特殊格式的同步报文,被时间同步模块所调用。
[0036]如图3所示,与从设备中的时钟控制模块相比,主设备时钟控制模型少了同步模块,增加了时钟单元里的从设备偏移量数组,用于实时更新系统所属设备的同步情况。作为时钟源,主设备的时钟控制模型不用参与从设备之间的同步,取而代之的是独立出来的主时钟同步算法与反馈重传机制,用于修正同步过程中的丢包与误差。同时,主设备时钟单元里有预设的同步周期,当一定的通信周期结束后,同步机制便会启动,修正设备间时钟偏移,保证系统内设备间的一致性。
[0037]如果同步消息在传输过程中发生错误或者出现丢包等情况,从设备控制模型中的同步消息接口会在同步消息报文头中的标志域中进行标记,记录出错的设备号,等待主设备进行同步消息重传。当同步消息遍历了系统内所有从设备后,主设备的同步消息会对消息内的标志域进行校验,如果没有错误发生,则同步完成。如果检验到某设备在同步过程中出错,则此次同步失败,重启此次时间同步。
[0038]本发明的同步方法包括以下步骤:
[0039]1.初始化[0040]在图4所示的双环总线中,在设备间的时间同步过程开始前,先对时钟控制模型做初始化。从设备中需要将本地时钟单元中的计时器清零,准备记录同步消息收发过程的时间开销,同时清除时钟单元中存储的上一次同步时的时间数据。主设备中的时钟控制模型还需要清空偏移量数组和延迟量数组,以便存放本次同步时的所计算出的与从设备间的时钟偏移量和通信延迟。
[0041]本地时钟单元存有该设备的时间状态信息,能够记录设备上的事件发生的时间。
[0042]如图5所示,同步消息包括报头和报体,其中报头包括:
[0043]协议类型:约定了用于传输的协议类型。
[0044]消息类型:区分了该消息的种类,是同步消息或者是其他。
[0045]消息长度:确定了该消息所占用的比特数。
[0046]设备总数:包含了一个计数器和约定的现场从设备的总数,用于核对是否所有的设备都收到该消息。
[0047]标志域:记录出现故障的设备号,用于反馈给主设备。
[0048]源端口号:标志发送该消息的端口号从而确认用于传输该消息的环号。
[0049]序列号:记录主设备发送消息的序列数。
[0050]而报体用于存放设备生成的时间戳。
[0051]2.时间同步开始
[0052]如图7所示,在准备发送同步消息到从设备之前,主设备的时钟控制模块从本地时钟中读取本机的时间信息作为时间同步消息的发送时间,将其发送到时间数据读写模块生成对应格式的时间戳。然后在时间戳处理模块中,时间戳被封装到待传输的同步消息中一并传送到通用接口模块中,通用接口模块确认了该消息为同步消息后,通过调用同步消息接口模块将同步消息发送到通信环路中。随后,时钟控制模块进入监听状态,等待同步消息遍历从设备后归来。
[0053]如图6所示,从设备的时钟控制模型对同步消息的处理分为两个阶段:如果从设备是第一次收到主设备发送的同步消息,在本地时钟单元中读取收到该消息时的时间信息通过时间数据读取模块生成对应的接收时间戳,在将该同步消息通过通用接口中的同步消息接口模块发送到下一个设备之前,在本地时钟单元中读取时间信息生成发送时间戳,并且通过时间戳处理模块将接收时间戳和发送时间戳封装到同步消息中;当该设备再次从另一环路收到同步消息时,如果之前已经收到过从某一环路传输来的同步消息,同样地,记录下接收时刻并生成时间戳,此时,需要从本地时钟单元的缓存中读取上一条消息到达时刻的时间戳一并加到该同步消息,然后发送到属于当前环路的下一个从设备。在下一从设备收到该同步消息后,计算两设备间通信延迟与时钟偏移的因子都已满足,于是调用时间同步模块计算出本地时钟与目标时钟的偏移量与通信过程中的延迟量,再将结果发送到时钟校准模块中对本地时钟进行修正。
[0054]下面结合图8对时钟偏移量与通信延迟的计算作进一步说明。
[0055]在环路I中的同步消息传输中,从设备i发送同步消息到从设备i+Ι时的时间戳为t/,同步消息携带此时间戳到达从设备i+Ι,到达时刻的时间戳为ti+1。而在环路2中,另一个同步消息被从设备i+Ι发送到从设备i,发送时刻的时间戳为si+1’,从设备将时间戳ti+1与si+1’同时随同步消息发送到从设备i中,同步消息到达从设备i的时刻的时间戳为Si。此时,从设备有了四个必要的时间戳t/,ti+1,si+1’,Si就能够通过公式
[0056]Toffset = ((ti+1-t/ ) +(S1-Si+/ ))/2
[0057]Tdelay = ((ti+1-t/ )-(S1-SiV ))/2
[0058]计算出从设备i与从设备i+Ι之间的时钟偏移量与通信延迟,从而进行相关修正。
[0059]在此过程中,如果同步消息在传输过程中发生错误或者出现丢包等情况,从设备控制模型中的同步消息接口会在同步消息报文头中的标志域中进行标记,记录出错的设备号,等待主设备进行同步消息重传。
[0060]于此同时,控制模型中的通用接口模块需要对接收到的消息做分类,如果确定是功能消息,则经功能消息处理模块发送到相应的功能模块中。
[0061]3同步结束
[0062]当同步消息遍历了系统内所有从设备后,主设备的同步消息会对消息内的标志域进行校验,如果没有错误发生,则同步完成。如果检验到某设备在同步过程中出错,则此次同步失败,重启此次时间同步。
【权利要求】
1.一种基于双环总线的时间同步方法,其特征在于包括以下步骤: 主/从设备初始化:从设备的本地时钟单元计时器清零,清除其中存储的时间数据;主设备的本地时钟单元清空内部的偏移量数组和延迟量数组; 主设备通过双环总线发送同步消息时将发送时间生成时间戳,将其封装到同步消息中,通过主设备的两个端口发送至相邻从设备; 从设备i将在一个环路中接收到同步消息的时刻ti生成时间戳,并存储到本地时钟单元;该从设备发送同步消息时将发送时间t/生成时间戳其封装到该同步消息中,发送至下一个从设备i+Ι,从设备i+Ι将接收到该同步消息时刻ti+1所生成的时间戳保存; 同时,在另一个环路中,从设备i+Ι将发送另一个同步消息到从设备i的发送时间si+1’生成时间戳,将其和ti+1的时间戳通过该同步消息发送至从设备i ;从设备i将接收到该同步消息时刻Si所生成的时间戳保存; 从设备i通过ti+1,t/,si+1’,Si四个时间戳计算出从设备i和从设备i+Ι间的时钟偏移量Ttjffsrt和通信延迟Tdelay;从设备i的本地时钟单元根据时钟偏移量Irffsrt和通信延迟Tdelay修正本地时钟,完成双环总线主/从设备的时间同步。
2.根据权利要求1所述的一种基于双环总线的时间同步方法,其特征在于: 所述同步消息包括报头和报体;其中报头包括:协议类型、消息类型、消息长度、设备总数、标志域、源端口号、序列号;报体包括设备生成的时间戳。
3.根据权利要求1所述的一种基于双环总线的时间同步方法,其特征在于: 所述计算从设备i和从设备i+ι间的时钟偏移量Irffsrt和通信延迟Tdelay通过以下公式得到
【文档编号】H04J3/06GK103812589SQ201210445774
【公开日】2014年5月21日 申请日期:2012年11月9日 优先权日:2012年11月9日
【发明者】林浒, 杨磊, 刘峰, 郑飂默, 王峰 申请人:中国科学院沈阳计算技术研究所有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1