CN1960242A - 实现时钟同步的方法、装置、系统及分布式系统 - Google Patents
实现时钟同步的方法、装置、系统及分布式系统 Download PDFInfo
- Publication number
- CN1960242A CN1960242A CNA2006101409425A CN200610140942A CN1960242A CN 1960242 A CN1960242 A CN 1960242A CN A2006101409425 A CNA2006101409425 A CN A2006101409425A CN 200610140942 A CN200610140942 A CN 200610140942A CN 1960242 A CN1960242 A CN 1960242A
- Authority
- CN
- China
- Prior art keywords
- packet
- clock
- timestamp
- local
- deviation
- 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
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000009826 distribution Methods 0.000 title description 2
- 230000008569 process Effects 0.000 claims abstract description 6
- 230000005540 biological transmission Effects 0.000 claims description 44
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 239000013078 crystal Substances 0.000 claims description 7
- 230000015572 biosynthetic process Effects 0.000 description 15
- 230000001105 regulatory effect Effects 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 230000009931 harmful effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000007115 recruitment Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
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/0685—Clock or time synchronisation in a node; Intranode synchronisation
- H04J3/0697—Synchronisation in a packet node
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明提供一种实现时钟同步的方法,包括:在介质访问控制器与物理层设备收发器之间获取第一数据包的本地发送时间戳和本地接收时间戳;根据所述第一数据包的本地发送时间戳和本地接收时间戳计算时钟计数器之间计数值的偏差;对所述偏差进行校正。本发明还提供一种实现时钟同步的装置、系统及分布式系统。在本发明中,时间戳的获取点在介质访问控制器与物理层设备收发器之间,获取的时间戳可以为后续处理提供更为准确的依据,从而更合适的校正偏差,提高时钟同步的精度。
Description
技术领域
本发明涉及分布式控制技术,尤其涉及时钟同步技术。
背景技术
在工业自动化、运动控制、电力或电信等分布式系统中,实时时钟的同步技术有着广泛的应用。
图1为目前的一种时钟同步系统的结构示意图。如图1所示,CPU12将数据包写入MAC(Media Access Control,介质访问控制)Controller(控制器)13的缓存之后,再命令MAC Controller13发送数据包,MAC Controller13接收到命令后,根据网络中的数据流动情况,选择合适的时间将数据包发送给PHY(Physical Layer Device,物理层设备)Transceiver(收发器)14,PHYTransceiver14完成信号转换后,将数据包发送到网络中。
为了实现精度较高的时钟同步,MAC Controller13接收到CPU12发出的发送命令后,应该立即发出数据包,以保证由MAC Controller13引入的网络传输延迟波动最小,这就进一步要求,MAC Controller13发出数据包时,网络为空闲状态,即,没有其它数据包正在发送,而且网络上的其它节点也不会在一定时间内发出数据包,以免引起碰撞。所以,CPU12需要调度网络通讯以满足上述要求。此外,当MAC Controller13从网络上接收到一个数据包并向CPU12发出中断请求信号时,CPU12必须立即响应,使得由CPU12响应中断请求引入的网络传输延迟波动最小。
另外,在CPU12与MAC Controller13之间获取数据包的发送和接收的时间戳,再使用可调的振荡信号源调节时钟计数器的计数速度,力求达到时钟的同步,即主从时钟计数器的计数速度相同、计数值相等。在此过程中,记录CPU12向MAC Controller13发出发送命令的时刻作为发送时间戳,记录CPU12响应MAC Controller13的中断请求的时刻作为接收时间戳,获取时间戳的目的就是为了计算时钟计数器之间计数值的偏差,所以,时间戳的精准度直接影响计算出的偏差结果,从而间接影响校正的效果。但是,MACController13接收到CPU12发出的命令后,一般会选择在网络合适的状态时将数据包发出,所以,CPU12发出命令的时刻不一定是MAC Controller13发出数据包的时刻,此外,MAC Controller13向CPU12发出中断请求后,CPU12并不一定立即响应,CPU12响应该中断请求的真实时刻与CPU12当前的运行状态有关。因此,在CPU12与MAC Controller13之间获取的时间戳的精准度不高,从而导致这种方法实现的时钟同步的精度无法达到亚微秒级。
因此,目前的时钟同步技术还没有实现高精度的时钟同步。
发明内容
本发明要解决的技术问题在于提供一种实现时钟同步的方法、装置、系统及分布式系统,以提高时钟同步的精度。
为解决上述问题,本发明提供一种实现时钟同步的方法,包括:在介质访问控制器与物理层设备收发器之间获取第一数据包的本地发送时间戳和本地接收时间戳;根据所述第一数据包的本地发送时间戳和本地接收时间戳计算时钟计数器之间计数值的偏差;对所述偏差进行校正。
获取第一数据包的本地发送时间戳和本地接收时间戳的过程由下述步骤实现:接收到第一数据包后,记录所述第一数据包的序号及本地接收时间戳;接收到携带时间戳的第二数据包后,记录所述第二数据包的序号及所述时间戳,如果所述第二数据包的序号与所述第一数据包的序号相同,则所述时间戳即为所述第一数据包的本地发送时间戳。
按照如下公式计算时钟计数器之间计数值的偏差:
Offset=TxSyncTime-RxSyncTime+OneWayDelay,
其中,Offset为时钟计数器之间计数值的偏差,TxSyncTime为所述第一数据包的本地发送时间戳,RxSyncTime为所述第一数据包的本地接收时间戳,OneWayDelay为所述第一数据包的网络传输延迟。
根据所述时间戳对计算时钟计数器之间计数值的偏差之前还包括:发出第三数据包;记录所述第三数据包的序号及本地发送时间戳;接收携带时间戳的第四数据包;记录所述第四数据包的序号及所述时间戳,如果所述第四数据包的序号与所述第三数据包的序号相同,则所述时间戳即为所述第三数据包的本地接收时间戳。
由下述公式计算所述第一数据包的网络传输延迟OneWayDelay:
OneWayDelay=(RxReqTime-TxReqTime)/2-(TxSyncTime-RxSyncTime)/2,
其中,RxReqTime为所述第三数据包的本地接收时间戳,TxReqTime为所述第三数据包的本地发送时间戳。
对连续多次计算出的所述第一数据包的网络传输延迟OneWayDelay求平均值,将所述平均值作为计算Offset所使用的OneWayDelay。
对所述偏差进行校正的过程由下述步骤实现:根据所述偏差计算频率补偿值;调节所述频率补偿值,以使时钟计数器之间计数值的偏差为零。
本发明还提供一种实现时钟同步的装置,包括:接收捕获器,用于在介质访问控制器与物理层设备收发器之间获取第一数据包的本地接收时间戳及与所述本地接收时间戳对应的本地发送时间戳;控制器,用于根据所述第一数据包的本地接收时间戳及对应的本地发送时间戳计算时钟计数器之间计数值的偏差及根据所述偏差计算频率补偿值;频率补偿时钟,用于根据晶振频率及所述频率补偿值,调整计数速度。
所述装置还包括:发送捕获器,用于在介质访问控制器与物理层设备收发器之间获取所述物理层设备收发器发向所述介质访问控制器的数据包的本地发送时间戳。
所述时钟计数器为频率补偿时钟。
本发明还提供一种实现时钟同步的系统,包括:CPU,用于处理数据包;介质访问控制器,用于缓存数据包;物理层设备收发器,用于将数据包进行信号转换;其中,所述介质访问控制器根据所述CPU的命令将所述缓存的数据包发送到所述物理层设备收发器,和/或,将所述缓存的数据包发送到所述CPU;所述系统还包括:时钟同步器,用于在所述介质访问控制器与所述物理层设备收发器之间获取第一数据包的本地接收时间戳及与所述本地接收时间戳对应的本地发送时间戳,根据所述第一数据包的本地接收时间戳及对应的本地发送时间戳计算时钟计数器之间计数值的偏差,以及对所述偏差进行校正。
所述时钟同步器为现场可编程门阵列FPGA。
本发明还提供一种分布式系统,包括至少一个主机及至少一个从机,所述主机及从机分别包括:CPU,用于处理数据包;介质访问控制器,用于缓存数据包;物理层设备收发器,用于将数据包进行信号转换;所述从机还包括:时钟同步器,用于在所述介质访问控制器与所述物理层设备收发器之间获取主机发出的第一数据包的本地接收时间戳及主机发出第一数据包的本地发送时间戳,根据所述第一数据包的本地接收时间戳及本地发送时间戳计算时钟计数器之间计数值的偏差,以及对所述偏差进行校正。
所述主机还包括:时钟同步器,用于监听介质访问控制器与物理层设备收发器之间的所有信号。
与现有技术相比,本发明具有以下优点:
在本发明中,时间戳的获取点在介质访问控制器与物理层设备收发器之间,由于数据包需要依次经过CPU、介质访问控制器及物理层设备收发器才能发送到网络中,一般情况下,介质访问控制器在接到CPU发送命令后不会立即将数据包发出,所以,如果在CPU与介质访问控制器之间获取时间戳,则后续计算出的偏差不是很准,因此,本发明获取的时间戳可以为后续处理提供更为准确的依据,从而更合适的校正偏差,提高时钟同步的精度。
在本发明中,可以使用频率补偿时钟调节频率补偿值,频率补偿时钟是一种硬件实现的高分辨率、高精度的时钟计数器,它的存在使得,即使使用普通的不可调有源或无源晶振作时钟信号源,仍然可以实现时钟的精确调节,由于使用不可调晶振成本较低,所以,使用频率补偿时钟可以降低成本。
在本发明中,对网络传输延迟可以求平均值,以平均值作为计算偏差的数据,降低了网络传输延迟的波动对同步精度的影响。
附图说明
图1为目前的一种时钟同步系统的结构示意图;
图2是本发明方法的一种流程图;
图3是本发明装置的一种结构示意图;
图4为频率补偿时钟的结构示意图;
图5为本发明的时钟同步系统的一种结构示意图。
具体实施方式
下面我们将结合附图,对本发明的最佳实施方案进行详细描述。首先要指出的是,本发明中用到的术语、字词及权利要求的含义不能仅仅限于其字面和普通的含义去理解,还包括进而与本发明的技术相符的含义和概念,这是因为我们作为发明者,要适当地给出术语的定义,以便对我们的发明进行最恰当的描述。因此,本说明和附图中给出的配置,只是本发明的首选实施方案,而不是要列举本发明的所有技术特性。我们要认识到,还有各种各样的可以取代我们方案的同等方案或修改方案。
首先,对本发明提供的方法的整体技术方案进行说明。本发明的方法包括:在介质访问控制器与物理层设备收发器之间获取第一数据包的本地发送时间戳和本地接收时间戳;根据所述第一数据包的本地发送时间戳和本地接收时间戳计算时钟计数器之间计数值的偏差;对所述偏差进行校正。
本发明提供的方法可以应用在分布式系统中,进一步的,应用在分布式系统中的主机和/或从机中的时钟同步系统,时钟同步系统应该包含一个时钟同步装置。
现在对本发明的方法进行详细说明。
图2是实施本发明方法的一种流程图。如图2所示:
步骤S201:主机每隔一定时间发出SYNC(第一数据包),并记录SYNC的序号TxSyncSeq及本地发送时间戳TxSyncTime。
主机每次发出SYNC的时间间隔应该相同,例如,可以固定为1秒,但这个时间间隔允许有±10%的误差。
SYNC以PTP(Precision Time Protocol,精确时间协议)的格式进行封装,作为MAC子层的广播帧或多播帧发出,网络中的所有从机都可以接收到这个帧。
主机发出SYNC时,主机的时钟同步装置会探测到SYNC的发出,并记录SYNC的序号TxSyncSeq及本地发送时间戳TxSyncTime。主机的时钟同步装置对SYNC携带的数据可以忽略。
步骤S202:从机记录所述SYNC的序号RxSyncSeq和本地接收时间戳RxSyncTime。
从机的时钟同步装置探测到SYNC时,只记录所述SYNC的序号RxSyncSeq和本地接收时间戳RxSyncTime,对所述SYNC携带的数据可以忽略。
步骤S203:主机将记录的SYNC的序号TxSyncSeq及本地发送时间戳TxSyncTime封装成FOLLOW UP(第二数据包)发出。
主机发出SYNC后,主机的CPU立即从主机的时钟同步装置中取出SYNC的序号TxSyncSeq及本地发送时间戳TxSyncTime,将TxSyncSeq作为序号,TxSyncTime作为数据,封装成一个新的数据包FOLLOW_UP发出,FOLLOW_UP也是作为MAC子层的广播帧或多播帧发出,网络中的所有从机都可以接收到这个帧。
步骤S204:从机记录FOLLOW_UP的序号RxFollowSeq和携带的数据TxSyncTime,获得TxSyncTime-RxSyncTime时间戳对。
从机接收到FOLLOW_UP后,从机的时钟同步装置不但可以记录FOLLOW_UP的序号RxFollowSeq,还可以获取FOLLOW_UP中携带的数据TxSyncTime,并记录TxSyncTime。从机还可以进一步判断RxSyncSeq和RxFollowSeq是否相同,如果是,则获得了一个TxSyncTime-RxSyncTime时间戳对。
步骤S205:从机向主机发出DELAY_REQ,并记录DELAY_REQ(第三数据包)的序号TxReqSeq和本地发送时间戳TxReqTime。
从机接收到SYNC或FOLLOW_UP时,就获得了主机的物理地址。接收到FOLLOW_UP之后,从机主动向主机发出DELAY_REQ,DELAY_REQ是一个MAC子层的单播帧,只有主机才能收到。从机的时钟同步装置探测到DELAY_REQ的发出,记录DELAY_REQ的序号TxReqSeq和本地发送时间戳TxReqTime。
步骤S206:主机记录DELAY_REQ的源物理地址SlavePhyAddr、序号RxReqSeq和本地接收时间戳RxReqTime。
DELAY_REQ到达主机时,主机的时钟同步装置探测到DELAY_REQ的到来,记录DELAY_REQ的源物理地址SlavePhyAddr、序号RxReqSeq和本地接收时间戳RxReqTime。
由于可能存在多个从机同时向主机发出DELAY_REQ而主机不能迅速处理完所有DELAY_REQ的情况,所以主机可以使用队列来保存SlavePhyAddr、RxReqSeq和RxReqTime,按照FIFO(First-In First-Out,先进先出)原则依序处理所有的DELAY_REQ。主机的时钟同步装置在探测到一个新的数据帧到来时,备份当前队列的写指针,随着数据的不断接收,将接收数据流中对应于DELAY_REQ中的SlavePhyAddr、RxReqSeq和RxReqTime位置的数据存入队列,并将RxReqTime位置的数据替换为主机记录的这个帧的本地接收时间戳。当这个帧接收完毕的同时,主机的时钟同步装置就已经识别出它是否为DELAY_REQ,如果不是,则将队列的写指针恢复为刚开始接收这个帧时备份的那个值,如果是,则不做任何操作。为了防止在意外情况下,主机的CPU对接收帧的解析结果不同于时钟同步装置对同一个接收帧的解析结果,导致上一个同步周期的RxReqTime等信息留在队列中未被读取而造成不良影响,主机的时钟同步装置在每次探测到SYNC发出时,都将队列的读指针设定为当前的写指针的值。
步骤S207:主机将SlavePhyAddr、RxReqSeq、RxReqTime封装成DELAY_RESP(第四数据包)并发送给从机。
主机收到从机发出的DELAY_REQ之后,从时钟同步装置中取出SlavePhyAddr、RxReqSeq、RxReqTime,封装成DELAY_RESP并发出,其中,SlavePhyAddr作为目标物理地址,RxReqSeq作为序号,RxReqTime作为普通数据。
步骤S208:从机记录DELAY_RESP的序号及DELAY_RESP携带的数据RxReqTime,获得一个TxReqTime-RxReqTime时间戳对。
DELAY_RESP到达从机时,从机记录DELAY_RESP的序号RxRespSeq和DELAY_RESP携带的数据RxReqTime,如果TxReqSeq和RxRespSeq相同,则获得了一个TxReqTime-RxReqTime时间戳对。
步骤S209:利用获得的TxSyncTime-RxSyncTime时间戳对及TxReqTime-RxReqTime时间戳对计算SYNC从主机传播到从机时的网络传输延迟。
按如下公式即可计算出网络传输延迟OneWayDelay的值:
OneWayDelay=(RxReqTime-TxReqTime)/2-(TxSyncTime-RxSyncTime)/2,
其中,TxSyncTime-RxSyncTime是获得RxReqTime-TxReqTime之前最近一次获得的时间戳对。
为了减小网络传输延迟的波动对后续计算的影响,可以使用均值滤波的方法,即,对最近多次计算出的OneWayDelay求平均值,这个平均值作为SYNC从主机传播到从机时的网络传输延迟的值。实验表明,将最近16次OneWayDelay求得的平均值作为SYNC从主机传播到从机时的网络传输延迟的值比较理想。
步骤S210:利用获得的TxSyncTime-RxSyncTime时间戳对及SYNC从主机传播到从机时的网络传输延迟的值计算主机时钟计数器与从机时钟计数器之间计数值的偏差。
按如下公式即可计算出从机时钟计数器与主机时钟计数器之间计数值的偏差Offset:
Offset=TxSyncTime-RxSyncTime+OneWayDelay,
其中,当主机时钟比从机时钟快时,Offset大于零,主机时钟比从机时钟慢时,Offset小于零。
步骤S211:根据主机时钟计数器与从机时钟计数器之间的计数值的偏差计算频率补偿值。
步骤S212:调节频率补偿值,以使主机时钟计数器与从机时钟计数器之间的计数值的偏差在一定时间内逐渐变为零。
假设上一次同步时计算出的偏差为Offset0,当前一次同步时计算出的偏差为Offset1,则可以预测,下一次同步时计算出的偏差将是Offset2=2*Offset1-Offset0。因此,应当调节频率补偿值,使得从机时钟在当前这个同步周期内时钟计数器的值的增加量比上一个同步周期多Offset2,于是,下一次同步时计算出的偏差将是零。
在获得了Offset的条件下,计算出新的频率补偿值,实现对时钟计数器计数速度的微量调节,使得主机时钟计数器之间与从机时钟计数器之间的计数速度一致,消除计数值的偏差,达到时钟同步的目的。
需要说明的是,SYNC、FOLLOW_UP、DELAY_REQ及DELAY_RESP都是UDP(User Datagram Protocol,用户数据报文协议)帧,在UDP帧的字段payload中包含着PTP帧的序号和时间戳,其中,FOLLOW_UP和DELAY_RESP中的时间戳的数值是有意义的,而SYNC和DELAY_REQ中的时间戳的数值是可以任意填写的。
无论是主机还是从机识别出正在发出的数据帧的前导码(preamble)之后的帧起始标志位(Start Frame Delimiter)时,都可以记录这个帧的本地发送时间戳。如果主机识别出这个帧为SYNC,则保存这个时间戳供主机的CPU读取;如果从机识别出这个帧为DELAY_REQ,则保存这个时间戳用于计算频率补偿值。
无论是主机还是从机识别出正在接收的数据帧的前导码(preamble)之后的帧起始标志位(Start Frame Delimiter)时,都可以记录这个帧的本地接收时间戳。如果主机识别出这个帧为DELAY_REQ,则保存这个时间戳供主机的CPU读取;如果从机识别出这个帧为SYNC,则保存这个时间戳用于计算频率补偿值。
现在对本发明的时钟同步装置及其工作原理进行说明。
图3是本发明装置的一种结构示意图。如图3所示,时钟同步装置31包括:发送捕获器(transmit capture)311,用于监听从介质访问控制器流向物理层设备收发器的数据,并判断当前流过的数据帧是否为PTP帧;接收捕获器(receive capture)312,用于监听从物理层设备收发器流向介质访问控制器的数据,并判断当前流过的数据帧是否为PTP帧;CPU接口(CPU interface)313,用于与CPU交互数据及控制信息,对于CPU来说,这个接口等效于一个RAM(Random Access Memory,随机存取存储器);控制器(controller)314,用于计算时钟计数器的频率补偿值;频率补偿时钟(frequencycompensation clock)315,为一个64位可调时钟计数器,用于根据晶振频率及所述频率补偿值进行计数以计量时间。
需要说明的是,主机与从机均可具有时钟同步装置31。
主机每隔一定时间发出SYNC,主机的发送捕获器311会探测到SYNC的发出,并记录SYNC的序号TxSyncSeq及本地发送时间戳TxSyncTime。主机的发送捕获器311对SYNC携带的数据可以忽略。从机的接收捕获器312探测到SYNC时,只记录所述SYNC的序号RxSyncSeq和本地接收时间戳RxSyncTime,对所述SYNC携带的数据也可以忽略。
主机发出SYNC后,主机的CPU立即通过主机的CPU接口313从主机的时钟同步装置31中取出SYNC的序号TxSyncSeq及本地发送时间戳TxSyncTime,将TxSyncSeq作为序号,TxSyncTime作为数据,封装成一个新的数据包FOLLOW_UP发出。从机接收到FOLLOW_UP后,从机的接收捕获器312不但可以记录FOLLOW_UP的的序号RxFollowSeq,还可以获取FOLLOW_UP中携带的数据TxSyncTime,并记录TxSyncTime。从机还可以进一步判断RxSyncSeq和RxFollowSeq是否相同,如果是,则获得了一个TxSyncTime-RxSyncTime时间戳对。
从机接收到SYNC或FOLLOW_UP时,就获得了主机的物理地址。接收到FOLLOW_UP之后,从机主动向主机发出DELAY_REQ,从机的发送捕获器311探测到DELAY_REQ的发出,记录DELAY_REQ的序号TxReqSeq和本地发送时间戳TxReqTime。DELAY_REQ到达主机时,主机的接收捕获器312探测到DELAY_REQ的到来,记录DELAY_REQ的源物理地址SlavePhyAddr、序号RxReqSeq和本地接收时间戳RxReq_Time。
由于可能存在多个从机同时向主机发出DELAY_REQ而主机不能迅速处理完所有DELAY_REQ的情况,所以主机可以使用队列来保存SlavePhyAddr、RxReqSeq和RxReqTime,按照FIFO(First-In First-Out,先进先出)原则依序处理所有的DELAY_REQ。主机的接收捕获器312在探测到一个新的数据帧到来时,备份当前队列的写指针,随着数据的不断接收,将接收数据流中对应于DELAY_REQ中的SlavePhyAddr、RxReqSeq和RxReqTime位置的数据存入队列,并将RxReqTime位置的数据替换为主机记录的这个帧的本地接收时间戳。当这个帧接收完毕的同时,主机的接收捕获器312就已经识别出它是否为DELAY_REQ,如果不是,则将队列的写指针恢复为刚开始接收这个帧时备份的那个值,如果是,则不做任何操作。为了防止在意外情况下,主机的CPU对接收帧的解析结果不同于接收捕获器312对同一个接收帧的解析结果,导致上一个同步周期的RxReqTime等信息留在队列中未被读取而造成不良影响,主机的发送捕获器311每次探测到SYNC发出时,主机都将队列的读指针设定为当前的写指针的值。
主机收到从机发出的DELAY_REQ之后,通过主机的CPU接口313从时钟同步装置31中取出SlavePhyAddr、RxReqSeq、RxReqTime,封装成DELAY_RESP并发出,其中,SlavePhyAddr作为目标物理地址,RxReqSeq作为序号,RxReqTime作为普通数据。DELAY_RESP到达从机时,从机的接收捕获器312记录DELAY_RESP的序号RxRespSeq和DELAY_RESP携带的数据RxReqTime,如果TxReqSeq和RxRespSeq相同,则获得了一个TxReqTime-RxReqTime时间戳对。
控制器314利用获得的TxSyncTime-RxSyncTime时间戳对及TxReqTime-RxReqTime时间戳对计算SYNC从主机传播到从机时的网络传输延迟。
可以按如下公式即可计算出网络传输延迟OneWayDelay的值:
OneWayDelay=(RxReqTime-TxReqTime)/2-(TxSyncTime-RxSyncTime)/2,
其中,RxReqTime-TxReqTime是获得TxSyncTime-RxSyncTime后最近一次获得的时间戳。
为了减小网络传输延迟的波动对后续计算的影响,可以使用均值滤波的方法,即,对最近多次计算出的OneWayDelay求平均值,这个平均值作为SYNC从主机传播到从机时的网络传输延迟的值。实验表明,将最近16次OneWayDelay求得的平均值作为SYNC从主机传播到从机时的网络传输延迟的值比较理想。
控制器314再利用获得的TxSyncTime-RxSyncTime时间戳对及SYNC从主机传播到从机时的网络传输延迟的值计算主机的频率补偿时钟315与从机的频率补偿时钟315之间计数值的偏差。
可以按如下公式即可计算出主机的频率补偿时钟315与从机的频率补偿时钟315之间计数值的偏差Offset:
Offset=TxSyncTime-RxSyncTime+OneWayDelay,
其中,当主机时钟比从机时钟快时,Offset大于零,主机时钟比从机时钟慢时,Offset小于零。
控制器314根据主机的频率补偿时钟315与从机的频率补偿时钟315之间计数值的偏差计算频率补偿值。
频率补偿时钟315接受新的频率补偿值,以使主机的频率补偿时钟315与从机的频率补偿时钟315之间计数值的偏差在一定时间内逐渐变为零。
频率补偿时钟315的结构如图4所示,包括一个p位时钟计数器(p-bitClock Counter)、一个q位累加器(q-bit Accumulator)和一个r位加数寄存器(r-bit Addend Register)组成,Tx/Rx Signals表示发送/接收信号,MessageDetection表示信息检测,Time Stamping Logic表示获取时间戳的逻辑,Frequency Compensaion Value表示频率补偿值,Frequency CompensationClock表示频率补偿时钟。r位加数寄存器中保存的数值即是当前正在使用的频率补偿值。每隔一个时钟周期,频率补偿值被加到q位累加器中一次,如果q位累加器溢出,则p位时钟计数器的值增加一个固定值,这个值就是时钟的分辨率,如果q位累加器没有溢出,则p位时钟计数器保持原值。因此,p位时钟计数器的计数速度是由晶振频率和频率补偿值共同决定的,对频率补偿值进行微调即可校正主机与从机晶振频率之间的微小偏差。
假设上一次同步时计算出的偏差为Offset0,当前一次同步时计算出的偏差为Offset1,则可以预测,下一次同步时计算出的偏差将是Offset2=2*Offset1-Offset0。因此,应当调节频率补偿值,使得从机时钟在当前这个同步周期内时钟计数器的值的增加量比上一个同步周期多Offset2,于是,下一次同步时计算出的偏差将是零。
在获得了Offset的条件下,计算出新的频率补偿值,实现对频率补偿时钟计数速度的微量调节,使得主机的频率补偿时钟315的计数速度与从机的频率补偿时钟315的计数速度一致,消除计数值的偏差,达到时钟同步的目的。
需要说明的是,SYNC、FOLLOW_UP、DELAY_REQ及DELAY_RESP都是UDP(User Datagram Ptorocol,用户数据报文协议)帧,在UDP帧的字段payload中包含着PTP帧的序号和时间戳,其中,FOLLOW_UP和DELAY_RESP中的时间戳的数值是有意义的,而SYNC和DELAY_REQ中的时间戳的数值是可以任意填写的。
无论是主机的发送捕获器311还是从机的发送捕获器311识别出正在发出的数据帧的前导码(preamble)之后的帧起始标志位(Start Frame Delimiter)时,都可以记录这个帧的本地发送时间戳。如果主机的发送捕获器311识别出这个帧为SYNC,则保存这个时间戳供主机的CPU读取;如果从机的发送捕获器311识别出这个帧为DELAY_REQ,则保存这个时间戳用于计算频率补偿时钟315的频率补偿值。
无论是主机的接收捕获器312还是从机的接收捕获器312识别出正在接收的数据帧的前导码(preamble)之后的帧起始标志位(Start Frame Delimiter)时,都可以记录这个帧的本地接收时间戳。如果主机的接收捕获器312识别出这个帧为DELAY_REQ,则保存这个时间戳供主机的CPU读取;如果从机的接收捕获器312识别出这个帧为SYNC,则保存这个时间戳用于计算频率补偿时钟315的频率补偿值。
本发明还提供了一种实现时钟同步的系统。系统的结构如图5所示,包括:CPU52,用于处理数据包;介质访问控制器(MAC Controller)53,用于缓存数据包;物理层设备收发器(PHY Transceiver)54,用于将数据包进行信号转换;FPGA(Field Programmable Gate Array,现场可编程门阵列)51,用于监听介质访问控制器53与物理层设备收发器54之间的所有信号,FPGA51可进一步包括图3所示的时钟同步装置中的各个实体。其中,介质访问控制器53根据CPU52的命令将缓存的数据包发送到物理层设备收发器54,和/或,将缓存的数据包发送到CPU52。
FPGA51通过总线与CPU52交互数据和控制信息。CPU52通过总线分别连接到介质访问控制器53和FPGA51。CPU52、介质访问控制器53、物理层设备收发器54共同构成一个完整的数据通讯通道,实现时钟同步的系统与其它设备的交互信息全部由此通道传送,包括PTP帧。介质访问控制器53实现以太网协议中MAC子层的功能,通过MII(Media Independent Interface,介质独立接口)与物理层设备收发器54相连,还通过总线与CPU52相连,同CPU52交互发送、接收的数据及控制信息。物理层设备收发器54实现通讯线路上的模拟信号和电路板上数字信号之间的转换,一方面通过网络变压器、RJ-45(一种双绞线以太网接口)连接到交换设备,如HUB(集线器)、专用SWITCH(交换机)等,另一方面通过MII接口(IEEE802.3-1998中定义)连接到介质访问控制器53。
需要说明的是,无论是主机还是从机,都可具有图5所示的时钟同步系统。
现在对图5所示的时钟同步系统的运行原理进行说明。
主机CPU52每隔一定时间主动发出SYNC,主机FPGA51在介质访问控制器53与物理层设备收发器54之间探测到SYNC的发出,记录这个SYNC的序号TxSyncSeq和本地发送时间戳TxSyncTime。SYNC到达从机时,从机FPGA51在介质访问控制器53与物理层设备收发器54之间探测到SYNC的到来,记录这个SYNC的序号RxSyncSeq和本地接收时间戳RxSyncTime。
主机发出SYNC后,主机CPU52立即从FPGA51中取出TxSyncSeq和TxSyncTime,封装成一个新的数据包FOLLOW_UP并发出,其中TxSyncSeq作为序号,TxSyncTime作为普通数据。FOLLOW_UP到达从机时,从机FPGA51在介质访问控制器53与物理层设备收发器54之间探测到FOLLOW_UP的到来,记录这个FOLLOW_UP的序号RxFollowSeq和帧中包含的数据TxSyncTime。如果RxSyncSeq和RxFollowSeq相同,则获得了一个TxSyncTime-RxSyncTime时间戳对。
从机接收到SYNC或FOLLOW_UP时,就获得了主机的物理地址。接收到FOLLOW_UP之后,从机CPU52主动向主机发出DELAY_REQ,从机FPGA51在介质访问控制器53与物理层设备收发器54之间探测到DELAY_REQ的发出,记录这个DELAY_REQ的序号TxReqSeq和本地发送时间戳TxReqTime。DELAY_REQ到达主机时,主机FPGA51在介质访问控制器53与物理层设备收发器54之间探测到DELAY_REQ的到来,记录这个DELAY_REQ的源物理地址SlavePhyAddr、序号RxReqSeq和本地接收时间戳RxReqTime。需要说明的是,从机CPU52在接收到FOLLOW_UP之后,立即主动向主机发出DELAY_REQ是比较合适的,当然,从机可以在获得主机的物理地址后的任意时间主动向主机发出DELAY_REQ。
由于可能存在多个从机同时向主机发出DELAY_REQ而主机不能迅速处理完所有DELAY_REQ的情况,所以主机可以使用队列来保存SlavePhyAddr、RxReqSeq和RxReq_Time,按照FIFO(First-In First-Out,先进先出)原则依序处理所有的DELAY_REQ。主机的FPGA51在探测到一个新的数据帧到来时,备份当前队列的写指针,随着数据的不断接收,将接收数据流中对应于DELAY_REQ中的SlavePhyAddr、RxReqSeq和RxReqTime位置的数据存入队列,并将RxReqTime位置的数据替换为主机记录的这个帧的本地接收时间戳。当这个帧接收完毕的同时,主机的FPGA51就已经识别出它是否为DELAY_REQ,如果不是,则将队列的写指针恢复为刚开始接收这个帧备份的那个值,如果是,则不做任何操作。为了防止在意外情况下,主机的CPU52对接收帧的解析结果不同于FPGA51对同一个接收帧的解析结果,导致上一个同步周期的RxReqTime等信息留在队列中未被读取而造成不良影响,主机的FPGA51每次探测到SYNC发出时,主机都将队列的读指针设定为当前的写指针的值。
主机收到从机发来的DELAY_REQ之后,要立即回复一个DELAY_RESP。主机CPU52从FPGA51中取出SlavePhyAddr、RxReqSeq、RxReqTime,封装一个新的DELAY_RESP并发出,其中,SlavePhyAddr作为目标物理地址,RxReqSeq作为序号,RxReqTime作为普通数据。DELAY_RESP到达从机时,从机FPGA51在介质访问控制器53与物理层设备收发器54之间探测到DELAY_RESP的到来,记录这个DELAY_RESP的序号RxRespSeq和帧中包含的数据RxReqTime。如果TxReqSeq和RxRespSeq相同,则获得了一个TxReqTime-RxReqTime时间戳对。
需要说明的是,FPGA51是被动设备,所有PTP帧都是CPU52命令介质访问控制器53发出的,FPGA51的工作是监听和解析,CPU52无法直接通知FPGA51它在发送或者接收PTP帧。
对于主机,发送FOLLOW_UP和DELAY_RESP时,FPGA51不作任何操作,事实上,FPGA51将这两种帧当作普通的数据帧来处理,并不能识别出这两种帧。收到DELAY_REQ时,CPU52从介质访问控制器53接收并解析出DELAY_REQ后,从FPGA51中取出SlavePhyAddr、RxReqSeq和RxReqTime,并封装DELAY_RESP发出。
对于从机,收到SYNC时,CPU52从介质访问控制器53接收并解析出SYNC后,直接将它丢弃,不作任何附加的操作。收到FOLLOW_UP后,从机CPU52立即主动发出DELAY_REQ,并将FOLLOW_UP丢弃。收到DELAY_RESP时,CPU52也是直接将它丢弃。
从机获得TxSyncTime-RxSyncTime时间戳对及TxReqTime-RxReqTime时间戳对后,从机的FPGA51这两个时间戳对计算SYNC从主机传播到从机时的网络传输延迟。
可以按如下公式即可计算出网络传输延迟OneWayDelay的值:
OneWayDelay=(RxReqTime-TxReqTime)/2-(TxSyncTime-RxSyncTime)/2,
其中,RxReqTime-TxReqTime是获得TxSyncTime-RxSyncTime后最近一次获得的时间戳。
为了减小网络传输延迟的波动对后续计算的影响,可以使用均值滤波的方法,即,对最近多次计算出的OneWayDelay求平均值,这个平均值作为SYNC从主机传播到从机时的网络传输延迟的值。实验表明,将最近16次OneWayDelay求得的平均值作为SYNC从主机传播到从机时的网络传输延迟的值比较理想。
从机的FPGA51再利用获得的TxSyncTime-RxSyncTime时间戳对及SYNC从主机传播到从机时的网络传输延迟的值计算主机的时钟计数器与从机的时钟计数器之间计数值的偏差。
可以按如下公式即可计算出主机的时钟计数器与从机的时钟计数器之间计数值的偏差Offset:
Offset=TxSyncTime-RxSyncTime+OneWayDelay,
其中,当主机时钟比从机时钟快时,Offset大于零,主机时钟比从机时钟慢时,Offset小于零。
从机的FPGA51根据主机的时钟计数器与从机的时钟计数器之间计数值的偏差计算频率补偿值。
时钟计数器接受新的频率补偿值,以使主机的时钟计数器与从机的时钟计数器之间计数值的偏差在一定时间内逐渐变为零。
假设上一次同步时计算出的偏差为Offset0,当前一次同步时计算出的偏差为Offset1,则可以预测,下一次同步时计算出的偏差将是Offset2=2*Offset1-Offset0。因此,应当调节频率补偿值,使得从机时钟在当前这个同步周期内时钟计数器的值的增加量比上一个同步周期多Offset2,于是,下一次同步时计算出的偏差将是零。
在获得了Offset的条件下,计算出新的频率补偿值,实现对频率补偿时钟计数速度的微量调节,使得主机的时钟计数器的计数速度与从机的时钟计数器的计数速度一致,消除计数值的偏差,达到时钟同步的目的。
需要说明的是,SYNC、FOLLOW_UP、DELAY_REQ及DELAY_RESP都是UDP(User Datagram Ptorocol,用户数据报文协议)帧,在UDP帧的字段payload中包含着PTP帧的序号和时间戳,其中,FOLLOW_UP和DELAY_RESP中的时间戳的数值是有意义的,而SYNC和DELAY_REQ中的时间戳的数值是可以任意填写的。
无论是主机的FPGA51还是从机的FPGA51识别出正在发出的数据帧的前导码(preamble)之后的帧起始标志位(Start Frame Delimiter)时,都可以记录这个帧的本地发送时间戳。如果主机的FPGA51识别出这个帧为SYNC,则保存这个时间戳供主机的CPU读取;如果从机的FPGA51识别出这个帧为DELAY_REQ,则保存这个时间戳用于计算频率补偿时钟的频率补偿值。
无论是主机的FPGA51还是从机的FPGA51识别出正在接收的数据帧的前导码(preamble)之后的帧起始标志位(Start Frame Delimiter)时,都可以记录这个帧的本地接收时间戳。如果主机的FPGA51识别出这个帧为DELAY_REQ,则保存这个时间戳供主机的CPU读取;如果从机的FPGA51识别出这个帧为SYNC,则保存这个时间戳用于计算频率补偿时钟的频率补偿值。
本发明还提供了一种分布式系统,所述分布式系统包括至少一个主机及从机,所述主机及从机分别包括:CPU,用于处理数据包;介质访问控制器,用于缓存数据包;物理层设备收发器,用于将数据包进行信号转换;所述从机还包括:时钟同步器,用于在所述介质访问控制器与所述物理层设备收发器之间获取主机发出的第一数据包的本地接收时间戳及主机发出第一数据包的本地发送时间戳,根据所述第一数据包的本地接收时间戳及本地发送时间戳计算时钟计数器之间计数值的偏差,以及对所述偏差进行校正。
所述主机还包括:时钟同步器,用于监听介质访问控制器与物理层设备收发器之间的所有信号。
分布式系统中的主机及从机均可包括图5所示的时钟同步系统,时钟同步系统还可进一步包括图3所示的时钟同步装置,分布式系统的运行原理可以参照上述关于图5及图3涉及到的工作原理的说明,这里不再赘述。
需要说明的是,在上述实施方式中,频率补偿值的计算都是在FPGA中实现,但如果对FPGA中的CPU接口逻辑稍做修改,就可以将频率补偿值的计算转移到CPU中实现,这种情况下,CPU将计算得到的频率补偿值写入FPGA供时钟计数器使用即可。
现在对本发明如何防止数据包的丢失和重复对时钟同步的影响再进行说明。
由于SYNC-FOLLOW_UP数据包对及DELAY_REQ-DELAY_RESP数据包对分别具有相同的序号,而CPU在每次发出新的SYNC-FOLLOW_UP对和DELAY_REQ-DELAY_RESP对时都会使用不同的序号,所以,如果丢失了SYNC,则随后的FOLLOW_UP的序号因和前一个有效的SYNC的序号不同而变成无效的FOLLOW_UP,如果丢失了FOLLOW_UP,下一个有效的SYNC会重置即将接收的FOLLOW_UP的序号,DELAY_REQ-DELAY_RESP对的情况亦相同。
从机的时钟计数器采用的是频率补偿时钟,系统正常运行时,从机时钟计数器的计数速度和主机时钟计数器的计数速度几乎是相同的,所以偶尔丢失几个SYNC-FOLLOW_UP对,即偶尔几次没有同步,对同步精度的影响是非常小的。丢失DELAY_REQ-DELAY_RESP对的情况对同步精度的影响几乎为零,因为系统正常运行时,网络传输延迟是比较稳定的,只有一些正态分布的随机误差,偶尔一次没有更新网络传输延迟,旧的数值仍然是准确的。
如果网络上同一个PTP帧连续出现了两次或多次,就有可能导致严重的后果,所以要采取措施来应对这种情况的发生。在SYNC-FOLLOW_UP对的发送接收过程中,从机接收到SYNC时,启动一个定时器,如果在定时器超时之前相同的SYNC又被接收到,则这个重复的SYNC将被视为无效。在启动定时器的同时,还将一个标志位置位,等到接收到相应的FOLLOW_UP时,再将标志位复位,如果相同的FOLLOW_UP又一次被接收到,由于标志位为零,表示相同的FOLLOW_UP已经被接收到了,则这个后来的FOLLOW_UP将被视为无效。在DELAY_REQ-DELAY_RESP对的发送接收过程中,从机发出DELAY_REQ时,将一个标志位置位,等到接收到相应的DELAY_RESP时,再将标志位复位,如果相同的DELAY_RESP又被接收到,由于标志位为零,表示相同的DELAY_RESP已经被接收到了,则这个重复的DELAY_RESP将被视为无效。主机收到重复到来的DELAY_REQ时,将这个DELAY_REQ当作正常的DELAY_REQ来处理,即回复一个DELAY_RESP,这个DELAY_RESP相当于一个重复的DELAY_RESP,从机能够正确的处理。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (14)
1.一种实现时钟同步的方法,其特征在于包括:
在介质访问控制器与物理层设备收发器之间获取第一数据包的本地发送时间戳和本地接收时间戳;
根据所述第一数据包的本地发送时间戳和本地接收时间戳计算时钟计数器之间计数值的偏差;
对所述偏差进行校正。
2.如权利要求1所述的实现时钟同步的方法,其特征在于获取第一数据包的本地发送时间戳和本地接收时间戳的过程由下述步骤实现:
接收到第一数据包后,记录所述第一数据包的序号及本地接收时间戳;
接收到携带时间戳的第二数据包后,记录所述第二数据包的序号及所述时间戳,如果所述第二数据包的序号与所述第一数据包的序号相同,则所述时间戳即为所述第一数据包的本地发送时间戳。
3.如权利要求1所述的实现时钟同步的方法,其特征在于按照如下公式计算时钟计数器之间计数值的偏差:
Offset=TxSyncTime-RxSyncTime+OneWayDelay,
其中,Offset为时钟计数器之间计数值的偏差,TxSyncTime为所述第一数据包的本地发送时间戳,RxSyncTime为所述第一数据包的本地接收时间戳,OneWayDelay为所述第一数据包的网络传输延迟。
4.如权利要求3所述的实现时钟同步的方法,其特征在于根据所述时间戳对计算时钟计数器之间计数值的偏差之前还包括:
发出第三数据包;
记录所述第三数据包的序号及本地发送时间戳;
接收携带时间戳的第四数据包;
记录所述第四数据包的序号及所述时间戳,如果所述第四数据包的序号与所述第三数据包的序号相同,则所述时间戳即为所述第三数据包的本地接收时间戳。
5.如权利要求4所述的实现时钟同步的方法,其特征在于由下述公式计算所述第一数据包的网络传输延迟OneWayDelay:
OneWayDelay=(RxReqTime-TxReqTime)/2-(TxSyncTime-RxSyncTime)/2,
其中,RxReqTime为所述第三数据包的本地接收时间戳,TxReqTime为所述第三数据包的本地发送时间戳。
6.如权利要求5所述的实现时钟同步的方法,其特征在于:对连续多次计算出的所述第一数据包的网络传输延迟OneWayDelay求平均值,将所述平均值作为计算Offset所使用的OneWayDelay。
7.如权利要求1所述的实现时钟同步的方法,其特征在于对所述偏差进行校正的过程由下述步骤实现:
根据所述偏差计算频率补偿值;
调节所述频率补偿值,以使时钟计数器之间计数值的偏差为零。
8.一种实现时钟同步的装置,其特征在于包括:
接收捕获器,用于在介质访问控制器与物理层设备收发器之间获取第一数据包的本地接收时间戳及与所述本地接收时间戳对应的本地发送时间戳;
控制器,用于根据所述第一数据包的本地接收时间戳及对应的本地发送时间戳计算时钟计数器之间计数值的偏差及根据所述偏差计算频率补偿值;
频率补偿时钟,用于根据晶振频率及所述频率补偿值,调整计数速度。
9.如权利要求8所述的实现时钟同步的装置,其特征在于还包括:发送捕获器,用于在介质访问控制器与物理层设备收发器之间获取所述物理层设备收发器发向所述介质访问控制器的数据包的本地发送时间戳。
10.如权利要求8所述的实现时钟同步的装置,其特征在于:所述时钟计数器为频率补偿时钟。
11.一种实现时钟同步的系统,包括:
CPU,用于处理数据包;
介质访问控制器,用于缓存数据包;
物理层设备收发器,用于将数据包进行信号转换;
其中,所述介质访问控制器根据所述CPU的命令将所述缓存的数据包发送到所述物理层设备收发器,和/或,将所述缓存的数据包发送到所述CPU;
其特征在于还包括:
时钟同步器,用于在所述介质访问控制器与所述物理层设备收发器之间获取第一数据包的本地接收时间戳及与所述本地接收时间戳对应的本地发送时间戳,根据所述第一数据包的本地接收时间戳及对应的本地发送时间戳计算时钟计数器之间计数值的偏差,以及对所述偏差进行校正。
12.如权利要求11所述的实现时钟同步的系统,其特征在于:所述时钟同步器为现场可编程门阵列FPGA。
13.一种分布式系统,包括至少一个主机及至少一个从机,所述主机及从机分别包括:
CPU,用于处理数据包;
介质访问控制器,用于缓存数据包;
物理层设备收发器,用于将数据包进行信号转换;
其特征在于所述从机还包括:
时钟同步器,用于在所述介质访问控制器与所述物理层设备收发器之间获取主机发出的第一数据包的本地接收时间戳及主机发出第一数据包的本地发送时间戳,根据所述第一数据包的本地接收时间戳及本地发送时间戳计算时钟计数器之间计数值的偏差,以及对所述偏差进行校正。
14.如权利要求13所述的分布式系统,其特征在于:所述主机还包括:时钟同步器,用于监听介质访问控制器与物理层设备收发器之间的所有信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101409425A CN1960242B (zh) | 2006-10-17 | 2006-10-17 | 实现时钟同步的方法、装置、系统及分布式系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101409425A CN1960242B (zh) | 2006-10-17 | 2006-10-17 | 实现时钟同步的方法、装置、系统及分布式系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1960242A true CN1960242A (zh) | 2007-05-09 |
CN1960242B CN1960242B (zh) | 2011-09-07 |
Family
ID=38071749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101409425A Expired - Fee Related CN1960242B (zh) | 2006-10-17 | 2006-10-17 | 实现时钟同步的方法、装置、系统及分布式系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1960242B (zh) |
Cited By (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515831A (zh) * | 2008-02-22 | 2009-08-26 | 杭州华三通信技术有限公司 | 一种时间同步传递方法、系统及装置 |
CN101729240A (zh) * | 2009-11-13 | 2010-06-09 | 北京中创信测科技股份有限公司 | 一种实现时间同步的方法和装置 |
CN101083523B (zh) * | 2007-07-27 | 2010-08-11 | 华南理工大学 | 一种实现集成时间戳时钟同步锁相环的方法及装置 |
CN101399653B (zh) * | 2007-09-25 | 2010-09-22 | 普然通讯技术(上海)有限公司 | 一种时钟同步的实现方法 |
CN102013931A (zh) * | 2009-09-08 | 2011-04-13 | 中兴通讯股份有限公司 | 时间同步方法及系统、从属定时设备及主定时设备 |
CN102136968A (zh) * | 2011-01-07 | 2011-07-27 | 华为技术有限公司 | 测量报文在以太交换设备中的延时的方法及以太交换设备 |
CN102137483A (zh) * | 2010-08-09 | 2011-07-27 | 华为技术有限公司 | 一种时间同步方法、装置及系统 |
CN102299788A (zh) * | 2011-09-21 | 2011-12-28 | 烽火通信科技股份有限公司 | 自动发送ieee1588协议报文的控制方法及装置 |
CN102420687A (zh) * | 2011-11-09 | 2012-04-18 | 盛科网络(苏州)有限公司 | 在多个mac中实现ieee 1588不同时戳格式包封装的方法及装置 |
CN101686431B (zh) * | 2008-09-22 | 2012-07-18 | 中兴通讯股份有限公司 | 同步处理方法和装置 |
WO2012167625A1 (zh) * | 2011-06-07 | 2012-12-13 | 中兴通讯股份有限公司 | 分布式存储系统及其时间戳的实现方法 |
CN101552663B (zh) * | 2008-04-02 | 2012-12-19 | 中兴通讯股份有限公司 | 无源光网络系统及其频率和时间的同步方法 |
CN101981527B (zh) * | 2008-03-27 | 2012-12-26 | 微软公司 | 对异步分布式系统中的时钟进行同步 |
CN103178918A (zh) * | 2011-12-26 | 2013-06-26 | 中国科学院沈阳自动化研究所 | 基于tdma的工厂自动化无线网络时间同步方法 |
CN103178987A (zh) * | 2012-07-12 | 2013-06-26 | 深圳市康必达中创科技有限公司 | 基于ZigBee无线技术的数字化变电站分布测试方法 |
CN103178920A (zh) * | 2012-07-12 | 2013-06-26 | 深圳市康必达中创科技有限公司 | 数字化变电站测试系统中的多通道同步方法 |
CN103248471A (zh) * | 2013-05-22 | 2013-08-14 | 哈尔滨工业大学 | 基于ptp协议与反射内存网的时钟同步方法 |
WO2013127372A1 (zh) * | 2012-03-02 | 2013-09-06 | 华为技术有限公司 | 数据包处理方法及设备 |
CN103378993A (zh) * | 2012-04-20 | 2013-10-30 | 华东电网有限公司 | 基于ptp的从时钟监测方法 |
CN103441832A (zh) * | 2013-08-22 | 2013-12-11 | 瑞斯康达科技发展股份有限公司 | 基于ptp的时钟同步方法、系统和设备 |
CN103457685A (zh) * | 2012-05-29 | 2013-12-18 | 中国科学院沈阳自动化研究所 | 基于预测补偿的工业无线网络高精度时间同步方法 |
CN103995471A (zh) * | 2014-05-23 | 2014-08-20 | 华中科技大学 | 一种分布式控制系统的时钟同步方法 |
US8923346B2 (en) | 2009-12-25 | 2014-12-30 | Huawei Technologies Co., Ltd. | Time synchronization method, device and system |
CN102957489B (zh) * | 2008-02-03 | 2015-04-01 | 大唐移动通信设备有限公司 | 时钟同步方法、主从时钟实体 |
CN105187440A (zh) * | 2015-09-26 | 2015-12-23 | 北京暴风科技股份有限公司 | 使用udp协议传输视频数据的方法及系统 |
CN105553599A (zh) * | 2016-01-26 | 2016-05-04 | 北京浩瀚深度信息技术股份有限公司 | 网络对时的误差修正方法 |
CN105812297A (zh) * | 2014-12-30 | 2016-07-27 | 联芯科技有限公司 | 基带芯片、基带芯片系统、及进行let性能扩展的方法 |
CN106302244A (zh) * | 2016-08-11 | 2017-01-04 | 自连电子科技(上海)有限公司 | 一种消除网络传输抖动的设备及其方法 |
CN107040327A (zh) * | 2017-06-14 | 2017-08-11 | 深圳市华信天线技术有限公司 | 主从机tdma时隙同步校准方法及装置 |
CN107360060A (zh) * | 2017-08-07 | 2017-11-17 | 瑞斯康达科技发展股份有限公司 | 一种时延测量方法及装置 |
CN108322280A (zh) * | 2017-12-12 | 2018-07-24 | 北京时代民芯科技有限公司 | 一种分布式计算机网络时钟同步延时补偿方法 |
WO2019104522A1 (en) * | 2017-11-29 | 2019-06-06 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and devices for flexe network |
WO2019228012A1 (zh) * | 2018-05-31 | 2019-12-05 | 阿里巴巴集团控股有限公司 | 事务因果序的校正方法及装置、电子设备 |
CN110739709A (zh) * | 2019-11-06 | 2020-01-31 | 湖南微网能源技术有限公司 | 一种多机控制同步方法 |
CN111008239A (zh) * | 2018-10-07 | 2020-04-14 | 上海希路智能科技有限公司 | 一种异步系统的数据同步方法、系统及终端设备 |
CN111357243A (zh) * | 2017-12-12 | 2020-06-30 | Wago管理有限责任公司 | 总线系统的用户设备、运行方法及总线系统 |
CN113810145A (zh) * | 2020-06-14 | 2021-12-17 | 迈络思科技有限公司 | 接收端时间戳准确性 |
CN114401076A (zh) * | 2021-11-30 | 2022-04-26 | 中国铁路通信信号股份有限公司 | 一种降低以太网数据传输晃动的方法和装置 |
CN115834282A (zh) * | 2022-11-07 | 2023-03-21 | 交控科技股份有限公司 | 一种can总线通信方法、装置、设备及可读存储介质 |
CN116436555A (zh) * | 2023-06-09 | 2023-07-14 | 新华三技术有限公司 | 一种时间同步方法、装置及分布式网络设备 |
CN118019099A (zh) * | 2024-04-08 | 2024-05-10 | 福州马尾区金桐科技有限公司 | 一种提高精度的无线时间同步方法 |
TWI847415B (zh) * | 2022-12-08 | 2024-07-01 | 瑞昱半導體股份有限公司 | 網路裝置與網路封包處理方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9986519B2 (en) * | 2015-03-04 | 2018-05-29 | Texas Instruments Incorporated | Synchronization by difference between link layer and processor time stamps |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6449291B1 (en) * | 1998-11-24 | 2002-09-10 | 3Com Corporation | Method and apparatus for time synchronization in a communication system |
CN100452685C (zh) * | 2002-03-07 | 2009-01-14 | 皇家飞利浦电子股份有限公司 | 支持经无线局域网连接的节点的时钟同步的内部信号传输方法 |
JP4577019B2 (ja) * | 2004-03-04 | 2010-11-10 | ソニー株式会社 | 無線通信システム、無線通信装置及び無線通信方法、並びにコンピュータ・プログラム |
-
2006
- 2006-10-17 CN CN2006101409425A patent/CN1960242B/zh not_active Expired - Fee Related
Cited By (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101083523B (zh) * | 2007-07-27 | 2010-08-11 | 华南理工大学 | 一种实现集成时间戳时钟同步锁相环的方法及装置 |
CN101399653B (zh) * | 2007-09-25 | 2010-09-22 | 普然通讯技术(上海)有限公司 | 一种时钟同步的实现方法 |
CN102957489B (zh) * | 2008-02-03 | 2015-04-01 | 大唐移动通信设备有限公司 | 时钟同步方法、主从时钟实体 |
CN101515831A (zh) * | 2008-02-22 | 2009-08-26 | 杭州华三通信技术有限公司 | 一种时间同步传递方法、系统及装置 |
CN101981527B (zh) * | 2008-03-27 | 2012-12-26 | 微软公司 | 对异步分布式系统中的时钟进行同步 |
CN101552663B (zh) * | 2008-04-02 | 2012-12-19 | 中兴通讯股份有限公司 | 无源光网络系统及其频率和时间的同步方法 |
CN101686431B (zh) * | 2008-09-22 | 2012-07-18 | 中兴通讯股份有限公司 | 同步处理方法和装置 |
CN102013931A (zh) * | 2009-09-08 | 2011-04-13 | 中兴通讯股份有限公司 | 时间同步方法及系统、从属定时设备及主定时设备 |
CN101729240A (zh) * | 2009-11-13 | 2010-06-09 | 北京中创信测科技股份有限公司 | 一种实现时间同步的方法和装置 |
CN101729240B (zh) * | 2009-11-13 | 2012-10-10 | 北京中创信测科技股份有限公司 | 一种实现时间同步的方法和装置 |
US8923346B2 (en) | 2009-12-25 | 2014-12-30 | Huawei Technologies Co., Ltd. | Time synchronization method, device and system |
CN102137483A (zh) * | 2010-08-09 | 2011-07-27 | 华为技术有限公司 | 一种时间同步方法、装置及系统 |
WO2012092789A1 (zh) * | 2011-01-07 | 2012-07-12 | 华为技术有限公司 | 测量报文在以太交换设备中的延时的方法及以太交换设备 |
CN102136968B (zh) * | 2011-01-07 | 2013-04-24 | 华为技术有限公司 | 测量报文在以太交换设备中的延时的方法及以太交换设备 |
CN102136968A (zh) * | 2011-01-07 | 2011-07-27 | 华为技术有限公司 | 测量报文在以太交换设备中的延时的方法及以太交换设备 |
WO2012167625A1 (zh) * | 2011-06-07 | 2012-12-13 | 中兴通讯股份有限公司 | 分布式存储系统及其时间戳的实现方法 |
CN102299788A (zh) * | 2011-09-21 | 2011-12-28 | 烽火通信科技股份有限公司 | 自动发送ieee1588协议报文的控制方法及装置 |
CN102420687A (zh) * | 2011-11-09 | 2012-04-18 | 盛科网络(苏州)有限公司 | 在多个mac中实现ieee 1588不同时戳格式包封装的方法及装置 |
CN102420687B (zh) * | 2011-11-09 | 2014-05-28 | 盛科网络(苏州)有限公司 | 在多个mac中实现ieee 1588不同时戳格式包封装的方法及装置 |
CN103178918B (zh) * | 2011-12-26 | 2016-08-03 | 中国科学院沈阳自动化研究所 | 基于tdma的工厂自动化无线网络时间同步方法 |
CN103178918A (zh) * | 2011-12-26 | 2013-06-26 | 中国科学院沈阳自动化研究所 | 基于tdma的工厂自动化无线网络时间同步方法 |
CN103298028B (zh) * | 2012-03-02 | 2016-12-14 | 华为技术有限公司 | 数据包处理方法及设备 |
WO2013127372A1 (zh) * | 2012-03-02 | 2013-09-06 | 华为技术有限公司 | 数据包处理方法及设备 |
CN103298028A (zh) * | 2012-03-02 | 2013-09-11 | 华为技术有限公司 | 数据包处理方法及设备 |
CN103378993A (zh) * | 2012-04-20 | 2013-10-30 | 华东电网有限公司 | 基于ptp的从时钟监测方法 |
CN103457685A (zh) * | 2012-05-29 | 2013-12-18 | 中国科学院沈阳自动化研究所 | 基于预测补偿的工业无线网络高精度时间同步方法 |
CN103457685B (zh) * | 2012-05-29 | 2015-09-09 | 中国科学院沈阳自动化研究所 | 基于预测补偿的工业无线网络高精度时间同步方法 |
CN103178987A (zh) * | 2012-07-12 | 2013-06-26 | 深圳市康必达中创科技有限公司 | 基于ZigBee无线技术的数字化变电站分布测试方法 |
CN103178920A (zh) * | 2012-07-12 | 2013-06-26 | 深圳市康必达中创科技有限公司 | 数字化变电站测试系统中的多通道同步方法 |
CN103248471B (zh) * | 2013-05-22 | 2016-06-08 | 哈尔滨工业大学 | 基于ptp协议与反射内存网的时钟同步方法 |
CN103248471A (zh) * | 2013-05-22 | 2013-08-14 | 哈尔滨工业大学 | 基于ptp协议与反射内存网的时钟同步方法 |
CN103441832B (zh) * | 2013-08-22 | 2016-12-28 | 瑞斯康达科技发展股份有限公司 | 基于ptp的时钟同步方法、系统和设备 |
CN103441832A (zh) * | 2013-08-22 | 2013-12-11 | 瑞斯康达科技发展股份有限公司 | 基于ptp的时钟同步方法、系统和设备 |
CN103995471A (zh) * | 2014-05-23 | 2014-08-20 | 华中科技大学 | 一种分布式控制系统的时钟同步方法 |
CN105812297B (zh) * | 2014-12-30 | 2019-06-14 | 辰芯科技有限公司 | 基带芯片、基带芯片系统、及进行lte性能扩展的方法 |
CN105812297A (zh) * | 2014-12-30 | 2016-07-27 | 联芯科技有限公司 | 基带芯片、基带芯片系统、及进行let性能扩展的方法 |
CN105187440A (zh) * | 2015-09-26 | 2015-12-23 | 北京暴风科技股份有限公司 | 使用udp协议传输视频数据的方法及系统 |
CN105553599B (zh) * | 2016-01-26 | 2017-10-17 | 北京浩瀚深度信息技术股份有限公司 | 网络对时的误差修正方法 |
CN105553599A (zh) * | 2016-01-26 | 2016-05-04 | 北京浩瀚深度信息技术股份有限公司 | 网络对时的误差修正方法 |
CN106302244A (zh) * | 2016-08-11 | 2017-01-04 | 自连电子科技(上海)有限公司 | 一种消除网络传输抖动的设备及其方法 |
CN107040327A (zh) * | 2017-06-14 | 2017-08-11 | 深圳市华信天线技术有限公司 | 主从机tdma时隙同步校准方法及装置 |
CN107040327B (zh) * | 2017-06-14 | 2019-04-02 | 深圳市华信天线技术有限公司 | 主从机tdma时隙同步校准方法及装置 |
US10892840B2 (en) | 2017-06-14 | 2021-01-12 | Harxon Corporation | Method and apparatus for TDMA slot synchronization and calibration of master and slave |
CN107360060B (zh) * | 2017-08-07 | 2020-04-10 | 瑞斯康达科技发展股份有限公司 | 一种时延测量方法及装置 |
CN107360060A (zh) * | 2017-08-07 | 2017-11-17 | 瑞斯康达科技发展股份有限公司 | 一种时延测量方法及装置 |
WO2019104522A1 (en) * | 2017-11-29 | 2019-06-06 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and devices for flexe network |
CN111357243B (zh) * | 2017-12-12 | 2023-08-11 | Wago管理有限责任公司 | 总线系统的用户设备、运行方法及总线系统 |
CN108322280B (zh) * | 2017-12-12 | 2019-07-23 | 北京时代民芯科技有限公司 | 一种分布式计算机网络时钟同步延时补偿方法 |
CN108322280A (zh) * | 2017-12-12 | 2018-07-24 | 北京时代民芯科技有限公司 | 一种分布式计算机网络时钟同步延时补偿方法 |
CN111357243A (zh) * | 2017-12-12 | 2020-06-30 | Wago管理有限责任公司 | 总线系统的用户设备、运行方法及总线系统 |
WO2019228012A1 (zh) * | 2018-05-31 | 2019-12-05 | 阿里巴巴集团控股有限公司 | 事务因果序的校正方法及装置、电子设备 |
CN111008239A (zh) * | 2018-10-07 | 2020-04-14 | 上海希路智能科技有限公司 | 一种异步系统的数据同步方法、系统及终端设备 |
CN111008239B (zh) * | 2018-10-07 | 2023-03-24 | 上海希路智能科技有限公司 | 一种异步系统的数据同步方法、系统及终端设备 |
CN110739709A (zh) * | 2019-11-06 | 2020-01-31 | 湖南微网能源技术有限公司 | 一种多机控制同步方法 |
CN113810145A (zh) * | 2020-06-14 | 2021-12-17 | 迈络思科技有限公司 | 接收端时间戳准确性 |
CN114401076A (zh) * | 2021-11-30 | 2022-04-26 | 中国铁路通信信号股份有限公司 | 一种降低以太网数据传输晃动的方法和装置 |
CN115834282A (zh) * | 2022-11-07 | 2023-03-21 | 交控科技股份有限公司 | 一种can总线通信方法、装置、设备及可读存储介质 |
TWI847415B (zh) * | 2022-12-08 | 2024-07-01 | 瑞昱半導體股份有限公司 | 網路裝置與網路封包處理方法 |
CN116436555A (zh) * | 2023-06-09 | 2023-07-14 | 新华三技术有限公司 | 一种时间同步方法、装置及分布式网络设备 |
CN116436555B (zh) * | 2023-06-09 | 2023-08-18 | 新华三技术有限公司 | 一种时间同步方法、装置及分布式网络设备 |
CN118019099A (zh) * | 2024-04-08 | 2024-05-10 | 福州马尾区金桐科技有限公司 | 一种提高精度的无线时间同步方法 |
CN118019099B (zh) * | 2024-04-08 | 2024-06-04 | 福州马尾区金桐科技有限公司 | 一种提高精度的无线时间同步方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1960242B (zh) | 2011-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1960242A (zh) | 实现时钟同步的方法、装置、系统及分布式系统 | |
CN1279705C (zh) | 无线接入网络系统、无线通信方法及节点 | |
Cena et al. | Implementation and evaluation of the reference broadcast infrastructure synchronization protocol | |
US8370675B2 (en) | Precise clock synchronization | |
CN1878049A (zh) | 通过使用纠错包控制传输速率的方法及其通信设备 | |
US8225128B2 (en) | Electronic timer system, time control and generation of timing signals | |
CN101039173A (zh) | 一种实现以太网链状网络节点间同步的装置和方法 | |
CN1710828A (zh) | 移动通信系统中的网元时间同步方法 | |
CN101160900A (zh) | 分组网络中多媒体实时传输的流同步方法及其装置 | |
EP2382743B1 (en) | Apparatus and method of scheduling timing packets to enhance time distribution in telecommunication networks | |
CN1647463A (zh) | 用于对数据包传输进行定时以控制带宽的方法和系统 | |
CN1934809A (zh) | 由不可靠数据分组网络分离时校准时间基准的方法和装置 | |
CN1706135A (zh) | 确定通信网络中第一时钟和第二时钟之间的定时偏差的方法 | |
CN101848051A (zh) | 一种设备之间进行时钟同步的方法和装置 | |
CN105577348B (zh) | 一种基于时间同步网的频偏监测方法和装置 | |
CN1627747A (zh) | 语音传输过程中实现动态调整抖动缓存的方法 | |
CN111193567B (zh) | 一种时间同步的方法、设备及存储介质 | |
CN103607270B (zh) | 提高Powerlink以太网同步性能的方法 | |
CN1863033A (zh) | 获取网络超时重传间隔的方法及网络中数据传输的方法 | |
CN102088397A (zh) | 通信网元、时钟频率校正系统及校正方法 | |
WO2010102565A1 (zh) | 时间同步的方法、装置和系统 | |
CN114450922B (zh) | 运行无线通信系统的方法、无线通信系统 | |
CN1607767A (zh) | 基于网络处理器的流量控制方法 | |
CN1487752A (zh) | 同步服务gprs支持节点和网关gprs支持节点的系统和方法 | |
US9401878B2 (en) | Packet synchronization switching method and gateway device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110907 Termination date: 20201017 |
|
CF01 | Termination of patent right due to non-payment of annual fee |