一种基于FPGA的比特流快速采样装置及方法与流程

文档序号:26997029发布日期:2021-10-19 21:41阅读:131来源:国知局
一种基于FPGA的比特流快速采样装置及方法与流程
一种基于fpga的比特流快速采样装置及方法
技术领域
1.本发明涉及数据采样技术领域,尤其涉及一种基于fpga的比特流快速采样装置及方法。


背景技术:

2.在有线通讯领域中,设备与设备之间的数据交互,为了节省成本并提高可靠性,一般采用串行通讯的方式进行,把n位比特的待传输数据转换为n比特流的方式,进行串行数据收发。一般地,比特流的发送设备,根据一个由发送设备内部或外部提供的发送时钟的锁存边沿,把发送寄存器n位的二进制数据按特定位序移位至数据线上,并进行电平锁存;比特流的接收设备,根据一个由接收设备内部或外部提供的接收时钟的采样边沿,对数据线上的电平进行采样,并锁存至接收寄存器中。通过n个发送、接收时钟的锁存、采样边沿,完成n位比特流的数据发送和接收。若发送时钟与接收时钟为同一时钟源,则为同步通讯,若非同一时钟源,则为异步通讯。
3.为了加强通讯的可靠性,在接收设备上,通常会进行过采样的方法,在采样边沿的前、后增加m

1次采样,获得对1个位描述的m个数据,并对数据进行求和,与一个设定的阈值比较,满足比较范围时则认为该采样位的值为1或0,从而极大降低采样到的电平跳变引起的数据错误,从而提高了数据接收的可靠性。
4.现有过采样的方法,对同一位数据在采样边沿附近进行m次连续采样,把采样结果进行求差、求和计算,求得结果与设定的阈值进行比较,若大于阈值,则输出1,否则输出0,从而确定该位的值。
5.该过程的缺点在于,存在 位的差、和计算及位比较,对于fpga来说则需采用多个查找表完成加、减法结果查找,当过采样次数m达到一定数量时,还会占用快速进位链资源,另外,需要多个查找表实现位比较器,资源成本较高。从状态采样到状态输出,至少经过5个模块才能完成一次采样滤波,具有一定的逻辑延时,对于高速率通讯形成一定的瓶颈作用。


技术实现要素:

6.为解决上述技术问题,本公开实施例提供一种基于fpga的比特流快速采样装置及方法,通过把简单的移位代替加、减运算,把m位移位锁存模块的指定位号的输出代替位比较输出,从而简化整个采样过程。
7.根据本公开实施例的第一方面,提供一种基于fpga的比特流快速采样装置,所述装置包括:状态采样模块,用于对比特流的单个位进行m次状态采样,获得对该单个位描述的m个状态数据,并将状态数据分别输出到fifo缓冲模块和单比特比较模块,其中m为大于1的整数;fifo缓冲模块,用于暂存对单个位描述的m个状态数据,每获得一个状态数据,将
fifo缓冲模块的数据左移一位,fifo缓冲模块的最高位数据移出至单比特比较模块中,该状态数据移入至fifo缓冲模块的最低位;单比特比较模块,用于接收fifo缓冲模块在本次状态采样中移出的最高位数据以及本次状态采样的状态数据,并对二者进行比较同时输出移位控制信号;移位控制信号为保持信号、左移信号或者右移信号的其中一种;移位排序模块,用于接收单比特比较模块输出的移位控制信号,并对包含在其内部的m位移位寄存器进行相应的移位操作;当接收到的移位控制信号为保持信号时,m位移位寄存器不移位;当接收到的移位控制信号为左移信号时,m位移位寄存器左移1位且最低位补有效状态;当接收到的移位控制信号为右移信号时,m位移位寄存器右移1位且最高位补非有效状态,所述有效状态和非有效状态为取非逻辑关系,当有效状态为“0”时,非有效状态为“非0”,当有效状态为“非0”时,非有效状态为“0”;判断模块,用于当所述移位排序模块移位操作完成时,判断是否已完成对单个位的m次移位操作,并在已完成对单个位的m次移位操作时反馈信号至状态输出模块;状态输出模块,包括状态数据输出模块和噪声状态输出模块,所述状态数据输出模块用于接收判断模块的反馈信号,并选择m位移位寄存器的第n位作为该单个位的状态数据进行输出,其中,m

