一种FPGA对多种类型数据块的序列化控制系统及方法与流程

文档序号:19127311发布日期:2019-11-13 02:15阅读:213来源:国知局
一种FPGA对多种类型数据块的序列化控制系统及方法与流程

本发明涉及数据采集技术领域,具体的,涉及一种fpga对多种类型数据块的序列化控制系统以及应用于该系统的方法。



背景技术:

fpga器件属于专用集成电路中的一种半定制电路,是可编程的逻辑列阵,能够有效的解决原有的器件门电路数较少的问题。fpga的基本结构包括可编程输入输出单元,可配置逻辑块,数字时钟管理模块,嵌入式块ram,布线资源,内嵌专用硬核,底层内嵌功能单元。由于fpga具有布线资源丰富,可重复编程和集成度高,投资较低的特点,在数字电路设计领域得到了广泛的应用。

目前,在音视频领域往往都是高速、时时的大数据量,fpga在音视频领域大量使用。其中,数字广播传输系统分为:dvb-s(ets300421)为数字卫星广播系统、dvb-t为地面数字广播系统、dvb-c为有线数字广播系统。

其中,dvb解调解码芯片,是一种把射频信号转换为数字信号,并经过相应解码的功能模块,输出8路甚至更多路数据,此时必须需要fpga来采集。

然而,现在的fpga采集数据是各种各样,产品很多,不能一一例举,大概可以分为两类:针对大量的同一类数据的采集和针对各类数据块的采集。

对于大量同一类数据来说,fpga多路采集模块,只要实现某一个即可,其余复制模块即可。把数据同时采集放在一个存储空间里,繁杂的数据分析转移到pc端软件处理,fpga这样显然只是负责收集原始数据功能,相对简单也很容易实现;对于各类数据块采集,可稍微复杂点,因为每一类数据块的用途不同。

另外,通常类型以几个字节数据位单位的数据,目前很多做法,只是简单的加上数据头包识别标志号就可以了,因为一个时钟对应一个数据及时发出去。然而以很多个字节为单位的数据类型而且又是多路并行,保证采集不失真,输出不丢数据。每个数据都要有id和序列号,在目前的控制方法中还没有一个相对通用的方法。



技术实现要素:

本发明的主要目的是提供一种采用通用的序列化控制方式来输出控制状态,满足各种大小数据块的采集的fpga对多种类型数据块的序列化控制系统。

本发明的另一目的是提供一种采用通用的序列化控制方式来输出控制状态,满足各种大小数据块的采集的fpga对多种类型数据块的序列化控制方法。

为了实现上述的主要目的,本发明提供的一种fpga对多种类型数据块的序列化控制系统包括fpga数据处理模块以及pc机,所述序列化控制系统还包括多个前端数据模块、pcie控制模块,所述前端数据模块用于从gps卫星获取前端数据信号,且将前端数据信号中的射频信号转换为数字信号,并且输出数字化的前端数据信号至所述fpga数据处理模块,所述fpga数据处理模块与所述pc机之间通过pcie控制模块进行数据传输。

进一步的方案是,所述pcie控制模块包括pcie接口和dma控制器,所述fpga数据处理模块通过所述pcie接口连接至所述pc机,所述fpga数据处理模块通过所述dma控制器以dma方式对所述pc机的存储器进行数据读写操作。

更进一步的方案是,所述fpga数据处理模块包括多路数据处理模块和具有多个输入端和一个输出端的数据汇流模块,所述多路数据处理模块接收所述前端数据模块输出的前端数据信号,所述数据汇流模块的多个输入端分别接收所述多路数据处理模块输出的多路前端数据信号,所述数据汇流模块的输出端与所述pcie控制模块连接。

更进一步的方案是,所述多路数据处理模块包括多个数据采集模块以及多个数据同步移出模块,一个所述数据采集模块的输出端与一个所述数据同步移出模块的输入端连接。

更进一步的方案是,所述前端数据模块为卫星调制解调器。

由此可见,本发明提供的序列化控制系统主要包括前端数据模块、fpga数据处理模块以及pc机,fpga数据处理模块主要包括数据采集模块、数据同步移出模块、数据汇流模块、dma控制器和pcie接口。本发明通过fpga可以实现多路模拟信号的同步采集,采集到的数据通过fpga内部的dma控制器实现了数据的快速读取和存储,无需额外的逻辑资源和控制信号,就能达到所需要的序列化控制信号,实现过程简单,可以用在相移功能、序列化状态控制、限定数据个数模块采集等功能上,应用相当广泛。

