CN108900292B - 一种应用于无线传感网的无误差累积的时钟同步系统 - Google Patents

一种应用于无线传感网的无误差累积的时钟同步系统 Download PDF

Info

Publication number
CN108900292B
CN108900292B CN201810429099.5A CN201810429099A CN108900292B CN 108900292 B CN108900292 B CN 108900292B CN 201810429099 A CN201810429099 A CN 201810429099A CN 108900292 B CN108900292 B CN 108900292B
Authority
CN
China
Prior art keywords
time
algorithm
clock
agent device
data packet
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.)
Expired - Fee Related
Application number
CN201810429099.5A
Other languages
English (en)
Other versions
CN108900292A (zh
Inventor
田玉平
淳少恒
王博
陈干
宗思恒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southeast University
Original Assignee
Southeast University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Southeast University filed Critical Southeast University
Priority to CN201810429099.5A priority Critical patent/CN108900292B/zh
Publication of CN108900292A publication Critical patent/CN108900292A/zh
Application granted granted Critical
Publication of CN108900292B publication Critical patent/CN108900292B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0016Arrangements for synchronising receiver with transmitter correction of synchronization errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W56/00Synchronisation arrangements
    • H04W56/001Synchronization between nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明提供了一种应用于无线传感网的无误差累积的时钟同步系统,该系统包括时钟同步算法和智能体设备。智能体设备是时钟同步算法的载体,时钟同步算法运行于智能体设备中。时钟同步算法包括:相对斜率估计算法、斜率补偿算法、相位补偿算法、时延补偿算法、虚拟时钟产生算法;智能体设备包括:数据收发模块、收发时间戳标记模块、内核控制模块、算法计算模块、同步授时模块。本发明很好地压制了传输时延对时钟同步精度的影响,实现了多个智能体设备之间的时钟同步,具有同步精度高、误差不累积、计算量小、设备之间程序耦合度低等优点,采用同步秒脉冲和同步虚拟时间同时输出的方式提供授时服务,使得本套系统实用性很强,应用服务范围更广。

Description

一种应用于无线传感网的无误差累积的时钟同步系统
所属领域
本发明属于时钟同步技术领域,具体涉及一种无线传感网中智能体设备之间的无误差累积的时钟同步系统。
背景技术
无线传感网是一种典型的分布式网络系统,是具有交叉学科性质的军民两用的战略高技术。它广泛应用于国防军事、环境监测、电力系统调度、交通管理和灾害预测等领域,具有巨大的应用潜力和发展空间。对于无线传感网的众多基本功能,如事件时序判断、目标定位、数据融合、网络协同休眠等,都需要在全局公共时钟下完成。公共时钟的同步精度越高,网络的整体性能就越好。所以时钟同步是该类网络的一项基本支撑技术,甚至是众多实际应用与关键技术实施的先决条件。
时钟同步就是通过设计相应的协议和同步算法,对智能体设备的本地时钟进行校准,以使网络中所有设备都拥有一个全局的公共时钟。早在无线传感网出现之前,时钟同步问题就已被广泛研究,其中经典的解决方案有GPS授时法和基于IEEE1588协议的授时法。GPS授时法虽然具有同步精度高,覆盖范围广等优点,但它易受外界环境的影响而导致失锁。当GPS失锁后,同步精度只有毫秒级甚至更差,这显然不能满足无线传感网对时钟同步精度的要求。再就是GPS授时法功耗较高,每个智能体设备都要安装GPS接收器,这不适用于低功耗的无线传感网。还有就是对于一些智能体设备,它需要极强的隐蔽性,当采用GPS法授时时,该智能体设备就容易被暴露,所以GPS授时法的应用受到限制。基于IEEE1588协议的授时法,它对智能体设备的本地时钟的相位有进行补偿,但对本地时钟的斜率没有进行补偿,这使得时钟同步精度差,且同步效果不稳定。再就是该方法虽然补偿了传输时延,但也成倍增加了智能体设备发送数据包的次数,甚至还需要多次应答,增加了智能体设备之间的程序耦合度,使得网络通信效率变得很低。
基于一致性协议的时钟同步技术,由于不依赖既定的拓扑结构,也不依赖根节点或者参考节点,具有鲁棒性好,可扩展性强,节点管理方便等优点,并且一般可达到更高的同步精度,所以一经提出就受到广泛关注。目前,针对无线传感网,一些基于一致性协议的分布式时钟同步技术被陆续提出。Schenato和Fiorentin提出一种ATS(AverageTimeSynch)算法,该算法是一种完全分布式的算法,对网络中的数据丢包和节点故障具有很好的鲁棒性,并且适应通讯拓扑变动和时钟斜率漂移。ATS算法假设通信拓扑连带连通,数据传输没有时延,当满足这一假设时,该算法被证明时钟同步精度以指数的形式收敛(L.Schenato and F.Fiorentin,“Average TimeSynch:a consensus-based protocol forclocksynchronization in wireless sensor networks,”Automatica,vol.47,no.9,pp.1878–1886,2011.)。Liao和Barooah针对无向马尔科夫跳变通信拓扑,给出了一种时钟同步算法。当假设相对测量噪声是对称时,该算法被证明时钟同步精度以均方收敛(C.Liaoand P.Barooah,“Distributed clock skew and offset estimation from relativemeasurements in mobile networks with Markovian switching topology,”Automatica,vol.49,no.10,pp.3015–3022,2013.)。He,Cheng和Shi等提出一种WMTS(Weighted Maximum Time Synchronization)算法,该算法在假设通信拓扑时不变的情况下,对随机通信时延进行压制。理论分析表明,该算法的斜率补偿量的期望有限时间收敛,斜率补偿量渐进均方收敛(J.He,P.Cheng,L.Shi,J.Chen and Y.Sun,“Timesynchronization in WSNs:a maximum-value-based consensus approach,”IEEETransactions onAutomatic Control,vol.59,no.3,pp.660–675,2014.)。在实际工作中,智能体设备的通讯不可避免地伴随着随机有界的时延,并且网络的通信拓扑也是时变的。针对这一情况,Tian,Zong和Cao研究指出,上述提到的所有算法,被证明同步误差要么随时间无限累积,要么误差的均方随时间无限累积(Y.-P.Tian,S.H Zong and Q.Cao,“Structural modeling and convergence analysis of consensus-based timesynchronization algorithms over networks:non-topological conditions,”Automatica,vol.65,no.3,pp.64-75,2016.)。这意味在无限长时间意义下,这些算法不能保证时钟同步误差有界,即使是在短时间内误差累积也会导致同步精度不高。
针对上述算法不能保证时钟同步误差有界这一问题,Tian提出了一种LSTS(LeastSquare Estimation BasedTime Synchronization)算法。该算法通过采用增大时间跨度的方法来压制时延的影响,在有向通信拓扑下,即使存在随机有界的时延,该算法也保证了时钟斜率渐近收敛和时钟同步误差有界收敛(Y.-P.Tian,”LSTS:a new timesynchronization protocol for networks with random communication delays,”Proc.the 54th IEEE Conference on Decision and Control,pp.7404–7409,2015.)。但LSTS算法在对斜率补偿时采用了衰减增益,大幅度增加了算法的计算量,消耗了更多的计算资源。再就是智能体设备需存储不同邻居智能体设备的增益量,消耗了更多的存储资源,这对能量和硬件资源要求较高的无线传感网来说仍是很难承受的,从而限制了算法的应用。
此外,上述ATS,WMTS和LSTS算法未对传输时延进行补偿,这使得相位补偿量随时间无限增大,进而可能导致数据发生溢出,造成整个系统错误。最后,这些技术并没有把时钟同步算法转换成能对底层硬件直接同步授时的方式,使得同步授时过程十分繁琐,实用性不强。
发明内容
发明目的:给无线传感网提供一种无误差累积的时钟同步系统,以克服现有的时钟同步系统的同步精度不高,未对斜率进行补偿,同步精度不稳定,计算量大,相位补偿量发散,智能体设备之间程序耦合度高,数据包传输时延未有效补偿,授时过程繁琐,系统功耗大,实用性差等缺陷。
技术方案:为实现上述目的,本发明提供一种应用于无线传感网的无误差累积的时钟同步系统,包括时钟同步算法和智能体设备,智能体设备是时钟同步算法的载体,时钟同步算法运行于智能体设备中,智能体设备之间通过无线网络连接。
时钟同步算法包括:相对斜率估计算法,根据数据包的时间戳计算智能体设备本地时钟之间的相对斜率量,并对其进行低通滤波处理;斜率补偿算法,计算智能体设备的本地时钟所需的斜率补偿量;相位补偿算法,计算智能体设备的虚拟时钟所需的相位补偿量;时延补偿算法,根据反馈的相位补偿量斜率信息计算时延补偿量;虚拟时钟产生算法,把智能体设备的本地时钟转换成虚拟时钟。智能体设备包括:数据收发模块,该模块是发送和接收数据包的执行机构,智能体设备之间通过这一模块建立通信连接;收发时间戳标记模块,标记数据收发模块发送和接收数据包时所对应的本地时钟;内核控制模块,控制数据收发模块的发送和接收,协同收发时间戳标记模块完成接收时间戳的标记,解析接收的数据包并完成数据的分发、存储和丢包等处理;算法计算模块,在智能体设备的硬件芯片中,编程计算时钟同步算法的各中间变量,这个模块与时钟同步算法对应;同步授时模块,计算和预测每次系统时钟上升沿到来时的虚拟时钟,并根据得到的虚拟时钟产生同步秒脉冲和同步虚拟时间。
进一步地,所述相对斜率估计算法为,智能体设备以伪周期形式广播自己的数据包,以智能体设备j和智能体设备i为例,当智能体设备j接收到邻居智能体设备i发送的数据包后,按照如下公式计算智能体设备j的相对斜率量
Figure BDA0001652940730000031
1)如果
Figure BDA0001652940730000032
及τj(lid)-τj(0id)-gji>0,
Figure BDA0001652940730000033
2)其它情况
Figure BDA0001652940730000034
其中gji及hj是可人为取值的正常量,gji≥Mjiαj(Mji表示智能体设备i发送数据包到智能体设备j的传输时延的上确界,αj表示智能体设备j的本地时钟的斜率),hj>0,l表示智能体设备i所发数据包的序号,τi(li)和τi(0i)分别表示智能体设备i第l次和初次发送数据包时所标记的发送时间戳,τj(lid)和τj(0id)分别表示智能体设备j接收到智能体设备i发送的第l次和初次数据包时所记录的接收时间戳。
为降低测量噪声的影响,当智能体设备j在计算得到相对斜率量
Figure BDA0001652940730000035
之后,按如下公式对其进行低通滤波处理,
Figure BDA0001652940730000036
其中增益ρe为常数,ρe∈(0,1),ηij(l)为相对斜率低通滤波后的量,ηij(0)=1。
进一步地,所述数据包包括:斜率补偿量,相位补偿量和发送时间戳。所述智能体设备一次发送数据包的内容包括:上述三个量,或者从上述三个量中选取一部分量。
进一步地,所述斜率补偿算法为,当智能体设备j对相对斜率量
Figure BDA0001652940730000037
完成低通滤波处理后,按照如下公式计算斜率补偿量
Figure BDA0001652940730000041
Figure BDA0001652940730000042
其中增益ρα为常数,ρα∈(0,1),
Figure BDA0001652940730000043
k为智能体设备j数据更新的次数,k≥l。对于所述智能体设备j,在所述斜率补偿算法,所述相位补偿算法和所述时延补偿算法中,计数器k均一样。
进一步地,所述相位补偿算法为,当智能体设备j接收到智能体设备i发送的数据包后,按照如下公式计算相位补偿量
Figure BDA0001652940730000044
Figure BDA0001652940730000045
其中增益ρβ为常数,
Figure BDA0001652940730000046
Figure BDA0001652940730000047
进一步地,所述时延补偿算法为,智能体设备j根据第k次和(k-1)次的相位补偿量的差值反馈计算时延补偿量Dj(k)。计算公式如下,
Figure BDA0001652940730000048
其中δ是一个正常数,
Figure BDA0001652940730000049
表示无线传感网中斜率补偿量的最大值),Dj(0)=0。
进一步地,所述时延补偿算法还包括如下的变换形式,
Figure BDA00016529407300000410
进一步地,所述时延补偿算法包括,所有根据相位补偿量的斜率信息来反馈计算时延补偿量的算法。
进一步地,所述虚拟时钟产生算法为,智能体设备j以伪周期的形式标记一个时间戳
Figure BDA00016529407300000411
然后读取存储的最新的斜率补偿量
Figure BDA00016529407300000412
和相位补偿量
Figure BDA00016529407300000413
按照如下公式计算虚拟时钟
Figure BDA00016529407300000414
Figure BDA00016529407300000415
其中n表示智能体设备j标记时间戳
Figure BDA00016529407300000416
的次数。
进一步地,序列号更新模块,每次所述智能体设备开机后,都自动读取存储的序列号数据,该数据自动加1,得到新的数值后一方面覆盖原来存储的数据,另一方面被写入到数据包中,每次都随数据包一起发送。
进一步地,所述发送时间戳的标记根据要求发送数据包次数的不同,有两种不同的标记方法,分别为:
1)直接标记,所述数据包发送后,通过检测指示管脚的边沿信号(上升沿或下降沿)来标记发送时间戳。
2)间接标记,先标记一个发送时间戳,然后统计出该时间戳与指示管脚边沿信号之间的时间差,用先标记的时间戳加上这一时间差得到新的时间戳,以新的时间戳作为发送时间戳。
进一步地,所述接收时间戳的标记,采用先标记,后处理的方式完成。先标记是所述收发时间戳标记模块根据指示管脚的边沿信号预先标记一个接收时间戳。后处理是把预先标记的接收时间戳输出到所述内核控制模块,所述内核控制模块对指示管脚的边沿信号和对应的数据包的源地址进行分析,然后再做丢包或者保存等处理。
进一步地,所述内核控制模块可分为发送控制模块和接收控制模块。所述发送控制模块包括:控制数据收发模块完成数据包的发送。所述接收控制模块包括:控制数据收发模块完成数据包的接收;结合所述发送控制模块的状态和对数据包源地址的分析,完成接收时间戳的标记;执行邻居智能体设备开关机检测程序;完成数据分发,存储和丢包等处理。
进一步地,所述邻居智能体设备开关机检测程序为,所述智能体设备首次接收某个邻居所述智能体设备的数据包时,先保存数据包中的序列号和对应的初始收发时间戳。在后续接收数据包时,根据数据包中的序列号与存储的序列号是否相等来判断邻居所述智能体设备是否关机再开机。如果相等,则认为邻居智能体设备没有开机再关机;如果不相等,则认为邻居智能体设备开机再关机,这时智能体设备就会舍去存储的序列号和初始收发时间戳,然后以现在记录的序列号和收发时间戳作为新的序列号和初始收发时间戳被保存,确保系统的正常运行。
进一步地,所述预测计算是,所述智能体设备以虚拟时钟产生算法得到的虚拟时钟为基础,通过加法的形式预测出每次系统时钟上升沿到来时对应的虚拟时钟。
进一步地,所述产生同步秒脉冲是,所述虚拟时钟每记满一固定的数值a后,就产生一次同步秒脉冲。所述产生同步虚拟时间是,每产生一次所述同步秒脉冲之后,就标记一次所述虚拟时钟,用这个虚拟时钟除以数值a,取商的整数部分作为同步虚拟时间。数值a是一个可人为取值的正整数,包括但不限于,a取本地时钟记录1s长度所对应的数值。
进一步地,所述同步授时就是,所述同步秒脉冲通过芯片的一个管脚输出,所述同步虚拟时间在两个同步秒脉冲的中间时间区域,按照用户需要的协议(一般为UART串口协议)输出。用户通过检测同步秒脉冲和接收同步虚拟时间就可完成对时间的获取。
进一步地,所述本地时钟是智能体设备中的晶振驱动的计数器,也就是对晶振的上升沿或者下降沿进行计数,并输出数值。
有益效果:本发明与现有技术相比,提供一种应用于无线传感网的无误差累积的时钟同步系统,通过采用伪周期的形式进行通讯,使得整个系统的数据交换变得十分灵活。采用增大时间跨度的方法来压制传输时延对斜率补偿量的影响,使得各智能体设备的斜率补偿量渐进收敛,同步精度有界收敛。再就是采用常增益的方式,大幅度降低了整个算法的计算量,减少了硬件资源和能量的消耗。通过根据相位补偿量的斜率信息来反馈计算时延补偿量,对传输时延进行了补偿,使得各智能体设备的相位补偿量有界收敛。这从根本上消除了因相位补偿量发散导致的数据溢出这一问题。再就是这种通过斜率信息来反馈补偿时延的方式,并没有额外增加数据包的发送次数,使得智能体设备之间程序耦合度低。补偿的时延也进一步提高了虚拟时钟的同步精度。还有就是,通过把时钟同步算法转换成“同步秒脉冲+同步虚拟时间”的方式来提供授时,使得授时方式十分简单,很方便底层硬件的应用,提高了实用性。
由于提出的时钟同步系统对传输时延能有效压制和补偿,再就是该系统是基于切换网络拓扑结构,这使得系统能有效应对数据丢包,传输延迟等实际突发情况,提高了整个系统的稳定性和实用性。
附图说明
图1是本发明实施例的结构示意图;
图2是本发明实施例的时钟同步算法的计算流程图;
图3是本发明实施例的智能体设备的工作流程图;
图4是本发明实施例的智能体设备的硬件结构示意图;
图5是本发明实施例的产生“连续”的虚拟时钟的电路结构图。
具体实施方式
为使本领域的技术人员能更好地理解本发明的技术方案,下面结合附图和具体实施例对本发明作进一步的详细说明。
图1是本发明实施例的一种应用于无线传感网的无误差累积的时钟同步系统的结构示意图。该系统包括多个智能体设备,智能体设备是时钟同步算法运行的载体,每个设备中都运行相同的时钟同步算法。智能体设备之间通过无线网络进行通信。
本发明实施例中,智能体设备之间是通过无线网络连接的,但并不局限于无线网络这一种方式,也可以是有线网络连接,有线与无线网络混合连接等。
本发明实施例中,系统的通信拓扑为4*4的无向网格图,但并不局限于固定数量的节点和无向网格图这一种拓扑,可以是任意规模的节点组成的任意一致有根图这类拓扑。
首先介绍时钟同步算法,它一共包括相对斜率估计算法,斜率补偿算法,相位补偿算法,时延补偿算法和虚拟时钟产生算法。
在时钟同步的过程中,各智能体设备i(i∈N,
Figure BDA0001652940730000061
是智能体设备编号的集合)以伪周期形式广播自己的数据包,该数据包包括斜率补偿量,相位补偿量和发送时间戳。当邻居智能体设备j接收到这个数据包时,就立刻标记自己的接收时间戳,并存储接收到的数据包,然后按照时钟同步算法产生虚拟时钟。
计算相对斜率量:智能体设备以伪周期形式广播自己的数据包,以智能体设备j和智能体设备i为例,当智能体设备j接收到邻居智能体设备i发送的数据包后,按照如下公式计算智能体设备j的相对斜率量
Figure BDA0001652940730000062
1)如果
Figure BDA0001652940730000063
及τj(lid)-τj(0id)-gji>0,
Figure BDA0001652940730000071
2)其它情况
Figure BDA0001652940730000072
其中gji及hj是可人为取值的正常量,gji≥Mjiαj(Mji表示智能体设备i发送数据包到智能体设备j的传输时延的上确界,αj表示智能体设备j的本地时钟的斜率),hj>0,l表示智能体设备i所发数据包的序号,τi(li)和τi(0i)分别表示智能体设备i第l次和初次发送数据包时所标记的发送时间戳,τj(lid)和τj(0id)分别表示智能体设备j接收到智能体设备i发送的第l次和初次数据包时所记录的接收时间戳。
为降低测量噪声的影响,当智能体设备j在计算得到相对斜率量
Figure BDA0001652940730000073
之后,按如下公式对其进行低通滤波处理,
Figure BDA0001652940730000074
其中增益ρe为常数,ρe∈(0,1),ηij(l)为相对斜率低通滤波后的量,ηij(0)=1。
计算斜率补偿量:当智能体设备j对相对斜率量
Figure BDA0001652940730000075
完成低通滤波处理后,按照如下公式计算斜率补偿量
Figure BDA0001652940730000076
Figure BDA0001652940730000077
其中增益ρα为常数,ρα∈(0,1),
Figure BDA0001652940730000078
k为智能体设备j数据更新的次数,k≥l。对于所述智能体设备j,斜率补偿算法,相位补偿算法和时延补偿算法中,计数器k均一样。
计算相位补偿量:当智能体设备j接收到智能体设备i发送的数据包后,按照如下公式计算相位补偿量
Figure BDA0001652940730000079
Figure BDA00016529407300000710
其中增益ρβ为常数,
Figure BDA00016529407300000711
Figure BDA00016529407300000712
计算时延补偿量:智能体设备j根据第k次和(k-1)次的相位补偿量的差值反馈计算时延补偿量Dj(k)。计算公式如下,
Figure BDA00016529407300000713
其中δ是一个正常数,
Figure BDA00016529407300000714
表示无线传感网中斜率补偿量的最大值),Dj(0)=0。需要说明的是,上式只是计算时延补偿量的一种具体方法,它还有多种变换形式,如
Figure BDA00016529407300000715
但根本思想都是利用相位补偿量的斜率信息来反馈计算时延补偿量。
计算虚拟时钟:智能体设备j以伪周期的形式标记一个时间戳
Figure BDA00016529407300000716
然后读取存储的最新的斜率补偿量
Figure BDA0001652940730000081
和相位补偿量
Figure BDA0001652940730000082
按照如下公式计算虚拟时钟
Figure BDA0001652940730000083
Figure BDA0001652940730000084
其中n表示智能体设备j标记时间戳
Figure BDA0001652940730000085
的次数。
接下来介绍智能体设备。智能体设备每次开机后,都自动更新序列号,更新后的序列号要覆盖原来的数据,并且每次都要随数据包一起发送。这是为了辅助邻居智能体设备检测该设备是否关机再开机。本发明提供的时钟同步算法为压制时延噪声的影响,采用固定初始时间戳的方式来计算相对斜率,所以需要寄存初始时间戳。当一个智能体设备关机后再重新打开,它的初始时间戳就发生了变化,但邻居智能体设备记录的初始时间戳并没有自动更新。这将会导致系统运行错误。为解决这一问题,采用对比序列号的方法来完成设计。
智能体设备主要包括数据收发模块,收发时间戳标记模块,内核控制模块,算法计算模块和同步授时模块。
数据收发模块:该模块受内核模块控制,是发送和接收数据包的执行机构,智能体设备之间通过该模块建立网络连接。
收发时间戳标记模块:该模块根据指示管脚的边沿信号,标记发送和接收数据包时所对应的本地时钟。智能体设备工作在不同功能时,标记时间戳有所不同。当工作在发送功能时,有两种不同的发送时间戳标记方法,分别如下:
1)直接标记法。数据包发送后,通过检测指示管脚的边沿信号(上升沿和下降沿)来标记发送时间戳。
2)间接标记法。先标记一个发送时间戳,然后统计出该时间戳与指示管脚边沿信号之间的时间差,用先标记的时间戳加上这一时间差得到新的时间戳,以新的时间戳作为发送时间戳。
直接标记法在第一次发送数据包时,因发送时间戳没有随数据包一起发送,所以还需要再发送一次发送时间戳,从而组成一份完整的数据包。直接标记法虽然标记精度高,但增加了数据包的发送次数,通信效率有所下降。间接标记法是通过统计的方法提前计算出发送时间戳,从而可使一次就能发送一份完整的数据包。这种方法虽然没有额外增加数据包的发送次数,保证了通信效率,但标记精度有所下降。实际设计时,可以根据应用环境来选择标记方法。
智能体设备标记接收时间戳,也是根据指示管脚的边沿信号来标记的。而发送数据包时,指示管脚同样会产生边沿信号。为防止漏标记,采用先标记,后处理的方式完成。先标记就是只要指示管脚有边沿信号产生,就预先标记一个接收时间戳。后处理是把预先标记的接收时间戳输出到内核控制模块,内核控制模块对该时间戳进行再处理。
内核控制模块:该模块的主要功能有,控制数据包的发送和接收;协同收发时间戳标记模块标记接收时间戳;解析接收的数据包,完成数据的分发、存储和丢包等处理。
内核模块按结构可分为发送控制模块和接收控制模块,这两个模块分别控制数据包的发送和接收,数据收发模块就是这两个模块的执行机构。当发送控制模块检测到伪周期发送命令后,该模块就进入预运行状态,然后判断接收控制模块这时是否正在运行。如果接收控制模块在运行,发送控制模块就等待该模块运行结束后再发送数据包。如果没有运行,发送控制模块就发送数据包。发送数据包就是发送控制模块把数据包输入到数据收发模块,然后启动发送命令。
对于接收控制模块,它由指示管脚的边沿信号触发。当该模块检测到边沿信号后,就判断发送控制模块是否在运行。如果在运行,表明边沿信号是由发送数据包产生的,接收控制模块就返回空闲状态,并释放收发时间戳标记模块输入的接收时间戳。如果没有运行,接收控制模块就读取数据收发模块中缓存的数据包。当读完数据包后,通过数据包中的源地址信息来判断,该数据包是否来自邻居智能体设备。如果是,则保存该数据包和接收时间戳。如果不是,则丢掉这个数据包和接收时间戳。
在把数据包和接收时间戳分发给算法计算模块之前,内核控制模块还要检测邻居智能体设备是否关机再开机。内核模块首次接收某个邻居智能体设备的数据包时,先保存数据包中的序列号和对应的初始收发时间戳。在后续接收数据包时,根据数据包中的序列号与存储的序列号是否相等来判断邻居智能体设备是否关机再开机。如果相等,则认为邻居智能体设备没有开机再关机,这时就把数据包和收发时间戳分发给算法计算模块;如果不相等,则认为邻居智能体设备开机再关机,这时智能体设备就会舍去之前存储的序列号和初始收发时间戳,并以现在记录的序列号和收发时间戳作为新的序列号和初始收发时间戳被保存,然后返回到空闲状态,等待下一次触发。
算法计算模块:该模块就是在智能体设备的硬件芯片中实现时钟同步算法,它的组成结构与同步算法一一对应。每个智能体设备都有一个本地时钟,它由一个系统时钟驱动的加法计数器来完成设计。当算法计算模块接收到内核控制模块分发的数据后,就开始在硬件中按照时钟同步算法的顺序,计算相对斜率量,对相对斜率量做低通滤波处理,计算斜率补偿量,计算相位补偿量,计算时延补偿量和计算虚拟时钟。当产生新的虚拟时钟后就发送给同步授时模块。
同步授时模块:该模块以算法计算模块输入的虚拟时钟为基础,通过加法的形式预测出每次系统时钟上升沿到来时的虚拟时钟,并根据得到的虚拟时钟产生同步秒脉冲和同步虚拟时间。
虚拟时钟产生模块只能得到某些特定时刻的虚拟时钟,要产生同步秒脉冲信号,就要计算出每次系统时钟上升沿到来时的虚拟时钟。由时钟同步算法可知,当系统时钟的上升沿到来时,本地时钟加1,对应的虚拟时钟就要加一个斜率补偿量的值。以算法计算模块输入的虚拟时钟为基础,每次系统时钟上升沿到来时就加最新存储的斜率补偿量,这样就得到了满足要求的虚拟时钟。每次算法计算模块完成计算后,同步授时模块就再以新的虚拟时钟为基础,按照上述的方法继续预测产生虚拟时钟。
产生同步秒脉冲是,虚拟时钟每记满一个固定数值a后(a一般选择本地时钟记录1s所表示的数值),就产生一次同步秒脉冲。产生同步虚拟时间是,每产生一次同步秒脉冲之后,同步授时模块就标记一次虚拟时钟,用这个虚拟时钟除以数值a,取商的整数部分作为同步虚拟时间。在提供授时服务时,同步秒脉冲通过芯片的一个管脚输出,同步虚拟时间在两个同步秒脉冲的中间时间区域,按照用户需要的协议(一般为UART串口协议)输出。用户通过检测同步秒脉冲和接收同步虚拟时间就可完成对时间的获取。这种通过“同步秒脉冲+同步虚拟时间”的方式来提供授时,使得授时协议十分简单,很方便底层硬件的应用,具有实用性强等优点。
图2是本发明实施例提供的时钟同步算法的计算流程图,当智能体设备完成数据包的接收后,就按照图2的时钟同步算法流程计算虚拟时钟。参考图2,该算法包括:
相对斜率估计算法;
低通滤波算法;
斜率补偿算法;
相位补偿算法;
时延补偿算法;
虚拟时钟产生算法。
当斜率补偿量和相位补偿量计算完成后,就覆盖原来保存的数据。虚拟时钟产生算法以伪周期的形式标记本地时钟,然后读取保存的斜率补偿量和相位补偿量计算虚拟时钟,并把得到的虚拟时钟输出到同步授时模块。
图3是本发明实施例的智能体设备的工作流程图,需要说明,图3的左边模块(步骤15对应的程序)与右边模块(步骤14对应的程序)不是选择运行的关系,而是相互独立的。智能移动设备的工作流程具体如下:
步骤1,智能体设备上电启动。
步骤2,初始化智能体设备。初始化包括对一些变量设置初始值,复位存储器等。
步骤3,执行序列号更新程序。每次智能体设备开机初始化之后,就自动读取存储的序列号数据,该数据自动加1,得到新的数值后一方面覆盖原来存储的数据,另一方面被写入到数据包中,每次数据包发送时,都把它一起发送。
步骤4,返回空闲状态。当智能体设备完成初始化之后,再就是不收发数据和不计算时,智能体设备就都返回到空闲状态。
步骤5,判断是否为发送命令。如果是发明命令,则进入步骤6。如果不是发送命令,则返回到步骤4。
步骤6,判断接收数据包线程是否运行。如果接收数据包线程没有运行,则表明智能体设备可以发送数据包,进入步骤8。如果接收数据包线程正在运行,则表明智能体设备暂时不能发送数据包,进入步骤7。
步骤7,等待接收线程结束。
步骤8,使能标记发送时间戳。在发送数据之前,先标记一个发送时间戳。
步骤9,计算新的发送时间戳。读取存储的时间差,在发送数据包之前完成时间戳的计算,并把计算后的时间戳作为发送时间戳。
步骤10,向TXFIFO中装载发送数据包。把发送时间戳,斜率补偿量,相位补偿量写入到射频芯片的TXFIFO中。
步骤11,判断指示管脚是否为高电平。在发送数据包之前,通过判断指示管脚是否为高电平来确定射频芯片的工作状态。如果为高电平,表明射频芯片工作在接收状态,则进入步骤12;如果为低电平,表明射频芯片处于空闲状态,则进入步骤13。
步骤12,清除TXFIFO中装载的数据包。如果智能体设备这时处于接收状态,表明此次发送是无效的,所以要清除TXFIFO中的数据包,终止此次发送,并进入步骤18。
步骤13,启动发送数据包。
步骤14,判断指示管脚是否有边沿信号产生。如果有边沿信号产生,则进入步骤15,如果没有上升沿信号产生,则进入步骤4继续等待。智能体设备不仅在接收数据包时,指示管脚会产生边沿信号,在完成发送数据包后,指示管脚也会产生边沿类信号。所以需要判断产生边沿信号的机理。
步骤15,标记接收时间戳。当有边沿信号产生时,表明可能有数据包接收,也可能没有。为防止漏标记接受时间戳,采用的是先标记,后判断的方法。
步骤16,判断发送线程是否启动。如果已启动,则进入步骤17;如果没有,则进入步骤19。
步骤17,判断是否已经启动TXFIFO中的数据发送。如果是,则进入步骤28,返回空闲状态;如果不是,则进入步骤18。数据包的发送状态分前后两半部分。前半部分是未启动TXFIFO中数据包的发送,后半部分是已启动TXFIFO中数据包的发送。当发送状态处于前半部分时,可以确定指示管脚的边沿信号是由接收数据包产生,并且接收的数据包被缓存到RXFIFO中,但这时智能体设备处于发送状态,不能立即读取RXFIFO中的数据。当发送状态处于后半部分时,可以确定指示管脚的边沿信号是由发送数据包产生。
步骤18,等待发送线程结束。
步骤19,等待数据包接收完成。
步骤20,判断RXFIFO是否发生数据溢出。如果射频芯片的RXFIFO发生数据溢出,则进入步骤21;如果没有溢出,则进入步骤22。
步骤21,执行数据溢出程序。就是把RXFIFO中未溢出的数据读出并保存,已溢出的数据则被清除,然后重新启动射频芯片。
步骤22,读取数据。从RXFIFO中读出数据包并保存。
步骤23,判断数据包是否来邻居智能体设备。如果是,则进入步骤24;如果不是,则丢掉该数据包,并进入步骤28,等待下一次的数据接收。
步骤24,判断序列号是否相等。智能体设备首次接收某个邻居智能体设备的数据包时,除了要保存初始时间戳,还要保存数据包中的序列号。在后续接收数据包时,根据数据包中的序列号与存储的序列号是否相等来判断邻居智能体设备是否关机再开机。如果相等,则认为邻居智能体设备没有关机再开机,进入步骤26;如果不相等,则认为邻居智能体设备关机再开机,进入步骤25。
步骤25,重新存储序列号和时间戳。智能体设备舍去存储的序列号和初始时间戳,然后以现在记录的序列号和时间戳作为新的序列号和初始时间戳被保存。
步骤26,同步算法计算。计算时钟同步算法的各中间变量,完成虚拟时钟的计算。
步骤27,同步授时。以产生的虚拟时钟为基础,预测出每次系统时钟上升沿到来时的虚拟时钟,并用得到的虚拟时钟产生同步秒脉冲和同步虚拟时间,从而完成同步授时。
步骤28,返回。就是返回到步骤4,等待下一次的触发。
具体而言,图4示出了本发明实施例的智能体设备的具体硬件结构。如图4所示,智能体设备由射频芯片和FPGA芯片组成。智能体设备之间通过射频芯片组建无线网络,从而完成数据的通信。射频芯片有点对点和广播两种通信模式。点对点模式就是一个智能体设备发送数据包到预先设定的目标地址的智能体设备,其它地址的智能体设备则不接受该数据包。广播模式就是一个智能体设备发送数据包,这时只要处在该智能体设备发送半径内的其它智能体设备都可以接收数据包,而不用再匹配地址。本实例以广播模式发送数据包。
SPI1收发器与射频芯片一起组成数据收发模块。不管是SPI1收发器还是SPI2收发器,FPGA都是主设备,射频芯片和Flash存储器都是从设备。FPGA在与这两个从设备进行通信时,都是采用SPI总线协议。SPI1收发器在向射频芯片发送数据的时候,是发送一份预先设定好的固定长度的数据包,数据包包括斜率补偿量,相位补偿量和发送时间戳。但在接收数据时,SPI1收发器读取的数据长度不固定,而是随接收数据包长度的变化而变化。这是因为网络中,每个智能体设备都是以伪周期的形式广播数据包,当智能体设备比较多时,它们发送数据的时间段会出现重合,这时就会产生信道竞争,容易引起数据丢失。当数据包有数据丢失后,这个数据包就是一个无效的数据包,所以需要从射频芯片的缓存模块RXFIFO中把这一数据包精确读出并剔除。
智能体设备在发送和接收数据包时,射频芯片的SFD管脚(发送/接收指示管脚)都会产生一个上升沿信号。在具体实施中,发送和接收时间戳的标记会有一些不同。
发送时间戳的标记。有两种不同的发送时间戳标记方法,分别如下:
1)直接标记法。数据包发送后,通过检测SFD管脚的上升沿信号来标记发送时间戳。由于发送时间戳没有随数据包一起发送,所以需要发送两次数据包,才能组成一份完整的数据包。这种方法虽然标记精度高,但增加了发送次数,通信效率有所下降。
2)间接标记法。在发送数据包之前先标记一个发送时间戳,在发送数据包时根据SFD管脚的上升沿再标记一个时间戳。通过统计的方法求出这两个时间戳差值的均值,然后把这一均值固化到程序中。接下来在每次发送数据包时,先标记时间戳,然后加上固化的均值,得到新的时间戳,以这个新的时间戳作为发送时间戳。这种方法可以确保一次就发送一份完整的数据包,但标记精度有所降低。
接收时间戳的标记。接收时间戳的标记同样是通过检测SFD管脚的上升沿信号来完成的。当智能体设备发送数据包时,SFD管脚也会产生上升沿信号。为避免漏标记,采用先标记,后处理的方式来完成。先标记就是只要检测到SFD管脚的上升沿信号,就预先标记一个接收时间戳。后处理是在内核控制模块中完成。
内核模块是整个电路的控制核心,主要功能有,协调SPI的发送和接收,以避免时间碰撞;协同收发时间戳标记模块完成时间戳的标记和存储;再就是解析接收的数据包,完成数据的分发、存储和丢包等处理。
内核模块按结构可分为发送控制模块和接收控制模块,这两个模块分别控制数据包的发送和接收,数据收发模块就是这两个模块的执行机构。当发送控制模块检测到伪周期发送命令后,该模块就进入预运行状态,然后判断接收控制模块是否正在运行。如果接收控制模块在运行,发送控制模块就等待该模块运行结束后再发送数据包。如果没有运行,发送控制模块就发送数据包。发送数据包就是发送控制模块把数据包输入到数据收发模块,然后启动发送命令。
对于接收控制模块,它由SFD管脚的上升沿信号触发。当该模块检测到SFD管脚的上升沿信号后,就判断发送控制模块是否在运行。如果在运行,表明上升沿信号是由发送数据包产生的,接收控制模块就返回空闲状态,并释放收发时间戳标记模块输入的接收时间戳。如果没有运行,接收控制模块就读取数据收发模块中缓存的数据包。当读完数据包后,通过数据包中的源地址信息来判断,该数据包是否来自邻居智能体设备。如果是,则保存该数据包和接收时间戳。如果不是,则丢掉这个数据包和接收时间戳。
在把数据包和收发时间戳分发给算法计算模块之前,还要检测邻居智能体设备是否关机再开机。Flash存储器就是用来辅助这一功能。时钟同步算法为压制时延噪声的影响,采用固定初始时间戳的方式来计算相对斜率,所以需要寄存初始时间戳。当一个智能体设备关机后再重新打开,它的初始时间戳就发生了变化,但邻居智能体设备记录的初始时间戳并没有自动更新。为解决这一问题,首先是在Flash存储器中开辟一个序列号数据存储区。智能体设备每次开机后,都自动读取该区域的数值,然后加1。得到新的数值后一方面覆盖该区域中原来存储的数据,另一方面被写入到数据包中的序列号区域,每次都随数据包一起发送。邻居智能体设备在第一次接收数据包时,就寄存收发时间戳和数据包中的序列号。在后续接收数据中,如果数据包中的序列号与最开始寄存的值相等,邻居智能体设备则认为对方没有关机再开机。如果不相等,邻居智能体设备则认为对方已经关机再开机了。这时邻居智能体设备就舍去存储的序列号和收发时间戳,并以现在记录的时间戳和序列号作为新的收发时间戳和序列号,然后返回到空闲状态,等待下一次触发。这种设计在不增加数据包发送次数的前提下,保证了系统的正常运行。
算法计算模块就是在智能体设备的硬件芯片中实现时钟同步算法,它的内部结构与同步算法一一对应。每个智能体设备都有一个本地时钟,它由一个系统时钟驱动的加法计数器来完成设计。当算法计算模块接收到内核控制模块分发的数据后,就开始在硬件中按照时钟同步算法的顺序,计算相对斜率量,对相对斜率量进行低通滤波处理,计算斜率补偿量,计算相位补偿量,计算时延补偿量和计算虚拟时钟。当产生新的虚拟时钟后就发送给同步授时模块。
同步授时模块是以算法计算模块输入的虚拟时钟为基础,通过加法的形式预测出每次系统时钟上升沿到来时的虚拟时钟,并根据得到的虚拟时钟产生同步秒脉冲和同步虚拟时间。
虚拟时钟产生算法模块只能得到某些特定时刻的虚拟时钟,要产生同步秒脉冲信号,就要计算出每次系统时钟上升沿到来时的虚拟时钟。由时钟同步算法可知,当系统时钟的上升沿到来时,本地时钟就加1,对应的虚拟时钟就要加一个斜率补偿量的值。以输入的虚拟时钟为基础,每次系统时钟上升沿到来时就加存储的斜率补偿量,这样就得到了满足要求的虚拟时钟。每次虚拟时钟产生模块完成计算后,同步授时模块就再以新的虚拟时钟为基础,继续产生虚拟时钟。
产生同步秒脉冲是,虚拟时钟每记满一个固定数值a后(a一般选择本地时钟记录1s所表示的数值),就产生一次同步秒脉冲。产生同步虚拟时间是,每产生一次同步秒脉冲之后,同步授时模块就标记一次虚拟时钟,用这个虚拟时钟除以a,取商的整数部分作为同步虚拟时间。在提供授时服务时,同步秒脉冲通过芯片的一个管脚输出,同步虚拟时间在两个同步秒脉冲的中间时间区域,按照用户需要的协议(一般为UART串口协议)输出,用户根据需要,通过检测同步秒脉冲和接收同步虚拟时间来完成对时间的获取。这种通过“同步秒脉冲+同步虚拟时间”的方式来提供授时,使得授时协议十分简单,很方便底层硬件的应用,具有实用性强等优点。
具体而言,图5示出了本发明实施例的产生“连续”的虚拟时钟的电路结构图。这里的“连续”就是产生得到每次系统时钟上升沿到来时的虚拟时钟。同步授时模块根据得到的虚拟时钟就可产生同步秒脉冲和同步虚拟时间。从图5中可以看出,该电路主要由虚拟时钟产生模块和预测模块两部分组成。
由时钟同步算法可知,每次系统时钟的上升沿到来时,本地时钟就加1,对应的虚拟时钟就要加一个斜率补偿量的数值。为方便表述,假设斜率补偿量是一个40bits的浮点数,用drift_cmpen(39:0)表示,其中drift_cmpen(39)表示整数部分,drift_cmpen(38:0)表示小数部分。为在一个系统时钟周期内完成浮点数的加法计算,设计中把斜率补偿量的整数和小数两个部分,分别输出到整数计算模块和小数计算模块,两个计算模块通过进位的方式连接。每次系统时钟的上升沿到来时,各加法器就计算一次,这样就可预测出“连续”的虚拟时钟的数值vir_time_sync。
图5中,MUX是MUX多路复用器,该复用器由控制端CTR选择导通路径。当CTR=0时,data2与data1导通,当CTR=1时,vir_time与data1导通。CTR由虚拟时钟产生模块控制,当完成虚拟时钟的计算后,该模块才把CTR置为高电平,并且只持续一个系统时钟周期。其余的时段,CTR均为0。MUX多路复用器可以看成是一个重新装载器。
当虚拟时钟产生模块通过MUX多路复用器把虚拟时钟装载到预测模块时,这时的虚拟时钟应该是装载时刻的本地时钟对应的虚拟时钟。而虚拟时钟产生模块需要多个系统时钟周期才能完成计算,所以需要先测出标记时刻与装载时刻的时间差,然后把这个差值加到标记时刻中,这样就可得到装载时刻的虚拟时钟。由于预测模块的电路都是采用加法器完成式设计的,所以能预测出每次系统时钟上升沿到来时的虚拟时钟。
值得说明的是,本实施例提供的智能体设备的硬件结构,仅仅是一种示例的实现形式。在不背离本发明的精神和原理的前提下,智能体设备的硬件结构可以有多种实现形式。

