一种基于FPGA的数据串行传输控制系统及方法技术方案

技术编号:20545753 阅读:21 留言:0更新日期:2019-03-09 18:41
本发明专利技术公开了一种基于FPGA的数据串行传输控制系统,用于两个FPGA之间的数据传输和控制,其特征在于,所述控制系统包括依次连接的协议模块、仲裁模块和子功能模块,子功能模块用于对数据串行传输控制系统进行数据传输功能配置;仲裁模块通过扩展接口与子功能模块相连接,并根据仲裁协议的传输顺序执行接入仲裁模块的子功能模块的输出数据,或将从协议模块接收到的输入数据分发到对应的子功能模块;协议模块提供统一的数据收发协议。本发明专利技术技术方案针对现有技术中FPGA数据串行传输结构复杂、传输协议混乱、扩展性差的情况,通过将不同功能封装成不同的子模块,结合仲裁模块和协议模块,可以保证多种数据传输请求的有序、稳定执行。

A Data Serial Transmission Control System and Method Based on FPGA

The invention discloses a data serial transmission control system based on FPGA, which is used for data transmission and control between two FPGAs. Its characteristics are as follows: the control system includes protocol module, arbitration module and sub-function module connected sequentially, and sub-function module is used to configure data transmission function of data serial transmission control system; arbitration module is used to expand interface and sub-function. The function modules are connected, and the output data of the sub-function modules accessing the arbitration module are executed according to the transmission order of the arbitration protocol, or the input data received from the protocol module are distributed to the corresponding sub-function modules. The protocol module provides a unified data receiving and receiving protocol. The technical scheme of the invention aims at the complicated structure of serial data transmission of the FPGA in the prior art, confusion of the transmission protocol and poor expansibility. By encapsulating different functions into different sub-modules, combining with arbitration module and protocol module, the orderly and stable execution of multiple data transmission requests can be guaranteed.