1≥n≥0,当m为奇数时, n为(m

1)/2;当m为偶数时,n为m/2;所述噪声状态输出模块用于接收判断模块的反馈信号,并比较m位移位寄存器的第m

1位和第0位是否相等,若二者相等,输出噪声状态“0”,否则输出噪声状态“1”。
8.在一个实施例中,优选的,所述状态采样模块包括:数据采样装置,数据采样装置的采样端口与fifo缓冲模块的输入口连接,同时,数据采样装置的采样端口与单比特比较模块的输入端连接;数据采样装置的状态采样在每一次采样边沿进行,当采样边沿到达时,将采样所得的状态数据输入至fifo缓冲模块及单比特比较模块中。
9.在一个实施例中,优选地,所述fifo缓冲模块的输出端与单比特比较模块的输入端连接,fifo缓冲模块内含一个m位fifo缓冲寄存器,m位fifo缓冲寄存器实现采样所得状态数据的暂存;每获得一个状态数据,将m位fifo缓冲寄存器的数据左移一位,状态数据移入至m位fifo缓冲寄存器的最低位, 该m位fifo缓冲寄存器的最高位数据移出至单比特比较模块中。
10.在一个实施例中,优选地,所述单比特比较模块的输出端与移位排序模块的输入端连接:当单比特比较模块接收到m位fifo缓冲寄存器在本次状态采样中移出的最高位数据以及本次状态采样的状态数据时,对二者进行比较,当二者相等时,输出保持信号;当二者不相等且状态数据为“1”时,输出左移信号;当二者不相等且状态数据为“0”时,输出右移信号。
11.根据本公开实施例的第二方面,提供一种基于fpga的比特流快速采样方法,所述方法包括:对比特流的单个位进行m次状态采样,获得对该单个位描述的m个状态数据,其中m为大于1的整数;每获得一个状态数据,将fifo缓冲模块的数据左移一位, fifo缓冲模块的最高位
移出至单比特比较模块中,该状态数据移入至fifo缓冲模块的最低位;每获得一个状态数据,同时将该状态数据移入至单比特比较模块中,并与从fifo缓冲模块的最高位移出到单比特比较模块中的数据进行比较,同时输出移位控制信号;移位控制信号为保持信号、左移信号或者右移信号的其中一种;接收单比特比较模块输出的移位控制信号,并对移位排序模块内含的m位移位寄存器进行相应的移位操作;当接收到的移位控制信号为保持信号时,m位移位寄存器不移位;当接收到的移位控制信号为左移信号时,m位移位寄存器左移1位且最低位补有效状态;当接收到的移位控制信号为右移信号时,m位移位寄存器右移1位且最高位补非有效状态,所述有效状态和非有效状态为取非逻辑关系,当有效状态为“0”时,非有效状态为“非0”,当有效状态为“非0”时,非有效状态为“0”;判断是否已完成对单个位的m次移位操作,在已完成对单个位的m次移位操作时反馈信号至状态输出模块;在未完成对单个位的m次移位操作时继续进行状态采样直到m次移位操作完成;状态数据输出模块接收到判断模块的反馈信号时,选择m位移位寄存器的第n位作为对该单个位的状态数据进行输出,m

1≥n≥0,当m为奇数时, n为(m

1)/2;当m为偶数时,n为m/2;噪声状态输出模块接收到判断模块的反馈信号时,比较m位移位寄存器的第m