Claims (18)

1.一种应用于无线传感网的无误差累积的时钟同步系统,其特征在于:包括时钟同步算法和智能体设备,所述智能体设备是所述时钟同步算法运行的载体,所述时钟同步算法运行于所述智能体设备中;
所述时钟同步算法包括:
相对斜率估计算法,根据数据包的时间戳计算智能体设备本地时钟之间的相对斜率量,并对其进行低通滤波处理;
斜率补偿算法,计算所述智能体设备的本地时钟所需的斜率补偿量;
相位补偿算法,计算所述智能体设备的虚拟时钟所需的相位补偿量;
时延补偿算法,根据反馈的相位补偿量斜率信息计算时延补偿量;
虚拟时钟产生算法,把所述智能体设备的本地时钟转换成虚拟时钟;
所述智能体设备包括:
数据收发模块,该模块是发送和接收数据包的执行机构,所述智能体设备之间通过这一模块建立通信连接;
收发时间戳标记模块,标记所述数据收发模块发送和接收数据包时所对应的本地时钟;
内核控制模块,控制数据收发模块的发送和接收,协同所述收发时间戳标记模块完成接收时间戳的标记,解析接收的数据包并完成数据的处理;
算法计算模块,在所述智能体设备的硬件芯片中,编程计算所述时钟同步算法的各中间变量,这个模块与时钟同步算法对应;
同步授时模块,计算和预测每次系统时钟上升沿到来时的虚拟时钟,并根据得到的虚拟时钟产生同步秒脉冲和同步虚拟时间,以完成同步授时。
2.根据权利要求1所述的一种应用于无线传感网的无误差累积的时钟同步系统,其特征在于:所述时钟同步算法中的相对斜率估计算法具体为:智能体设备以伪周期形式广播自己的数据包,以智能体设备j和智能体设备i为例,当智能体设备j接收到邻居智能体设备i发送的数据包后,按照如下公式计算智能体设备j的相对斜率量
Figure FDA0002419371720000011
1)如果
Figure FDA0002419371720000012
及τj(lid)-τj(0id)-gji>0,
Figure FDA0002419371720000013
2)其它情况
Figure FDA0002419371720000014
其中gji及hj是可人为取值的正常量,gji≥Mjiαj,Mji表示智能体设备i发送数据包到智能体设备j的传输时延的上确界,αj表示智能体设备j的本地时钟的斜率,hj>0,l表示智能体设备i所发数据包的序号,τi(li)和τi(0i)分别表示智能体设备i第l次和初次发送数据包时所标记的发送时间戳,τj(lid)和τj(0id)分别表示智能体设备j接收到智能体设备i发送的第l次和初次数据包时所记录的接收时间戳;
为降低测量噪声的影响,当智能体设备j在计算得到相对斜率量
Figure FDA0002419371720000021
之后,按如下公式对其进行低通滤波处理,
Figure FDA0002419371720000022
其中增益ρe为常数,ρe∈(0,1),ηij(l)为相对斜率低通滤波后的量,ηij(0)=1,
Figure FDA0002419371720000023
为ηij(l)的倒数,
Figure FDA0002419371720000024
Figure FDA0002419371720000025
的倒数。
3.根据权利要求2所述的一种应用于无线传感网的无误差累积的时钟同步系统,其特征在于:所述数据包包括斜率补偿量、相位补偿量和发送时间戳;所述智能体设备一次发送数据包的内容包括上述三个量,或者从上述三个量中选取一部分量。
4.根据权利要求2所述的一种应用于无线传感网的无误差累积的时钟同步系统,其特征在于:所述时钟同步算法中的斜率补偿算法具体为:当智能体设备j对相对斜率量
Figure FDA0002419371720000026
完成低通滤波处理后,按照如下公式计算斜率补偿量
Figure FDA0002419371720000027
Figure FDA0002419371720000028
其中
Figure FDA0002419371720000029
为ηij(l)的倒数,增益ρα为常数,ρα∈(0,1),
Figure FDA00024193717200000210
k为智能体设备j数据更新的次数,k≥l;对于所述智能体设备j,在所述斜率补偿算法、所述相位补偿算法和所述时延补偿算法中,计数器k均一样。
5.根据权利要求1所述的一种应用于无线传感网的无误差累积的时钟同步系统,其特征在于:所述时钟同步算法中的相位补偿算法具体为:当智能体设备j接收到智能体设备i发送的数据包后,按照如下公式计算相位补偿量
Figure FDA00024193717200000211
Figure FDA00024193717200000212
其中增益ρβ为常数,ρβ∈(0,1),
Figure FDA00024193717200000213
Figure FDA00024193717200000214
为智能体设备j第k次的相位补偿量,τi(li)为智能体设备i第l次发送数据包时所标记的发送时间戳,τj(lid)为智能体设备j接收到智能体设备i发送的第l次数据包时所记录的接收时间戳,
Figure FDA00024193717200000215
为智能体设备j第k次的斜率补偿量,Dj(k)为智能体设备j第k次的时延补偿量,
Figure FDA00024193717200000216
Figure FDA00024193717200000217
6.根据权利要求1所述的一种应用于无线传感网的无误差累积的时钟同步系统,其特征在于:所述时钟同步算法中的时延补偿算法具体为:智能体设备j根据第k次和(k-1)次的相位补偿量的差值反馈计算时延补偿量Dj(k),计算公式如下,
Figure FDA00024193717200000218
其中δ是一个正常数,
Figure FDA00024193717200000219
Figure FDA00024193717200000220
表示无线传感网中斜率补偿量的最大值,Dj(0)=0,ρβ是一个常数增益,ρβ∈(0,1),
Figure FDA0002419371720000031
为智能体设备j第k次的相位补偿量,
Figure FDA0002419371720000032
为智能体设备j第(k-1)次的相位补偿量。
7.根据权利要求6所述的一种应用于无线传感网的无误差累积的时钟同步系统,其特征在于:所述时钟同步算法中的时延补偿算法还包括如下的变换形式:
Figure FDA0002419371720000033
8.根据权利要求1、6或7所述的一种应用于无线传感网的无误差累积的时钟同步系统,其特征在于:所述时延补偿算法包括所有根据相位补偿量的斜率信息来反馈计算时延补偿量的算法。
9.根据权利要求1所述的一种应用于无线传感网的无误差累积的时钟同步系统,其特征在于:所述时钟同步算法中的虚拟时钟产生算法具体为:智能体设备j以伪周期的形式标记一个时间戳
Figure FDA0002419371720000034
然后读取存储的最新的斜率补偿量
Figure FDA0002419371720000035
和相位补偿量
Figure FDA0002419371720000036
按照如下公式计算虚拟时钟
Figure FDA0002419371720000037
Figure FDA0002419371720000038
其中n表示智能体设备j标记时间戳
Figure FDA0002419371720000039
的次数。
10.根据权利要求1所述的一种应用于无线传感网的无误差累积的时钟同步系统,其特征在于,所述智能体设备还包括序列号更新模块,序列号更新模块:每次智能体设备开机后,都自动读取存储的序列号数据,该数据自动加1,得到新的数值后一方面覆盖原来存储的数据,另一方面被写入到数据包中,每次都随数据包一起发送。
11.根据权利要求1所述的一种应用于无线传感网的无误差累积的时钟同步系统,其特征在于:所述收发时间戳标记模块中发送时间戳的标记根据要求发送数据包次数的不同,有两种不同的标记方法,分别为:
1)直接标记:所述数据包发送后,通过检测指示管脚的边沿信号来标记发送时间戳,所述边沿为上升沿或下降沿;
2)间接标记:先标记一个发送时间戳,然后统计出该时间戳与指示管脚边沿信号之间的时间差,用先标记的时间戳加上这一时间差得到新的时间戳,以新的时间戳作为发送时间戳。
12.根据权利要求1或11所述的一种应用于无线传感网的无误差累积的时钟同步系统,其特征在于:所述收发时间戳标记模块中接收时间戳的标记,采用先标记,后处理的方式完成,先标记是所述收发时间戳标记模块根据指示管脚的边沿信号预先标记一个接收时间戳,后处理是把预先标记的接收时间戳输出到所述内核控制模块,所述内核控制模块对指示管脚的边沿信号和对应的数据包的源地址进行分析,然后再做处理。
13.根据权利要求1所述的一种应用于无线传感网的无误差累积的时钟同步系统,其特征在于:所述内核控制模块分为发送控制模块和接收控制模块;所述发送控制模块包括:控制数据收发模块完成数据包的发送;所述接收控制模块包括:控制数据收发模块完成数据包的接收;结合所述发送控制模块的状态和对数据包源地址的分析,完成接收时间戳的标记;执行邻居智能体设备开关机检测程序;完成数据处理。
14.根据权利要求13所述的一种应用于无线传感网的无误差累积的时钟同步系统,其特征在于:所述内核控制模块中邻居智能体设备开关机检测程序为:所述智能体设备首次接收某个邻居所述智能体设备的数据包时,先保存数据包中的序列号和对应的初始收发时间戳;在后续接收数据包时,根据数据包中的序列号与存储的序列号是否相等来判断邻居所述智能体设备是否关机再开机;如果相等,则认为邻居智能体设备没有开机再关机;如果不相等,则认为邻居智能体设备开机再关机,这时智能体设备就会舍去存储的序列号和初始收发时间戳,然后以现在记录的序列号和收发时间戳作为新的序列号和初始收发时间戳被保存,确保系统的正常运行。
15.根据权利要求1所述的一种应用于无线传感网的无误差累积的时钟同步系统,其特征在于:所述同步授时模块中预测计算为:所述智能体设备以虚拟时钟产生算法得到的虚拟时钟为基础,通过加法的形式预测出每次系统时钟上升沿到来时对应的虚拟时钟。
16.根据权利要求1或15所述的一种应用于无线传感网的无误差累积的时钟同步系统,其特征在于:所述同步授时模块中产生同步秒脉冲是:所述虚拟时钟每记满一固定的数值a后,就产生一次同步秒脉冲;所述产生同步虚拟时间是,每产生一次所述同步秒脉冲之后,就标记一次所述虚拟时钟,用这个虚拟时钟除以数值a,取商的整数部分作为同步虚拟时间,数值a是一个可人为取值的正整数,a取本地时钟记录1s长度所对应的数值。
17.根据权利要求1所述的一种应用于无线传感网的无误差累积的时钟同步系统,其特征在于:所述同步授时模块中的同步授时为:所述同步秒脉冲通过芯片的一个管脚输出,所述同步虚拟时间在两个同步秒脉冲的中间时间区域,按照用户需要的协议输出,用户通过检测同步秒脉冲和接收同步虚拟时间就可完成对时间的获取。
18.根据权利要求1所述的一种应用于无线传感网的无误差累积的时钟同步系统,其特征在于:所述本地时钟是所述智能体设备中的晶振驱动的计数器,也就是对晶振的上升沿或者下降沿进行计数,并输出数值。
CN201810429099.5A 2018-05-08 2018-05-08 一种应用于无线传感网的无误差累积的时钟同步系统 Expired - Fee Related CN108900292B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810429099.5A CN108900292B (zh) 2018-05-08 2018-05-08 一种应用于无线传感网的无误差累积的时钟同步系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810429099.5A CN108900292B (zh) 2018-05-08 2018-05-08 一种应用于无线传感网的无误差累积的时钟同步系统

