基于fpga的时钟数据恢复处理方法

文档序号:7550948阅读:273来源:国知局
专利名称:基于fpga的时钟数据恢复处理方法
技术领域
本发明涉及通信数据传输技术领域,特别涉及一种基于FPGA的时钟数据恢复处
理方法。
背景技术
为了利用光传输的巨大带宽,现在的通信中经常利用时分复用的技术把一些低速的信号复用到一条高速光纤上,由于网络同步的复杂性,不同时间段上的信号很难做到完全的同步,总是有或多或少频率和相位上的差异,这就给接收端的时钟数据恢复(Clockand Data Recovery,简称为⑶R)提出一些特殊要求。特别是在很多通信业务中,经常需要传输一些具有突发特征的数据,称为突发数据(Burst Data),这些突发数据具有发送时间随机、持续时间短等特点,因此,接收端对突发数据的时钟恢复,不仅要求有高速时钟数据恢复的能力(一般要求时钟频率在IGHz以上),还要求有很快的恢复时间(一般是几百个纳秒以内)。这种对突发数据的时钟数据恢复通常叫做突发式时钟数据恢复(Burst Clock andData Recovery,简称为 BCDR)。 目前,通信系统中大量使用专用B⑶R芯片来完成突发式时钟数据恢复处理,其成本较高。而FPGA由于其功能的灵活性、相对低廉的成本和较短的设计周期,已经大量的在通信设备中作为业务核心芯片,因此基于FPGA设计的时钟数据恢复芯片也得到越来越多的应用。现有技术中,基于FPGA设计实现CDR的方式主要有两种。一种方式是FPGA中自身集成有⑶R模拟电路,这类⑶R模拟电路的工作频率可以达到很高,目前已能达到IOGHz以上的频率;但是,采用CDR模拟电路进行时钟数据恢复需要较长的恢复相位锁定时间,这个时间通常需要几百个微秒,而在恢复相位锁定之前其恢复的数据因相位不准确而可能存在较大的误差,这就导致了无法采用CDR模拟电路直接有效的完成突发式时钟数据恢复处理。另一种方式是数字化过采样法,其基本原理是先通过FPGA自身的工作时钟频率,对输入数据进行X*f频率的数字化过采样得到过采样数据,f为输入数据的时钟频率,X为整数,然后对过采样数据进行分析判断出其中各个跳变数据位,根据各个跳变数据位进一步判断出最佳数据取数位置,从而恢复出数据;其时钟数据恢复过程中需要通过实时检测每个周期过采样数据中各个数据跳变位置,用以分析和实时调整过采样时钟的相位,使得过采样时钟尽可能与输入数据时钟同步,以确保数据回复的准确性,这样虽然实现了快速恢复以及准确性,但其处理逻辑复杂且消耗资源严重,对FPGA芯片处理性能的要求较高,而且由于受到FPGA工艺的限制,FPGA芯片的数字化过采样频率一般不会超过400MHz,因此这种基于FPGA的数字化过采样法难以满足突发式时钟数据恢复处理对于高速时钟频率的要求。由于这些原因,使得现有技术中基于FPGA设计的时钟数据恢复芯片始终难以适用于突发式时钟数据恢复处理。