1位和第0位是否相等,若二者相等,输出噪声状态“0”,否则输出噪声状态“1”;对比特流的下一个位重复上述所有步骤,直至比特流全部采样完成。
12.在一个实施例中,优选地,fifo缓冲模块内含一个m位fifo缓冲寄存器,将m位fifo缓冲寄存器在本次状态采样中移出的最高位数据以及本次状态采样的状态数据进行比较,当二者相等时,输出保持信号;当二者不相等且状态数据为“1”时,输出左移信号;当二者不相等且状态数据为“0”时,输出右移信号。
13.本公开的实施例提供的技术方案可以包括以下有益效果:上述技术方案,实现了一个资源占用小、延时低的快速采样方法,通过fifo缓冲模块、单比特比较模块、移位排序模块,把简单的移位代替加、减运算,把m位移位寄存器的指定位号的输出代替
ꢀꢀ
位比较输出,从而简化整个过采样过程,使得其在资源消耗及逻辑延时方面实现40%(2/5)的降低,对fpga进行复数同步、异步通讯提供了一种更高资源利用的方案。尤其在工业机器人领域,对设计fpga多轴位置传感器或编码器的长距离串行通讯,提供资源效率更优、可塑性更强的平台。
附图说明
14.图1是根据一示例性实施例示出的一种基于fpga的比特流快速采样装置的结构图。
15.图2 是根据一示例性实施例示出的一种基于fpga的比特流快速采样装置中状态采样模块的结构图。
16.图3是根据一示例性实施例示出的一种基于fpga的比特流快速采样装置中fifo缓冲模块的结构图。
17.图4是根据一示例性实施例示出的一种基于fpga的比特流快速采样装置中移位排序模块的结构图。
18.图5是根据一示例性实施例示出的一种基于fpga的比特流快速采样装置中状态输出模块的结构图。
19.图6是针对存在噪声的比特流进行10次采样原理图。
20.图7是一种基于fpga的比特流快速采样方法的流程图。
具体实施方式
21.下列实施例是对本发明的进一步解释和补充,对本发明不构成任何限制。
22.本公开实施例提供了一种基于fpga的比特流快速采样装置,如图1、4、5所示,该装置包括:状态采样模块10,用于对比特流的单个位进行m次状态采样,获得对该单个位描述的m个状态数据,并将状态数据分别输出到fifo缓冲模块20和单比特比较模块30,其中m为大于1的整数;fifo缓冲模块20,用于暂存对单个位描述的m个状态数据,每获得一个状态数据,将fifo缓冲模块20的数据左移一位,fifo缓冲模块20的最高位数据移出至单比特比较模块30中,该状态数据移入至fifo缓冲模块20的最低位;单比特比较模块30,用于接收fifo缓冲模块20在本次状态采样中移出的最高位数据以及本次状态采样的状态数据,并对二者进行比较同时输出移位控制信号;移位控制信号为保持信号、左移信号或者右移信号的其中一种;移位排序模块40,用于接收单比特比较模块30输出的移位控制信号,并对含在其内部的m位移位寄存器41进行相应的移位操作;当接收到的移位控制信号为保持信号时,m位移位寄存器41不移位;当接收到的移位控制信号为左移信号时,m位移位寄存器41左移1位且最低位补有效状态;当接收到的移位控制信号为右移信号时,m位移位寄存器41右移1位且最高位补非有效状态,所述有效状态和非有效状态为取非逻辑关系,当有效状态为“0”时,非有效状态为“非0”,当有效状态为“非0”时,非有效状态为“0”;判断模块50,用于当所述移位排序模块40移位操作完成时,判断是否已完成对单个位的m次移位操作,在已完成对单个位的m次移位操作时反馈信号至状态输出模块;状态输出模块60,包括状态数据输出模块61和噪声状态输出模块62,所述状态数据输出模块61用于接收判断模块50的反馈信号,并选择m位移位寄存器41的第n位作为对该单个位的状态数据进行输出,其中,m

1≥n≥0,当m为奇数时, n为(m

1)/2;当m为偶数时,n为m/2;所述噪声状态输出模块62用于接收判断模块50的反馈信号,并比较m位移位寄存器41的第m

