一种混合网络中的级联式时间同步方法与流程

文档序号:11593908阅读:296来源:国知局
本发明涉及一种混合网络中的级联式时间同步方法,其主要面向自动化工业控制系统,用于同步智能装备、大型自动化系统中各个子设备的时间,使整个系统中所有设备均以统一的时间基准运行。
背景技术
:在大型智能装备或工业自动化系统的设计中,通常各个设备工作的同步性对系统运行的正确性是极为重要的。为了能够使系统中的各个子设备能够按照同样的时钟节拍运行,使各个设备的动作先后顺序具有确定性,同时使测试数据具有可比性,需要对系统中的各个设备进行时间同步。系统的模块化、分层化设计思想大大地增加了系统的可扩展性,但同时给时间同步过程带来了困难。通信过程的时延以及通信的串行性等都会影响同步的精确性。同型通信网中,通信网中的各站点同步可以通过广播带有当前系统时间值的消息来实现,而在异型通信网中,无法采用广播消息的方式进行时间同步。目前涉及时间同步的系统中,通常将需要同步的站点直接挂接在总线上,当总线站点数量有限制,如1553b总线,就只能被迫放弃这种总线形式了,随之不得不放弃的还有1553b总线的高可靠性。技术实现要素:本发明的技术解决问题是:克服现有技术的不足,提出一种混合网络中的级联式时间同步方法,通过解决混合总线网络中父层网络和子层网络站点的时间同步问题,扩展了父层网络可进行时间同步的站点数量。本发明的技术解决方案是:一种混合网络中的级联式时间同步方法,所述混合网络包括父层网络和子层网络,父层网络和子层网络之间内部各站点之间按照其各自独立的方式进行时间同步,所述父层网络和子层网络之间设置共享适配站点,共享适配站点同时采用父层网络时间系统时间与子层网络时间系统时间计时,父层网络中任意站点作为时间同步控制站点,通过共享适配站点与子层网络其他任意站点进行时间同步的方法包括如下步骤:(1)、父层网络的时间同步控制站点向共享适配站点发送时间同步消息,所述时间同步消息包括预估的共享适配站点收到所述时间同步消息时刻的父层时间系统时间tsyn;(2)、共享适配站点收到时间同步消息之后,进行解析得到当前时刻父层时间系统时间tsyn,同时记录时间同步消息收到时刻的本地时间tlocal_syn;(3)、以共享适配站点为子层网络时间同步控制站点,共享适配站点根据自身的子层时间系统时间tlocal,对子层网络中的其他站点进行时间同步;(4)、共享适配站点收到子层网络中的任意其他站点发送的带有子层时间系统时间标记tsub的时间标记消息之后,采用最新得到的父层时间系统时间tsyn,及其相应的时间同步消息收到时刻的本地时间tlocal_syn,将tsub转换为父层网络中的时间值taftersyn,形成父层网络时间标记消息,并将其反馈至父层网络实现混合网络之间的时间同步。所述父层网络为1553b总线网络。所述父层网络的时间同步控制站点为bc时,父层网络的时间同步控制站点向共享适配站点实时发送时间同步消息,共享适配站点预计收到所述时间同步消息时的父层时间系统时间tsyn为时间同步控制站点中记载的当前时刻父层时间系统时间。所述父层网络的时间同步控制站点和共享适配站点均为rt时,父层网络的时间同步控制站点向共享适配站点发送时间同步消息和共享适配站点向父层网络的时间同步控制站点发送父层网络时间同步消息的具体方法为:(1.1)、发送方先将时间同步消息或者父层网络时间同步消息存入相应的发送子地址中;(1.2)、定义网络中每一个rt站点的特定子地址为通信请求子地址,发送方将通信请求消息放于通信请求子地址,所述通信请求消息包括发送数据的rt地址、需要发送消息的发送子地址,发送的字个数,接收数据的rt地址、接收子地址,接收的字个数;(1.3)、bc对网络中的各个rt站点的通信请求子地址进行周期性巡检,当bc在巡检过程中发现任意一个rt站点的请求子地址有新的通信请求消息时,将通信请求消息中发送数据的rt对应的发送子地址相应字个数的需要发送的消息转发至通信请求消息中接收数据的rt对应的接收子地址中。所述共享适配站点预计收到所述时间同步消息时的父层时间系统时间tsyn为未来最近一次bc巡检rt通信请求子地址时刻对应的父层时间系统时间。所述步骤(3)中共享适配站点根据自身的子层时间系统时间tlocal,对子层网络中的其他站点进行时间同步的具体方法为:适配站点作为子层网络中时间同步控制站点在本地串行总线网络计时器开始启动计时的时刻向其他站点广播发送时间同步消息复位帧;然后,共享适配站点在自身的子层时间系统时间tlocal的每个整秒时刻,向子层网络中的站点发送时间同步消息非复位帧,所述时间同步消息非复位帧包括共享适配站点的子层时间系统时间tlocal秒位值,即tlocal舍去毫秒值后的时间值;子层网络站点在收到时间同步消息复位帧后,则将本地子层网络时间清零,子层网络计时器开始计时,收到时间同步消息非复位帧后,设置本地的秒值,使之与共享适配站点的子层网络时间秒值同步,且本地毫秒时间部分清零,本地子层网络计时器从该秒值开始,继续计时,实现网络时间同步。定义将父层网络时间标记转换成子层网络时间标记表达方式的转换操作为tr(t),子层网络时间标记转换成父层网络时间标记表达方式的转换操作为tr-1(t),将tsub转换为父层网络中的时间值taftersyn的具体方法为:taftersyn=tsyn+tr-1(tsub-tlocal_syn)。本发明相对于现有技术的有益效果是:(1)、本发明所述方法通过将时间层次化嵌入的方法来实现混合网络中各站点的时间同步,该方法较好地提高了时间同步系统的可扩展性,还可节省系统总线站点数量,提高时间同步效率;(2)、本发明父层网络与子层网络之间各自建立独立的时间同步系统,任何一个网络时间系统的偏差对另一个网络没有影响,各个局部网络设备可以根据自身功能需要,自适应定义局部计时精度;(3)、本发明将父层网络与子层网络的时间系统,在共享适配站点进行交换时转换成统一的时间计算形式,可以适应于多种计时方式;(4)、本发明在共享适配点收到子层网络时间标记之后,再根据最收到时间进行同步,再将子层网络时间转换为父层网络中的时间值,相对于每收到一次系统时间就进行时间同步的方法而言,大大节约了计算资源,网间交换时间差计算结果为同一网络时间系统的相对值,绝对值较小,可以实现较高的精度;(5)、本发明针对1553b总线,提出了一种在不使用模式命令的情况下,在1553b总线上的任意rt站点实现主动通信的一种方法,避免了采用模式命令的解决方式带来的由于信号干扰产生非法指令导致如rt关闭等严重总线故障。附图说明图1为本发明实施例的网络连接拓扑示意图。具体实施方式以下结合说明书附图和具体实施例对本发明进行详细说明。本发明提供了一种混合网络中的级联式时间同步方法,所述混合网络包括父层网络和子层网络,所述方法采用时间同步局部化的思想,将时间同步过程分为父层网络和子层网络两个局部网络的同步过程,父层网络和子层网络拥有自己的时间同步控制站点,父层网络和子层网络之间内部各站点之间按照其各自独立的方式进行时间同步,所述父层网络和子层网络之间设置共享适配站点,共享适配站点同时采用父层网络时间系统时间与子层网络时间系统时间计时,父层网络中任意站点作为时间同步控制站点,通过共享适配站点与子层网络其他任意站点进行时间同步。子层网络以共享适配站点作为时间同步控制站点负责将子层网络内部的各个站点同步为它的本地时间,将时间同步过程局限在子层网络内部,同时子层网络的时间同步控制站点被挂接到父层网络中,单独进行父层网络系统时间同步,从而父层网络与子层网络形成级联式时间同步方式,子层网络中的时间经过共享适配站点进行转换,从而得到父层网络中的时间值。该方法较好地提高了时间同步系统的可扩展性,同时其父层网络与子层网络时间同步的独立性保证了各个局部网络设备可以根据自身功能需要,自适应定义局部计时精度,同时还可节省系统总线站点数量,提高时间同步效率。上述方法具体包括如下步骤:(1)、父层网络的时间同步控制站点向共享适配站点发送时间同步消息,所述时间同步消息包括预估的共享适配站点预计收到所述时间同步消息时刻的父层时间系统时间tsyn;(2)、共享适配站点收到时间同步消息之后,进行解析得到当前时刻父层时间系统时间tsyn,同时记录时间同步消息收到时刻的本地时间tlocal_syn;(3)、以共享适配站点为子层网络时间同步控制站点,共享适配站点根据自身的子层时间系统时间tlocal,对子层网络中的其他站点进行时间同步;(4)、共享适配站点收到子层网络中的任意其他站点发送的带有子层时间系统时间标记tsub的时间标记消息之后,采用最新得到的父层时间系统时间tsyn,和相应的时间同步消息收到时刻的本地时间tlocal_syn,将tsub转换为父层网络中的时间值taftersyn,形成父层网络时间标记消息,并将反馈至父层网络实现混合网络之间的时间同步。以下以1553b网络作为上层网络,串行总线网络作为下层网络的混合形式网络为例,对本发明进行详细说明。实施例如图1所示,本发明的实施例的站点网络拓扑连接图中,rt1为rtmaster,即作为1553b总线中发起时间同步行为的站点,rt7为共享适配站点,rt7接收rt1的1553b总线同步信息,同时rt7作为uartmaster,作为串行总线网络的控制站点,负责同步串行总线网络。rt7作为一个1553b总线网络站点,可以接收rt1的信息,同时可以接收串行总线网络中的带时间标记的信息,并将其中的时间标记转换为1553b总线网络中的时间值。rt7内部具备两个独立的计时器,一个与1553b总线网络时间同步,另一个与串行总线网络时间同步。实施例中的串行总线选择rs485串行总线。以1553b网络中rt1作为时间同步控制站点,其与串行总线网络中的站点时间同步的方法包括如下步骤:(1)、rt1向rt7发送时间同步消息,所述时间同步消息包括预估的共享适配站点收到所述时间同步消息时刻的父层时间系统时间tsyn。rt1每分钟向1553b站点同步一次,由于1553b总线是典型的时分制命令/响应式多路复用数据总线,各rt站点需通过申请bc为其进行消息服务来完成。所述父层网络的时间同步控制站点rt1为bc时,rt1向rt7直接发送时间同步消息,rt7预计收到所述时间同步消息时的父层时间系统时间tsyn为rt1中记载的当前时刻父层时间系统时间。当所述父层网络的时间同步控制站点rt1和共享适配站点rt7均为rt时,父层网络的时间同步控制站点rt1向共享适配站点rt7发送时间同步消息的具体方法为:(1.1)、rt1先将时间同步消息存入相应的发送子地址中,所述时间同步消息包括预估的rt7收到所述时间同步消息时刻的父层时间系统时间tsyn;;(1.2)、定义网络中每一个rt站点的特定子地址为通信请求子地址(如:子地址30),rt1将称为时间同步请求消息的通信请求消息放于通信请求子地址,所述时间同步请求消息格式如下:字1字2字3发送命令字接收命令字crc校验码其中,发送命令字1定义rt7发送时间同步消息的通信子地址,需要通信的数据字个数,同时将自身地址告知bc,而接收命令字2则定义了接收rt1的地址和子地址以及需要通信的数据字字个数。此两个命令字具体定义格式如下:bit15bit10~bit14bit5~bit9bit0~bit4保留为0发送/接收地址发送/接收子地址数据字个数rt需要发送消息到bc时,接收命令字置零,发送命令字表示发送rt的地址与子地址和所要发送给bc的数据字个数。(1.3)、bc对网络中的各个rt站点的通信请求子地址进行周期性巡检,当bc在巡检过程中发现任意一个rt站点的请求子地址有新的通信请求消息时,将通信请求消息中发送数据的rt对应的发送子地址相应字个数的需要发送的消息转发至通信请求消息中接收数据的rt对应的接收子地址中。rt1还可以通过1553b总线广播消息,对总线上的所有其他站点,包括站点rt7发送时间同步消息,所述时间同步消息定义如下:这样,所述共享适配站点rt7预计收到所述时间同步消息时的父层时间系统时间tsyn为未来最近一次bc巡检rt1通信请求子地址时刻对应的父层时间系统时间。所述rt1发送时间同步消息的间隔应长于bc巡检通信请求子地址的周期的两倍值。整个1553b网络时间同步控制站点rt1周期性向网络中的其余的所有站点发送时间同步消息,而其余站点收到时间同步消息后,对消息中的crc码校验正确后,得到当前时刻父层时间系统时间tsys,将本地父层网络时间变更为时间同步消息中的时间同步控制站点网络时间,使之与时间同步控制站点时间同步,从而实现父层网络时间同步。(2)、1553b总线上的站点rt7,收到父层网络时间同步消息并对消息中的crc码校验正确后,得到当前时刻父层时间系统时间tsyn,并同时记录时间同步消息收到时刻的本地时间tlocal_syn。(3)、以rt7作为子层网络时间同步控制站点,rt7根据自身的子层时间系统时间tlocal,对子层网络中的其他站点进行时间同步。rt7作为串行总线的时间控制站点,通过广播消息对串行总线网络中的其他站点进行时间同步,将串行总线网络的时间统一为与rt7的本地串行总线网络时间同步的时间的具体方法为:rt7作为串行总线网络中时间同步控制站点,在本地串行总线网络计时器开始启动计时的时刻向其他站点广播发送时间同步消息复位帧,然后,在随后运行的每个整秒时刻,向串行总线网络中的站点发送时间同步消息非复位帧,所述时间同步消息非复位帧包括时间同步控制站点在本地串行总线网络计时器的秒位值;串行总线网络站点在收到时间同步消息复位帧后,则将本地串行总线网络时间清零,串行总线网络计时器开始计时,收到时间同步消息非复位帧后,设置本地的秒值,使之与共享适配站点的子层网络时间秒值同步,且本地毫秒时间部分清零,本地串行总线网络计时器从该秒值开始,继续计时,实现网络时间同步。例如:rt7在上电初始化本地硬件完毕后,向串行网络中的站点u1,u2,u3发送一帧时间同步消息复位帧,该时间同步消息复位帧的复位命令标志字段为0xaa,串行网络中的站点u1,u2,u3在收到该消息后,对自身时间清零,并开始计时。随后,rt7根据自身的子层时间系统时间tlocal,每1s时刻向串行网络发送一次时间同步消息非复位帧,时间同步消息复位帧和时间同步消息复位帧消息格式定义如下:串行网络中的站点u1,u2,u3接收到同步消息后,在校核帧序号、校验码无误后,识别帧标志为时间同步帧,则查看复位命令标志是否为0xaa,若是,则认为该帧数据为时间同步消息复位帧,将本地时间清零,等待下一次时间同步信息,若复位命令标志是0x55,则认为该帧数据为时间同步消息非复位帧,根据字节4~字节7设置本地的秒值,且本地毫秒时间部分清零。(4)、rt7收到子层网络中的任意其他站点发送的带有子层时间系统时间标记tuart的时间标记消息之后,采用最新得到的父层时间系统时间tsyn,和相应的时间同步消息收到时刻的本地时间tlocal_syn,将tsub转换为父层网络中的时间值taftersyn,形成父层网络时间标记消息,并将反馈至父层网络实现混合网络之间的时间同步。由于rs485串行总线属于独占型总线,即在某一时刻只能有一个站点发送消息,故u1,u2,u3的消息发送过程由rt7调度完成,实施例中,rt7通过i/o信号来调度u1,u2,u3的信息发送。rt7每50ms通过i/o信号发送一个脉冲来选通一个串行总线站点,u1,u2,u3在检测到串行总线选通信号脉冲时,发送一帧数据到串行总线上。当rt7要发送时间同步消息复位帧和时间同步消息非复位帧时,则优先发送时间同步消息复位帧和时间同步消息非复位帧给其他三个站点,在下一个50ms时刻继续选通需要选通的串行总线站点。由于u1,u2,u3回复给rt7的信息通过rt7选通各个站点实现,因此,回复消息中可以没有接收站点地址标示字段。但若要串行总线中的每个站点均能够互相通信,则回复消息中也应该包含接收站点地址标示字段。当u1,u2,u3所返回的消息带有时间标记时,认为该站点将被rt7同步后的时间作为时间标记,向rt7返回带时间标记tuart的网间时间同步消息,所述网间时间同步消息字段定义为:假设,定义将父层网络时间标记转换成子层网络时间标记表达方式的转换操作为tr(t),子层网络时间标记转换成父层网络时间标记表达方式的转换操作为tr-1(t)。本实施例中,所述1553b总线网络中的时间值用年月日时分秒毫秒计时形式,即表示为{year,month,day,hour,minute,second,millisecond}的结构体,1553b总线网络时间标记用以毫秒单位的时间值表示,串口网络时间以ms为单位表示。定义以年月日时分秒毫秒为表示形式的时间值转换为以毫秒单位的时间值的转换操作为tr(t):tr(t)=(((((t.year×12+t.month)×30+t.day)×24+t.hour)×60+t.minute)×60+t.second)×1000+t.millisecond以毫秒单位的时间值转换成年月日时分秒毫秒为表示形式的时间值的转换操作为tr-1(t)则,tr-1(t)可以表示为:tr-1(t).year=[t/(86400×30×12×1000)],tr-1(t).month=[(t%(86400×30×12×1000))/(86400×30×1000)],tr-1(t).day=[(t%(86400×30×1000))/(86400×1000)],tr-1(t).hour=[(t%(86400×1000))/(3600×1000)],tr-1(t).minute=[(t%(3600×1000))/(60×1000)],tr-1(t).second=[(t%(60×1000))/1000],tr-1(t).millisecond=t%1000。其中,中括弧“[]”表示向下取整运算,百分号“%”表示取余运算。设串行总线网络中的站点返回的网间时间同步消息中的时间为tsub,用以毫秒单位的时间值表示,则将串行总线网络时间转换成1553b总线网络时间taftersyn的方式如下:taftersyn=tsyn+tr-1(tsub-tlocal_syn)tr-1(tsub-tlocal_syn)为网间交换时间差。rt7将所述父层网络时间标记消息反馈至父层网络的通信方式与rt1向rt7发送时间同步消息的方式相同。本发明可以应用于n层架构的不同类型的网络(如第1层网络为以太网、第2层网络为1553b总线网络、第3层为串行总线网络等等),所述n≥2,自顶向下依次为第1~第n层网络,每层网络内部各站点之间时间同步,各层网络之间各站点之间时间相互独立,第i层网络与第i+1层网络之间存在一个共享站点,i≥1,所述共享站点同时具备第i层网络与第i+1层网络两个独立的计时器,所述时间同步方法采用上述级联的方法实现各层网络之间的时间同步,每一级包括相邻两层网络,以上层网络中任意站点作为时间同步控制站点,其与下层网络中的站点时间同步。为了保证时间同步精度,网络层次中的各个站点本地具备计时功能,且计时精度为毫秒级,即各层网络内部时间同步精度为毫秒级。本发明未详细描述内容为本领域技术人员公知技术。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1