CN109347588A - 一种基于LoRa的广域分布式系统时钟同步装置和方法 - Google Patents
一种基于LoRa的广域分布式系统时钟同步装置和方法 Download PDFInfo
- Publication number
- CN109347588A CN109347588A CN201811104842.6A CN201811104842A CN109347588A CN 109347588 A CN109347588 A CN 109347588A CN 201811104842 A CN201811104842 A CN 201811104842A CN 109347588 A CN109347588 A CN 109347588A
- Authority
- CN
- China
- Prior art keywords
- clock module
- level
- address
- message
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0644—External master-clock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0682—Clock or time synchronisation in a network by delay compensation, e.g. by compensation of propagation delay or variations thereof, by ranging
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W56/00—Synchronisation arrangements
- H04W56/0055—Synchronisation arrangements determining timing error of reception due to propagation delay
- H04W56/0065—Synchronisation arrangements determining timing error of reception due to propagation delay using measurement of signal travel time
Abstract
一种基于LoRa的广域分布式系统时钟同步装置和方法,同步装置包括主时钟模块和从时钟模块;主时钟模块包括控制器,LoRa PHY模块通过SPI接口连接到控制器,晶振模块通过本地时钟模块连接到控制器,外部MCU通过UART接口连接到控制器;从时钟模块包括控制器,LoRa PHY模块通过SPI接口连接到控制器,晶振模块通过本地时钟模块连接到控制器,外部MCU通过UART接口连接到控制器;主时钟模块的LoRa PHY模块与从时钟模块的LoRa PHY模块通过LoRa通讯。同步方法包括建立路由、计算时延和同步的步骤等。本发明为分布式系统提供了一种经济、高精度、灵活、远距离的时钟同步装置和方法,适用于分布式系统中需要同步仿真、同时触发、同步量测的各类室、内外固定或需移动作业的应用场景。
Description
技术领域
本发明涉及广域无线通信技术领域,特别是一种基于LoRa的广域分布式系统时钟同步装置和方法。
背景技术
广域分布式系统中,实现同步仿真、同步触发和同步量测等功能的前提条件是时钟同步。现阶段分布式系统的对时方式从系统架构上来说主要有以下三种:
第一种为直接对时方式,即各终端之间与GPS卫星或北斗卫星对时。
第二种为有线间接对时方式,即主时钟先与GPS卫星或北斗卫星对时,然后主时钟通过有线方式与各终端对时。其典型代表如IRIG-B码对时、NTP网络服务器对时以及有线以太网1588对时等,该类对时方式广泛应用于电信、电力、军事等重要行业或部门。
第三种为无线间接对时方式,即主时钟先与GPS卫星或北斗卫星对时,然后主时钟通过无线方式与各终端对时。其典型代表如无线以太网1588对时。由于无线以太网时延存在较大的不确实性,对时精度较难保证,该类对时方式在主要存在于科研项目中,并未大面积推广使用。
下表示出了现有对时方式的优势和不足:
发明内容
本发明的目的是提供一种基于LoRa的广域分布式系统时钟同步装置和方法,属于无线间接对时方式的装置和方法。
实现本发明目的的技术方案如下:
一种基于LoRa的广域分布式系统时钟同步装置,包括主时钟模块和一个以上从时钟模块;所述主时钟模块包括控制器,LoRa PHY模块通过SPI接口连接到控制器,晶振模块通过本地时钟模块连接到控制器,外部MCU通过UART接口连接到控制器;所述从时钟模块包括控制器,LoRa PHY模块通过SPI接口连接到控制器,晶振模块通过本地时钟模块连接到控制器,外部MCU通过UART接口连接到控制器;所述主时钟模块的LoRa PHY模块与从时钟模块的LoRa PHY模块通过LoRa通讯。
进一步地,所述主时钟模块还包括GPS和/或北斗卫星授时模块,通过GPS解析模块和/或北斗卫星解析模块连接到控制器。
一种基于LoRa的广域分布式系统时钟同步方法,所述基于LoRa的广域分布式系统包括一个主时钟模块和一个以上从时钟模块,主时钟模块具有所有从时钟模块的地址,与从时钟模块通过报文通讯;
所述报文包括控制域、地址域和时间域:
控制域2字节:bit0为start位、bit1为confirm位、bit2为sync位、bit3为prm位,bit4-bit7为targetLevel位,bit8-bit11为routeLevel位,bit12-bit15保留;
地址域可变长度:地址域中地址的个数与routeLevel的值相等;当routeLevel=1时,Byte0为目的地址;当routeLevel=2时,Byte0为目的地址,Byte1为一级路由地址;以此类推,当routeLevel=15时,Byte0为目的地址,Byte1为一级路由地址,Byte2为二级路由地址,…,Byte14为十四级路由地址;
时间域10字节:Byte0-Byte1为微秒字节、Byte2-Byte3为毫秒字节、Byte4为秒字节、Byte5为分字节、Byte6为时字节、Byte7为日字节、Byte8为月字节、Byte9为年字节;
所述时钟同步方法,包括
步骤一:主时钟模块建立每一个从时钟模块的路由档案,所述路由档案包括从时钟模块的路由层级、路由表和路由标志;
1.1主时钟模块初始化每一个从时钟模块的路由档案,将路由标志设置为0;
1.2建立一级路由,包括
主时钟模块依据路由档案,依次选取一个路由标志为0的从时钟模块的地址为当前从时钟模块,编辑发送一级路由建立报文P11;所述报文P11为,控制域:start=0,confirm=0,sync=0,prm=0,targetLevel=1,routeLevel=1;地址域:Byte0为当前从时钟模块的地址;时间域:全0;
从时钟模块监听到P11,根据targetLevel=routeLevel,判断Byte0与自身地址是否匹配:如否,不作处理;如是,将P11修改为一级路由确认报文P12后发送;所述报文P12修改为,控制域:confirm=1,prm=1,targetLevel=0,其它不变;
主时钟模块监听到报文P12,根据targetLevel=0,修改当前从时钟模块的路由档案:路由层级设置为1,路由表的一级路由地址设置为当前从时钟模块的地址,路由标志设置为1;令当前从时钟模块为一级从时钟模块;
1.3建立二级路由,包括
主时钟模块依据路由档案,依次选取一个路由标志为0的从时钟模块为当前从时钟模块,与每一个一级从时钟模块的一级路由地址进行组合,编辑发送二级路由建立报文P21;所述报文P21为,控制域:start=0,confirm=0,sync=0,prm=0,targetLevel=1,routeLevel=2;地址域:Byte0为当前从时钟模块的地址,Byte1为当前组合的一级从时钟模块的一级路由地址;时间域:全0;
一级从时钟模块监听到P21,根据targetLevel<>routeLevel且routeLevel=2,判断Byte1与自身地址是否匹配:如是,将P21修改为报文P21’后发送;如否,不作处理;所述报文P21’修改为,控制域:targetLevel=2,其它不变;
其它从时钟模块监听到P21’,根据targetLevel=routeLevel,判断Byte0与自身地址是否匹配:如是,将P21’修改为二级路由确认报文P22后发送;如否,不作处理;所述报文P22修改为,控制域:confirm=1,prm=1,targetLevel=1,其它不变;
一级从时钟模块监听到P22,根据targetLevel<>routeLevel且routeLevel=2,判断Byte1与自身地址是否匹配:如是,将P22修改为报文P22’后发送;如否,不作处理;所述报文P22’修改为,控制域:targetLevel=0,其它不变;
主时钟模块监听到报文P22’,根据targetLevel=0,修改当前从时钟模块的路由档案:路由层级设置为2,路由表的一级路由地址设置为当前组合的一级从时钟模块的地址,二级路由地址设置为当前从时钟模块的地址,路由标志设置为1;令当前从时钟模块为二级从时钟模块;
1.4按照步骤1.3的方法类推,直到每一级从时钟模块的路由档案均完成设置;
步骤二:计算时延;
2.1主时钟模块将每一个从时钟模块的同步启动标志设置为0;
2.2一级从时钟模块计算时延,包括
主时钟模块依据路由档案,依次选取一个一级从时钟模块为当前从时钟模块,编辑发送一级同步预启动报文T11;所述报文T11为,控制域:start=1,confirm=0,sync=0,prm=0,targetLevel=1,routeLevel=1;地址域:Byte0为当前从时钟模块的地址;时间域:全0;
从时钟模块监听到T11,根据targetLevel=routeLevel,判断Byte0与自身地址是否匹配:如否,不作处理;如是,将T11修改为一级同步预启动确认报文T12后发送;所述报文T12修改为,控制域:confirm=1,prm=1,targetLevel=0,其它不变;同时启动定时器并记录启动时刻T1;
主时钟模块监听到报文T12,根据targetLevel=0,编辑发送一级同步启动报文T13;所述报文T13为,控制域:start=0,confirm=0,sync=1,prm=0,targetLevel=1,routeLevel=1;地址域:Byte0为当前从时钟模块的地址;时间域:全0;
从时钟模块监听到T13,根据targetLevel=routeLevel,判断Byte0与自身地址是否匹配:如否,不作处理;如是,将T13修改为一级同步启动确认报文T14后发送;所述报文T14修改为,控制域:confirm=1,prm=1,targetLevel=0,其它不变;同时关闭定时器并记录关闭时刻T2;
主时钟模块监听到报文T12,根据targetLevel=0,将当前从时钟模块的同步启动标志设置为1;
当前从时钟模块计算时延Tdelay=(T2-T1)/2;
2.3其它每一级从时钟模块计算时延,包括
按照步骤1.3、1.4的主、从时钟模块通信方法和步骤2.2的从时钟模块计算时延方法,完成其它每一级从时钟模块计算时延;
步骤三:从时钟模块同步;
3.1一级从时钟模块同步,包括
主时钟模块依据路由档案,依次选取一个同步启动标志为1的一级从时钟模块为当前从时钟模块,编辑发送一级同步授时报文S11;所述报文S11为,控制域:start=1,confirm=0,sync=1,prm=0,targetLevel=1,routeLevel=1;地址域:Byte0为当前从时钟模块的地址;时间域:主时钟模块当前时间T0;
从时钟模块监听到S11,根据targetLevel=routeLevel,判断Byte0与自身地址是否匹配:如否,不作处理;如是,提取主时钟模块当前时间T0,以Tn=T0+Tdelay更新本地时钟;
3.2其它每一级从时钟模块同步,包括
按照步骤1.3、1.4的主、从时钟模块通信方法和步骤3.1的从时钟模块同步方法,完成其它每一级从时钟模块同步。
本发明为分布式系统提供了一种经济、高精度、灵活、远距离的时钟同步装置和方法,尤其适用于分布式系统中需要同步仿真、同时触发、同步量测的各类室、内外固定或需移动作业的应用场景。
附图说明
图1是本发明的系统结构图;
图2是主时钟模块的结构图;
图3是从时钟模块的结构图;
图4是主、从时钟模块中继路由结构示意图;
图5是主、从时钟通信报文的信息格式图。
具体实施方式
下面结合附图对本发明的具体实施方式进一步说明。
如图1所示,系统总体架构中,主时钟模块接收GPS/北斗卫星的时钟信号,通过基于LoRa的广域无线局域网,与各终端的从时钟模块时钟同步。
无线时钟同步装置包括主时钟模块和从时钟模块。
图2是主时钟模块的结构图。
主时钟模块主要由控制器、晶振、GPS模块/北斗卫星授时模块(图中未示出)、LoRaPHY模块、电源模块、外部MCU接口以及同步脉冲输出接口组成。
其中,
●电源模块用于给整个主时钟模块供电,其输入为5V,输出为3.3V;
●高精度的晶振模块用于给控制器提供工作时钟;
●GPS模块/北斗卫星授时模块用于获取GPS时间/北斗卫星时间,输出的秒脉冲用于控制器的时钟同步;
●同步脉冲为秒脉冲,用于外部MCU的时钟同步;
●外部MCU接口为UART接口,用于外部MCU与控制器通讯;
●LoRa PHY模块用于主时钟模块与从时钟模块通讯;
●控制器,用于GPS时间解析、LoRa模块控制以及与外部MCU通讯。
图3是从时钟模块的结构图。
从时钟模块主要由控制器、晶振、LoRa PHY模块、电源模块、MCU接口以及同步脉冲输出接口组成。
其中,
●电源模块用于给整个从时钟模块供电,其输入为5V,输出为3.3V;
●高精度的晶振模块用于给控制器提供工作时钟;
●同步脉冲为秒脉冲,用于外部MCU的时钟同步;
●MCU接口为UART接口,用于MCU与控制器通讯;
●LoRa PHY模块用于从时钟模块与主时钟模块通讯;
●控制器,用于LoRa模块控制以及与外部MCU通讯。
通常,在一个基于LoRa的广域无线局域网中,存在多个终端,每个终端都有一个从时钟模块。系统的主时钟模块具有所有从时钟模块的地址,与从时钟模块通过报文通讯。
1)主时钟模块预先知道从时钟模块的地址,但主时钟模块不知道从时钟模块的路由信息(即通过何种通信链路能够访问到从时钟模块,如图4所示)。因此,主时钟模块首先需要建立路由表。
2)用途:路由的方式可以增强覆盖范围。
3)无论主时钟模块还是从时钟模块,在发送完成后,总是长期处于监听状态。
4)假设实际的路由拓扑如图4所示,那么在一级路由时,主时钟模块发送从1建立路由信息的报文,从1和从2都能接收到,因此,需要地址筛选。从1和从2筛选完地址后,从2不处理,从1返回确认报文,主时钟模块收到从1的确认报文后,认为从1已建立路由。而实际上,从2、从3、从4都能收到从1返回的确认报文,因此,从2、从3、从4此时也需要处理这条报文。
5)实际上,无论是从时钟模块还是主时钟模块对收到的报文都需要知道该报文是否是自己应该处理的报文,如果不是,当然不作处理,如果是,则还需要知道,收到的报文需要转发到哪里。
6)那么,为了解决这个问题,本发明在报文格式中,设置了两个字段,名称分别为:targetLevel和routeLevel。routeLevel指主时钟模块当前尝试建立路由的级别,只能主时钟模块填写,targetLevel指主时钟模块或从时钟模块即将发往的路由层级。当targetLevel与routeLevel相等时,表明到达最终目的层级,这时从时钟模块会判断目的地址byte0是否与自己匹配。如果targetLevel与routeLevel不等,从时钟模块收到报文后,会去匹配报文中的第targetLevel个中继地址
7)举例:主时钟模块尝试一级路由,则routeLevel=1。主时钟模块会发往第一级路由,此时targetLevel=1,prm=0,confirm=0,由于routeLevel与targetLevel相等,则从时钟模块会匹配byte0,如果相等,则从时钟模块会返回报文,此时routeLevel=1,targetLevel=0,并且confirm=1,prm=1,表明是上行确认报文。此时,主时钟模块收到了这条报文,判断targetLevel=0,则认为收到确认报文,设置路由标记。
8)举例:主时钟模块尝试二级路由,则routeLevel=2。主时钟模块首先发往第一级路由,此时,targetLevel=1,prm=0,confirm=0,由于routeLevel与targetLevel不相等,则从时钟模块会匹配第targetLevel个地址(即byte1),如果相等,则从时钟模块会转发报文。转发时,从时钟模块会匹配报文prm,如果prm=0,表明下行,则从时钟模块会更改targetLevel=2,并转发。此时,路由层级为2的从时钟模块收到后判断出targetLevel与routeLevel相等,则会匹配byte0,如果相等,则从时钟模块会返回确认报文,且只能返回至路由层级为1的层级,此时,routeLevel=2,targetLevel=1,并且confirm=1,prm=1,表明是上行确认报文。那么,路由层级为1的从时钟模块收到后判断routeLevel与targetLevel不相等,从时钟模块会匹配第targetLevel个地址(即byte1),如果相等,则从时钟模块会转发报文。转发时,从时钟模块会再次匹配报文prm,如果prm=1,表明上行,则从时钟模块会更改targetLevel=0,并转发。此时,主时钟模块收到了这条报文,判断targetLevel=0,则认为收到确认报文,设置路由标记。
报文的格式如图5所示,包括控制域、地址域和时间域,如下:
控制域2字节,bit0为start位(指示同步预启动)、bit1为confirm位(指示确认信息)、bit2为sync位(指示同步启动)、bit3为prm位(指示下行或上行信息),bit4-bit7为targetLevel位(指示目的地址层级),bit8-bit11为routeLevel位(指示路由层级),bit12-bit15保留;
地址域可变长度:地址域中地址的个数与routeLevel的值相等;当routeLevel=1时,Byte0为目的地址;当routeLevel=2时,Byte0为目的地址,Byte1为一级路由地址;以此类推,当routeLevel=15时,Byte0为目的地址,Byte1为一级路由地址,Byte2为二级路由地址,…,Byte14为十四级路由地址;
时间域10字节,其中Byte0-Byte1为微秒字节、Byte2-Byte3为毫秒字节、Byte4为秒字节、Byte5为分字节、Byte6为时字节、Byte7为日字节、Byte8为月字节、Byte9为年字节。
时钟同步方法,包括建立路由档案、计算时延和从时钟模块同步,如下:
步骤一:主时钟模块建立每一个从时钟模块的路由档案,所述路由档案包括从时钟模块的路由层级、路由表和路由标志;
1.1主时钟模块初始化每一个从时钟模块的路由档案,将路由标志设置为0(表示路由层级和路由表未建立);
1.2建立一级路由,包括
主时钟模块依据路由档案,依次选取一个路由标志为0的从时钟模块的地址为当前从时钟模块,编辑发送一级路由建立报文P11;所述报文P11为,控制域:start=0,confirm=0,sync=0,prm=0,targetLevel=1,routeLevel=1;地址域:Byte0为当前从时钟模块的地址;时间域:全0;
从时钟模块监听到P11,根据targetLevel=routeLevel,判断Byte0与自身地址是否匹配:如否,不作处理;如是,将P11修改为一级路由确认报文P12后发送;所述报文P12修改为,控制域:confirm=1,prm=1,targetLevel=0,其它不变;
主时钟模块监听到报文P12,根据targetLevel=0,修改当前从时钟模块的路由档案:路由层级设置为1,路由表的一级路由地址设置为当前从时钟模块的地址,路由标志设置为1(表示路由层级和路由表已建立);令当前从时钟模块为一级从时钟模块。
一级从时钟模块,如图4中的从1和从2,不需要通过中继从时钟模块即可与主时钟模块通信。
1.3建立二级路由,包括
主时钟模块依据路由档案,依次选取一个路由标志为0(即未能建立一级路由的其它从时钟模块,如图4中从3、从4等等)的从时钟模块为当前从时钟模块,与每一个一级从时钟模块的一级路由地址进行组合,编辑发送二级路由建立报文P21;所述报文P21为,控制域:start=0,confirm=0,sync=0,prm=0,targetLevel=1,routeLevel=2;地址域:Byte0为当前从时钟模块的地址,Byte1为当前组合的一级从时钟模块的一级路由地址;时间域:全0;
一级从时钟模块监听到P21,根据targetLevel<>routeLevel且routeLevel=2,判断Byte1与自身地址是否匹配:如是,将P21修改为报文P21’后发送;如否,不作处理;所述报文P21’修改为,控制域:targetLevel=2,其它不变;
其它从时钟模块监听到P21’,根据targetLevel=routeLevel,判断Byte0与自身地址是否匹配:如是,将P21’修改为二级路由确认报文P22后发送;如否,不作处理;所述报文P22修改为,控制域:confirm=1,prm=1,targetLevel=1,其它不变;
一级从时钟模块监听到P22,根据targetLevel<>routeLevel且routeLevel=2,判断Byte1与自身地址是否匹配:如是,将P22修改为报文P22’后发送;如否,不作处理;所述报文P22’修改为,控制域:targetLevel=0,其它不变;
主时钟模块监听到报文P22’,根据targetLevel=0,修改当前从时钟模块的路由档案:路由层级设置为2,路由表的一级路由地址设置为一级从时钟模块的地址,二级路由地址设置为当前从时钟模块的地址,路由标志设置为1;令当前从时钟模块为二级从时钟模块。
二级从时钟模块,如图4中的从3、从4,需要通过从1修改转发报文,才能与主时钟模块通信。
1.4按照步骤1.3的方法类推,直到每一级从时钟模块的路由档案均完成设置。
下一级的从时钟模块,如图4中的从7,则需要依次通过从1、从3转发报文(下行报文),或依次通过从3、从1转发报文(上行报文),才能与主时钟模块通信。建立下一级路由的方法,与前述建立二级路由的方法类似。主时钟编辑发送的报文中,控制域的targetLevel=1,routeLevel根据尝试建立路由的级别填写,地址域根据各级从时钟模块的地址填写。地址域中的那些从时钟模块逐级修改targetLevel后转发报文,直到targetLevel=routeLevel表明报文到达目的层级,之后目标从时钟模块判断目的地址Byte0与自身地址是否匹配,如匹配则发送路由确认报文,经上级从时钟模块逐级转发后到达主时钟模块,主时钟模块建立目标从时钟模块的路由档案。
步骤二:计算时延;
2.1主时钟模块将每一个从时钟模块的同步启动标志设置为0(表示该从时钟模块未完成时延计算);
2.2一级从时钟模块计算时延,包括
主时钟模块依据路由档案,依次选取一个一级从时钟模块为当前从时钟模块,编辑发送一级同步预启动报文T11;所述报文T11为,控制域:start=1,confirm=0,sync=0,prm=0,targetLevel=1,routeLevel=1;地址域:Byte0为当前从时钟模块的地址;时间域:全0;
从时钟模块监听到T11,根据targetLevel=routeLevel,判断Byte0与自身地址是否匹配:如否,不作处理;如是,将T11修改为一级同步预启动确认报文T12后发送;所述报文T12修改为,控制域:confirm=1,prm=1,targetLevel=0,其它不变;同时启动定时器并记录启动时刻T1;
主时钟模块监听到报文T12,根据targetLevel=0,编辑发送一级同步启动报文T13;所述报文T13为,控制域:start=0,confirm=0,sync=1,prm=0,targetLevel=1,routeLevel=1;地址域:Byte0为当前从时钟模块的地址;时间域:全0;
从时钟模块监听到T13,根据targetLevel=routeLevel,判断Byte0与自身地址是否匹配:如否,不作处理;如是,将T13修改为一级同步启动确认报文T14后发送;所述报文T14修改为,控制域:confirm=1,prm=1,targetLevel=0,其它不变;同时关闭定时器并记录关闭时刻T2;
主时钟模块监听到报文T12,根据targetLevel=0,将当前从时钟模块的同步启动标志设置为1(表示该从时钟模块已完成时延计算);
当前从时钟模块计算时延Tdelay=(T2-T1)/2。
2.3其它每一级从时钟模块计算时延,包括
按照步骤1.3、1.4的主、从时钟模块通信方法和步骤2.2的从时钟模块计算时延方法,完成其它每一级从时钟模块计算时延。
每一级从时钟模块在计算时延时,主、从时钟模块发送和接收上、下行报文的通信过程,与前述建立一级路由、建立二级路由和建立更下一级路由的通信过程类似,只是报文的控制域中start位和sync位有所不同。
步骤三:从时钟模块同步;
3.1一级从时钟模块同步,包括
主时钟模块依据路由档案,依次选取一个同步启动标志为1的一级从时钟模块为当前从时钟模块,编辑发送一级同步授时报文S11;所述报文S11为,控制域:start=1,confirm=0,sync=1,prm=0,targetLevel=1,routeLevel=1;地址域:Byte0为当前从时钟模块地址;时间域:主时钟模块当前时间T0;
从时钟模块监听到一级同步授时报文S11,根据targetLevel=routeLevel,判断Byte0与自身地址是否匹配:如否,不作处理;如是,提取主时钟模块当前时间T0,以Tn=T0+Tdelay更新本地时钟。
3.2其它每一级从时钟模块同步,包括
按照步骤1.3、1.4的主、从时钟模块通信方法和步骤3.1的从时钟模块同步方法,完成其它每一级从时钟模块同步。
每一级从时钟模块在完成同步时,从时钟模块接收下行报文的通信过程,与前述建立一级路由、建立二级路由和建立更下一级路由中下行报文的通信过程类似,只是报文的控制域中start=1和sync=1。
主时钟编辑发送的同步授时报文中的当前时间为主时钟模块的本地时间,可以通过中断服务接收GPS时间/北斗卫星时间进行更新。
具体应用时,如需启动一轮全局同步,可以在主时钟模块设置定时器,当定时周期到了之后,触发全局同步开关,完成一轮全局同步。
在某些应用场景,还可以增加手动触发全局同步。手动触发的优先级通常高于定时触发。一旦满足手动触发条件,则关闭定时器后触发全局同步开关,完成一轮全局同步,之后再打开定时器。
本发明与现有技术的差别:
现有分布式系统的时钟同步方法包括GPS同步、B码同步、有线1588同步、有线NTP同步以及无线1588同步等多种方法。
各分布式节点采用GPS同步的方式系统结构简单、同步精度高,但其高度依赖于GPS授时模块,成本较高,在室内环境容易失效,不适合多节点的分布式系统使用。
各分布式节点采用B码、有线1588以及NTP等有线同步的方式技术成熟、对时精度高,但该方式多适用于室内固定场景,不适宜室外移动作业。另外,有线的方式,适用于终端较集中(0~100m)的情况,节点相距较远时,布线工作量大,导致系统结构较复杂,可维护性差。
各分布式节点采用基于WLAN的无线1588的同步方式系统结构简单,灵活性高,对时精度较高,但其存在软件算法复杂、技术相对不成熟、硬件要求极高、稳定性较差以及成本较高等问题,各分布式节点距离为0~300m。
各分布式节点采用基于LoRa的无线时钟同步方式兼具系统结构简单、灵活性高、对时精度高、软件算法简单、稳定性好、成本较低及通信距离远(0~3km)等优点,可有效克服现有技术的不足,为分布式系统中需要同步仿真、同时触发、同步量测的各类室、内外固定或需移动作业的应用场景提供良好的解决方案。
Claims (3)
1.一种基于LoRa的广域分布式系统时钟同步装置,其特征在于,包括主时钟模块和一个以上从时钟模块;所述主时钟模块包括控制器,LoRa PHY模块通过SPI接口连接到控制器,晶振模块通过本地时钟模块连接到控制器,外部MCU通过UART接口连接到控制器;所述从时钟模块包括控制器,LoRa PHY模块通过SPI接口连接到控制器,晶振模块通过本地时钟模块连接到控制器,外部MCU通过UART接口连接到控制器;所述主时钟模块的LoRa PHY模块与从时钟模块的LoRa PHY模块通过LoRa通讯。
2.如权利要求1所述的一种基于LoRa的广域分布式系统无线时钟同步装置,其特征在于,所述主时钟模块还包括GPS和/或北斗卫星授时模块,通过GPS解析模块和/或北斗卫星解析模块连接到控制器。
3.一种基于LoRa的广域分布式系统时钟同步方法,其特征在于,所述基于LoRa的广域分布式系统包括一个主时钟模块和一个以上从时钟模块,主时钟模块具有所有从时钟模块的地址,与从时钟模块通过报文通讯;
所述报文包括控制域、地址域和时间域:
控制域2字节:bit0为start位、bit1为confirm位、bit2为sync位、bit3为prm位,bit4-bit7为targetLevel位,bit8-bit11为routeLevel位,bit12-bit15保留;
地址域可变长度:地址域中地址的个数与routeLevel的值相等;当routeLevel=1时,Byte0为目的地址;当routeLevel=2时,Byte0为目的地址,Byte1为一级路由地址;以此类推,当routeLevel=15时,Byte0为目的地址,Byte1为一级路由地址,Byte2为二级路由地址,…,Byte14为十四级路由地址;
时间域10字节:Byte0-Byte1为微秒字节、Byte2-Byte3为毫秒字节、Byte4为秒字节、Byte5为分字节、Byte6为时字节、Byte7为日字节、Byte8为月字节、Byte9为年字节;
所述时钟同步方法,包括
步骤一:主时钟模块建立每一个从时钟模块的路由档案,所述路由档案包括从时钟模块的路由层级、路由表和路由标志;
1.1主时钟模块初始化每一个从时钟模块的路由档案,将路由标志设置为0;
1.2建立一级路由,包括
主时钟模块依据路由档案,依次选取一个路由标志为0的从时钟模块的地址为当前从时钟模块,编辑发送一级路由建立报文P11;所述报文P11为,控制域:start=0,confirm=0,sync=0,prm=0,targetLevel=1,routeLevel=1;地址域:Byte0为当前从时钟模块的地址;时间域:全0;
从时钟模块监听到P11,根据targetLevel=routeLevel,判断Byte0与自身地址是否匹配:如否,不作处理;如是,将P11修改为一级路由确认报文P12后发送;所述报文P12修改为,控制域:confirm=1,prm=1,targetLevel=0,其它不变;
主时钟模块监听到报文P12,根据targetLevel=0,修改当前从时钟模块的路由档案:路由层级设置为1,路由表的一级路由地址设置为当前从时钟模块的地址,路由标志设置为1;令当前从时钟模块为一级从时钟模块;
1.3建立二级路由,包括
主时钟模块依据路由档案,依次选取一个路由标志为0的从时钟模块为当前从时钟模块,与每一个一级从时钟模块的一级路由地址进行组合,编辑发送二级路由建立报文P21;所述报文P21为,控制域:start=0,confirm=0,sync=0,prm=0,targetLevel=1,routeLevel=2;地址域:Byte0为当前从时钟模块的地址,Byte1为当前组合的一级从时钟模块的一级路由地址;时间域:全0;
一级从时钟模块监听到P21,根据targetLevel<>routeLevel且routeLevel=2,判断Byte1与自身地址是否匹配:如是,将P21修改为报文P21’后发送;如否,不作处理;所述报文P21’修改为,控制域:targetLevel=2,其它不变;
其它从时钟模块监听到P21’,根据targetLevel=routeLevel,判断Byte0与自身地址是否匹配:如是,将P21’修改为二级路由确认报文P22后发送;如否,不作处理;所述报文P22修改为,控制域:confirm=1,prm=1,targetLevel=1,其它不变;
一级从时钟模块监听到P22,根据targetLevel<>routeLevel且routeLevel=2,判断Byte1与自身地址是否匹配:如是,将P22修改为报文P22’后发送;如否,不作处理;所述报文P22’修改为,控制域:targetLevel=0,其它不变;
主时钟模块监听到报文P22’,根据targetLevel=0,修改当前从时钟模块的路由档案:路由层级设置为2,路由表的一级路由地址设置为当前组合的一级从时钟模块的地址,二级路由地址设置为当前从时钟模块的地址,路由标志设置为1;令当前从时钟模块为二级从时钟模块;
1.4按照步骤1.3的方法类推,直到每一级从时钟模块的路由档案均完成设置;
步骤二:计算时延;
2.1主时钟模块将每一个从时钟模块的同步启动标志设置为0;
2.2一级从时钟模块计算时延,包括
主时钟模块依据路由档案,依次选取一个一级从时钟模块为当前从时钟模块,编辑发送一级同步预启动报文T11;所述报文T11为,控制域:start=1,confirm=0,sync=0,prm=0,targetLevel=1,routeLevel=1;地址域:Byte0为当前从时钟模块的地址;时间域:全0;
从时钟模块监听到T11,根据targetLevel=routeLevel,判断Byte0与自身地址是否匹配:如否,不作处理;如是,将T11修改为一级同步预启动确认报文T12后发送;所述报文T12修改为,控制域:confirm=1,prm=1,targetLevel=0,其它不变;同时启动定时器并记录启动时刻T1;
主时钟模块监听到报文T12,根据targetLevel=0,编辑发送一级同步启动报文T13;所述报文T13为,控制域:start=0,confirm=0,sync=1,prm=0,targetLevel=1,routeLevel=1;地址域:Byte0为当前从时钟模块的地址;时间域:全0;
从时钟模块监听到T13,根据targetLevel=routeLevel,判断Byte0与自身地址是否匹配:如否,不作处理;如是,将T13修改为一级同步启动确认报文T14后发送;所述报文T14修改为,控制域:confirm=1,prm=1,targetLevel=0,其它不变;同时关闭定时器并记录关闭时刻T2;
主时钟模块监听到报文T12,根据targetLevel=0,将当前从时钟模块的同步启动标志设置为1;
当前从时钟模块计算时延Tdelay=(T2-T1)/2;
2.3其它每一级从时钟模块计算时延,包括
按照步骤1.3、1.4的主、从时钟模块通信方法和步骤2.2的从时钟模块计算时延方法,完成其它每一级从时钟模块计算时延;
步骤三:从时钟模块同步;
3.1一级从时钟模块同步,包括
主时钟模块依据路由档案,依次选取一个同步启动标志为1的一级从时钟模块为当前从时钟模块,编辑发送一级同步授时报文S11;所述报文S11为,控制域:start=1,confirm=0,sync=1,prm=0,targetLevel=1,routeLevel=1;地址域:Byte0为当前从时钟模块的地址;时间域:主时钟模块当前时间T0;
从时钟模块监听到S11,根据targetLevel=routeLevel,判断Byte0与自身地址是否匹配:如否,不作处理;如是,提取主时钟模块当前时间T0,以Tn=T0+Tdelay更新本地时钟;
3.2其它每一级从时钟模块同步,包括
按照步骤1.3、1.4的主、从时钟模块通信方法和步骤3.1的从时钟模块同步方法,完成其它每一级从时钟模块同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811104842.6A CN109347588B (zh) | 2018-09-21 | 2018-09-21 | 一种基于LoRa的广域分布式系统时钟同步装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811104842.6A CN109347588B (zh) | 2018-09-21 | 2018-09-21 | 一种基于LoRa的广域分布式系统时钟同步装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109347588A true CN109347588A (zh) | 2019-02-15 |
CN109347588B CN109347588B (zh) | 2020-03-10 |
Family
ID=65306020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811104842.6A Active CN109347588B (zh) | 2018-09-21 | 2018-09-21 | 一种基于LoRa的广域分布式系统时钟同步装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109347588B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109874167A (zh) * | 2019-02-26 | 2019-06-11 | 湖北凯佳能源科技集团有限公司 | 一种基于北斗授时的室内广播式时间同步方法 |
CN110673466A (zh) * | 2019-10-18 | 2020-01-10 | 济南启天电子有限公司 | 时间服务器 |
CN112511254A (zh) * | 2020-11-18 | 2021-03-16 | 西安航光卫星测控技术有限公司 | 基于北斗定位授时和lora通信的移动母钟及授时方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2429104A1 (en) * | 2010-09-08 | 2012-03-14 | Freie Universität Berlin | A method for synchronizing frequency between a master clock and a slave clock |
CN104754722A (zh) * | 2013-12-26 | 2015-07-01 | 中国科学院沈阳自动化研究所 | 一种面向层次化异构网络的时间同步方法 |
CN205017341U (zh) * | 2015-10-22 | 2016-02-03 | 贵州电网有限责任公司电力调度控制中心 | 多模式同步对时装置 |
CN105429725A (zh) * | 2015-11-17 | 2016-03-23 | 中南大学 | 一种基于sopc组网的亚微秒级时钟同步方法及系统 |
CN105450384A (zh) * | 2015-12-10 | 2016-03-30 | 中国能源建设集团广东省电力设计研究院有限公司 | 通信系统同步时钟对时装置 |
WO2017198291A1 (en) * | 2016-05-18 | 2017-11-23 | Rwe International Se | Peer-to-peer network and node of a peer-to-peer network |
CN108055099A (zh) * | 2017-11-27 | 2018-05-18 | 北京智芯微电子科技有限公司 | 基于LoRa技术进行电能表对时的方法、存储介质及采集终端 |
-
2018
- 2018-09-21 CN CN201811104842.6A patent/CN109347588B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2429104A1 (en) * | 2010-09-08 | 2012-03-14 | Freie Universität Berlin | A method for synchronizing frequency between a master clock and a slave clock |
CN104754722A (zh) * | 2013-12-26 | 2015-07-01 | 中国科学院沈阳自动化研究所 | 一种面向层次化异构网络的时间同步方法 |
CN205017341U (zh) * | 2015-10-22 | 2016-02-03 | 贵州电网有限责任公司电力调度控制中心 | 多模式同步对时装置 |
CN105429725A (zh) * | 2015-11-17 | 2016-03-23 | 中南大学 | 一种基于sopc组网的亚微秒级时钟同步方法及系统 |
CN105450384A (zh) * | 2015-12-10 | 2016-03-30 | 中国能源建设集团广东省电力设计研究院有限公司 | 通信系统同步时钟对时装置 |
WO2017198291A1 (en) * | 2016-05-18 | 2017-11-23 | Rwe International Se | Peer-to-peer network and node of a peer-to-peer network |
CN108055099A (zh) * | 2017-11-27 | 2018-05-18 | 北京智芯微电子科技有限公司 | 基于LoRa技术进行电能表对时的方法、存储介质及采集终端 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109874167A (zh) * | 2019-02-26 | 2019-06-11 | 湖北凯佳能源科技集团有限公司 | 一种基于北斗授时的室内广播式时间同步方法 |
CN110673466A (zh) * | 2019-10-18 | 2020-01-10 | 济南启天电子有限公司 | 时间服务器 |
CN112511254A (zh) * | 2020-11-18 | 2021-03-16 | 西安航光卫星测控技术有限公司 | 基于北斗定位授时和lora通信的移动母钟及授时方法 |
CN112511254B (zh) * | 2020-11-18 | 2022-09-06 | 西安航光卫星测控技术有限公司 | 基于北斗定位授时和lora通信的移动母钟及授时方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109347588B (zh) | 2020-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109347588A (zh) | 一种基于LoRa的广域分布式系统时钟同步装置和方法 | |
US9929855B2 (en) | Synchronizing clocks in a communications network | |
CN101932092B (zh) | 实现宏基站时钟同步的方法、系统及宏基站设备 | |
CN105634641B (zh) | 基于交换架构可级联网络通信的精确校时系统及方法 | |
CN107835491B (zh) | 一种基于uwb的信号同步方法、室内定位系统 | |
WO2021136049A1 (zh) | 分布式多网元时钟传输系统 | |
CN107453405B (zh) | 一种基于暂态录波故障指示器的故障定位方法及系统 | |
CN101540500B (zh) | 数字化光纤差动保护时钟接力法数据同步方法 | |
CN110798276B (zh) | 一种智能变电站sdn网络的时间同步方法与系统 | |
CN101594673A (zh) | 一种分布式处理1588时间戳的方法及系统 | |
CN108112069B (zh) | 一种tdd-lte设备的同步保持方法及系统 | |
CN108039933A (zh) | 一种局域物联网时间精确同步方法 | |
CN102315985A (zh) | 采用ieee1588协议的智能装置时间同步精度测试方法 | |
CN205193459U (zh) | 一种时间同步装置 | |
CN108692726A (zh) | 一种uwb室内定位方法 | |
CN102573046B (zh) | 可以对带内和带外时间同步接口分别进行时延补偿的移动通信系统及方法 | |
CN104243079A (zh) | 一种实时以太网的微秒级时钟同步方法 | |
CN106371310A (zh) | 基于北斗的交通信号灯统一授时系统装置及工作方法 | |
CN104837284B (zh) | 航空障碍灯的无线同步控制系统及方法 | |
CN110113127B (zh) | 一种基于1588协议传递时间的方法及其系统 | |
CN106100783A (zh) | 一种智能变电站合并单元数据采集的同步方法及装置 | |
CN102892194A (zh) | 一种无线移动同播系统及同步方法和同步设备 | |
CN109474362A (zh) | 就地化保护采样数据自适应同步方法和就地化保护子机 | |
CN110798277A (zh) | 一种基于射频光纤网络的时间同步系统和方法 | |
JP2011035699A (ja) | データ収集システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |