基于IEEE1588的高速流媒体总线精确时钟同步系统的制作方法

文档序号:20779031发布日期:2020-05-19 21:04阅读:225来源:国知局
基于IEEE1588的高速流媒体总线精确时钟同步系统的制作方法

本申请涉及时钟同步的技术领域,具体而言,涉及基于ieee1588的高速流媒体总线精确时钟同步系统。



背景技术:

随着信息技术的不断发展,信息交换技术覆盖了各行各业。在自动化领域、工业控制领域,以及现场会议行业,对信息传输的需求越来越广泛,同时也对信息传输提出更高的网络安全性、稳定性、同步性和实时性的要求。

ieee1588标准中的精确时间协议(precisiontimeprotocol,ptp),提出了一种包同步技术,即把与同步相关的时间信息封装在数据报文中,仍然使用以太网数据线传输,无需额外的时钟线,使组网连接简化。只要按照这个规范去策划和设计网络系统,就可以在不增加网络负荷和组网成本的情况下,实现整个系统的亚微妙级的时钟同步。

而现有技术中,精确时间协议ptp的实现是基于两条假设,一是通信路径时延堆成,即soc心跳帧传输不受网络环境限制;二是主、从时钟间的时间偏差offset是恒定的,即主、从时钟自身具有较高的走时稳定性。

如图1所示,而在大多数网络环境中,以上两条都是难以实现的,因此,对于高精度时钟同步需求的系统或者多设备串行的高速流媒体系统而言,现有的精确时间协议ptp仍然存在着时钟同步误差。



技术实现要素:

本申请的目的在于:在fpga硬件平台上,使串行高速流媒体总线系统能够达到纳秒级的同步精度,降低了该系统中各设备间的同步抖动,有效地提高了该系统时钟的同步性和实时性。

本申请的技术方案是:提供了基于ieee1588的高速流媒体总线精确时钟同步系统,时钟同步系统适用于由fpga硬件平台搭建的高速流媒体总线系统,高速流媒体总线系统包括一台中央控制主机和多台串联的终端设备,时钟同步系统包括:第一计时单元,soc心跳帧生成单元,第二计时单元和时钟同步单元;第一计时单元设置于中央控制主机,第一计时单元用于记录中央控制主机发送广播soc心跳帧的第一发送时刻t1,第一计时单元还用于记录中央控制主机接收到反馈soc心跳帧的第一接收时刻t4,其中,广播soc心跳帧由中央控制主机下行依次发送至最后一台串联的终端设备,反馈soc心跳帧由最后一台串联的终端设备上行依次发送至中央控制主机;soc心跳帧生成单元设置于中央控制主机,soc心跳帧生成单元用于将中央控制主机的系统参考时间tsystem_ref作为时间戳,生成广播soc心跳帧,并将第一时间差值插入广播soc心跳帧,其中,第一时间差值为第一接收时刻t4和第一发送时刻t1的差值;第二计时单元设置于终端设备,第二计时单元用于记录终端设备接收到广播soc心跳帧的第二接收时刻t2,第二计时单元还用于记录终端设备发送反馈soc心跳帧的第二发送时刻t3;时钟同步单元设置于终端设备,时钟同步单元用于解析广播soc心跳帧,获取系统参考时间tsystem_ref和第一时间差值,并根据第二接收时刻t2和第二发送时刻t3,对终端设备进行时钟同步。

上述任一项技术方案中,进一步地,对于任一台终端设备中的时钟同步单元,对终端设备进行时钟同步,包括:

获取终端设备物理层接收到的广播soc心跳帧,根据帧结构读取对应位置,获取系统参考时间tsystem_ref和第一时间差值;

根据时钟同步计算公式,计算本地系统时间,其中,时钟同步计算公式为:

tsystem_local(n)=tsystem_ref+tdelay(n)

式中,n为终端设备的编号,n=1,2,…;

根据本地系统时间对终端设备进行时钟同步。

上述任一项技术方案中,进一步地,终端设备,还包括:判断单元;判断单元用于判断终端设备是否为多台串联的终端设备中的最后一台终端设备,若是,最后一台终端设备接收到广播soc心跳帧后,将接收到的广播soc心跳帧上行转发至倒数第二台终端设备,并将上行转发的广播soc心跳帧,记作反馈soc心跳帧,若否,终端设备接收到反馈soc心跳帧后,将反馈soc心跳帧缓存并上行转发至上一台终端设备。

上述任一项技术方案中,进一步地,终端设备,还包括:锁相环单元;锁相环单元的第一端口串联有电阻r116,第一端口与电路低电平之间串联有电容c155,锁相环单元的第二端口和锁相环的供电端之间串联电阻r115,供电端还通过电阻r114连接于电路供电端,锁相环单元用于根据收到的rxclk时钟信号对终端设备进行本地时钟同步,其中,第二接收时刻t2和第二发送时刻t3,由终端设备中的本地时钟确定。