1位和第0位是否相等,若二者相等,输出噪声状态“0”,否则输出噪声状态“1”。
23.该实施例实现了一个资源占用小、延时低的快速过采样方法,通过fifo缓冲模块20、单比特比较模块30、移位排序模块40,把简单的移位代替加、减运算,把m位移位寄存器41的指定位号的输出代替
ꢀꢀ
位比较输出,从而简化整个过采样过程,使得其在资源消耗及逻辑延时方面实现40%(2/5)的降低,对fpga进行复数同步、异步通讯提供了一种更高资源利用的方案。尤其在工业机器人领域,对设计fpga多轴位置传感器或编码器的长距离串行通讯,提供资源效率更优、可塑性更强的平台。
24.图2 是根据一示例性实施例示出的一种基于fpga的比特流快速采样装置中状态采样模块的结构图。
25.如图2所示,在一个实施例中,优选地,状态采样模块10包括数据采样装置11,数据采样装置11的采样端口与fifo缓冲模块20的输入口连接,同时,数据采样装置11的采样端口与单比特比较模块30的输入端连接;数据采样装置11的状态采样在每一次采样边沿进行,当采样边沿到达时,将采样所得的状态数据输入至fifo缓冲模块20及单比特比较模块30中。
26.图3是根据一示例性实施例示出的一种基于fpga的比特流快速采样装置中fifo缓冲模块的结构图。
27.如图3所示,在一个实施例中,优选地,所述fifo缓冲模块20的输出端与单比特比较模块30的输入端连接,fifo缓冲模块20内含一个m位fifo缓冲寄存器21,m位fifo缓冲寄存器21实现采样所得状态数据的暂存;每获得一个状态数据,将m位fifo缓冲寄存器21的数据左移一位, m位fifo缓冲寄存器21的最高位数据移出至单比特比较模块30中,该状态数据移入至m位fifo缓冲寄存器21的最低位,所述单比特比较模块30的输出端与移位排序模块40的输入端连接:当单比特比较模块30接收到m位fifo缓冲寄存器21在本次状态采样中移出的最高位数据以及本次状态采样的状态数据时,对二者进行比较,当二者相等时,输出保持信号;当二者不相等且状态数据为1时,输出左移信号;当二者不相等且状态数据为0时,输出右移信号。
28.图5,是根据一示例性实施例示出的一种基于fpga的比特流快速采样装置中状态输出模块的结构图。
29.如图5所示,在一个实施例中,优选地,状态输出模块60,包括状态数据输出模块61和噪声状态输出模块62,所述状态数据输出模块61用于接收判断模块50的反馈信号,并选择m位移位寄存器41的第n位作为对该单个位的状态数据进行输出,其中,m

1≥n≥0,当m为奇数时, n为(m

1)/2;当m为偶数时,n为m/2;所述噪声状态输出模块62用于接收判断模块50的反馈信号,并比较m位移位寄存器41的第m

