CN113934667A - 一种基于fpga逻辑资源延时的过采样异步通信方法 - Google Patents
一种基于fpga逻辑资源延时的过采样异步通信方法 Download PDFInfo
- Publication number
- CN113934667A CN113934667A CN202111196152.XA CN202111196152A CN113934667A CN 113934667 A CN113934667 A CN 113934667A CN 202111196152 A CN202111196152 A CN 202111196152A CN 113934667 A CN113934667 A CN 113934667A
- Authority
- CN
- China
- Prior art keywords
- data
- asynchronous
- word
- oversampling
- clock
- 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.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 57
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000005070 sampling Methods 0.000 claims abstract description 31
- 230000003111 delayed effect Effects 0.000 claims abstract description 20
- 238000000605 extraction Methods 0.000 claims abstract description 18
- 238000006243 chemical reaction Methods 0.000 claims description 30
- 238000003780 insertion Methods 0.000 claims description 20
- 230000037431 insertion Effects 0.000 claims description 20
- 230000005540 biological transmission Effects 0.000 claims description 11
- 238000011084 recovery Methods 0.000 claims description 10
- 239000000835 fiber Substances 0.000 claims description 8
- 238000012360 testing method Methods 0.000 claims description 6
- 239000011159 matrix material Substances 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 10
- 230000007704 transition Effects 0.000 description 3
- 239000000203 mixture Substances 0.000 description 2
- 230000008054 signal transmission Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4072—Drivers or receivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明公开了一种基于FPGA逻辑资源延时的过采样异步通信方法,涉及电力***通信技术领域,通过采样异步通信***中的异步发送子***对需要发送的用户数据进行存储,对有数据的用户数据以数据帧格式进行编码,对编码后的数据字位转换,并对字位转换后的数据时钟***,将时钟***后的数据根据不同输出接口模式输出。同时能够通过采样异步通信***中的异步接收子***接收不同接口的串行输入数据,对串行输入数据进行延迟得到延迟后的信号,将所述延迟后的信号通过寄存器阵列输出采样值,对采样值进行位时钟提取,将提取后的串行数据换为字数据流后,对数据流分割成数据帧,则完成串行输入数据的接收。
Description
技术领域
本发明属于电力***通信技术领域,尤其涉及一种基于FPGA逻辑资源延时的过采样异步通信方法。
背景技术
电力***中***与***、设备与设备、板卡与板卡间需要各种通信手段,比如***与***或设备与设备间通过以太网通信,板卡与板卡间通过PCIE通信,设备与设备通过USB通信、低速的RS232或RS485通信等。这些通信一般基于标准的通信规约,以太网、PCIE、USB通信带宽相对较高从几百兆赫兹到几十吉兆赫兹带宽不等,但这些通信方式应用在硬件时非常复杂,需要专门的物理层芯片和协议栈以及对应的驱动程序等。RS232或RS485等硬件相对简单,设计较为容易,然而带宽仅仅只有Kbps至1--20Mbps,带宽受限。
因此,需要一种异步串行通信方法,能够应用在硬件器件少、带宽从10Mbps至100Mbps,且适合于中等带宽又不需很复杂的应用场景。
发明内容
本发明的目的在于提供一种基于FPGA逻辑资源延时的过采样异步通信方法,从而解决了现有异步通信复杂麻烦的缺点。
为实现上述目的,本发明提供了一种基于FPGA逻辑资源延时的过采样异步通信方法,包括以下步骤:
将需要发送的用户数据按设定的时序写入过采样异步通信***中的异步发送子***中,所述过采样异步通信***为基于FPGA的过采样异步通信***,所述异步发送子***对所述用户数据进行存储,并判断所述用户数据是否含有数据,若无数据,则输出空闲码;反之,若有数据,则对所述用户数据以数据帧格式进行编码,对编码后的数据进行字位转换,并对字位转换后的数据进行时钟***,将时钟***后的数据根据不同输出接口模式输出;
串行输入数据通过不同输入接口输入过采样异步通信***中的异步接收子***,所述异步接收子***对所述串行输入数据进行完成对指定乘积项的或运算得到延迟后的信号,将所述延迟后的信号通过寄存器阵列输出采样值,对所述采样值进行位时钟提取,将提取后的串行数据换为字数据流后,对所述数据流分割成数据帧,则完成所述串行输入数据的接收。
优选地,所述异步接收子***在接收数据的过程中,实时计算接收数据中的CRC来判断串行输入数据的数据帧是否存在错误。
优选地,所述异步发送子***对所述用户数据进行存储,并发出空信号,通过所述空信号判断所述用户数据是否含有数据。
优选地,所述异步发送子***对所述用户数据以数据帧格式进行编码包括以下步骤:
设定所述数据帧的发送规则;
在第一个字时钟周期发送帧头;
在第二个字时钟周期从存储的数据中读取到所述用户数据,先将第二字时钟周的初始电平设为高电平,然后依次读取后续的字时钟周期,直至读取所有用户数据;
从读取所述帧头到最后一个用户数据之间实时计算期间所有数据的CRC值;
在计算最后一个CRC值后发送空闲码;
依次将所述帧头、用户数据、CRC值、空闲码进行组合得到编码后的数据。
优选地,所述异步发送子***对编码后的数据进行字位转换包括以下步骤:
读取每一个字时钟周期的数据帧值,并按照相位高到低的方式依次每一个字时钟周期的数据帧值进行时钟移位,并依次输出得到字位转换后的数据。
优选地,所述时钟***采用双相位输出规则进行时钟载入字位转换后的数据中。
优选地,所述不同的输出接口包括:TTL、LVDS或光纤驱动器。
优选地,所述串行输入数据通过逻辑延时矩阵完成对指定乘积项的或运算得到延迟后的信号。
优选地,所述位时钟提取包括对所述采样值进行位宽测试和数据恢复。
优选地,所述异步发送子***包括依次连接的FIFO、编码模块、字位转换模块以及时钟***模块。
优选地,所述异步接收子***包括一次连接的逻辑延时阵列、采样寄存器阵列、位时钟提取阵列、字提取模块以及接收帧模块。
优选地,所述异步发送子***和异步接收子***属于同一过采样异步通信***。
优选地,所述异步发送子***和异步接收子***不属于同一过采样异步通信***。
与现有的技术相比,本发明具有如下有益效果:
本发明所提供的基于FPGA逻辑资源延时的过采样异步通信方法,通过采样异步通信***中的异步发送子***对需要发送的用户数据进行存储,并判断所述用户数据是否含有数据,若无数据,则输出空闲码;反之,若有数据,则对所述用户数据以数据帧格式进行编码,对编码后的数据进行字位转换,并对字位转换后的数据进行时钟***,将时钟***后的数据根据不同输出接口模式输出至不同的接口。同时能够通过采样异步通信***中的异步接收子***接收不同接口的串行输入数据,对所述串行输入数据进行完成对指定乘积项的或运算得到延迟后的信号,将所述延迟后的信号通过寄存器阵列输出采样值,对所述采样值进行位时钟提取,将提取后的串行数据换为字数据流后,对所述数据流分割成数据帧,则完成所述串行输入数据的接收,从而实现了异步串行通信,适用于带宽从10Mbps至100Mbps的信号传输,非常适合于中等带宽又不需很复杂的应用场景。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一个实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一种基于FPGA逻辑资源延时的过采样异步通信***框图;
图2是本发明其中一个实施例的数据帧格式示意图;
图3是本发明其中一个实施例的发送双相位数据图;
图4是本发明其中一个实施例的逻辑延时阵列示意图;
图5是本发明其中一个实施例的延时时序图;
图6是本发明其中一个实施例的采样位置获取时序图;
图7是本发明其中一个实施例的位时钟提取图;
图8是本发明其中一个实施例的接收数据相位判断真值表;
图9是本发明其中一个实施例的接收数据相位时序图;
图10是本发明其中一个实施例的帧头查找图;
图11是本发明其中一个实施例的接收用户数据帧时序图。
具体实施方式
下面结合本发明实施例中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明所提供的基于FPGA逻辑资源延时的过采样异步通信方法包括:
S1、将需要发送的用户数据按设定的时序写入过采样异步通信***中的异步发送子***中,所述过采样异步通信***中为基于FPGA的异步发送子***,所述异步发送子***对所述用户数据进行存储,并判断所述用户数据是否含有数据,若无数据,则输出空闲码;反之,若有数据,则对所述用户数据以数据帧格式进行编码,对编码后的数据进行字位转换,并对字位转换后的数据进行时钟***,将时钟***后的数据根据不同输出接口模式输出;
S2、串行输入数据通过不同输入接口输入异步接收子***,所述异步接收子***对所述串行输入数据进行完成对指定乘积项的或运算得到延迟后的信号,将所述延迟后的信号通过寄存器阵列输出采样值,对所述采样值进行位时钟提取,将提取后的串行数据换为字数据流后,对所述数据流分割成数据帧,则完成所述串行输入数据的接收。
上述的基于FPGA逻辑资源延时的过采样异步通信方法,通过采样异步通信***中的异步发送子***对需要发送的用户数据进行存储,并判断所述用户数据是否含有数据,若无数据,则输出空闲码;反之,若有数据,则对所述用户数据以数据帧格式进行编码,对编码后的数据进行字位转换,并对字位转换后的数据进行时钟***,将时钟***后的数据根据不同输出接口模式输出至不同的接口。同时能够通过采样异步通信***中的异步接收子***接收不同接口的串行输入数据,对所述串行输入数据进行完成对指定乘积项的或运算得到延迟后的信号,将所述延迟后的信号通过寄存器阵列输出采样值,对所述采样值进行位时钟提取,将提取后的串行数据换为字数据流后,对所述数据流分割成数据帧,则完成所述串行输入数据的接收,从而实现了异步串行通信,适用于带宽从10Mbps至100Mbps的信号传输,非常适合于中等带宽又不需很复杂的应用场景。
其中一个实施例,所述异步接收子***在接收数据的过程中,实时计算接收数据中的CRC来判断串行输入数据的数据帧是否存在错误。
其中一个实施例,过采样异步通信***包括依次连接的:不同输出接口、异步发送子***、PLL、异步接收子***以及不同输入接口。
所述不同的输出接口包括:TTL、LVDS或光纤驱动器。
所述异步发送子***包括依次连接的FIFO、编码模块、字位转换模块以及时钟***模块。
所述PLL为通用时钟倍频率器,按照需要的时钟频率设置输出时钟即可,可以是FPGA内部的PLL,也可以为外部PLL。
所述异步接收子***包括一次连接的逻辑延时阵列、采样寄存器阵列、位时钟提取阵列、字提取模块以及接收帧模块。
所述不同输入接口包括:TTL接收器、LVDS接收器以及光纤接收器。
当异步发送子***和异步接收子***为同一***中的不同板卡时,可以用TTL驱动器和TTL接收器配对,或LVDS驱动器和LVDS接收器配对;当异步发送子***和异步接收子***为两个独立的设备或***时,可以用LVDS驱动器和LVDS接收器,也可以用光纤驱动器或光纤接收器配对使用。
上述的过采样异步通信***,采用的硬件器件少,能够降低异步通信的成本。
其中一个实施例,步骤S1中,所述异步发送子***的FIFO对所述用户数据进行存储,并发出空信号,通过所述空信号判断所述用户数据是否含有数据。
具体的,当空信号为高电平时,则所述数据帧为无数据,即时序为无数据;当空信号为低电平时,则所述数据帧为有数据,即时序为有数据。
其中一个实施例,步骤S1中,所述异步发送子***中的编码模块对所述用户数据以数据帧格式进行编码包括以下步骤:
设定所述数据帧的发送规则;具体的,发送规则包:按照字时钟周期发送,每个字节(字)之间间隔16个时钟周期;
在第一个字时钟周期发送帧头;
在第二个字时钟周期从存储的数据中读取到所述用户数据,先将第二字时钟周的初始电平设为高电平,然后依次读取后续的字时钟周期,直至读取所有用户数据;
从读取所述帧头到最后一个用户数据之间实时计算期间所有数据的CRC值;
在计算最后一个CRC值后发送空闲码;
依次将所述帧头、用户数据、CRC值、空闲码进行组合得到编码后的数据。
其中一个实施例,步骤S1中,所述异步发送子***中的字位转换模块对编码后的数据进行字位转换包括以下步骤:
读取每一个字时钟周期的数据帧值,并按照相位高到低的方式依次每一个字时钟周期的数据帧值进行时钟移位,并依次输出得到字位转换后的数据。
其中一个实施例,步骤S1中,所述时钟***采用双相位输出规则进行时钟载入字位转换后的数据中。
具体的,包括以下步骤:
当字位转换后的数据为高相位时,则输出的数据为字位转换后的数据的相位为正180度,即相位从低电平到高电平;
当字位转换后的数据为低相位时,则输出的数据为字位转换后的数据的相位为负180度,即相位从高电平到低电平;
无字位转换后的数据是高还是低、亦或是常高或常低,则时钟***后的数据上将始终有数据跳变,跳变的最大频率为两个时钟,最小频率为一个时钟,即将发送侧的时钟载入到发送数据中。
其中一个实施例,步骤S2中,所述串行输入数据通过逻辑延时矩阵完成对指定乘积项的或运算得到延迟后的信号。
具体的,所述逻辑延时阵列包括多个逻辑资源的查找表LUT,逻辑资源的查找表LUT采用一一串联方式,一共由32组查找表LUT组构成,每个查找表LUT组有2个独立的物理位置上邻近的查找表LUT组成。查找表LUT为FPGA内部逻辑资源的基本组成单元,可以做为多输入或一输入、一输出的任一函数发生器。每组查找表LUT配置为直接输出等于输入模式。
查找表LUT在FPGA内部的物理放置方法为第一组查找表必须放置靠近串行输入数据的最近位置,采用绝对物理位置约束方式放置每个查找表LUT位置。
一个查找表LUT延时为500ps,两个查找表LUT为一组的延时为1ns,32组查找表LUT总延时为32ns。因此,当串行输入数据输入的数据时间周期为20ns时,32组查找表LUT总能找到对应的采样位置。
其中一个实施例,步骤S2中,所述位时钟提取包括对所述采样值进行位宽测试和数据恢复。
对本发明基于FPGA逻辑资源延时的过采样异步通信方法的实施例进行详细说明,以使本领域技术人员更了解本发明:
基于FPGA逻辑资源延时的过采样异步通信方法以及过采样异步通信***中:发送串行数据TX_SER_DRV的带宽定义为TX_SER_DW,单位为Mbps,发送两倍时钟TX_2X_CLK与TX_SER_DW数值相等的时钟频率值,即TX_SER_DW为100Mbps,则TX_2X_CLK即为100MHZ,因此TX_1X_CLK频率为TX_2X_CLK一半,即50MHZ。
接收串行数据RX_SER_RCV的带宽定义为RX_SER_DW,单位为100Mbps,则接收时钟RX_CLK为输入数据带宽相等,即100MHZ。
如图1所示,一种基于FPGA逻辑资源延时的过采样异步通信方法具体包括如下步骤:
步骤100,用户将需要发送数据按照一定的时序写入到FIFO中,当写入的数据信号TX_DVLD为高电平,则时序数据TX_DATA[15:0]数据将写入发送FIFO中,用户数据帧形式写入,数据帧固定帧长TX_LEN;且FIFO输出空信号TX_FIFO_EMPTY,通过空信号指示是否有数据,TX_FIFO_EMPTY为高电平,则为无数据,TX_FIFO_EMPTY为低电平,则为有数据,用以后续模块读出数据;当TX_DVLD为低电平时,则不写入数据。
步骤110,编码模块用来将用户数据按照一定的数据帧格式发送数据,具体如图2所示,一帧数据包括:帧头、用户数据、CRC字段、空闲码。帧头定义为十六进制0X0564,CRC字段为帧头和用户数据计算的CRC值,CRC字段为2个字节,当无数据发送时空闲码为常值0XFFFF。编码模块按照16bit一次发送,即按照字时钟周期发送,每个字之间的间隔为16个TX_1X_CLK时钟周期(一个时钟周期)。具体的,包括以下步骤:
步骤111,当编码模块获取TX_FIFO_EMPTY为低时,表示有用户数据需要发送,首先编码模块的第一个字时钟周期发送帧头0X0564,表示一帧数据的开始,该帧头字0X0564输出到TX_WORD_DOU,并将编码模块的TX_WORD_DVLD置高;
步骤112,在第二个字时钟周期开始从发送FIFO读出用户数据,先置第二个字时钟的初始电平TX_RD为高电平,再依次后续的字时钟周期中读出剩余的用户数据,总长度为TX_LEN。
步骤113,从帧头0X0564开始到最后一个用户数据结束,实时计算所有数据的CRC值,并在最后一个字时钟周期输出CRC值到TX_WORD_DOU。
步骤114,当一帧完成的数据输出完成后,将TX_WORD_DOU置为0XFFFF。
步骤115,依次将帧头、用户数据、CRC值、空闲码进行组合得到编码后的数据TX_WORD_DOU。
步骤120,字位转换模块在每个字时钟周期依据编码模块的TX_WORD_DLVD读取编码后的数据TX_WORD_DOU值,并按照高相位优先、最低相位最后的方式依次对每个TX_1X_CLK时钟移位操作,根据TX_1X_CLK时钟移位将TX_WORD_DOU的值依次移位输出到TX_WORD2BIT_OUT。
步骤130,如图3所示,在时钟***模块中,TX_2X_CLK为TX_1X_CLK时钟的2两倍,时钟***模块的输出数据TX_SER_DRV按照双相位输出规则进行双相位输出数据,具体的,双相位输出规则包括:当TX_WORD2BIT_OUT为高相位时,则时钟***模块的输出数据TX_SER_DRV的相位为正180度,即从低到高;当TX_WORD2BIT_OUT为低相位时,则时钟***模块的输出数据TX_SER_DRV的相位为负180度,即从高到低。因此,无论TX_WORD2BIT_OUT数据是高还是低、亦或是常高或常低,则TX_SER_DRV上将始终有数据跳变,跳变的最大频率为TX_2X_CLK,最小频率为TX_1X_CLK,即将发送侧的时钟载入到发送数据中。
步骤140,时钟***模块的输出数据TX_SER_DRV数据输出到TTL、LVDS或光纤驱动器,即发送数据完成。
步骤150,串行数据首先进入TTL、LVDS或光纤接收器,完成物理信号的转换,输出为串行输入数据RX_SER_RCV信号,该信号进入逻辑延时阵列。
步骤160,如图4所示,串行输入数据RX_SER_RCV信号进入逻辑延时阵列,逻辑延时阵列为若干个逻辑资源的查找表LUT组成,逻辑资源的查找表LUT采用一一串联方式,一共由32组查找表LUT组构成,每个查找表LUT组有2个独立的物理位置上邻近的查找表LUT组成。查找表LUT为FPGA内部逻辑资源的基本组成单元,可以做为多输入或一输入、一输出的任一函数发生器。串行输入数据RX_SER_RCV进入第一组查找表,第一组查找表输出信号RX_SER_DLY0到第二组查找表,依次连接,最后一组查找表的输出信号RX_SER_DLY31,并且每组查找表的输出信号RX_SER_DLY0--31输出到采样寄存器阵列。每组查找表LUT配置为直接输出等于输入模式。
步骤161,查找表LUT在FPGA内部的物理放置方法为第一组查找表必须放置靠近RX_SER_RCV输入信号的最近位置,采用绝对物理位置约束方式放置每个查找表LUT位置。第一组查找表的第一LUT放置在LOC_X0Y0的位置,第一组查找表第二LUT放置在LOC_X1Y0;第二组查找表必须放置在LOC_X0Y1位置,后续组查找表依次放置,最后一组查找表放置在LOC_X1Y31位置。
步骤162,如图5所示,一般一个查找表LUT延时为500ps,两个查找表LUT为一组的延时为1ns,32组查找表LUT总延时为32ns;依据步骤161的方法,每组查找表输出延时分别是RX_SER_DLY0为1ns,RX_SER_DLY1为2ns,最后一个RX_SER_DLY31为32ns;当输入信号的数据时间周期为20ns时,32组查找表LUT总能找到对应的采样位置,从而得到延迟后的信号RX_SER_DLY0--31。
步骤170,如图6所示,经过32组查找表延时后的信号RX_SER_DLY0--31进入采样寄存器阵列,该采样寄存器阵列包括32个D触发器,在接收时钟RX_CLK上升沿分别采样如上的32组查找表得到的延时后的信号,并输出32个采样值RX_SER_Q0--31。
假设输入串行输入数据RX_SER_RVC信号与RX_CLK相位为0,即同时跳变,经过步骤160的延时后,在时钟边2的输出是RX_SER_Q0--8全为高电平,其他输出RX_SER_Q10--31全为低电平。因此通过第一个高电平(RX_SER_Q0)到下一个低电平(RX_SER_Q9)即是一个脉宽值,由于每一组查找表的延时值为1ns,因此测试出延时后的信号的脉宽值为10ns;
步骤180,32个采样值RX_SER_Q0--31进入位时钟提取模块,如图7所示,位时钟提取模块包括位宽测试模块和数据恢复模块。RX_SER_Q0--31首先进入位宽测试模块,宽测试模块分析通过第一个高电平(RX_SER_Q0)到下一个低电平(RX_SER_Q9)即是一个脉宽值,由于每一组查找表的延时值为1ns,因此测试出脉宽值为10ns;并且第一个高电平(RX_SER_Q0)到下一个低电平(RX_SER_Q9)的中间值即为采样的稳定点,即稳定点可以满足采样的建立时间和保持时间要求,因此该稳定值即RX_SER_Q5,并将稳定值进行多路选择器输出到稳定采样信号RX_SER_QMUX。
步骤181,确定稳定采样信号RX_SER_QMUX后,将该稳定采样信号送至数据恢复模块,数据恢复模块对每个RX_CLK时钟采样RX_SER_QMUX信号,并将上个时钟采样值与当前时钟采样值组合得到相位真值表,如图8所示。当相位是正180度时,数据恢复模块输出串行数据恢复后的采样信号RX_SER_SAMPLE_OUT为逻辑高,相位为负180度是输出逻辑低,无变化则保持,并每两个RX_CLK时钟输出一个数据有效信号RX_SER_CLKEN指示RX_SER_SAMPLE_OUT信号有效,如图9所示。
步骤182,串行数据恢复后的采样信号RX_SER_SAMPLE_OUT、有效信号RX_SER_CLKEN进入字提取模块,字提取模块内部包括16个D触发器,第一个D触发器输入接RX_SER_SAMPLE_OUT,第一个D触发器的输出接第二D触发器输入,后续D触发器依次连接,并在RX_SER_CLKEN每个脉冲时刻进行移位输出,形成16位的移位寄存器RX_SER_SHT[15:0];移位寄存器每接收一个有效信号RX_SER_CLKEN,计数器RX_SER_CNT加1,计数器RX_SER_CNT为4位,计数值从0至15;在每个有效信号RX_SER_CLKEN时刻判断移位寄存器RX_SER_SHT[15:0]是否等于步骤101中的帧头字0X0564,当移位寄存器RX_SER_SHT[15:0]等于帧头0X0564后,并记录当前时刻的RX_SER_CNT值定义为RX_SER_CNT_HD;从获取帧头0X0564开始,每16个有效信号RX_SER_CLKEN进行计数周期,当该计数周期内的RX_SER_CNT等于RX_SER_CNT_HD时,将移位寄存器RX_SER_SHT[15:0]输出数据RX_DATA_WORD[15:0],并在RX_SER_CNT等于RX_SER_CNT_HD时输出字数据流RX_DVLD_WORD为高电偶,其他时刻保持为低电平; 即该字提取模块对串行数据恢复后的采样信号RX_SER_SAMPLE_OUT实时检查帧头,准确提起位流数据中的字分割,保证位数据流转换为字数据流,如图10。
步骤183,如图11所示,接收成帧模块将字数据流分割成用户帧数据,当字数据流RX_DVLD_WORD为高,字数据流RX_DATA_WORD[15:0]为0X0564时,输出帧起始信号RX_SOF为高,帧起始信号RX_SOF开始后,在每个字数据流RX_DLVD_WORD通过用户数据帧计数器RX_DATA_CNT加1,直到用户数据帧计数器RX_DATA_CNT等于步骤102的总长度为TX_LEN结束;从0X0564开始,持续将每个字数据流RX_DATA_WORD输出至输出数据RX_DATA上,并从帧起始信号RX_SOF开始置RX_DLVD为高,直到RX_DATA_CNT等于总长度TX_LEN为低,并在RX_DATA_CNT等于总长度TX_LEN时输出RX_EOF帧结束信号为高,指示一帧数据结束,则完成所述串行输入数据的接收。
在整个接收数据过程中,实时计算接收数据CRC确认该用户数据是否正确,并输出RX_CRC值以指示该用户数据帧是否有错误。
综上,本发明一种基于FPGA逻辑资源延时的过采样异步通信方法,只需简单的过采样异步通信***即可以传输,非常容易在***与***、设备与设备、板与板间进行异步通信。
以上所揭露的仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或变型,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种基于FPGA逻辑资源延时的过采样异步通信方法,其特征在于,包括以下步骤:
将需要发送的用户数据按设定的时序写入过采样异步通信***中的异步发送子***中,所述过采样异步通信***为基于FPGA的过采样异步通信***,所述异步发送子***对所述用户数据进行存储,并判断所述用户数据是否含有数据,若无数据,则输出空闲码;反之,若有数据,则对所述用户数据以数据帧格式进行编码,对编码后的数据进行字位转换,并对字位转换后的数据进行时钟***,将时钟***后的数据根据不同输出接口模式输出;
串行输入数据通过不同输入接口输入过采样异步通信***中的异步接收子***,所述异步接收子***对所述串行输入数据进行完成对指定乘积项的或运算得到延迟后的信号,将所述延迟后的信号通过寄存器阵列输出采样值,对所述采样值进行位时钟提取,将提取后的串行数据换为字数据流后,对所述数据流分割成数据帧,则完成所述串行输入数据的接收。
2.根据权利要求1所述的基于FPGA逻辑资源延时的过采样异步通信方法,其特征在于,所述异步接收子***在接收数据的过程中,实时计算接收数据中的CRC来判断串行输入数据的数据帧是否存在错误。
3.根据权利要求1所述的基于FPGA逻辑资源延时的过采样异步通信方法,其特征在于,所述异步发送子***对所述用户数据进行存储,并发出空信号,通过所述空信号判断所述用户数据是否含有数据。
4.根据权利要求1所述的基于FPGA逻辑资源延时的过采样异步通信方法,其特征在于,所述异步发送子***对所述用户数据以数据帧格式进行编码包括以下步骤:
设定所述数据帧的发送规则;
在第一个字时钟周期发送帧头;
在第二个字时钟周期从存储的数据中读取到所述用户数据,先将第二字时钟周的初始电平设为高电平,然后依次读取后续的字时钟周期,直至读取所有用户数据;
从读取所述帧头到最后一个用户数据之间实时计算期间所有数据的CRC值;
在计算最后一个CRC值后发送空闲码;
依次将所述帧头、用户数据、CRC值、空闲码进行组合得到编码后的数据。
5.根据权利要求1所述的基于FPGA逻辑资源延时的过采样异步通信方法,其特征在于,所述异步发送子***对编码后的数据进行字位转换包括以下步骤:
读取每一个字时钟周期的数据帧值,并按照相位高到低的方式依次每一个字时钟周期的数据帧值进行时钟移位,并依次输出得到字位转换后的数据。
6.根据权利要求1所述的基于FPGA逻辑资源延时的过采样异步通信方法,其特征在于,所述时钟***采用双相位输出规则进行时钟载入字位转换后的数据中。
7.根据权利要求1所述的基于FPGA逻辑资源延时的过采样异步通信方法,其特征在于,所述不同的输出接口包括:TTL、LVDS或光纤驱动器。
8.根据权利要求1所述的基于FPGA逻辑资源延时的过采样异步通信方法,其特征在于,所述串行输入数据通过逻辑延时矩阵完成对指定乘积项的或运算得到延迟后的信号。
9.根据权利要求1所述的基于FPGA逻辑资源延时的过采样异步通信方法,其特征在于,所述位时钟提取包括对所述采样值进行位宽测试和数据恢复。
10.根据权利要求1所述的基于FPGA逻辑资源延时的过采样异步通信方法,其特征在于,所述异步发送子***包括依次连接的FIFO、编码模块、字位转换模块以及时钟***模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111196152.XA CN113934667A (zh) | 2021-10-14 | 2021-10-14 | 一种基于fpga逻辑资源延时的过采样异步通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111196152.XA CN113934667A (zh) | 2021-10-14 | 2021-10-14 | 一种基于fpga逻辑资源延时的过采样异步通信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113934667A true CN113934667A (zh) | 2022-01-14 |
Family
ID=79279460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111196152.XA Pending CN113934667A (zh) | 2021-10-14 | 2021-10-14 | 一种基于fpga逻辑资源延时的过采样异步通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113934667A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553389A (zh) * | 2022-02-24 | 2022-05-27 | 中电科申泰信息科技有限公司 | 一种高速数据Rapidio自适应接口新型自适应验证方法 |
CN117435426A (zh) * | 2023-10-18 | 2024-01-23 | 成都观岩科技有限公司 | 一种芯片内串行数据溢出校验方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108090015A (zh) * | 2017-12-22 | 2018-05-29 | 西安烽火电子科技有限责任公司 | 一种用于多类型接口异构互联的高速串口通信方法 |
CN112749119A (zh) * | 2020-12-29 | 2021-05-04 | 无锡中微亿芯有限公司 | 一种基于fpga资源实现asi接口功能的ip核 |
CN113346978A (zh) * | 2021-05-24 | 2021-09-03 | 北京计算机技术及应用研究所 | 一种异步串行lvds高速稳定传输***及方法 |
-
2021
- 2021-10-14 CN CN202111196152.XA patent/CN113934667A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108090015A (zh) * | 2017-12-22 | 2018-05-29 | 西安烽火电子科技有限责任公司 | 一种用于多类型接口异构互联的高速串口通信方法 |
CN112749119A (zh) * | 2020-12-29 | 2021-05-04 | 无锡中微亿芯有限公司 | 一种基于fpga资源实现asi接口功能的ip核 |
CN113346978A (zh) * | 2021-05-24 | 2021-09-03 | 北京计算机技术及应用研究所 | 一种异步串行lvds高速稳定传输***及方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553389A (zh) * | 2022-02-24 | 2022-05-27 | 中电科申泰信息科技有限公司 | 一种高速数据Rapidio自适应接口新型自适应验证方法 |
CN114553389B (zh) * | 2022-02-24 | 2023-06-16 | 中电科申泰信息科技有限公司 | 一种高速数据Rapidio自适应接口新型自适应验证方法 |
CN117435426A (zh) * | 2023-10-18 | 2024-01-23 | 成都观岩科技有限公司 | 一种芯片内串行数据溢出校验方法 |
CN117435426B (zh) * | 2023-10-18 | 2024-05-07 | 成都观岩科技有限公司 | 一种芯片内串行数据溢出校验方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113934667A (zh) | 一种基于fpga逻辑资源延时的过采样异步通信方法 | |
CN102123060B (zh) | 一种基于fpga的误码测试方法 | |
CN102143023B (zh) | 一种基于fpga的误码测试*** | |
WO1988006384A1 (en) | An encoder/decoder system and methodology utilizing conservative coding with block delimiters, for serial communication | |
US20090182912A1 (en) | High Speed Serializing-Deserializing System and Method | |
CN112187789B (zh) | 一种数据链路协议转换*** | |
CN113282531B (zh) | 基于脉冲触发的二端口串行数据收发电路及方法 | |
CN111193891A (zh) | 一种基于FPGA的Camera Link数据接收***及传输方法 | |
US5412783A (en) | Method for efficient serialized transmission of handshake signal on a digital bus | |
Muzaffar et al. | A pulsed-index technique for single-channel, low-power, dynamic signaling | |
CN108809618B (zh) | 一种8b10b编码串行数据的时钟恢复方法 | |
EP2053813A2 (en) | Data transmission | |
CN110474692B (zh) | 一种光通信设备、光通信***、数据传输方法及存储介质 | |
CN116416919A (zh) | 显示控制芯片和显示控制*** | |
CN115037419B (zh) | 用于芯片测试过程中的不定长编码数据串行传输的方法 | |
CN106209292B (zh) | 一种利用过采样方法实现stm-1的sdh光接口的方法与装置 | |
CN111934707B (zh) | 数据发射代码和接口 | |
WO2023125332A1 (zh) | 数据传输电路、方法和芯片 | |
WO2023193406A1 (zh) | 探头、示波器及数字信号测试*** | |
US4964142A (en) | Receiver synchronization in encoder/decoder | |
CN111475447B (zh) | 一种基于lvds的高速串行传输的装置及数据传输方法 | |
CN104009823A (zh) | 一种SerDes技术中的错位检测与纠错电路 | |
CN114884605A (zh) | 基于fpga实现网络节点时间同步的方法 | |
Cao et al. | Working principle and application analysis of UART | |
CN113676310B (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 |