本发明专利技术属于网络通信技术,涉及由网络时钟偏差带来的数据同步方法。本发明专利技术提出一种消除网络时钟偏差的数据同步方法,通过分析跨时钟域问题产生的原因,设计数据同步电路,该数据同步电路由时钟选择电路和数据处理电路组成,通过时钟比对的方法获得最快的全局时钟,使用该时钟采样接收到的数据。本发明专利技术消除了由网络各数据源时钟偏差带来的跨时钟域问题,确保网络中数据可以正确的传递,解决了网络中硬件时钟偏差带来的跨时钟域问题,使用统一的时钟进行数据传递,不需要使用异步FIFO,占用逻辑资源少,可以线速的接收数据,无丢包,可靠性高。
【技术实现步骤摘要】
本专利技术属于网络通信技术,涉及由网络时钟偏差带来的数据同步方法。
技术介绍
在高速网络通信中,接收数据均使用时钟恢复单元的恢复时钟进行数据采样。虽然整个网络的通信速率唯一,但网络各数据源采用的时钟存在偏差,接收采样到的数据必须通过数据同步方法转化为本地时钟域的数据。在数据同步时存在跨时钟域的问题,目前大多采用异步FIFO解决该问题。当本地时钟比恢复时钟快时,异步FIFO读比写快,不存在数据丢弃问题;当本地时钟比恢复时钟慢时,异步FIFO读比写慢,缓存满后将出现数据丢弃。该数据同步方法示意图见图1:当异步FIFO不空时,通过本地时钟读取异步FIFO获得本地数据;当异步FIFO满时,将输入数据丢弃。
技术实现思路
本专利技术提出了一种消除网络时钟偏差的数据同步方法,能够消除由网络各数据源时钟偏差带来的跨时钟域问题,确保网络中数据可以正确的传递。本专利技术的技术方案:一种消除网络时钟偏差的数据同步方法,包括以下步骤:1)选择全局时钟,从各通道数据的恢复时钟和晶振产生的本地时钟中选择最快的时钟作为全局时钟;2)数据处理2.1)为输入数据设置n1个数据寄存器,使用恢复时钟采样输入数据,循环存入n1个数据寄存器中;为恢复时钟的计数器设置n2个计数寄存器,将恢复时钟计数器的值循环存入n2个计数寄存器中;其中,n1和n2均大于或等于3、且n1=n2;最好n1和n2均等于3;2.2)使用全局时钟对数据寄存器中最早更新的寄存器进行采样,得到本地数据;使用全局时钟对计数寄存器中最早更新的寄存器进行采样;2.3)将计数寄存器的相邻两次采样值进行比较,如果不相同,使能数据使能信号将本地数据作为有效数据保存,否则丢弃本地数据。其中,步骤1)选择全局时钟具体包括以下步骤:1.1)对本地时钟和各个恢复时钟的计数器进行复位;1.2)本地时钟和各个恢复时钟在复位完成后开始计数;1.3)确定计时时长,经过该计时时长的时间后,各时钟计数器的计数结果开始不相同;1.4)本地时钟达到设定的计时时长时触发时长使能信号,并将本地时钟计数器的计数值存入本地寄存器;1.5)各个恢复时钟采样时长使能信号,并将恢复时钟计数器的计数值存入恢复时钟寄存器;1.6)对比本地时钟寄存器和各个恢复时钟寄存器的值,最大的即为全局时钟。步骤1.3)确定的计时时长是根据本地时钟和恢复时钟的最小时钟精度确定的。本专利技术具有的优点:1.通过时钟比对的方法获得最快的全局时钟,使用该时钟采样接收到的数据,从而消除网络中硬件时钟偏差带来的跨时钟域问题;2.使用统一的时钟进行数据传递,解决数据同步问题;3.不需要使用异步FIFO,占用逻辑资源少;4.可以线速的接收数据,无丢包,可靠性高。附图说明图1是采用异步FIFO时的数据同步方法示意图;图2是无跨时钟域问题的数据同步电路结构图;图3是时钟选择电路结构图;图4是数据处理电路结构图。具体实施方式本专利技术提出了一种消除网络时钟偏差的数据同步方法,通过分析跨时钟域问题产生的原因,本专利技术设计数据同步电路,进而解决数据同步的问题。跨时钟域问题的产生是由于接收数据使用的采样时钟与数据处理时使用的本地时钟存在偏差,如果采样时钟与数据处理的时钟为同一时钟,则可以从根本上消除跨时钟域问题。为此,将所有通道的数据恢复时钟与本地时钟进行比对,获得最快的全局时钟。由于该全局时钟比其他时钟快,通过它采样的数据不存在遗漏的情况,并且可以保证数据的稳定传递。本专利技术实现的数据同步方法支持多通道数据输入,无需考虑时钟相位偏差,不占用存储资源。电路结构图见图2。数据同步电路分为时钟选择电路和数据处理电路两部分。时钟选择电路:该电路的主要功能是从各通道数据的恢复时钟和晶振产生的本地时钟中选择最快的时钟作为全局时钟。电路结构图见图3。时钟选择电路的关键在于鉴别出最快的时钟。在同样的时间长度内,快的时钟计数得到的数值比慢的时钟得到的数值大,选择计数值最大的时钟即为最快的时钟。时钟选择电路接收各通道数据的恢复时钟和本地时钟,分别使用计数器进行计时,本地时钟计数器在计时结束时使能时长使能信号并将计数值存入寄存器中,各通道的恢复时钟采样时长使能信号后生成各自的使能信号,通过使能信号将计数值存入各自寄存器中。最后,通过比较信号使能比较器选择计数值最大的时钟作为全局时钟。选择最快时钟的方法为所有时钟通过各自的计数器进行计数,在同样的时间内计数值最大的时钟即为最快时钟。基准时钟F通过计数器计数N后,使能时长使能信号,各恢复时钟采样时长使能信号后生产各自的使能信号,通过使能信号将计数值存入寄存器。通过比较器选择各数据通道时钟和本地时钟计数值最大的时钟即为最快的时钟。该方法需要能鉴别时钟精度最小的两个时钟F和F′,同时要考虑时钟之间相位的差异。为此,通过计数器计数N后累计的时钟差异值应该大于2个时钟长度,这样可以保证在计数结束后,选择两个时钟F和F′的计数值N和N′中大的数值的时钟即为快的时钟。计数器的最小计数值N、两个时钟频率F、F′之间的关系应该为:N·(1/F-1/F′)≥2/F最小时钟精度Δ的计算公式为:Δ=(F′-F)/F·106(单位为ppm)经过计算,最小计数值N应该为:N≥2·(1+106/Δ)(N取整数的最小值)。通过该公式可以看出,计数值N的取值仅与时钟精度Δ有关,当时钟精度Δ为1ppm时,N的取值应该大于等于2000002。在本电路中,本地时钟的计数器L、恢复时钟1、2…n的计数器1、2…n在复位后同时开始计数,当计数器L计数值为N时,使能时长使能信号。恢复时钟1、2…n采样时长使能信号后生成使能信号1、2…n,将计数值存入寄存器1、2…n中。比较信号触发比较器对寄存器L、寄存器1、2…n进行比较,选择出计数值最大的寄存器对应的时钟即为全局时钟。数据处理电路:该电路的主要功能是使用全局时钟采样各通道的数据,将有效数据进行传递。当数据寄存器的数量n1和计数寄存器的数量n2均为3时,电路结构图见图4。全局时钟是最快的时钟,在采样各通道的数据时,会对慢的通道的同一数据进行重复采样,需要剔除采样到的重复数据。在本电路中,以通道1为例,输入数据1依次存入数据寄存器1A、1B和1C中,全局时钟采样其中最早的数据后得到本地数据本文档来自技高网...
【技术保护点】
一种消除网络时钟偏差的数据同步方法,其特征在于,包括以下步骤:1)选择全局时钟,从各通道数据的恢复时钟和晶振产生的本地时钟中选择最快的时钟作为全局时钟;2)数据处理2.1)为输入数据设置n1个数据寄存器,使用恢复时钟采样输入数据,循环存入n1个数据寄存器中;为恢复时钟的计数器设置n2个计数寄存器,将恢复时钟计数器的值循环存入n2个计数寄存器中;其中,n1和n2均大于或等于3、且n1=n2;2.2)使用全局时钟对数据寄存器中最早更新的寄存器进行采样,得到本地数据;使用全局时钟对计数寄存器中最早更新的寄存器进行采样;2.3)将计数寄存器的相邻两次采样值进行比较,如果不相同,使能数据使能信号将本地数据作为有效数据保存,否则丢弃本地数据。
【技术特征摘要】
1.一种消除网络时钟偏差的数据同步方法,其特征在于,包括以下步骤:
1)选择全局时钟,从各通道数据的恢复时钟和晶振产生的本地时钟中选
择最快的时钟作为全局时钟;
2)数据处理
2.1)为输入数据设置n1个数据寄存器,使用恢复时钟采样输入数据,
循环存入n1个数据寄存器中;
为恢复时钟的计数器设置n2个计数寄存器,将恢复时钟计数器的值循环
存入n2个计数寄存器中;
其中,n1和n2均大于或等于3、且n1=n2;
2.2)使用全局时钟对数据寄存器中最早更新的寄存器进行采样,得到
本地数据;
使用全局时钟对计数寄存器中最早更新的寄存器进行采样;
2.3)将计数寄存器的相邻两次采样值进行比较,如果不相同,使能数
据使能信号将本地数据作为有效数据保存,否则丢弃本地数据。
2.根据权利要求1所述的消除网络时钟偏差的数据同步方法,其特征在
于,步骤1)选择全局...
【专利技术属性】
技术研发人员:杨可,王红春,朱志强,邓发俊,雷宇宏,
申请(专利权)人:中国航空工业集团公司西安航空计算技术研究所,
类型:发明
国别省市:陕西;61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。