上述任一项技术方案中,进一步地,供电端还通过两个并联电容c153和c154连接于电路低电平,两个并联电容c153和c154用于对输入供电电压进行滤波。

上述任一项技术方案中,进一步地,中央控制主机根据预设同步周期,循环发送广播soc心跳帧,预设同步周期大于或等于2ms。

上述任一项技术方案中,进一步地,中央控制主机还包括寄存器,寄存器用于存储第一发送时刻t1、第一接收时刻t4。

上述任一项技术方案中,进一步地,终端设备还包括寄存器,寄存器用于存储第二接收时刻t2、第二发送时刻t3。

本申请的有益效果是:

通过本申请中的技术方案,首先,以中央控制主机的本地时钟作为参考时钟,将所有终端设备(从设备)的本地时钟晶振,皆采用fpga硬件电路搭建锁相环的方式,与参考时钟进行频率调整,实现串联终端设备间的频率同步。其次,根据ieee1588时钟同步标准的计算方式,将中央控制主机的系统参考时间作为soc心跳帧的时间戳,结合串行流媒体总线系统的网络结构特点,计算出各终端设备传输时延,并将中央控制主机的参考时间和各时延,利用soc心跳帧广播发送至所有终端设备,从而保证本地系统时间和参考时钟系统时间的同步,达到所有终端设备之间较好的同步性能。实现了对高速串行流媒体总线系统中串联的各个终端设备(从设备)进行精确时钟同步。

本申请基于1588协议串行网络结构的时钟同步机制,采用fpga硬件平台,直接读取终端设备物理层接收和发送soc心跳帧的时间,进而计算传输时延,提高了传输时延的准确性,并结合中央控制主机的系统参考时间,完成对串联的各个终端设备的时钟同步,可以使网络连接的所有终端设备(从设备)使用相同的系统时间,从而可以实现控制各设备任务的同步执行。

附图说明

本申请的上述和/或附加方面的优点在结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1是根据现有技术中传输时延的示意图;

图2是根据本申请的一个实施例的基于ieee1588的高速流媒体总线精确时钟同步系统的示意图;

图3是根据本申请的一个实施例的广播soc心跳帧的帧结构的示意图;

图4是根据本申请的一个实施例的中央控制主机的时钟同步过程示意图;

图5是根据本申请的一个实施例的终端设备的时钟同步过程示意图;

图6是根据本申请的一个实施例的锁相环单元的示意图;

图7是根据本申请的一个实施例的鉴相模块的示意图;

图8是根据本申请的一个实施例的高速流媒体总线系统的示意图;

图9是根据本申请的一个实施例的时钟信号试验曲线。

具体实施方式

为了能够更清楚地理解本申请的上述目的、特征和优点,下面结合附图和具体实施方式对本申请进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互结合。

在下面的描述中,阐述了很多具体细节以便于充分理解本申请,但是,本申请还可以采用其他不同于在此描述的其他方式来实施,因此,本申请的保护范围并不受下面公开的具体实施例的限制。

如图2所示,本实施例提供了基于ieee1588的高速流媒体总线精确时钟同步系统,时钟同步系统适用于由fpga硬件平台搭建的高速流媒体总线系统,高速流媒体总线系统包括一台中央控制主机和多台串联的终端设备,时钟同步系统包括:第一计时单元,soc心跳帧生成单元,第二计时单元和时钟同步单元;

在本实施例中,中央控制主机根据预设同步周期,循环发送广播soc心跳帧,预设同步周期大于或等于2ms。

第一计时单元设置于中央控制主机,第一计时单元用于记录中央控制主机发送广播soc心跳帧的第一发送时刻t1,第一计时单元还用于记录中央控制主机接收到反馈soc心跳帧的第一接收时刻t4,其中,广播soc心跳帧由中央控制主机下行依次发送至最后一台串联的终端设备,反馈soc心跳帧由最后一台串联的终端设备上行依次发送至中央控制主机;

具体的,如图3所示,本实施例中的广播soc心跳帧是每个心跳周期的起始帧,以ieee802.3以太网帧格式为依据设计广播soc心跳帧的帧结构。中央控制主机采用fpga搭建一个soc心跳帧生成单元,生产广播soc心跳帧。

进一步的,中央控制主机还包括寄存器,寄存器用于存储第一发送时刻t1、第一接收时刻t4。

soc心跳帧生成单元设置于中央控制主机,soc心跳帧生成单元用于将中央控制主机的系统参考时间tsystem_ref作为时间戳,生成广播soc心跳帧,并将第一时间差值插入广播soc心跳帧,其中,第一时间差值为第一接收时刻t4和第一发送时刻t1的差值;