【技术实现步骤摘要】
一种基于FPGA的数据串行传输控制系统及方法
本专利技术属于数据传输控制领域,具体涉及一种基于FPGA的数据串行传输控制系统及方法。
技术介绍
FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。在AOI自动光学检测行业中,经常会使用fpga做为相机的主控处理传输单元进行数据传输。但是实际上,由于实际情况的多样性,相机以及fpga的数量经常会随着需求进行变化,再加上数据量与日俱增,并行传输的稳定性,速率远不能满足需求,因此需要利用fpga进行串行数据传输的架构搭建。传统的FPGA在互联时,通常是收发器互联之后自建私有协议,不同的FPGA之间一般是通过GT收发器自建私有协议。但是这种自建私有协议的数据传输形式在实际的使用中还是存在诸多的问题。例如现有技术中,一般是采用xilinxtransceiver直接使用的形式,采用8b10b带chariskmask字符的非标接口,作为数据流接口,不存在阻塞,握手,使用时难以理解和操控。。多lane之间的数据同步(channelbonding)和接收与发送之间的时钟修正(clockcorrection)需要手动同步。又例如,传输过程采用没有握手的数据信号的方式,如果没有控制好传输的间隔以及传输带宽,如果前后级带宽不匹配,很容易造成数据丢失。没有错误监控机制,不能很好的定位问题。除此之外,在FPGA的传输协议上,各个链路层的协议没有明确区分开,不同的功能性区域之间的信息交流常常处于混乱无序的状态,缺乏有效的数据,最后导致在多种功能的耦合性过强的同时,又缺乏清楚的条理,最终导致FPGA的数据传输效率低下。进一步地,在扩展性方面,现有技术中,由于链路层各个功能的耦合性过强,在实现高度集成的同时,所带来的问题就是任何一个功能的增加与裁剪,其过程都变得十分复杂。因此,对于现有技术中的基于FPGA的数据传输,尤其是图像数据的传输,还是存在很多的问题,主要集中在:物理层协议的不标准化,没有使用通讯原理中的扰码校验,以及时钟修复功能,导致物理层的稳定性较差;不同传输模块的传输流量大小不同导致传输数据的丢失;模块接口不具备临时阻塞的功能,数据流只能持续输送,不能暂停等待;各种传输控制功能不能明确区分,不同功能性模块的耦合性过强,导致在进行功能的增加和裁撤上具有一定的难度。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种基于FPGA的数据串行传输控制系统及方法,至少可以部分解决上述问题。本专利技术技术方案针对现有技术中FPGA数据串行传输结构复杂、传输协议混乱、扩展性差的情况,通过将不同功能封装成不同的子模块,结合仲裁模块和协议模块,可以保证多种数据传输请求的有序、稳定执行。为实现上述目的,按照本专利技术的一个方面,提供了一种基于FPGA的数据串行传输控制系统,用于对FPGA的数据串行传输进行控制,其特征在于,所述控制系统包括依次连接的协议模块、仲裁模块和子功能模块;其中,所述子功能模块用于对数据串行传输控制系统进行数据传输功能配置,每个子功能模块优选对应FPGA的一种数据传输任务;所述仲裁模块通过扩展接口与子功能模块相连接,并根据仲裁协议的传输顺序执行接入仲裁模块的子功能模块的输出数据,或将从协议模块接收到的输入数据分发到对应的子功能模块;所述协议模块为不同FPGA之间的数据传输提供统一的物理层数据传输协议,按照仲裁模块的传输顺序接收子功能模块的输出数据,并将其传输给相邻FPGA单元,或接收来自相邻FPGA单元的输入数据并将其传输给仲裁模块。其中,协议模块一般是具体的收发器,协议模块在接收到仲裁模块传递过来的输出数据后,将其发送给与之相邻的FPGA单元。具体来说,是协议模块(收发器)将输出数据发送给与之相连接的FPGA单元的协议模块(收发器)。接收数据的协议模块再对其进行处理,分发至当前FPGA的相应位置。作为本专利技术技术方案的一个优选,控制系统还包括数据流控制模块,所述数据流控制模块协议模块相连接,通过协议模块上的数据接口对数据串行传输控制系统进行数据流控制,以保证数据发送端和接收端的数据流量平衡。作为本专利技术技术方案的一个优选,子功能模块包括定时状态收发模块、寄存器配置收发模块、图像传输收发模块中的一个或多个;所述定时状态收发模块用于接收和/或发送FPGA的状态寄存器;所述寄存器配置收发模块用于对FPGA内的状态寄存器进行配置;所述图像传输收发模块用于对数据进行传输,和/或对传输数据流进行参数配置。作为本专利技术技术方案的一个优选,子功能模块发送的数据流位宽优选与协议模块的数据流位宽相匹配。作为本专利技术技术方案的一个优选,子功能模块优选通过双向接口与仲裁模块相连接,从而既可以向仲裁模块发送数据、也可以从仲裁模块接收数据。具体来说,上述定时状态收发模块、寄存器配置收发模块、图像传输收发模块均可以主动对其当前所在的FPGA的数据传输过程进行控制管理,也可以接受其他FPGA的参数对当前FPGA的数据传输过程进行控制管理。因此,对于本专利技术技术方案的子功能模块而言,其优选采用双向接口与仲裁模块进行连接,一方面可以向仲裁模块发送数据(输出数据),也可以从仲裁模块接收数据(输入数据)。作为本专利技术技术方案的一个优选,仲裁模块接收来自子功能模块的输出数据,并在每个子功能模块的输出数据上添加子模块标记,然后通过协议模块传输到相邻FPGA单元;或接收来自协议模块的输入数据,对输入数据的子模块标记进行识别,然后将其分别传输至对应的子功能模块中。作为本专利技术技术方案的一个优选,每个FPGA通过数据串行传输控制系统对当前FPGA内的数据传输进行控制,相邻FPGA单元优选通过数据串行传输控制系统进行连接。按照本专利技术技术方案的一个方面,提供了一种基于权利要求1~7任一项所述的数据串行传输控制系统的数据串行传输控制方法,包括数据串行输入和数据串行输出,其特征在于,数据串行输出过程如下,S1根据数据串行传输控制需求选择至少一个子功能模块并对其进行参数配置,所述子功能模块采用扩展接口与仲裁模块相连接;S2仲裁模块根据仲裁协议顺次接收子功能模块的输出数据,并在接收到的输出数据上添加子模块标记以对子功能模块的类别进行识别;S3将经过标记的输出数据发送给协议模块,通过协议模块转发到相邻FPGA单元。作为本专利技术技术方案的一个优选,数据串行输入过程如下,S1’协议模块接收相邻FPGA单元的输入数据并将其发送到仲裁模块;S2’仲裁模块对输入数据进行解析,获取输入数据的子模块标记并对其进行识别;S3’卸载输入数据的子模块标记,并将其发送到对应的子功能模块。作为本专利技术技术方案的一个优选,仲裁模块根据仲裁协议对子功能模块的数据传输请求进行仲裁排序,按照仲裁排序进行数据传输,以保证多个数据传输请求的有序执行。总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,具有以下有益效果:1)本专利技术技术方案,针对现有技术中不同的FPGA之间通过GT收发器自建私有协议,从而导致数据串行传输结构复杂,使用时操作难度本文档来自技高网
...