为了实现上述的另一目的,本发明还提供一种fpga对多种类型数据块的序列化控制方法,应用于一种fpga对多种类型数据块的序列化控制系统,该系统包括fpga数据处理模块、pc机、前端数据模块、pcie控制模块;该方法包括:所述前端数据模块从gps卫星实时获取前端数据信号,并且输出数字化的前端数据信号至数据采集模块,其中,所述前端数据信号包括时钟信号、前端数据、同步信号;所述数据采集模块采集所述前端数据信号中的数据块,并且根据所述同步信号触发来采集下一个数据块,并且输出数据块中的8bit前端数据、有效信号valid、最后标志last信号至数据同步移出模块;所述数据同步移出模块对所述数据采集模块输出8bit前端数据进行同步处理;所述数据汇流模块的多个输入端接收所述数据同步移出模块经过同步处理后的同步数据信号,所述数据汇流模块通过其输出端输出汇流处理后的汇流数据信号至dma控制器;所述dma控制器通过pcie接口以dma方式对所述pc机的存储器进行数据读写操作。

进一步的方案是,所述数据同步移出模块对所述数据采集模块输出的8bit前端数据进行同步处理具体包括:将8bit前端数据转换为64bit前端数据后,通过所述数据采集模块输出的有效信号valid上升沿产生高电平的有效信号valid和最后标志last信号。

更进一步的方案是,所述数据汇流模块通过其输出端输出汇流处理后的汇流数据信号至dma控制器具体包括:在所述数据汇流模块的多个输入端接收所述数据同步移出模块经过同步处理后的同步数据信号后,若检测到所述数据汇流模块的第一输入端中的有效信号valid或最后标志last信号为高电平,则根据第一输入端中的每个同步数据信号以可恢复方式合成单个输出数据信号进行传输第一输入端中的数据,通过所述数据汇流模块的输出端输出至所述dma控制器。

由此可见,本发明提供的序列化控制方法通过fpga可以实现多路模拟信号的同步采集,采集到的数据通过fpga内部的dma控制器实现了数据的快速读取和存储,无需额外的逻辑资源和控制信号,就能达到所需要的序列化控制信号,实现过程简单,可以用在相移功能、序列化状态控制、限定数据个数模块采集等功能上,应用相当广泛。

【附图说明】

图1是本发明一种fpga对多种类型数据块的序列化控制系统实施例的原理图。

图2是本发明一种fpga对多种类型数据块的序列化控制方法实施例中数据采集模块的状态流转图。

【具体实施方式】

一种fpga对多种类型数据块的序列化控制系统实施例:

参见图1,本实施例的序列化控制系统包括fpga数据处理模块以及pc机16,序列化控制系统还包括多个前端数据模块10、pcie控制模块,前端数据模块10用于从gps卫星获取前端数据信号,且将前端数据信号中的射频信号转换为数字信号,并且输出数字化的前端数据信号至fpga数据处理模块,fpga数据处理模块与pc机16之间通过pcie控制模块进行数据传输。

pcie控制模块包括pcie接口15和dma控制器14,fpga数据处理模块通过pcie接口15连接至pc机16,fpga数据处理模块通过dma控制器14以dma方式对pc机的存储器进行数据读写操作。

fpga数据处理模块包括多路数据处理模块和具有多个输入端和一个输出端的数据汇流模块13,多路数据处理模块接收前端数据模块10输出的前端数据信号,数据汇流模块13的多个输入端分别接收多路数据处理模块输出的多路前端数据信号,数据汇流模块13的输出端与pcie控制模块连接。

多路数据处理模块包括多个数据采集模块11以及多个数据同步移出模块12,一个数据采集模块11的输出端与一个数据同步移出模块12的输入端连接。

如图1所示,p为数据通道数,前端数据模块10、数据采集模块11和数据同步移出模块12这三个功能模块的数量一一对应,均为8个或8个以上,可以实现8路或8路以上模拟信号的同步采集。所以,本发明有8路或8路以上数据需要fpga同时采集并经pcie接口15发送至pc机16处理(以188或204个字节为单元数据)。当然,本发明不限于8路或8路以上数据进行同步采集,也可以是1路、2路、3路等,具体数量可根据用户需求进行设计。

作为优选,前端数据模块10为卫星调制解调器。

由此可见,本发明提供的序列化控制系统主要包括前端数据模块10、fpga数据处理模块和pc机16三大部分,fpga数据处理模块主要包括数据采集模块11、数据同步移出模块12、数据汇流模块13、dma控制器14和pcie接口15。本发明通过fpga可以实现多路模拟信号的同步采集,采集到的数据通过fpga内部的dma控制器14实现了数据的快速读取和存储,无需额外的逻辑资源和控制信号,就能达到所需要的序列化控制信号,实现过程简单,可以用在相移功能、序列化状态控制、限定数据个数模块采集等功能上,应用相当广泛。

一种fpga对多种类型数据块的序列化控制方法实施例:

本实施例的序列化控制方法应用于上述的一种fpga对多种类型数据块的序列化控制系统,该系统包括fpga数据处理模块、pc机16、前端数据模块10、pcie控制模块。

该方法包括:首先,前端数据模块10从gps卫星实时获取前端数据信号,并且输出数字化的前端数据信号至数据采集模块11,其中,前端数据信号包括时钟信号、前端数据、同步信号。具体地,前端数据模块10是采用专用的卫星调制解调芯片来调制解调卫星信号的,输出来就是所需的规定字节的ts流数据。其输出主要有三种信号:时钟信号clock(频率),前端数据data,同步信号sync,每个同步信号与每个数据块的第一个bit对应,每1504个bit出现一个同步信号。当然,在数据采集的时候,如果同步信号消失了,在一直运行到1504个bit后停止采集数据。

