[0025] 下面将结合附图,对本实用新型的优选实施例进行详细的描述。
[0026] 参见图1、图2,一种基于FPGA的40Gbps高速通信系统,包括上位机 10和FPGA部,FPGA部包括数据转接板20、高速基带板30、DA子卡41和 AD子卡42,其中,[0027] 上位机10与数据转接板20连接,上位机10包括参数设置模块11和数据绘制模块12,参数设置模块11选择合适的参数生成帧数据,发送数据给数据转接板20,以及接收FPGA部传来的控制指令和数据;数据绘制模块12对回收的帧数据进行算法解析,并与发送数据比较,绘制对应的星座图,完成通信链路的验证;
[0028] 数据转接板20包括PCIE接口21和DDR4多帧缓存器22,还包括FPGA 芯片及其最小系统电路,此部分非本实用新型的区别技术特征,故不赘述;高速基带板30包括AD_RAM逻辑模块32、DA_RAM逻辑模块31、JESD204B 协议模块33,数据转接板20与高速基带板30还均包括光纤收发逻辑模块23,数据转接板20与高速基带板30通过光纤收发逻辑模块23进行通信,PCIE接口21与上位机10通信,DDR4多帧缓存器22与PCIE接口21相连,通过PCIE 接口21与上位机10的数据交换,AD_RAM逻辑模块32和DA_RAM逻辑模块31通过JESD204B协议模块33与AD子卡42和DA子卡41进行数据交换。
[0029] 具体实施例中数据转接板20可采用XCKu040板卡,高速基带板30可采用XCVu11p板卡。
[0030] PCIE接口21通过读写AXI总线实现与上位机10通信。DDR4多帧缓存器22通过AXI Interconnect与PCIE接口21直接相连。光纤收发逻辑模块23通过四通道SFP接口完成数据转接板20与高速基带板30之间的通信。数据转接板20与高速基带板30之间的数据交换采用Aurora 64b/66b高速串行协议。
[0031] 上述系统中,FPGA部分为两个部分:
[0032] 一是数据转接板20部分:数据转接板20包括XCKu040板卡,该部分有两种数据通路,一种为AXI总线的内存映射,另一种是AXI_Lite的寄存器映射接口。通过前者,上位机10与XCKu040板卡交换的PCIE数据可以直接映射到 DDR4多帧缓存器22的内存空间;通过后者,上位机10和XCKu040板卡交换的控制指令映射到AXI_Lite接口,所以可以通过AXI总线接口实现大数据传输,通过AXI_Lite接口实现控制指令的传输。此外添加4个AXI_GPIO,分别用来传递写控制指令、传递上位机10写完毕控制指令、传递读控制指令和传递读完毕控制指令。上位机10可以实时监听这几个控制寄存器并与之进行轻量级数据交换,这不会影响正常的PCIE大数据流传输。
[0033] 二是高速基带板30部分:高速基带板30包括XCVu11p板卡,搭载AD子卡42和DA子卡41。数据转接板20和高速基带板30之间通过四通道光纤可插拔收发器QSFP连接,数据交换遵从Aurora64b/66b协议将数据信号转换为光纤信号,发送的光纤信号存在DA_RAM逻辑模块31中,经由JESD204B协议通过高速串行口将高速数据发给DA子卡41,DA子卡41将数字信号变为模拟信号通过FIFO发送给AD子卡42,并通过高速AD子卡42将模拟信号转换成数字信号回传给XCVu11p板卡,由JESD204B协议将高速串行数据流转为stream 数据流存到AD_RAM逻辑模块32中;然后将收到的stream数据流转为光纤信号发送到光纤收发逻辑模块23,XCKu040板卡通过光纤收发逻辑模块23将光纤信号转为帧数据存到DDR4多帧缓存器22的内存空间。
[0034] 上述系统中,在上位机10部分,主要分为两部分内容:一是绘制上位机10 界面,二是编写DLL程序,使MATLAB程序可以调用PCIE驱动下发和接收数据。上位机10界面中包含生成帧数据所需的各种参数以及图形绘制区域。 MATLAB算法根据参数生成不同的帧数据,而且每一位数据都用16bit表示。 MATLAB调用DLL程序后,DLL程序首先将帧数据的每一位进行拆分,分为高8位和低8位,然后发送写控制指令,PCIE接口21根据写控制指令将数据存到DDR4内存空间中。数据发送完毕后,DLL程序再发送一条写完毕控制指令,通知XCKu040板卡数据已经发送完毕。上位机10接收数据时,XCKu040板卡通过PCIE接口21向上位机10发送一条读控制指令,DLL程序收到指令后,开始从DDR4多帧缓存器22的内存空间读取数据。读取完毕后,DLL程序发送一条读完毕控制指令给XCKu040板卡,通知硬件上位机10已经读取完毕。将读取的数据按照拆分规则进行数据拼接,然后将拼接后的数据返回到上位机10,验证数据无误后完成链路回环验证。
[0035] 基于FPGA的40Gbps高速通信系统,其通信方法包括以下步骤:
[0036] S1,上位机10将所要下发的帧数据和写控制指令发送给DLL程序;
[0037] S2,DLL程序调用PCIE驱动将数据和控制指令发送到的数据转接板20的 PCIE接口21;
[0038] S3,PCIE接口21将接收到的数据根据控制指令存到相应的DDR4多帧缓存器22的内存空间;
[0039] S4,等待上位机10发出写完毕控制指令后,数据转接板20将帧数据转为 SFP光纤信号,光纤信号内部由Aurora 64b/66b协议进行信号传递;
[0040] S5,将SFP光纤信号发送到高速基带板30,高速基带板30将收到的光纤信号存到DA_RAM逻辑模块中;
[0041] S6,根据协议转为stream数据流,stream数据流再由JESD204B高速串行协议转为高速串行数据传递给DA子卡41;
[0042] S7,DA子卡41将数字信号变为模拟信号通过FIFO发送给AD子卡42,并通过高速AD子卡42将模拟信号转换成数字信号回传给高速基带板30;
[0043] S8,由JESD204B协议将高速串行数据流转为stream数据流存到AD_RAM 逻辑模块32中;
[0044] S9,将收到的stream数据流转为光纤信号发送到光纤收发逻辑模块23;
[0045] S10,通过光纤收发逻辑模块23将光纤信号转为帧数据存到DDR4多帧缓存器22的内存空间;
[0046] S11,数据转接板20通过PCIE接口21向上位机10传递一个读控制指令;
[0047] S12,DLL程序收到读控制指令后,上位机10将DDR4多帧缓存器22的内存空间中缓存的帧数据通过PCIE接口21读到上位机10;
[0048] S13,上位机10将收发数据进行对比,验证数据链路是否打通。
[0049] 上位机10界面参见图3,本实用新型搭建了一条从发射端到接收端双向 40Gbps的完整的高速通信系统平台,先在上位机10界面上设定合适的参数,生成发送数据,选择合适的AXI总线地址、GPIO控制指令,点击发送数据,之后数据将通过DLL程序调用PCIE驱动传给XCKu040板卡,XCKu040板卡将数据存在DDR4多帧缓存器22的内存空间,光纤通过FIFO从DDR4多帧缓存器22的内存空间中读取数据,参见图4。然后再通过Aurora 64b/66b协议将数据信号转换为SFP光纤信号,光纤信号通过一个四通道光纤可插拔收发器 QSFP传给XCVu11p板卡,即高速基带板30,其光纤收发逻辑模块23获取数据之后,需要和AD_RAM逻辑模块32和DA_RAM逻辑模块31进行数据交互,参见图5。XCVu11p板卡将收到的光纤信号存到DA_RAM逻辑模块中,根据协议转为stream数据流,stream数据流由JESD204B高速串行协议转为高速串行数据传递给DA子卡41,DA子卡41通过FIFO将数据信号发送给AD 子卡42,并通过高速AD子卡42将数据转换成数字信号回传给XCVu11p板卡,高速基带板30与搭载的AD子卡42和DA子卡41中的数据交换参见图6。由 JESD204B协议模块33将高速串行数据流转为stream数据流存到AD_RAM逻辑模块32中,然后将收到的stream数据流转为光纤信号发送到光纤收发逻辑模块23。XCKu040板卡通过光纤处理逻辑模块收到接收数据并将数据暂存到DDR4多帧缓存器22的内存空间,光纤回收数据参见图7。XCKu040板卡即数据转接板20通过PCIE接口21向上位机10传递一个读控制指令,DLL程序收到读控制指令后,上位机10将DDR4多帧缓存器22的内存空间中缓存的帧数据通过PCIE接口21读到MATLAB上位机10,上位机10的数据绘制模块12对收发数据进行星座图绘制,绘制结果参见图8。因为受到外部环境的影响以及AD子卡42和DA子卡41硬件自身存在的误差,收发数据不可能完全一致。但是星座图上的打点情况趋于一致,可以认为数据在高速通信链路中完成了较为准确的回环。
[0050] 本实用新型上位机10数据的发送是通过DLL程序完成的,驱动为构建 DLL程序打下了基础,根据PCIE读写DDR4多帧缓存器22的内存空间的通信过程,生成了可以供MATLAB调用的DLL程序,并通过实际改动,可以很好地和MATLAB算法相结合。DLL程序的中有两个主要的函数:分别是写函数和读函数:写函数完成的功能是读取MATLAB算法中提供的写入DDR4多帧缓存器22中的数据和控制指令,因为从MATLAB中读到的数据16位有符号数,而在PCIE通信中使用的是8位无符号数,所以需要在写函数中进行负数转化和拆分;读函数为写函数逆过程,参见图9,MATLAB数据通过调用 DLL程序实现从上位机10到DDR4多帧缓存器22的内存空间的数据传递。
[0051] 实际中,使用DLL程序接收读控制指令时,可能因为上位机10不能及时接收控制指令,所以程序设计时设定读取控制指令是一直进行的,直至收到相应的控制指令才退出程序。如果硬件一直不能给上位机10反馈控制指令,那么DLL程序就会一直进行程序检测,导致上位机10程序崩溃,所以在控制指令检测程序中加入了超时检测,如果超过了5秒的设定检测时间,DLL程序自动退出,并返回给MATLAB一个错误信息。
[0052] 最后说明的是,以上优选实施例仅用以说明本实用新型的技术方案而非限制,尽管通过上述优选实施例已经对本实用新型进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本实用新型权利要求书所限定的范围。