【技术保护点】
1.一种基于FPGA的数据串行传输控制系统,用于对FPGA的数据串行传输进行控制,其特征在于,所述控制系统包括依次连接的协议模块、仲裁模块和子功能模块;其中,所述子功能模块用于对数据串行传输控制系统进行数据传输功能配置,每个子功能模块优选对应FPGA的一种数据传输任务;所述仲裁模块通过扩展接口与子功能模块相连接,并根据仲裁协议的传输顺序执行接入仲裁模块的子功能模块的输出数据,或将从协议模块接收到的输入数据分发到对应的子功能模块;所述协议模块为不同FPGA之间的数据传输提供统一的物理层数据传输协议,按照仲裁模块的传输顺序接收子功能模块的输出数据,并将其传输给相邻FPGA单元,或接收来自相邻FPGA单元的输入数据并将其传输给仲裁模块。

【技术特征摘要】
1.一种基于FPGA的数据串行传输控制系统,用于对FPGA的数据串行传输进行控制,其特征在于,所述控制系统包括依次连接的协议模块、仲裁模块和子功能模块;其中,所述子功能模块用于对数据串行传输控制系统进行数据传输功能配置,每个子功能模块优选对应FPGA的一种数据传输任务;所述仲裁模块通过扩展接口与子功能模块相连接,并根据仲裁协议的传输顺序执行接入仲裁模块的子功能模块的输出数据,或将从协议模块接收到的输入数据分发到对应的子功能模块;所述协议模块为不同FPGA之间的数据传输提供统一的物理层数据传输协议,按照仲裁模块的传输顺序接收子功能模块的输出数据,并将其传输给相邻FPGA单元,或接收来自相邻FPGA单元的输入数据并将其传输给仲裁模块。2.根据权利要求1所述的一种基于FPGA的数据串行传输控制系统,其中,所述控制系统还包括数据流控制模块,所述数据流控制模块协议模块相连接,通过协议模块上的数据接口对数据串行传输控制系统进行数据流控制,以保证数据发送端和接收端的数据流量平衡。3.根据权利要求1或2所述的一种基于FPGA的数据串行传输控制系统,其中,所述子功能模块包括定时状态收发模块、寄存器配置收发模块、图像传输收发模块中的一个或多个;所述定时状态收发模块用于接收和/或发送FPGA的状态寄存器;所述寄存器配置收发模块用于对FPGA内的状态寄存器进行配置;所述图像传输收发模块用于对数据进行传输,和/或对传输数据流进行参数配置。4.根据权利要求1~3任一项所述的一种基于FPGA的数据串行传输控制系统,其中,所述子功能模块发送的数据流位宽优选与协议模块的数据流位宽相匹配。5.根据权利要求1~4任一项所述的一种基于FPGA的数据串行传输控制系统,其中,所述子功能模块优选通过双向接口与仲裁模...

【专利技术属性】
技术研发人员:徐墨潇欧昌东
申请(专利权)人:武汉精立电子技术有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1