1位和第0位是否相等,若二者相等,输出噪声状态“0”,否则输出噪声状态“1”。
30.以图6为例,针对存在噪声的两个位分别进行5次采样,其中一个位为高电平,一个位为低电平,针对这两个位采样所用的采样装置和采样方法详细工作流程阐述如下:为便于理解,在采样开始前先将fifo缓冲模块20内5位fifo缓冲寄存器21的初始值设置为00000b、移位排序模块40内5位移位寄存器41的初始值设置为00000b。输出时选择5位移位寄存器41的bit4、bit3、bit2、bit1、bit0的中间位bit2进行输出。需要说明的是,5位fifo缓冲寄存器21和5位移位寄存器41的初始值可以是随机的,并非一定要将其初始化。
31.数据采样装置11针对高电平的第1次采样,状态采样值为1b,把1b移入5位fifo缓冲寄存器21的最低位,5位fifo缓冲寄存器21的最高位的值0b移出,5位fifo缓冲寄存器21缓冲更新值为00001b;该最高位的值0b与状态采样值1b进行比较,得到移位控制信号为左移信号;左移信号的判断逻辑为:当单比特比较模块30接收到m位fifo缓冲寄存器21在本次状态采样中移出的最高位数据以及本次状态采样的状态数据时,对二者进行比较,当二者相等时,输出保持信号;当二者不相等且状态数据为“1”时,输出左移信号;当二者不相等且状态数据为“0”时,输出右移信号。5位移位寄存器41接收左移信号进行左移,同时把有效状态移入到5位移位寄存器41的的最低位,在本实施方式中,用“非0”来代表有效状态,后续不再赘述,因此,把1b移入到5位移位寄存器41的最低位,5位移位寄存器41的更新值为
00001b;针对高电平的第2次采样,状态采样值为1b,把1b移入5位fifo缓冲寄存器21的最低位,5位fifo缓冲寄存器21的最高位的值0b移出,5位fifo缓冲寄存器21缓冲更新值为00011b;该最高位的值0b与状态采样值1b进行比较,得到移位控制信号为左移信号;5位移位寄存器41接收左移信号进行左移,同时把1b移入最低位,5位移位寄存器41的更新值为00011b;针对高电平的第3次采样,状态采样值为0b,把1b移入5位fifo缓冲寄存器21的最低位,5位fifo缓冲寄存器21的最高位的值0b移出,5位fifo缓冲寄存器21缓冲更新值为00110b;该最高位的值0b与状态采样值0b进行比较,得到移位控制信号为保持信号; 5位移位寄存器41的值为00011b;针对高电平的第4次采样,状态采样值为1b,把1b移入5位fifo缓冲寄存器21的最低位,5位fifo缓冲寄存器21的最高位的值0b移出,5位fifo缓冲寄存器21缓冲更新值为01101b;该最高位的值0b与状态采样值1b进行比较,得到移位控制信号为左移信号; 5位移位寄存器41接收左移信号进行左移,同时把1b移入最低位,5位移位寄存器41的更新值为00111b;针对高电平的第5次采样,状态采样值为1b,把1b移入5位fifo缓冲寄存器21的最低位,5位fifo缓冲寄存器21的最高位的值0b移出,5位fifo缓冲寄存器21缓冲更新值为11011b;该最高位的值0b与状态采样值1b进行比较,得到移位控制信号为左移信号; 5位移位寄存器41接收左移信号进行左移,同时把1b移入最低位,5位移位寄存器41的更新值为01111b;针对高电平的5次采样完成后,选择5位移位寄存器41的bit2数据1b作为对该单个位的状态描述进行输出。结合图6以及上述实施方式,可以得出如下结论,图6针对高电平的5次采样结果,有4次采样结果为“1”,1次采样结果为“0”,而经过该实施方式,5位移位寄存器41在经过5次移位操作后,有4次为“1”的有效状态,1次为“0”的非有效状态,也就是5位移位寄存器41记录了多少次采样为“0”的结果和多少次采样为“1”的结果。根据多数性原则,当进行5次采样,有3次或3次以上的采样结果为“1”时,其采样结果应当输出为“1”,而根据上述5位移位寄存器41的运行结果,5位移位寄存器41的中间位必定会与采样结果“1”相同,因此,选择中间位进行输出,保证了输出结果的准确性。同理,当进行5次采样,有3次或3次以上的采样结果为“0”时,其采样结果应当输出为“0”,而这时5位移位寄存器41的中间位必定会与采样结果“0”相同,因此,选择5位移位寄存器41的中间位进行输出。也就是说,选择5位移位寄存器41的中间位进行输出,就是遵循多数性原则的结果。
32.同时,噪声状态输出模块62对5位移位寄存器41的最高位和最低位进行比较,二者不相等,因此证明,该高电平的采样是有噪声的,因此将其噪声状态输出为“1”。
33.以上完成了对高电平的单个位进行采样及输出结果,完成状态数据输出和噪声状态输出后,对下个位再重复上述操作。
34.在上述5位fifo缓冲寄存器21的值为11011b、5位移位寄存器41的值为01111b的基础上,继续针对下个位进行5次采样,下个位在图6中是低电平。
35.针对低电平的第1次采样,状态采样值为0b,把1b移入5位fifo缓冲寄存器21的最低位,5位fifo缓冲寄存器21的最高位的值1b移出,5位fifo缓冲寄存器21缓冲更新值为
10110b;该最高位的值1b与状态采样值0b进行比较,得到移位控制信号为右移信号;5位移位寄存器41接收右移信号进行右移,同时把0b移入最高位,5位移位寄存器41的更新值为00111b;针对低电平的第2次采样,状态采样值为0b,把0b移入5位fifo缓冲寄存器21的最低位,5位fifo缓冲寄存器21的最高位的值1b移出,5位fifo缓冲寄存器21缓冲更新值为01100b;该最高位的值1b与状态采样值0b进行比较,得到移位控制信号为右移信号;5位移位寄存器41接收右移信号进行右移,同时把0b移入最高位,5位移位寄存器41的更新值为00011b;针对低电平的第3次采样,状态采样值为0b,把0b移入5位fifo缓冲寄存器21的最低位,5位fifo缓冲寄存器21的最高位的值0b移出,5位fifo缓冲寄存器21缓冲更新值为11000b;该最高位的值0b与状态采样值0b进行比较,得到移位控制信号为保持信号;5位移位寄存器41接收保持信号保持值为00011b;针对低电平的第4次采样,状态采样值为1b,把1b移入5位fifo缓冲寄存器21的最低位,5位fifo缓冲寄存器21的最高位的值1b移出,5位fifo缓冲寄存器21缓冲更新值为10001b;该最高位的值1b与状态采样值1b进行比较,得到移位控制信号为保持信号;5位移位寄存器41接收保持信号保持值为00011b;针对低电平的第5次采样,状态采样值为0b,把0b移入5位fifo缓冲寄存器21的最低位,5位fifo缓冲寄存器21的最高位的值1b移出,5位fifo缓冲寄存器21缓冲更新值为00010b;该最高位的值1b与状态采样值0b进行比较,得到移位控制信号为右移信号;5位移位寄存器41接收右移信号进行右移,同时把0b移入最高位,5位移位寄存器41的更新值为00001b。
36.针对低电平的5次过采样完成后,选择5位移位寄存器41的bit2数据0b作为状态输出。
37.同时,噪声状态输出模块62对5位移位寄存器41的最高位和最低位进行比较,二者不相等,因此证明,该高电平的采样是有噪声的,因此将其噪声状态输出为“1”。
38.下表是针对存在噪声的高电平和低电平分别进行5次采样的逻辑表。
39.图7是根据一示例性实施例示出的一种基于fpga的比特流快速采样方法的流程图。
40.根据本公开实施例的第二方面,提供一种基于fpga的比特流快速采样方法,如图7所示,所述方法包括:步骤s101,对比特流的单个位进行m次状态采样,获得对该单个位描述的m个状态数据,其中m为大于1的整数;步骤s102,每获得一个状态数据,将fifo缓冲模块的数据左移一位,fifo缓冲模块的最高位移出至单比特比较模块中,该状态数据移入至fifo缓冲模块的最低位;步骤s103,每获得一个状态数据,同时将该状态数据移入至单比特比较模块中,并与从fifo缓冲模块的最高位移出到单比特比较模块中的数据进行比较,同时输出移位控制信号;移位控制信号为保持信号、左移信号或者右移信号的其中一种;步骤s104,接收单比特比较模块输出的移位控制信号,并对移位排序模块内含的m位移位寄存器进行相应的移位操作;当接收到的移位控制信号为保持信号时,m位移位寄存器不移位;当接收到的移位控制信号为左移信号时,m位移位寄存器左移1位且最低位补有效状态;当接收到的移位控制信号为右移信号时,m位移位寄存器右移1位且最高位补非有效状态,所述有效状态和非有效状态为取非逻辑关系,当有效状态为“0”时,非有效状态为“非0”,当有效状态为“非0”时,非有效状态为“0”;步骤s105,判断是否已完成对单个位的m次移位操作,在已完成对单个位的m次移位操作时反馈信号至状态输出模块;在未完成对单个位的m次移位操作时继续进行状态采样直到m次移位操作完成;步骤s106,状态数据输出模块接收到判断模块的反馈信号时,选择m位移位寄存器的第n位作为对该单个位的状态数据进行输出,m

1≥n≥0,当m为奇数时, n为(m

1)/2;当m为偶数时,n为m/2;噪声状态输出模块接收到判断模块的反馈信号时,比较m位移位寄存器
的第m

1位和第0位是否相等,若二者相等,输出噪声状态“0”,否则输出噪声状态“1”;步骤s106,对比特流的下一个位重复上述所有步骤,直至比特流全部采样完成。
41.优选的,步骤s103中,fifo缓冲模块内含一个m位fifo缓冲寄存器,将m位fifo缓冲寄存器在本次状态采样中移出的最高位数据以及本次状态采样的状态数据进行比较,当二者相等时,输出保持信号;当二者不相等且状态数据为“1”时,输出左移信号;当二者不相等且状态数据为“0”时,输出右移信号。
42.尽管通过以上实施例对本发明进行了揭示,但本发明的保护范围并不局限于此,在不偏离本发明构思的条件下,对以上各构件所做的变形、替换等均将落入本发明的权利要求范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1