Publications (2)

Publication Number Publication Date
CN108900292A CN108900292A (zh) 2018-11-27
CN108900292B true CN108900292B (zh) 2020-06-02

Family

ID=64342616

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810429099.5A Expired - Fee Related CN108900292B (zh) 2018-05-08 2018-05-08 一种应用于无线传感网的无误差累积的时钟同步系统

Country Status (1)

Country Link
CN (1) CN108900292B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109936519B (zh) * 2019-01-18 2021-06-04 重庆邮电大学 基于定时响应的工业无线传感网时钟频率偏移估计方法
CN112486013B (zh) * 2020-11-06 2023-04-14 北京明瑞之光科技有限公司 多节点控制系统及其区域无线授时装置和景观照明系统
CN112600637B (zh) * 2020-12-03 2023-12-05 深圳思凯微电子有限公司 无线广播授时校准方法、设备及计算机可读存储介质
CN113904960B (zh) * 2021-12-06 2022-03-15 上海金仕达软件科技有限公司 测量数据传输延时的方法、装置、系统及存储介质
CN116224867B (zh) * 2022-11-14 2024-03-08 江苏工程职业技术学院 一种多智能体系统的二分包容控制方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104158647A (zh) * 2014-08-26 2014-11-19 太原理工大学 一种无线传感网络时钟同步方法
CN107147464A (zh) * 2017-05-11 2017-09-08 中国矿业大学 一种分布式矿震监测系统的时间同步方法
CN107949047A (zh) * 2018-01-15 2018-04-20 重庆邮电大学 降低网络通信量的无线传感器网络一致性时间同步方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2974821A1 (en) * 2015-01-24 2016-07-28 Circuit Seed, Llc Passive phased injection locked circuit

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104158647A (zh) * 2014-08-26 2014-11-19 太原理工大学 一种无线传感网络时钟同步方法
CN107147464A (zh) * 2017-05-11 2017-09-08 中国矿业大学 一种分布式矿震监测系统的时间同步方法
CN107949047A (zh) * 2018-01-15 2018-04-20 重庆邮电大学 降低网络通信量的无线传感器网络一致性时间同步方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
OCXO时钟修正机制在电法勘探采集中的应用研究;淳少恒等;《中国地球物理学会地球物理技术委员会2015年学术年会——深部探测方法及抗干扰地球物理仪器研发与应用研讨会》;20150720;全文 *
Research on Clock Synchronization Mechanism in Wireless Sensor Networks;Gong Bo;《2009 International Forum on Information Technology and Applications》;20090904;全文 *

