一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于FPGA的数据采样时钟沿自适应系统和方法与流程

2022-04-02 04:11:53 来源:中国专利 TAG:

基于fpga的数据采样时钟沿自适应系统和方法
技术领域
1.本发明涉及通信技术领域,尤其是涉及基于fpga的数据采样时钟沿自适应系统和方法。


背景技术:

2.v35是一种远程同步接口,支持的数据传输速率高达6mbps,经常用于端对端设备的通信。常用的v35接口通信过程如图1所示,包括fpga和v35电平转换芯片。本端设备接收来自对端设备发送的数据,对端设备在发送数据时,可以用发送时钟的上升沿或下降沿送出数据。对端设备的fpga输出接口,输出时钟和数据最终到达本端设备fpga输入接口,其时钟和数据要经过pcb板间走线和v35电平转换芯片,以及设备与设备之间的连接线,这会导致图1中输出接口处的时钟/数据相位和输入接口处的时钟/数据相位发生变化,并且整个时钟/数据路径的延迟无法精确估计,这导致本端设备在fpga采样数据时,时钟/数据不满足建立时间与保持时间的时序要求,从而采集到错误的数据。
3.目前采用的方法为:本端设备采用与对端设备发送数据相反的时钟沿采样数据。具体为,图1中输出接口发送数据时,采用发送时钟的上升沿,图1中输入接口采样数据时,采用接收时钟的下降沿;或者图1中输出接口发送数据时采用发送时钟的下降沿,图1中输入接口采样数据时采用接收时钟的上升沿。这种方式的缺点是需要根据对端设备采用的时钟沿来人为切换本端设备数据采用的时钟沿,其根本问题是本端设备不能自适应选择合适的时钟沿完成数据采样。


技术实现要素:

4.有鉴于此,本发明的目的在于提供基于fpga的数据采样时钟沿自适应系统和方法,通过自适应的方式对数据采样选取需求时钟沿,解决v35接口因时钟和数据的板间延迟导致采样不稳定的问题。
5.第一方面,本发明实施例提供了基于fpga的数据采样时钟沿自适应系统,所述系统包括本端设备,所述本端设备包括第一v35电平转换芯片和第一fpga,所述第一fpga包括锁相环;所述第一v35电平转换芯片和所述第一fpga相连接;所述第一v35电平转换芯片,用于完成所述本端设备接收数据的电平转换;所述第一fpga,用于通过所述锁相环得到高频时钟信号,根据所述高频时钟信号统计所述接收数据的电平跳变与时钟沿跳变之间的相位差;将所述相位差与第一高频时钟脉冲个数进行比较;根据比较结果选取需求时钟沿进行数据采样,得到第一串行数据;将所述第一串行数据转换成第一并行数据。
6.进一步的,所述第一fpga还包括第一时钟沿/数据电平跳变相位检测模块;所述第一时钟沿/数据电平跳变相位检测模块,用于当所述接收数据的电平跳变时,将第一计数器设置为0;
在所述高频时钟信号下,当检测到接收时钟的上升沿时,得到所述第一计数器的第一数值;当检测到所述接收时钟的下降沿时,得到所述第一计数器的第二数值。
7.进一步的,所述第一高频时钟脉冲个数通过以下方式获取:通过所述高频时钟信号统计接收时钟在一个周期内的高频时钟脉冲个数。
8.进一步的,所述第一fpga还包括第一时钟沿仲裁模块;所述第一时钟沿仲裁模块,用于将第一数值与第二数值进行比较,如果所述第一数值小于所述第二数值,则将所述第一数值赋值第一变量;如果所述第二数值小于所述第一数值,则将所述第二数值赋值第二变量。
9.进一步的,所述第一时钟沿仲裁模块,用于根据所述第一高频时钟脉冲个数得到第二高频时钟脉冲个数和第三高频时钟脉冲个数;当所述第二变量大于所述第三高频时钟脉冲个数时,选取下降沿作为所述需求时钟沿;当所述第二变量小于所述第二高频时钟脉冲个数时,选取上升沿作为所述需求时钟沿;当所述第二变量大于所述第二高频时钟脉冲个数并且小于所述第三高频时钟脉冲个数时,保持当前采样时钟沿不发生变化;当所述第一变量大于所述第三高频时钟脉冲个数时,选取所述上升沿作为所述需求时钟沿;当所述第一变量小于所述第二高频时钟脉冲个数时,选取所述下降沿作为所述需求时钟沿;当所述第一变量大于所述第二高频时钟脉冲个数并且小于所述第三高频时钟脉冲个数时,保持所述当前采样时钟沿不发生变化;其中,所述第二高频时钟脉冲个数等于所述第一高频时钟脉冲个数/8,所述第三高频时钟脉冲个数等于3*所述第一高频时钟脉冲个数/8。
10.进一步的,所述第一fpga还包括第一串并转换接收模块;所述第一串并转换接收模块,用于将所述第一串行数据转换成所述第一并行数据;其中,所述第一串行数据为单比特数据,所述第一并行数据为8比特数据或16比特数据。
11.进一步的,所述第一fpga还包括第一接收数据缓存模块、第一发送数据缓存模块、第一并串转换发送单元和第一cpu;所述第一接收数据缓存模块,用于将所述第一并行数据缓存到所述第一fpga的内部缓存或外部缓存,并将所述第一并行数据发送给所述第一cpu;所述第一发送数据缓存模块,用于将所述第一cpu发送的第二并行数据缓存到所述内部缓存或所述外部缓存中;所述第一并串转换发送单元,用于将所述第二并行数据转化为第二串行数据,并将所述第二串行数据通过所述第一v35电平转换芯片发送给所述对端设备。
12.第二方面,本发明实施例提供了基于fpga的数据采样时钟沿自适应方法,应用于
如上所述的基于fpga的数据采样时钟沿自适应系统,所述系统包括本端设备,所述本端设备包括第一v35电平转换芯片和第一fpga,所述第一fpga包括锁相环;所述方法包括:通过所述第一v35电平转换芯片完成所述本端设备接收数据的电平转换;通过所述锁相环得到高频时钟信号,根据所述高频时钟信号统计所述接收数据的电平跳变与时钟沿跳变之间的相位差;将所述相位差与第一高频时钟脉冲个数进行比较;根据比较结果选取需求时钟沿进行数据采样,得到第一串行数据;将所述第一串行数据转换成第一并行数据。
13.进一步的,所述第一fpga还包括第一时钟沿/数据电平跳变相位检测模块;所述根据所述高频时钟信号统计所述接收数据的电平跳变与时钟沿跳变之间的相位差,包括:当所述接收数据的电平跳变时,通过所述第一时钟沿/数据电平跳变相位检测模块,将第一计数器设置为0;在所述高频时钟信号下,当检测到接收时钟的上升沿时,得到所述第一计数器的第一数值;当检测到所述接收时钟的下降沿时,得到所述第一计数器的第二数值。
14.进一步的,所述第一高频时钟脉冲个数通过以下方式获取:通过所述高频时钟信号统计接收时钟在一个周期内的高频时钟脉冲个数。
15.本发明实施例提供了基于fpga的数据采样时钟沿自适应系统和方法,该系统包括本端设备,本端设备包括第一v35电平转换芯片和第一fpga,第一fpga包括锁相环;第一v35电平转换芯片和第一fpga相连接;第一v35电平转换芯片用于完成本端设备接收数据的电平转换;第一fpga用于通过锁相环得到高频时钟信号,根据高频时钟信号统计接收数据的电平跳变与时钟沿跳变之间的相位差;将相位差与第一高频时钟脉冲个数进行比较;根据比较结果选取需求时钟沿进行数据采样,得到第一串行数据;将第一串行数据转换成第一并行数据;通过自适应的方式对数据采样选取需求时钟沿,解决v35接口因时钟和数据的板间延迟导致采样不稳定的问题。
16.本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
17.为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
18.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1为常用v35接口通信过程示意图;图2为本发明实施例一提供的基于fpga的数据采样时钟沿自适应系统示意图;图3为本发明实施例一提供的另一基于fpga的数据采样时钟沿自适应系统示意
output,先进先出)或ram(random access memory,随机存取存储器),外部缓存为ddr(double data rate,双倍速率同步动态随机存储器),通过spi(serial peripheral interface,串行外围设备接口)、网口或usb(universal serial bus,通用串行总线)等将第一并行数据发送给第一cpu;第一发送数据缓存模块,用于将第一cpu发送的第二并行数据缓存到内部缓存或外部缓存中;这里,第一发送数据缓存模块缓存从cpu下发的第二并行数据(通过spi、网口或usb等),缓存到第一fpga内部缓存或外部缓存中;其中,第二并行数据为并行数据8比特数据或16比特数据;第一并串转换发送单元,用于将第二并行数据转化为第二串行数据,并将第二串行数据通过第一v35电平转换芯片发送给对端设备。
27.通过上述过程,本端设备与对端设备通过v35接口实现互相通信。本技术针对v35接口通信过程,在第一串并转换接收模块前增加第一时钟沿/数据电平跳变相位检测模块,以及第一时钟沿仲裁模块,选择出合适的时钟沿以使第一串并转换接收模块采集到正确的数据。
28.另外,参照图3,对端设备包括第二v35电平转换芯片和第二fpga,第二fpga包括第二时钟沿/数据电平跳变相位检测模块、第二时钟沿仲裁模块、第二串并转换接收模块、第二接收数据缓存模块、第二发送数据缓存模块、第二并串转换发送单元和第二cpu。
29.本端设备和对端设备的数据处理过程是一样的。本端设备可以接收对端设备发送的数据,同时本端设备也可以发送给对端设备接收。本端设备的接收与对端设备的接收过程是一样的,同样本端设备的发送与对端设备的发送也是一样的,在此不作赘述。
30.进一步的,参照图4,第一fpga还包括第一时钟沿/数据电平跳变相位检测模块;第一时钟沿/数据电平跳变相位检测模块,用于当接收数据的电平跳变时,将第一计数器设置为0;在高频时钟信号下,当检测到接收时钟的上升沿时,得到第一计数器的第一数值;当检测到接收时钟的下降沿时,得到第一计数器的第二数值。
31.进一步的,第一高频时钟脉冲个数通过以下方式获取:通过高频时钟信号统计接收时钟在一个周期内的高频时钟脉冲个数。
32.这里,利用第一fpga的锁相环(pll)倍频功能,得到高频时钟信号,使高频时钟信号的时钟频率大于或等于10倍的接收时钟频率的最大值。例如:锁相环输入可以为27m晶振输入时钟,由fpga锁相环(pll)倍频3倍可以输出81m高频率时钟。其中,接收时钟频率可以在本端设备中统计出来,在1s时间内,通过计数有多少个接收时钟上的上升沿,该值就是接收时钟频率。
33.通过高频时钟信号来统计接收数据电平跳变与接收时钟上升沿之间的高频时钟脉冲个数count_p,以及统计接收数据电平跳变与接收时钟下降沿之间的高频时钟脉冲个数count_n。count_p以及count_n可以通过第一计数器c1来完成。
34.第一计数器c1由高频时钟驱动,当检测到接收数据电平跳变时,使第一计数器c1置0,第一计数器c1重新计数。当检测到接收时钟上升沿时,此时计数值是count_p;当检测到接收时钟下降沿时,此时计数值是count_n。
35.具体地,参照图5,在箭头标号1处:接收数据有跳变,即从高电平跳到低电平或从低电平跳到高电平;在箭头标号2处:在高频时钟信号下,检测到接收数据有跳变,第一计数器c1清0,并且每个高频时钟信号的上升沿都会加1;在箭头标号3处:在高频时钟信号下,检测到接收时钟下降沿,此时第一计数器c1的值为count_n,即count_n为3;在箭头标号4处:在高频时钟信号下,检测到接收时钟上升沿,此时第一计数器c1的值为count_p,count_p为8;在箭头标号5处:在高频时钟信号下,检测到接收数据有跳变,第一计数器c1清0,并且每个高频时钟信号的上升沿都会加1。
36.用高频时钟信号统计接收时钟一个周期内,高频时钟脉冲个数clk_count,即可以通过高频时钟信号驱动第二计数器c2来完成,通过累加计数方式得到接收时钟一个周期内所包含的高频时钟脉冲个数。其中,一个时钟周期,就是从一个时钟上升沿/下降沿到下一个时钟的上升沿/下降沿所用的时间。参照图6,在箭头标号1处:在高频时钟信号下,检测到接收时钟有上升沿,第二计数器c2清0,并且每个高速时钟信号的上升沿都会加1;在箭头标号2处:一个接收时钟周期内共有10个高速时钟周期;在箭头标号3处:在高频时钟信号下,检测到接收时钟有上升沿,此时第二计数器再次清0。
37.进一步的,第一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代表了时钟沿信息。
38.进一步的,第一时钟沿仲裁模块,用于根据第一高频时钟脉冲个数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。
39.现有的技术在v35接口通信中,特别是接收过程中,需要人为判断选择上升沿采样
还是选择下降沿采样,这种判断过程往往会使导致结果不准确。而本技术可以实现v35接收采样时钟沿的自适应选择,不管对端设备采用上升沿还是下降沿发出数据,接收端都可以自适应选择需求时钟沿,从而稳定的采集数据。
40.本发明实施例提供了基于fpga的数据采样时钟沿自适应系统,包括本端设备,本端设备包括第一v35电平转换芯片和第一fpga,第一fpga包括锁相环;第一v35电平转换芯片和第一fpga相连接;第一v35电平转换芯片用于完成本端设备接收数据的电平转换;第一fpga用于通过锁相环得到高频时钟信号,根据高频时钟信号统计接收数据的电平跳变与时钟沿跳变之间的相位差;将相位差与第一高频时钟脉冲个数进行比较;根据比较结果选取需求时钟沿进行数据采样,得到第一串行数据;将第一串行数据转换成第一并行数据;通过自适应的方式对数据采样选取需求时钟沿,解决v35接口因时钟和数据的板间延迟导致采样不稳定的问题。
41.实施例二:图9为本发明实施例二提供的基于fpga的数据采样时钟沿自适应方法流程图。
42.参照图9,应用于如上所述的基于fpga的数据采样时钟沿自适应系统,系统包括本端设备,本端设备包括第一v35电平转换芯片和第一fpga,第一fpga包括锁相环;该方法包括以下步骤:步骤s101,通过第一v35电平转换芯片完成本端设备接收数据的电平转换;步骤s102,通过锁相环得到高频时钟信号,根据高频时钟信号统计接收数据的电平跳变与时钟沿跳变之间的相位差;步骤s103,将相位差与第一高频时钟脉冲个数进行比较;步骤s104,根据比较结果选取需求时钟沿进行数据采样,得到第一串行数据;步骤s105,将第一串行数据转换成第一并行数据。
43.进一步的,第一fpga还包括第一时钟沿/数据电平跳变相位检测模块;步骤s102包括以下步骤:步骤s201,当接收数据的电平跳变时,通过第一时钟沿/数据电平跳变相位检测模块,将第一计数器设置为0;步骤s202,在高频时钟信号下,当检测到接收时钟的上升沿时,得到第一计数器的第一数值;步骤s203,当检测到接收时钟的下降沿时,得到第一计数器的第二数值。
44.进一步的,第一高频时钟脉冲个数通过以下方式获取:通过高频时钟信号统计接收时钟在一个周期内的高频时钟脉冲个数。
45.本技术通过检测时钟上升沿或下降沿与接收数据高低电平跳变时相位的相对关系,以及根据时钟沿与接收数据相位的相对关系自动判断数据采样使用时钟上升沿或下降沿。本技术主要通过自适应的方式对数据采样选择合适的时钟沿,解决v35接口因时钟和数据的板间延迟导致采样不稳定的问题。
46.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
47.另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可
以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
48.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
49.在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
50.最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献