CN114265811B - 基于fpga的数据采样时钟沿自适应系统和方法 - Google Patents
基于fpga的数据采样时钟沿自适应系统和方法 Download PDFInfo
- Publication number
- CN114265811B CN114265811B CN202210200537.7A CN202210200537A CN114265811B CN 114265811 B CN114265811 B CN 114265811B CN 202210200537 A CN202210200537 A CN 202210200537A CN 114265811 B CN114265811 B CN 114265811B
- Authority
- CN
- China
- Prior art keywords
- data
- edge
- clock
- frequency clock
- fpga
- 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.)
- Active
Links
Images
Abstract
本发明提供了基于FPGA的数据采样时钟沿自适应系统和方法,该系统包括本端设备,本端设备包括第一V35电平转换芯片和第一FPGA,第一FPGA包括锁相环;第一V35电平转换芯片和第一FPGA相连接;第一V35电平转换芯片用于完成本端设备接收数据的电平转换;第一FPGA用于通过锁相环得到高频时钟信号,根据高频时钟信号统计接收数据的电平跳变与时钟沿跳变之间的相位差;将相位差与第一高频时钟脉冲个数进行比较;根据比较结果选取需求时钟沿进行数据采样,得到第一串行数据;将第一串行数据转换成第一并行数据;通过自适应的方式对数据采样选取需求时钟沿,解决V35接口因时钟和数据的板间延迟导致采样不稳定的问题。
Description
技术领域
本发明涉及通信技术领域,尤其是涉及基于FPGA的数据采样时钟沿自适应系统和方法。
背景技术
V35是一种远程同步接口,支持的数据传输速率高达6Mbps,经常用于端对端设备的通信。常用的V35接口通信过程如图1所示,包括FPGA和V35电平转换芯片。本端设备接收来自对端设备发送的数据,对端设备在发送数据时,可以用发送时钟的上升沿或下降沿送出数据。对端设备的FPGA输出接口,输出时钟和数据最终到达本端设备FPGA输入接口,其时钟和数据要经过PCB板间走线和V35电平转换芯片,以及设备与设备之间的连接线,这会导致图1中输出接口处的时钟/数据相位和输入接口处的时钟/数据相位发生变化,并且整个时钟/数据路径的延迟无法精确估计,这导致本端设备在FPGA采样数据时,时钟/数据不满足建立时间与保持时间的时序要求,从而采集到错误的数据。
目前采用的方法为:本端设备采用与对端设备发送数据相反的时钟沿采样数据。具体为,图1中输出接口发送数据时,采用发送时钟的上升沿,图1中输入接口采样数据时,采用接收时钟的下降沿;或者图1中输出接口发送数据时采用发送时钟的下降沿,图1中输入接口采样数据时采用接收时钟的上升沿。这种方式的缺点是需要根据对端设备采用的时钟沿来人为切换本端设备数据采用的时钟沿,其根本问题是本端设备不能自适应选择合适的时钟沿完成数据采样。
发明内容
有鉴于此,本发明的目的在于提供基于FPGA的数据采样时钟沿自适应系统和方法,通过自适应的方式对数据采样选取需求时钟沿,解决V35接口因时钟和数据的板间延迟导致采样不稳定的问题。
第一方面,本发明实施例提供了基于FPGA的数据采样时钟沿自适应系统,所述系统包括本端设备,所述本端设备包括第一V35电平转换芯片和第一FPGA,所述第一FPGA包括锁相环;
所述第一V35电平转换芯片和所述第一FPGA相连接;
所述第一V35电平转换芯片,用于完成所述本端设备接收数据的电平转换;
所述第一FPGA,用于通过所述锁相环得到高频时钟信号,根据所述高频时钟信号统计所述接收数据的电平跳变与时钟沿跳变之间的相位差;将所述相位差与第一高频时钟脉冲个数进行比较;根据比较结果选取需求时钟沿进行数据采样,得到第一串行数据;将所述第一串行数据转换成第一并行数据。
进一步的,所述第一FPGA还包括第一时钟沿/数据电平跳变相位检测模块;
所述第一时钟沿/数据电平跳变相位检测模块,用于当所述接收数据的电平跳变时,将第一计数器设置为0;
在所述高频时钟信号下,当检测到接收时钟的上升沿时,得到所述第一计数器的第一数值;
当检测到所述接收时钟的下降沿时,得到所述第一计数器的第二数值。
进一步的,所述第一高频时钟脉冲个数通过以下方式获取:
通过所述高频时钟信号统计接收时钟在一个周期内的高频时钟脉冲个数。
进一步的,所述第一FPGA还包括第一时钟沿仲裁模块;
所述第一时钟沿仲裁模块,用于将第一数值与第二数值进行比较,如果所述第一数值小于所述第二数值,则将所述第一数值赋值第一变量;如果所述第二数值小于所述第一数值,则将所述第二数值赋值第二变量。
进一步的,所述第一时钟沿仲裁模块,用于根据所述第一高频时钟脉冲个数得到第二高频时钟脉冲个数和第三高频时钟脉冲个数;
当所述第二变量大于所述第三高频时钟脉冲个数时,选取下降沿作为所述需求时钟沿;
当所述第二变量小于所述第二高频时钟脉冲个数时,选取上升沿作为所述需求时钟沿;
当所述第二变量大于所述第二高频时钟脉冲个数并且小于所述第三高频时钟脉冲个数时,保持当前采样时钟沿不发生变化;
当所述第一变量大于所述第三高频时钟脉冲个数时,选取所述上升沿作为所述需求时钟沿;
当所述第一变量小于所述第二高频时钟脉冲个数时,选取所述下降沿作为所述需求时钟沿;
当所述第一变量大于所述第二高频时钟脉冲个数并且小于所述第三高频时钟脉冲个数时,保持所述当前采样时钟沿不发生变化;
其中,所述第二高频时钟脉冲个数等于所述第一高频时钟脉冲个数/8,所述第三高频时钟脉冲个数等于3*所述第一高频时钟脉冲个数/8。
进一步的,所述第一FPGA还包括第一串并转换接收模块;
所述第一串并转换接收模块,用于将所述第一串行数据转换成所述第一并行数据;
其中,所述第一串行数据为单比特数据,所述第一并行数据为8比特数据或16比特数据。
进一步的,所述第一FPGA还包括第一接收数据缓存模块、第一发送数据缓存模块、第一并串转换发送单元和第一CPU;
所述第一接收数据缓存模块,用于将所述第一并行数据缓存到所述第一FPGA的内部缓存或外部缓存,并将所述第一并行数据发送给所述第一CPU;
所述第一发送数据缓存模块,用于将所述第一CPU发送的第二并行数据缓存到所述内部缓存或所述外部缓存中;
所述第一并串转换发送单元,用于将所述第二并行数据转化为第二串行数据,并将所述第二串行数据通过所述第一V35电平转换芯片发送给所述对端设备。
第二方面,本发明实施例提供了基于FPGA的数据采样时钟沿自适应方法,应用于如上所述的基于FPGA的数据采样时钟沿自适应系统,所述系统包括本端设备,所述本端设备包括第一V35电平转换芯片和第一FPGA,所述第一FPGA包括锁相环;所述方法包括:
通过所述第一V35电平转换芯片完成所述本端设备接收数据的电平转换;
通过所述锁相环得到高频时钟信号,根据所述高频时钟信号统计所述接收数据的电平跳变与时钟沿跳变之间的相位差;
将所述相位差与第一高频时钟脉冲个数进行比较;
根据比较结果选取需求时钟沿进行数据采样,得到第一串行数据;
将所述第一串行数据转换成第一并行数据。
进一步的,所述第一FPGA还包括第一时钟沿/数据电平跳变相位检测模块;所述根据所述高频时钟信号统计所述接收数据的电平跳变与时钟沿跳变之间的相位差,包括:
当所述接收数据的电平跳变时,通过所述第一时钟沿/数据电平跳变相位检测模块,将第一计数器设置为0;
在所述高频时钟信号下,当检测到接收时钟的上升沿时,得到所述第一计数器的第一数值;
当检测到所述接收时钟的下降沿时,得到所述第一计数器的第二数值。
进一步的,所述第一高频时钟脉冲个数通过以下方式获取:
通过所述高频时钟信号统计接收时钟在一个周期内的高频时钟脉冲个数。
本发明实施例提供了基于FPGA的数据采样时钟沿自适应系统和方法,该系统包括本端设备,本端设备包括第一V35电平转换芯片和第一FPGA,第一FPGA包括锁相环;第一V35电平转换芯片和第一FPGA相连接;第一V35电平转换芯片用于完成本端设备接收数据的电平转换;第一FPGA用于通过锁相环得到高频时钟信号,根据高频时钟信号统计接收数据的电平跳变与时钟沿跳变之间的相位差;将相位差与第一高频时钟脉冲个数进行比较;根据比较结果选取需求时钟沿进行数据采样,得到第一串行数据;将第一串行数据转换成第一并行数据;通过自适应的方式对数据采样选取需求时钟沿,解决V35接口因时钟和数据的板间延迟导致采样不稳定的问题。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为常用V35接口通信过程示意图;
图2为本发明实施例一提供的基于FPGA的数据采样时钟沿自适应系统示意图;
图3为本发明实施例一提供的另一基于FPGA的数据采样时钟沿自适应系统示意图;
图4为本发明实施例一提供的第一时钟沿/数据电平跳变相位检测模块统计过程示意图;
图5为本发明实施例一提供的另一第一时钟沿/数据电平跳变相位检测模块统计过程示意图;
图6为本发明实施例一提供的高频时钟脉冲个数统计过程示意图;
图7为本发明实施例一提供的第一时钟沿仲裁模块比较选取需求时钟沿的过程示意图;
图8(a)为本发明实施例一提供的第二变量的比较选取需求时钟沿的过程示意图;
图8(b)为本发明实施例一提供的第一变量的比较选取需求时钟沿的过程示意图;
图9为本发明实施例二提供的基于FPGA的数据采样时钟沿自适应方法流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本实施例进行理解,下面对本发明实施例进行详细介绍。
实施例一:
图2为本发明实施例一提供的基于FPGA的数据采样时钟沿自适应系统示意图。
参照图2,该系统包括本端设备,本端设备包括第一V35电平转换芯片和第一FPGA(Field Programmable Gate Array,现场可编程门阵列),第一FPGA包括锁相环;第一V35电平转换芯片和第一FPGA相连接;
第一V35电平转换芯片,用于完成本端设备接收数据的电平转换;
这里,本端设备与对端设备之间的时钟/数据线为差分电平信号,本端设备的第一FPGA 与第一V35 电平转换芯片之间时钟/数据线为单端信号。第一V35 电平转换芯片完成差分电平以及单端电平的转换功能,第一V35 电平转换芯片还可以获取对端设备的时钟信号。
第一FPGA,用于通过锁相环得到高频时钟信号,根据高频时钟信号统计接收数据的电平跳变与时钟沿跳变之间的相位差;将相位差与第一高频时钟脉冲个数进行比较;根据比较结果选取需求时钟沿进行数据采样,得到第一串行数据;将第一串行数据转换成第一并行数据。其中,相位差通过高频时钟脉冲个数来表示。
进一步的,参照图3,第一FPGA还包括第一串并转换接收模块;
第一串并转换接收模块,用于将第一串行数据转换成第一并行数据;
其中,第一串行数据为单比特数据,第一并行数据为8比特数据或16比特数据。
进一步的,第一FPGA还包括第一接收数据缓存模块、第一发送数据缓存模块、第一并串转换发送单元和第一CPU(Central Processing Unit,中央处理器);
第一接收数据缓存模块,用于将第一并行数据缓存到第一FPGA的内部缓存或外部缓存,并将第一并行数据发送给第一CPU;其中,内部缓存为FIFO(First Input FirstOutput,先进先出)或RAM(Random Access Memory,随机存取存储器),外部缓存为DDR(Double Data Rate,双倍速率同步动态随机存储器),通过SPI(Serial PeripheralInterface,串行外围设备接口)、网口或USB(Universal Serial BUS,通用串行总线)等将第一并行数据发送给第一CPU;
第一发送数据缓存模块,用于将第一CPU发送的第二并行数据缓存到内部缓存或外部缓存中;
这里,第一发送数据缓存模块缓存从CPU下发的第二并行数据(通过SPI、网口或USB等),缓存到第一FPGA内部缓存或外部缓存中;其中,第二并行数据为并行数据8比特数据或16比特数据;
第一并串转换发送单元,用于将第二并行数据转化为第二串行数据,并将第二串行数据通过第一V35电平转换芯片发送给对端设备。
通过上述过程,本端设备与对端设备通过V35接口实现互相通信。本申请针对V35接口通信过程,在第一串并转换接收模块前增加第一时钟沿/数据电平跳变相位检测模块,以及第一时钟沿仲裁模块,选择出合适的时钟沿以使第一串并转换接收模块采集到正确的数据。
另外,参照图3,对端设备包括第二V35电平转换芯片和第二FPGA,第二FPGA包括第二时钟沿/数据电平跳变相位检测模块、第二时钟沿仲裁模块、第二串并转换接收模块、第二接收数据缓存模块、第二发送数据缓存模块、第二并串转换发送单元和第二CPU。
本端设备和对端设备的数据处理过程是一样的。本端设备可以接收对端设备发送的数据,同时本端设备也可以发送给对端设备接收。本端设备的接收与对端设备的接收过程是一样的,同样本端设备的发送与对端设备的发送也是一样的,在此不作赘述。
进一步的,参照图4,第一FPGA还包括第一时钟沿/数据电平跳变相位检测模块;
第一时钟沿/数据电平跳变相位检测模块,用于当接收数据的电平跳变时,将第一计数器设置为0;
在高频时钟信号下,当检测到接收时钟的上升沿时,得到第一计数器的第一数值;
当检测到接收时钟的下降沿时,得到第一计数器的第二数值。
进一步的,第一高频时钟脉冲个数通过以下方式获取:
通过高频时钟信号统计接收时钟在一个周期内的高频时钟脉冲个数。
这里,利用第一FPGA的锁相环(PLL)倍频功能,得到高频时钟信号,使高频时钟信号的时钟频率大于或等于10倍的接收时钟频率的最大值。例如:锁相环输入可以为27M晶振输入时钟,由FPGA锁相环(PLL)倍频3倍可以输出81M高频率时钟。其中,接收时钟频率可以在本端设备中统计出来,在1s时间内,通过计数有多少个接收时钟上的上升沿,该值就是接收时钟频率。
通过高频时钟信号来统计接收数据电平跳变与接收时钟上升沿之间的高频时钟脉冲个数COUNT_P,以及统计接收数据电平跳变与接收时钟下降沿之间的高频时钟脉冲个数COUNT_N。COUNT_P以及COUNT_N可以通过第一计数器C1来完成。
第一计数器C1由高频时钟驱动,当检测到接收数据电平跳变时,使第一计数器C1置0,第一计数器C1重新计数。当检测到接收时钟上升沿时,此时计数值是COUNT_P;当检测到接收时钟下降沿时,此时计数值是COUNT_N。
具体地,参照图5,在箭头标号1处:接收数据有跳变,即从高电平跳到低电平或从低电平跳到高电平;在箭头标号2处:在高频时钟信号下,检测到接收数据有跳变,第一计数器C1清0,并且每个高频时钟信号的上升沿都会加1;在箭头标号3处:在高频时钟信号下,检测到接收时钟下降沿,此时第一计数器C1的值为COUNT_N,即COUNT_N为3;在箭头标号4处:在高频时钟信号下,检测到接收时钟上升沿,此时第一计数器C1的值为COUNT_P,COUNT_P为8;在箭头标号5处:在高频时钟信号下,检测到接收数据有跳变,第一计数器C1清0,并且每个高频时钟信号的上升沿都会加1。
用高频时钟信号统计接收时钟一个周期内,高频时钟脉冲个数CLK_COUNT,即可以通过高频时钟信号驱动第二计数器C2来完成,通过累加计数方式得到接收时钟一个周期内所包含的高频时钟脉冲个数。其中,一个时钟周期,就是从一个时钟上升沿/下降沿到下一个时钟的上升沿/下降沿所用的时间。参照图6,在箭头标号1处:在高频时钟信号下,检测到接收时钟有上升沿,第二计数器C2清0,并且每个高速时钟信号的上升沿都会加1;在箭头标号2处:一个接收时钟周期内共有10个高速时钟周期;在箭头标号3处:在高频时钟信号下,检测到接收时钟有上升沿,此时第二计数器再次清0。
进一步的,第一FPGA还包括第一时钟沿仲裁模块;
第一时钟沿仲裁模块,用于将第一数值COUNT_P与第二数值COUNT_N进行比较,如果第一数值COUNT_P小于第二数值COUNT_N,则将第一数值COUNT_P赋值第一变量COUNT_MIN_P;如果第二数值COUNT_N小于第一数值COUNT_P,则将第二数值赋值第二变量COUNT_MIN_N。具体参照图7,从接收数据跳变后,到接收时钟上升沿的距离是COUNT_P;从接收数据跳变后,到接收时钟下降沿的距离是COUNT_N。比较两者大小并取两者最小值,就是比较接收数据跳变后,到接收时钟上升沿还是到下降沿的距离近。取距离近的为COUNT_MIN_N或COUNT_MIN_P;其中,N/P代表了时钟沿信息。
进一步的,第一时钟沿仲裁模块,用于根据第一高频时钟脉冲个数CLK_COUNT得到第二高频时钟脉冲个数CLK_COUNT/8和第三高频时钟脉冲个数3*CLK_COUNT/8;
参照图8(a),当第二变量COUNT_MIN_N大于第三高频时钟脉冲个数3*CLK_COUNT/8时,选取下降沿作为需求时钟沿;
当第二变量COUNT_MIN_N小于第二高频时钟脉冲个数CLK_COUNT/8时,选取上升沿作为需求时钟沿;
当第二变量COUNT_MIN_N大于第二高频时钟脉冲个数CLK_COUNT/8并且小于第三高频时钟脉冲个数3*CLK_COUNT/8时,保持当前采样时钟沿不发生变化;
参照图8(b),当第一变量COUNT_MIN_P大于第三高频时钟脉冲个数3*CLK_COUNT/8时,选取上升沿作为需求时钟沿;
当第一变量COUNT_MIN_P小于第二高频时钟脉冲个数CLK_COUNT/8时,选取下降沿作为需求时钟沿;
当第一变量COUNT_MIN_P大于第二高频时钟脉冲个数CLK_COUNT/8并且小于第三高频时钟脉冲个数3*CLK_COUNT/8时,保持当前采样时钟沿不发生变化;
其中,第二高频时钟脉冲个数等于第一高频时钟脉冲个数/8,第三高频时钟脉冲个数等于3*第一高频时钟脉冲个数/8。
现有的技术在V35接口通信中,特别是接收过程中,需要人为判断选择上升沿采样还是选择下降沿采样,这种判断过程往往会使导致结果不准确。而本申请可以实现V35接收采样时钟沿的自适应选择,不管对端设备采用上升沿还是下降沿发出数据,接收端都可以自适应选择需求时钟沿,从而稳定的采集数据。
本发明实施例提供了基于FPGA的数据采样时钟沿自适应系统,包括本端设备,本端设备包括第一V35电平转换芯片和第一FPGA,第一FPGA包括锁相环;第一V35电平转换芯片和第一FPGA相连接;第一V35电平转换芯片用于完成本端设备接收数据的电平转换;第一FPGA用于通过锁相环得到高频时钟信号,根据高频时钟信号统计接收数据的电平跳变与时钟沿跳变之间的相位差;将相位差与第一高频时钟脉冲个数进行比较;根据比较结果选取需求时钟沿进行数据采样,得到第一串行数据;将第一串行数据转换成第一并行数据;通过自适应的方式对数据采样选取需求时钟沿,解决V35接口因时钟和数据的板间延迟导致采样不稳定的问题。
实施例二:
图9为本发明实施例二提供的基于FPGA的数据采样时钟沿自适应方法流程图。
参照图9,应用于如上所述的基于FPGA的数据采样时钟沿自适应系统,系统包括本端设备,本端设备包括第一V35电平转换芯片和第一FPGA,第一FPGA包括锁相环;该方法包括以下步骤:
步骤S101,通过第一V35电平转换芯片完成本端设备接收数据的电平转换;
步骤S102,通过锁相环得到高频时钟信号,根据高频时钟信号统计接收数据的电平跳变与时钟沿跳变之间的相位差;
步骤S103,将相位差与第一高频时钟脉冲个数进行比较;
步骤S104,根据比较结果选取需求时钟沿进行数据采样,得到第一串行数据;
步骤S105,将第一串行数据转换成第一并行数据。
进一步的,第一FPGA还包括第一时钟沿/数据电平跳变相位检测模块;步骤S102包括以下步骤:
步骤S201,当接收数据的电平跳变时,通过第一时钟沿/数据电平跳变相位检测模块,将第一计数器设置为0;
步骤S202,在高频时钟信号下,当检测到接收时钟的上升沿时,得到第一计数器的第一数值;
步骤S203,当检测到接收时钟的下降沿时,得到第一计数器的第二数值。
进一步的,第一高频时钟脉冲个数通过以下方式获取:
通过高频时钟信号统计接收时钟在一个周期内的高频时钟脉冲个数。
本申请通过检测时钟上升沿或下降沿与接收数据高低电平跳变时相位的相对关系,以及根据时钟沿与接收数据相位的相对关系自动判断数据采样使用时钟上升沿或下降沿。本申请主要通过自适应的方式对数据采样选择合适的时钟沿,解决V35接口因时钟和数据的板间延迟导致采样不稳定的问题。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (4)
1.一种基于FPGA的数据采样时钟沿自适应系统,其特征在于,所述系统包括本端设备,所述本端设备包括第一V35电平转换芯片和第一FPGA,所述第一FPGA包括锁相环;
所述第一V35电平转换芯片和所述第一FPGA相连接;
所述第一V35电平转换芯片,用于完成所述本端设备接收数据的电平转换;
所述第一FPGA,用于通过所述锁相环得到高频时钟信号,根据所述高频时钟信号统计所述接收数据的电平跳变与时钟沿跳变之间的相位差;将所述相位差与第一高频时钟脉冲个数进行比较;根据比较结果选取需求时钟沿进行数据采样,得到第一串行数据;将所述第一串行数据转换成第一并行数据;
所述第一FPGA还包括第一时钟沿/数据电平跳变相位检测模块;
所述第一时钟沿/数据电平跳变相位检测模块,用于当所述接收数据的电平跳变时,将第一计数器设置为0;
在所述高频时钟信号下,当检测到接收时钟的上升沿时,得到所述第一计数器的第一数值;
当检测到所述接收时钟的下降沿时,得到所述第一计数器的第二数值;
所述第一高频时钟脉冲个数通过以下方式获取:
通过所述高频时钟信号统计接收时钟在一个周期内的高频时钟脉冲个数;
所述第一FPGA还包括第一时钟沿仲裁模块;
所述第一时钟沿仲裁模块,用于将所述第一数值与所述第二数值进行比较,如果所述第一数值小于所述第二数值,则将所述第一数值赋值第一变量,根据所述第一变量进行时钟沿的选择;如果所述第二数值小于所述第一数值,则将所述第二数值赋值第二变量,根据所述第二变量进行所述时钟沿的选择;
所述第一时钟沿仲裁模块,用于根据所述第一高频时钟脉冲个数得到第二高频时钟脉冲个数和第三高频时钟脉冲个数;
当所述第二变量大于所述第三高频时钟脉冲个数时,选取下降沿作为所述需求时钟沿;
当所述第二变量小于所述第二高频时钟脉冲个数时,选取上升沿作为所述需求时钟沿;
当所述第二变量大于所述第二高频时钟脉冲个数并且小于所述第三高频时钟脉冲个数时,保持当前采样时钟沿不发生变化;
当所述第一变量大于所述第三高频时钟脉冲个数时,选取所述上升沿作为所述需求时钟沿;
当所述第一变量小于所述第二高频时钟脉冲个数时,选取所述下降沿作为所述需求时钟沿;
当所述第一变量大于所述第二高频时钟脉冲个数并且小于所述第三高频时钟脉冲个数时,保持所述当前采样时钟沿不发生变化;
其中,所述第二高频时钟脉冲个数等于所述第一高频时钟脉冲个数/8,所述第三高频时钟脉冲个数等于3*所述第一高频时钟脉冲个数/8。
2.根据权利要求1所述的基于FPGA的数据采样时钟沿自适应系统,其特征在于,所述第一FPGA还包括第一串并转换接收模块;
所述第一串并转换接收模块,用于将所述第一串行数据转换成所述第一并行数据;
其中,所述第一串行数据为单比特数据,所述第一并行数据为8比特数据或16比特数据。
3.根据权利要求1所述的基于FPGA的数据采样时钟沿自适应系统,其特征在于,所述第一FPGA还包括第一接收数据缓存模块、第一发送数据缓存模块、第一并串转换发送单元和第一CPU;
所述第一接收数据缓存模块,用于将所述第一并行数据缓存到所述第一FPGA的内部缓存或外部缓存,并将所述第一并行数据发送给所述第一CPU;
所述第一发送数据缓存模块,用于将所述第一CPU发送的第二并行数据缓存到所述内部缓存或所述外部缓存中;
所述第一并串转换发送单元,用于将所述第二并行数据转化为第二串行数据,并将所述第二串行数据通过所述第一V35电平转换芯片发送给对端设备。
4.一种基于FPGA的数据采样时钟沿自适应方法,其特征在于,应用于权利要求1至3任一项所述的基于FPGA的数据采样时钟沿自适应系统,所述系统包括本端设备,所述本端设备包括第一V35电平转换芯片和第一FPGA,所述第一FPGA包括锁相环;所述方法包括:
通过所述第一V35电平转换芯片完成所述本端设备接收数据的电平转换;
通过所述锁相环得到高频时钟信号,根据所述高频时钟信号统计所述接收数据的电平跳变与时钟沿跳变之间的相位差;
将所述相位差与第一高频时钟脉冲个数进行比较;
根据比较结果选取需求时钟沿进行数据采样,得到第一串行数据;
将所述第一串行数据转换成第一并行数据;
所述第一FPGA还包括第一时钟沿/数据电平跳变相位检测模块;
当所述接收数据的电平跳变时,所述第一时钟沿/数据电平跳变相位检测模块,将第一计数器设置为0;
在所述高频时钟信号下,当检测到接收时钟的上升沿时,得到所述第一计数器的第一数值;
当检测到所述接收时钟的下降沿时,得到所述第一计数器的第二数值;
所述第一高频时钟脉冲个数通过以下方式获取:
通过所述高频时钟信号统计接收时钟在一个周期内的高频时钟脉冲个数;
所述第一FPGA还包括第一时钟沿仲裁模块;
所述第一时钟沿仲裁模块将所述第一数值与所述第二数值进行比较,如果所述第一数值小于所述第二数值,则将所述第一数值赋值第一变量,根据所述第一变量进行时钟沿的选择;如果所述第二数值小于所述第一数值,则将所述第二数值赋值第二变量,根据所述第二变量进行所述时钟沿的选择;
所述第一时钟沿仲裁模块根据所述第一高频时钟脉冲个数得到第二高频时钟脉冲个数和第三高频时钟脉冲个数;
当所述第二变量大于所述第三高频时钟脉冲个数时,选取下降沿作为所述需求时钟沿;
当所述第二变量小于所述第二高频时钟脉冲个数时,选取上升沿作为所述需求时钟沿;
当所述第二变量大于所述第二高频时钟脉冲个数并且小于所述第三高频时钟脉冲个数时,保持当前采样时钟沿不发生变化;
当所述第一变量大于所述第三高频时钟脉冲个数时,选取所述上升沿作为所述需求时钟沿;
当所述第一变量小于所述第二高频时钟脉冲个数时,选取所述下降沿作为所述需求时钟沿;
当所述第一变量大于所述第二高频时钟脉冲个数并且小于所述第三高频时钟脉冲个数时,保持所述当前采样时钟沿不发生变化;
其中,所述第二高频时钟脉冲个数等于所述第一高频时钟脉冲个数/8,所述第三高频时钟脉冲个数等于3*所述第一高频时钟脉冲个数/8。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210200537.7A CN114265811B (zh) | 2022-03-03 | 2022-03-03 | 基于fpga的数据采样时钟沿自适应系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210200537.7A CN114265811B (zh) | 2022-03-03 | 2022-03-03 | 基于fpga的数据采样时钟沿自适应系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114265811A CN114265811A (zh) | 2022-04-01 |
CN114265811B true CN114265811B (zh) | 2022-06-17 |
Family
ID=80833780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210200537.7A Active CN114265811B (zh) | 2022-03-03 | 2022-03-03 | 基于fpga的数据采样时钟沿自适应系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114265811B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117590897A (zh) * | 2023-11-23 | 2024-02-23 | 北京国科天迅科技股份有限公司 | 芯片及芯片控制方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08139713A (ja) * | 1994-11-04 | 1996-05-31 | Fujitsu Ltd | データ送受信方式 |
CN102332975A (zh) * | 2011-06-03 | 2012-01-25 | 北京星网锐捷网络技术有限公司 | 一种接口自适应采样方法和装置 |
CN102347813A (zh) * | 2011-09-26 | 2012-02-08 | 华为技术有限公司 | 一种选取采样时钟信号的方法和设备 |
CN103986454A (zh) * | 2014-05-27 | 2014-08-13 | 瑞斯康达科技发展股份有限公司 | 一种数字数据信号的采样方法及装置 |
CN104461972A (zh) * | 2013-09-12 | 2015-03-25 | 华为技术有限公司 | 一种数据信号采样的方法和设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106154907B (zh) * | 2016-06-15 | 2018-08-14 | 北京航空航天大学 | 一种基于时间交错采样的高速高精度数据采集系统 |
CN109687867B (zh) * | 2018-11-30 | 2023-04-07 | 珠海慧联科技有限公司 | 一种无晶振usb设备时钟校准方法及校准电路 |
-
2022
- 2022-03-03 CN CN202210200537.7A patent/CN114265811B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08139713A (ja) * | 1994-11-04 | 1996-05-31 | Fujitsu Ltd | データ送受信方式 |
CN102332975A (zh) * | 2011-06-03 | 2012-01-25 | 北京星网锐捷网络技术有限公司 | 一种接口自适应采样方法和装置 |
CN102347813A (zh) * | 2011-09-26 | 2012-02-08 | 华为技术有限公司 | 一种选取采样时钟信号的方法和设备 |
CN104461972A (zh) * | 2013-09-12 | 2015-03-25 | 华为技术有限公司 | 一种数据信号采样的方法和设备 |
CN103986454A (zh) * | 2014-05-27 | 2014-08-13 | 瑞斯康达科技发展股份有限公司 | 一种数字数据信号的采样方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114265811A (zh) | 2022-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9160585B2 (en) | Data interface synchronization | |
US10313068B1 (en) | Signal monitoring and measurement for a multi-wire, multi-phase interface | |
CN114265811B (zh) | 基于fpga的数据采样时钟沿自适应系统和方法 | |
WO2020029023A1 (zh) | 波特率校准电路及串口芯片 | |
CN109257094A (zh) | 一种串行解串发送器的预加重值取值方法与装置 | |
US8331427B2 (en) | Data processing apparatus | |
US6981204B2 (en) | Programmable glitch filter for an asynchronous data communication interface | |
US20070258478A1 (en) | Methods and/or apparatus for link optimization | |
CN113656234B (zh) | 一种芯片usb模块的自测装置及自测方法 | |
CN112073152B (zh) | 一种提高chsi接收数据可靠性的fpga抗干扰处理方法 | |
CN114826542A (zh) | 基于异步串行通信的数据传输方法、装置、设备及介质 | |
CN107135182A (zh) | 调频信号的频偏计算方法及装置 | |
CN111143263A (zh) | 信号延时校准方法、系统及电子设备 | |
CN108024149B (zh) | TCON板通过单条连接线向SoC芯片传输信号的方法、TCON板及电视机 | |
CN110750479A (zh) | 基于同步422标准的数据采样方法 | |
US11341015B2 (en) | UART receiver with adaptive sample timing control using a numerically-controlled oscillator | |
CN113757932B (zh) | 空调通讯故障处理方法、装置、计算机设备及存储介质 | |
US11515900B1 (en) | Transmitter circuit | |
CN104702364A (zh) | 时钟频率调整方法及装置 | |
US11454943B2 (en) | Serial isolation communication method, device and system | |
JP7366303B1 (ja) | シリアル通信インターフェース装置 | |
US10846085B2 (en) | Multi-lane data processing circuit and system | |
CN116662137A (zh) | 一种信号质量评估方法、装置、设备及介质 | |
KR100524979B1 (ko) | 클럭신호 발생 장치 및 그 방법 | |
CN117200923A (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 |