发明内容
针对现有技术的上述不足,本发明的目的在于提供一种基于FPGA的时钟数据恢复处理方法,以解决现有技术中基于FPGA设计的时钟数据恢复芯片难以同时满足高速时钟频率和快速恢复的要求而难以适用于突发式时钟数据恢复处理的问题,让FPGA芯片也能够有效实现对突发数据的时钟恢复。为解决上述技术问题,实现发明目的,本发明采用的技术方案如下
基于FPGA的时钟数据恢复处理方法,其特征在于,采用集成有CDR模拟电路的FPGA芯片实现,具体包括如下步骤
1)利用FPGA芯片中的CDR模拟电路对输入数据进行N倍频的时钟数据恢复,得到实时的每个周期的倍频恢复数据;其中,N为正整数,且3 < N < 10 ;
2)判断当前周期的倍频恢复数据中是否存在跳变数据位;若存在,则检测出当前周期的倍频恢复数据中最后一个跳变数据位;若不存在,则将当前周期倍频恢复数据中最后一个跳变数据位的位置确定为与前一周期倍频恢复数据中最后一个跳变数据位的位置相一致;
3)根据当前周期的倍频恢复数据中最后一个跳变数据位确定当前周期倍频恢复数据中的各个数据取数位置;
4)检测当前周期倍频恢复数据中第一个数据取数位置与此前一周期倍频恢复数据中最后一个数据取数位置之间的距离位数n,并根据所述距离位数η的值对当前周期倍频恢复数据中数据取数位置的数量进行调整处理;
5)将当前周期倍频恢复数据中经过调整处理后的各个数据取数位置的数据依次取出,作为当前周期的数据恢复结果加以输出;
6)循环执行步骤2 5,完成各个周期的时钟数据恢复处理。上述基于FPGA的时钟数据恢复处理方法中,具体而言,所述步骤3中,“根据当前周期的倍频恢复数据中最后一个跳变数据位确定当前周期倍频恢复数据中的各个数据取数位置”具体为将当前周期的倍频恢复数据中最后一个跳变数据位之后的第k个数据位作为该周期倍频恢复数据中的基准数据取数位置;若当前周期的倍频恢复数据中最后一个跳变数据位之后不足k个数据位,则以最后一个跳变数据位之前第k个数据位作为该周期倍频恢复数据中的基准数据取数位置;k=int(N/2),int为取整函数;然后,以所述基准数据取数位置为准,每距离N个数据位确定一个数据取数位置,从而确定当前周期倍频恢复数据中的各个数据取数位置。上述基于FPGA的时钟数据恢复处理方法中,具体而言,所述步骤4中,“根据所述距离位数η的值对当前周期倍频恢复数据中数据取数位置的数量进行调整处理”具体为若O. 5Ν〈η〈1. 5Ν,则保留当前周期倍频恢复数据中已确定的各个数据取数位置不变;若n ^ O. 5Ν,则将当前周期倍频恢复数据中的第一个数据取数位置去除,其它的数据取数位置保持不变;若11 >1. 5Ν,则在当前周期倍频恢复数据中已确定的各个数据取数位置的基础上,还将当前周期倍频恢复数据中第一个数据位作为新增的一个数据取数位置。相比于现有技术,本发明具有下述优点1、本发明基于FPGA的时钟数据恢复处理方法,先利用CDR模拟电路对输入数据进行N倍频的时钟数据恢复,然后再将得到的倍频恢复数据作为对输入数据的过采样数据进行快速的时钟数据恢复处理,因此既利用了 CDR模拟电路获得高速时钟频率的倍频恢复数据(即相当于高速的过采样处理),解决了现有技术中采用数字化过采样而频率受限的问题,又利用了对倍频恢复数据进行快速的时钟数据恢复处理来保证数据恢复结果的准确性,解决了现有技术中CDR模拟电路需要较长时间的恢复相位锁定才能保证准确性的问题,从而同时满足了高速时钟和快速恢复的要求,使得采用本发明方法设计的FPGA芯片也能够有效实现突发式时钟数据恢复,能够用以解决突发数据通信系统长期以来对高成本的专用B⑶R芯片的依赖问题。2、本发明基于FPGA的时钟数据恢复处理方法中,在对对倍频恢复数据进行时钟数据恢复处理时,并没有采用现有技术中通过复杂的处理逻辑处理实时调整过采样时钟的方式来保证时钟数据恢复结果的准确性,而是先根据当前周期的倍频恢复数据中最后一个跳变数据位初步确定当前周期倍频恢复数据中的各个数据取数位置,再根据当前周期倍频恢复数据中第一个数据取数位置与此前一周期倍频恢复数据中最后一个数据取数位置之间的距离位数η的值对当前周期倍频恢复数据中数据取数位置的数量进行调整处理,最后将当前周期倍频恢复数据中经过调整处理后的各个数据取数位置的数据依次取出,作为当前周期的数据恢复结果加以输出,从而使得时钟数据恢复处理的复杂度降低,占用的资源也更少,处理效率更高,数据恢复更快速。