具体的,如图4所示,本实施例提出的基于ieee1588的高速流媒体总线精确时钟同步系统是通过fpga来实现的。中央控制主机采用本地时钟维护一个固定周期的循环周期信号,预设同步周期为2ms;当循环周期信号产生2ms中断时,中央控制主机发送广播soc心跳帧,并记录发送时刻t1保存至寄存器;在本周期内,中央控制主机接收由支路上串联的终端设备反馈回的soc心跳帧,并记录到达时刻t4;中央控制主机根据在一个周期内获得的发送和接收soc心跳帧的两个时刻,计算得到soc心跳帧线路传输延时(t4-t1)。中央控制主机将本地系统时间作为系统参考时间tsystem_ref,并将线路传输延时(t4-t1)和系统参考时间tsystem_ref插入在下一循环周期发送的广播soc心跳帧中,待等待下个周期发送至所有串联的终端设备。

需要说明的是,当上电初始化时,线路传输延时(t4-t1)和系统参考时间tsystem_ref取值均为0。

第二计时单元设置于终端设备,第二计时单元用于记录终端设备接收到广播soc心跳帧的第二接收时刻t2,第二计时单元还用于记录终端设备发送反馈soc心跳帧的第二发送时刻t3,其中,终端设备还包括寄存器,寄存器用于存储第二接收时刻t2、第二发送时刻t3。;

在第二计时单元对第二发送时刻t3计时之前,由于本实施例中串联有多台终端设备,终端设备采用广播的方法,将广播soc心跳帧由第一台终端设备转发至最后一台终端设备,再由最后一台终端设备进行上行转发,将广播soc心跳帧标记为反馈soc心跳帧,转发至上一台终端设备。因此,需要判断当前接收到广播soc心跳帧的终端设备是否为最后一台终端设备。

进一步的,终端设备,还包括:判断单元;

判断单元用于判断终端设备是否为多台串联的终端设备中的最后一台终端设备,若是,最后一台终端设备接收到广播soc心跳帧后,将接收到的广播soc心跳帧上行转发至倒数第二台终端设备,并将上行转发的广播soc心跳帧,记作反馈soc心跳帧,

若否,终端设备接收到反馈soc心跳帧后,终端设备将反馈soc心跳帧的优先级设置为最高优先级,将接收到的反馈soc心跳帧缓存并上行转发至上一台终端设备,以避免终端设备中存在其他类型帧,发生发送线路占用问题,导致反馈soc帧延时。

时钟同步单元设置于终端设备,时钟同步单元用于解析广播soc心跳帧,获取系统参考时间tsystem_ref和第一时间差值,并根据第二接收时刻t2和第二发送时刻t3,对终端设备进行时钟同步。

具体的,待第二计时单元完成计时之后,如图5所示,终端设备接收中央控制主机下行发送的广播soc心跳帧,并记录接收时刻t2(n),对接收到的soc心跳帧进行解析,获得线路传输延时(t4-t1)以及系统参考时间tsystem_ref,并将其保存在寄存器中,以便后续读取。同时,终端设备采用传统方式转发广播soc心跳帧至向下游终端设备。

进一步的,对于任一台终端设备中的时钟同步单元,对终端设备进行时钟同步,包括:

首先,采用fpga处理心跳帧方式,直接获取终端设备物理层接收到的广播soc心跳帧,根据帧结构读取对应位置,获取系统参考时间tsystem_ref和第一时间差值;

其次,根据时钟同步计算公式,计算本地系统时间,其中,时钟同步计算公式为:

tsystem_local(n)=tsystem_ref+tdelay(n)

式中,tdelay(n)为系统传输时延,n为终端设备的编号,n=1,2,…;

最后,根据本地系统时间对终端设备进行时钟同步。

进一步的,高速流媒体总线系统由多个通信节点组成的网络系统,每个通信节点时钟一般是用一个无源晶振驱动的,由于温度变化、电磁干扰、振荡器老化等原因,时钟振荡频率会出现偏差,导致不同节点间产生较大时钟偏移,进而影响时钟同步精度。为了避免终端设备中时钟振荡引起的时钟偏差问题,如图6所示,本实施例中的终端设备,还包括:锁相环单元;锁相环单元的第一端口串联有电阻r116,第一端口与电路低电平之间串联有电容c155,锁相环单元的第二端口和锁相环的供电端之间串联电阻r115,供电端还通过电阻r114连接于电路供电端,锁相环单元用于根据收到的rxclk时钟信号对终端设备进行本地时钟同步,其中,第二接收时刻t2和第二发送时刻t3,由终端设备中的本地时钟确定,电阻r116与电容c155为组成鉴相器滤波电路,对鉴相器输出信号滤波。