Also Published As

Publication number Publication date
CN108900292A (zh) 2018-11-27

Similar Documents

Publication Publication Date Title
CN108900292B (zh) 一种应用于无线传感网的无误差累积的时钟同步系统
CN101977104B (zh) 基于ieee1588精确时钟同步协议系统及其同步方法
US9742514B2 (en) Method, apparatus, and system for generating timestamp
Schenato et al. A distributed consensus protocol for clock synchronization in wireless sensor network
CN102547969B (zh) 一种面向电力系统的高精度无线时钟同步系统
CN101262330B (zh) 一种适用于带状特性无线传感器网络的快速高精度时间同步方法
CN102118849A (zh) 一种适用于无线传感器网络的时间同步方法
CN111416785B (zh) 基于加权中值的一致性时钟同步相对频偏估计方法
CN101252404A (zh) 基于fpga的分布式网络时钟同步系统及方法
WO2015196685A1 (zh) 时钟同步方法及装置
CN102752843B (zh) 一种时间同步方法
CN108668356A (zh) 一种水下传感器时间同步方法
CN103368719A (zh) 基于plc的用电信息采集系统中的对时系统及方法
CN114095109A (zh) 一种时钟同步方法、装置、设备及存储介质
Freris et al. A model-based approach to clock synchronization
CN107508648A (zh) 基于设备功能分类的时间触发以太网分步时间同步策略
Chaudhari et al. Energy-efficient estimation of clock offset for inactive nodes in wireless sensor networks
CN111885725B (zh) 一种远距离tdma移动自组织网络节点同步接入方法及设备
CN107197514B (zh) 无线传感器网络的可认知全局时钟同步方法及在多跳网络中应用的方法
Guo et al. Time synchronization for mobile underwater sensor networks
CN101420281B (zh) 用于在网络要素之间传送日内时间值的方法和装置
CN110545153A (zh) 一种能适应信道环境的水下无线网络时间同步方法
Fedor et al. Cross-layer routing and time synchronisation in wireless sensor networks
CN112040540A (zh) 一种基于三级无线传感网的时间同步架构及时间同步方法
CN107995681B (zh) 一种无线传感网时间同步方法及装置

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200602

CF01 Termination of patent right due to non-payment of annual fee