然后,数据采集模块11采集前端数据信号中的数据块,并且根据同步信号触发来采集下一个数据块,并且输出数据块中的8bit前端数据、有效信号valid、最后标志last信号至数据同步移出模块12。

具体地,数据采集模块11就是实现前端数据模块10没有数据了,当采集完一个数据块后停止采集数据,并保持此时的数据不再更新。直到同步信号来触发重新赋值序列化初始值,并运行序列化状态程序,并同时实现串转并功能。其输出信号为:8bit数据,有效信号valid,最后标志last信号。

在本实施例中,前端fp=139mhz的时钟信号,其数据在经过数据采集模块11并行处理后,数据的更新周期为fp=139/8=17.375mhz,也就是fp=18mhz,显然数据更新慢了,这样便于后面的数据同步移出模块12依据这三个信号来接收有效数据,使用序列化理论控制好有效信号valid即可。如图2所示,图2中的byte是前端数据,sync是同步信号,valid是有效信号,last信号对应188_end,每次轮流到reg5时就输出前端数据和有效信号valid,最后一个数据在188_end信号后输出。

接着,数据同步移出模块12对数据采集模块11输出8bit前端数据进行同步处理。其中,数据同步移出模块12对数据采集模块11输出的8bit前端数据进行同步处理具体包括:将8bit前端数据转换为64bit前端数据后,通过数据采集模块11输出的有效信号valid上升沿产生高电平的有效信号valid和最后标志last信号。

可见,数据同步移出模块12可以实现把8bit的数据转换成位宽为64bit的数据,使用时钟fp=125mhz来采集139mhz的数据不满足香农定律,数据就会失真。但是使用时钟125mhz来采集18mhz的数据,满足香农定律,可以保证数据真确性。在64bit的数据稳定后,利用数据采集模块11输出的有效信号valid上升沿产生8ns宽的高电平有效信号valid和last信号,即可与125mhz的时钟信号同步,后面的数据汇流模块13都是使用该时钟信号。

然后,数据汇流模块13的多个输入端接收数据同步移出模块12经过同步处理后的同步数据信号,数据汇流模块13通过其输出端输出汇流处理后的汇流数据信号至dma控制器14。其中,数据汇流模块13通过其输出端输出汇流处理后的汇流数据信号至dma控制器14具体包括:在数据汇流模块13的多个输入端接收数据同步移出模块12经过同步处理后的同步数据信号后,若检测到数据汇流模块13的第一输入端中的有效信号valid或最后标志last信号为高电平,则根据第一输入端中的每个同步数据信号以可恢复方式合成单个输出数据信号进行传输第一输入端中的数据,通过数据汇流模块13的输出端输出至dma控制器14。

可见,本实施例的数据汇流模块13有8个输入,以last信号或有效信号valid为依据来切换需要传输那个数据,例如,第一输入通道中的有效信号valid或last信号为高电平,则传输第一输入通道的数据,并跳转到第二通道接口,即可传输通道的数据。上述过程称为汇流或多路复用,并且该过程也用到了序列化状态控制跳转。

然后,dma控制器14通过pcie接口15以dma方式对pc机16的存储器进行数据读写操作。可见,pcie接口15是一种标准协议通讯接口,速度达5gbit/s,dma控制器14通过描述符来抓取数据,它们两者之间配合适用于大量数据传输的应用场景。其中,在fpga中都是实例化ip,各个子模块设备在pcie中有映射地址,通过linux驱动对各寄存器操作即可。即linux驱动操作各子模块初始化,启动dma控制器14,中断处理,i2c通讯、gpio控制。

在本实施例中,各数据通道的时钟不同相位和频率,前端设备是串行输出数据。其中,系统的时钟信号主要分为两大类,一类是各路数据采集模块11采集数据的独立时钟fp,一类是数据同步移出时钟fp,其在各个通道输出数据位宽与数据同步移出模块12数据位宽相同的情况下时钟最好满足fp≥8fp,也就是说总输出的吞吐量是各支路吞吐量的总和,因为这是满足多路数据汇流成一路输出的最基本的条件,这样不会导致数据拥塞。当然,本实施例中的数据同步移出只是它们的时钟是来自同一个时钟源,并不是任何时刻各路同时输出。

由此可见,本发明提供的序列化控制方法通过fpga可以实现多路模拟信号的同步采集,采集到的数据通过fpga内部的dma控制器14实现了数据的快速读取和存储,无需额外的逻辑资源和控制信号,就能达到所需要的序列化控制信号,实现过程简单,可以用在相移功能、序列化状态控制、限定数据个数模块采集等功能上,应用相当广泛。

需要说明的是,以上仅为本发明的优选实施例,但发明的设计构思并不局限于此,凡利用此构思对本发明做出的非实质性修改,也均落入本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1