进一步的,供电端还通过两个并联电容c153和c154连接于电路低电平,并联电容c153和c154用于与电阻r114组成输入供电电压滤波电路。

在本实施例中,如图7所示,锁相环单元的输入端还连接于鉴相模块,该鉴相模块用于对本地时钟信号fpga_clk和接收到的时钟信号rxclk进行分频处理,并将分频后的两个分频时钟信号进行异或运算,生成鉴相输出信号。

在本实施例中,采用基于fpga计算接收时钟和本地时钟的频率偏移值,根据其鉴相后输出信号值,对本地时钟进行频率调整,使本地时钟尽量跟随接收数据时钟,达到两个时钟频率同步;同理,高速串行网络系统中同一链路连接的终端设备一级跟随一级,以使整条链路的时钟频率与中央控制主机(主设备)频率同步,从而实现频率偏移补偿。

利用本实施例中的锁相环单元,能够使一条支路上串行连接所有终端设备的时钟频率同步,且一条支路上所有终端设备间的时钟同步抖动小于50ns。

为了验证本实施例中的时钟同步系统,搭建高速流媒体总线系统如图8所示。通过分析可知,有两个延时会导致终端设备的时间和中央控制主机的时间不同。第一个是线缆的延时。假设每两台设备间的网线的长度为1米,这将导致延时3.3ns。如果串接250台设备,至最后一台设备将延时825ns。当然,如果网线长度更长,则延时会进一步成比例的增加。

第二个延时是网络芯片接收、发送延时和fpga对心跳帧处理转发延时。接收到左侧的phy的数据包时至少需要延时800ns才可以通过右侧的phy发送出去。这样,如果至第250台设备,将延时200us。

首先,与中央控制主机连接的终端设备(1#从设备)提取千兆以太网卡中接收时钟信号rxclk,并以接收时钟信号rxclk作为系统参考时间tsystem_ref,对本地时钟晶振进行频率同步,实现本地时钟与接收时钟信号rxclk的相位同步;同理,与1#从设备连接的2#从设备以接收时钟为参考时钟,使本地时钟晶振与参考时钟进行相位同步,以此类推,串行连接的各终端设备皆与中央控制主机的相位同步。

其次,各终端设备(从设备)可以直接解析接收的广播soc心跳帧,并从该心跳帧中提取参考时钟的绝对时间信息(系统参考时间tsystem_ref)和线路总延时信息(t4-t1),同时,将终端设备本地时间信息插入到心跳帧中,然后传输到下一个终端设备,最末端终端设备发回经过完全处理的反馈soc心跳帧,并由(1#从设备)将发回的反馈soc心跳帧,发送给中央控制主机。

最后,各终端设备通过解析soc心跳帧,获取中央控制主机的绝对时间和线路延时时间,以及各终端设备记录的接收和发送soc心跳帧的两次时间差(t3-t2),计算出相对中央控制主机的延时时间,根据延时时间调整本地时钟,以达到串行连接线路所有终端设备的时钟同步。

采用本实施例中的时钟同步系统,经过试验检测,试验数据如图9所示,上面的时钟信号901为中央控制主机的本地时钟,下面的时钟信号902为连接终端的本地时钟,由图可知,两个时钟频率相同,且相位偏差为24ns,即终端设备与中央控制主机频率同步,且同步偏差小于50ns,有效地提高了该系统时钟的同步性和实时性。

以上结合附图详细说明了本申请的技术方案,本申请提出了基于ieee1588的高速流媒体总线精确时钟同步系统,包括:适用于fpga硬件平台,该时钟同步系统将中央控制主机的系统参考时间作为soc心跳帧的时间戳,以中央控制主机和串联的各个终端设备为计时对象,对各设备发送和接收soc心跳帧的时刻进行计时,以计算设备间的传输时延,并在终端设备中设置锁相环单元,以保证一条支路上串行连接所有终端设备的时钟频率同步,再根据系统参考时间和系统传输时延,对串联的各终端设备进行时钟同步。通过本申请中的技术方案,使串行高速流媒体总线系统能够达到纳秒级的同步精度,降低了该系统中各设备间的同步抖动,有效地提高了该系统时钟的同步性和实时性。

本申请中的步骤可根据实际需求进行顺序调整、合并和删减。

本申请装置中的单元可根据实际需求进行合并、划分和删减。

尽管参考附图详地公开了本申请,但应理解的是,这些描述仅仅是示例性的,并非用来限制本申请的应用。本申请的保护范围由附加权利要求限定,并可包括在不脱离本申请保护范围和精神的情况下针对发明所作的各种变型、改型及等效方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1