图1为本发明基于FPGA的时钟数据恢复处理方法的流程框图。
具体实施例方式下面结合附图和实施例对本发明的技术方案进一步说明。
·
在现有技术中,由于仅依靠FPGA的CDR模拟电路进行时钟数据恢复需要较长的恢复相位锁定时间才能保证恢复准确性,无法满足突发式时钟数据恢复对快速恢复的要求;而基于FPGA采用数字化过采样法实现的时钟数据恢复,又因收到FPGA数字化过采样频率的限制,无法满足突发式时钟数据恢复对高速时钟的要求;这些因素使得现有技术中基于FPGA设计的时钟数据恢复芯片都难以适用于突发式时钟数据恢复处理。针对于此,本发明提出了一种基于FPGA的时钟数据恢复处理方法,该方法需要采用集成有CDR模拟电路的FPGA芯片实现;其与现有技术的数据恢复处理的不同之处在于,本发明方法先利用CDR模拟电路对输入数据进行N倍频的时钟数据恢复,得到实时的每个周期的倍频恢复数据之后,再将倍频恢复数据当作对输入数据的过采样数据进行快速的时钟数据恢复处理;这样以来,既利用了 CDR模拟电路获得高速时钟频率的倍频恢复数据(即相当于高速的过采样处理),解决了现有技术中采用数字化过采样而频率受限的问题,又利用了对倍频恢复数据进行快速的时钟数据恢复处理来保证数据恢复结果的准确性,解决了现有技术中CDR模拟电路需要较长时间的恢复相位锁定才能保证准确性的问题,从而同时满足了高速时钟和快速恢复的要求,使得采用本发明方法设计的FPGA芯片也能够有效实现突发式时钟数据恢复,能够用以解决突发数据通信系统长期以来对高成本的专用BCDR芯片的依赖问题。如图1所示,本发明基于FPGA的时钟数据恢复处理方法包括如下步骤
1)利用FPGA芯片中的CDR模拟电路对输入数据进行N倍频的时钟数据恢复,得到实时的每个周期的倍频恢复数据;其中,N为正整数,且3 < N < 10 ;
2)判断当前周期的倍频恢复数据中是否存在跳变数据位;若存在,则检测出当前周期的倍频恢复数据中最后一个跳变数据位;若不存在,则将当前周期倍频恢复数据中最后一个跳变数据位的位置确定为与前一周期倍频恢复数据中最后一个跳变数据位的位置相一致;
3)根据当前周期的倍频恢复数据中最后一个跳变数据位确定当前周期倍频恢复数据中的各个数据取数位置;
该步骤具体处理流程为,将当前周期的倍频恢复数据中最后一个跳变数据位之后的第k个数据位作为该周期倍频恢复数据中的基准数据取数位置;若当前周期的倍频恢复数据中最后一个跳变数据位之后不足k个数据位,则以最后一个跳变数据位之前第k个数据位作为该周期倍频恢复数据中的基准数据取数位置;k=int(N/2),int为取整函数;然后,以所述基准数据取数位置为准,每距离N个数据位确定一个数据取数位置,从而确定当前周期倍频恢复数据中的各个数据取数位置;
4)检测当前周期倍频恢复数据中第一个数据取数位置与此前一周期倍频恢复数据中最后一个数据取数位置之间的距离位数n,并根据所述距离位数η的值对当前周期倍频恢复数据中数据取数位置的数量进行调整处理;
该步骤具体处理流程为,检测到当前周期过采样并行数据中所述的距离位数η后,若O. 5Ν〈η〈1. 5Ν,则保留当前周期倍频恢复数据中已确定的各个数据取数位置不变;若n ^ O. 5Ν,则将当前周期倍频恢复数据中的第一个数据取数位置去除,其它的数据取数位置保持不变;若η >1. 5 Ν,则在当前周期倍频恢复数据中已确定的各个数据取数位置的基础上,还将当前周期倍频恢复数据中第一个数据位作为新增的一个数据取数位置;
5)将当前周期倍频恢复数据中经过调整处理后的各个数据取数位置的数据依次取出,作为当前周期的数据恢复结果加以输出;
6)循环执行步骤2 5,完成各个周期的时钟数据恢复处理。通过上述处理流程可以看到,本发明基于FPGA的时钟数据恢复处理方法中,先利用CDR模拟电路对输入数据进行N倍频的时钟数据恢复,然后再将得到的倍频恢复数据作为对输入数据的过采样数据进行快速的时钟数据恢复处理;并且,本发明方法中对倍频恢复数据进行时钟数据恢复处理时,并没有采用现有技术中通过复杂的处理逻辑处理实时调整过采样时钟的方式来保证时钟数据恢复结果的准确性,而是先根据当前周期的倍频恢复数据中最后一个跳变数据位初步确定当前周期倍频恢复数据中的各个数据取数位置,再根据当前周期倍频恢复数据中第一个数据取数位置与此前一周期倍频恢复数据中最后一个数据取数位置之间的距离位数η的值对当前周期倍频恢复数据中数据取数位置的数量进行调整处理,最后将当前周期倍频恢复数据中经过调整处理后的各个数据取数位置的数据依次取出,作为当前周期的数据恢复结果加以输出。其中,考虑到CDR模拟电路对突发式数据的恢复因恢复相位锁定时间不足而可能存在误差(这种误差主要体现为数据位的漂移),因此初步确定当前周期倍频恢复数据中的数据取数位置时,是先将当前周期的倍频恢复数据中最后一个跳变数据位之后的第k个数据位作为该周期倍频恢复数据中的基准数据取数位置,k=int(N/2),int为取整函数,然后以所述基准数据取数位置为准,每距离N个数据位确定一个数据取数位置,从而确定当前周期倍频恢复数据中的各个数据取数位置,这样使得初步确定的数据取数位置与当前周期倍频恢复数据内的跳变数据位之间存在int(N/2)个容差数据位,而CDR模拟电路即时恢复相位锁定不准确,其N倍的倍频恢复数据的漂移也几乎不可能达到int(N/2)个数据位,从而通过上述初步确定数据取数位置的处理屏蔽了 CDR模拟电路在同一周期内的数据恢复误差;同时,由于CDR模拟电路的时钟频率很难保证时刻与输入数据的时钟频率完全同步,在不同周期的倍频恢复数据之间还是可能出现抖动和频偏的现象,因此初步确定当前周期倍频恢复数据中的数据取数位置后,还根据当前周期倍频恢复数据中第一个数据取数位置与其前一周期倍频恢复数据中最后一个数据取数位置之间的距离位数η的值,来判断当前周期与前一周期相比倍频恢复数据是否发生了抖动或频偏;若11 < O. 5Ν,表明CDR模拟电路的时钟频率相比于输入数据频率相位超前,导致当前周期与前一周期之间取数多了一个(即多出了当前周期倍频恢复数据中初步确定的第一个数据取数位置),因此将当前周期倍频恢复数据中的第一个数据取数位置去除;若11 >1. 5Ν,则表明CDR模拟电路的时钟频率相比于输入数据频率相位滞后,导致当前周期与前一周期之间取数少了一个,因此将当前周期倍频恢复数据中的第一位数据补充作为一个数据取数位置;若0. 5Ν〈η〈1. 5Ν,这表明⑶R模拟电路的时钟频率相比于输入数据频率还较为匹配,因此保留当前周期倍频恢复数据中各个数据取数位置不变;由此对该周期倍频恢复数据中初步确定的数据取数位置数量进行调整处理后再进行取数恢复,既保证了数据恢复结果的准确性。这样以来,本发明基于FPGA的时钟数据恢复处理方法,一方面利用了 CDR模拟电路获得高速时钟频率的倍频恢复数据(即相当于高速的过采样处理),解决了现有技术中采用数字化过采样而频率受限的问题,另一方面又利用了对倍频恢复数据进行快速的时钟数据恢复处理来保证数据恢复结果的准确性,解决了现有技术中CDR模拟电路需要较长时间的恢复相位锁定才能保证准确性的问题,并且不需要根据数据跳变位分析最佳采样取数时钟,也不需要根据分析所得的最佳采样取数时钟取反馈调整过采样时钟频率,而通过简单的数据取数位置调整处理确保恢复的准确性,从而使得时钟数据恢复处理的复杂度降低,占用的资源也更少,处理效率更高,数据恢复更快速。由此可见,本发明基于FPGA的时钟数据恢复处理方法解决了现有技术中基于FPGA设计的时钟数据恢复芯片难以同时满足高速时钟频率和快速恢复的要求而难以适用于突发式时钟数据恢复处理的问题,让FPGA芯片也能够有效实现对突发数据的时钟恢复,避免了突发数据通信系统长期以来对高成本的专用BCDR芯片的依赖。最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详 细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.基于FPGA的时钟数据恢复处理方法,其特征在于,采用集成有CDR模拟电路的FPGA 芯片实现,具体包括如下步骤1)利用FPGA芯片中的CDR模拟电路对输入数据进行N倍频的时钟数据恢复,得到实时的每个周期的倍频恢复数据;其中,N为正整数,且3 < N < 10 ;2)判断当前周期的倍频恢复数据中是否存在跳变数据位;若存在,则检测出当前周期的倍频恢复数据中最后一个跳变数据位;若不存在,则将当前周期倍频恢复数据中最后一个跳变数据位的位置确定为与前一周期倍频恢复数据中最后一个跳变数据位的位置相一3)根据当前周期的倍频恢复数据中最后一个跳变数据位确定当前周期倍频恢复数据中的各个数据取数位置;4)检测当前周期倍频恢复数据中第一个数据取数位置与此前一周期倍频恢复数据中最后一个数据取数位置之间的距离位数n,并根据所述距离位数η的值对当前周期倍频恢复数据中数据取数位置的数量进行调整处理;5)将当前周期倍频恢复数据中经过调整处理后的各个数据取数位置的数据依次取出, 作为当前周期的数据恢复结果加以输出;6)循环执行步骤2 5,完成各个周期的时钟数据恢复处理。
2.根据权利要求1所述基于FPGA的时钟数据恢复处理方法,其特征在于,所述步骤3 中,“根据当前周期的倍频恢复数据中最后一个跳变数据位确定当前周期倍频恢复数据中的各个数据取数位置”具体为将当前周期的倍频恢复数据中最后一个跳变数据位之后的第k个数据位作为该周期倍频恢复数据中的基准数据取数位置;若当前周期的倍频恢复数据中最后一个跳变数据位之后不足k个数据位,则以最后一个跳变数据位之前第k个数据位作为该周期倍频恢复数据中的基准数据取数位置;k=int(N/2),int为取整函数;然后, 以所述基准数据取数位置为准,每距离N个数据位确定一个数据取数位置,从而确定当前周期倍频恢复数据中的各个数据取数位置。
3.根据权利要求1所述基于FPGA的时钟数据恢复处理方法,其特征在于,所述步骤4 中,“根据所述距离位数η的值对当前周期倍频恢复数据中数据取数位置的数量进行调整处理”具体为若O. 5Ν〈η〈1. 5Ν,则保留当前周期倍频恢复数据中已确定的各个数据取数位置不变;若11 < O. 5Ν,则将当前周期倍频恢复数据中的第一个数据取数位置去除,其它的数据取数位置保持不变;若11 >1. 5Ν,则在当前周期倍频恢复数据中已确定的各个数据取数位置的基础上,还将当前周期倍频恢复数据中第一个数据位作为新增的一个数据取数位置。
全文摘要
本发明提出了一种基于FPGA的时钟数据恢复处理方法,该方法需要采用集成有CDR模拟电路的FPGA芯片实现,其先利用CDR模拟电路对输入数据进行N倍频的时钟数据恢复,得到实时的每个周期的倍频恢复数据之后,再将倍频恢复数据当作对输入数据的过采样数据进行快速的时钟数据恢复处理,因此既解决了现有技术中采用数字化过采样而频率受限的问题,又解决了现有技术中CDR模拟电路需要较长时间的恢复相位锁定才能保证准确性的问题,从而同时满足了高速时钟和快速恢复的要求,使得采用本发明方法设计的FPGA芯片也能够有效实现突发式时钟数据恢复,能够用以解决突发数据通信系统长期以来对高成本的专用BCDR芯片的依赖问题。
文档编号H04L7/033GK103051441SQ20131002465
公开日2013年4月17日 申请日期2013年1月23日 优先权日2013年1月23日
发明者任永顺, 吕燕, 杨隽 申请人:和记奥普泰通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1