基于fpga的多通道异速数据发送系统的制作方法

文档序号:10612744阅读:283来源:国知局
基于fpga的多通道异速数据发送系统的制作方法
【专利摘要】本发明公开了一种基于FPGA的多通道异速数据发送系统,主要解决现有技术难以用单设备实现多路数据异速发送的问题。其包括:数据发送软件模块(1)、高速数据传输模块(2)、通道选择模块(3)和组帧发送模块(4)。数据发送软件模块(1)将命令和数据送入高速数据传输模块(2),再由高速数据传输模块(2)传送给通道选择模块(3),通道选择模块(3)内的仲裁器根据通道优先级命令遍历检测各个通道的传输条件,跳转到对应通道,并向上一级返回数据请求命令,在数据到来时,将传送的数据送入组帧发送模块(4)的对应通道,并根据设置的正逆程长度和输出时钟完成数据发送。本发明适应性强、灵活度高,可用于异速发送多个通道的数据。
【专利说明】
基于FPGA的多通道异速数据发送系统
技术领域
[0001]本发明属于数据传输领域,涉及一种多通道异速数据发送系统,可用于发送多个通道不同速度的数据。【背景技术】
[0002]在电子技术、计算机通讯技术高速发展的今天,数据传输技术已经成为通讯系统中的关键技术之一。由于导弹、雷达、空间飞行器所产生的数据量和数据传输带宽的不断变化,要求相应的数据传输系统具有多通道异速数据接收和发送的能力,以适应不同速率数据传输的需要。
[0003]但多通道异速数据传输对传输链路的要求很高,普通的电路芯片难以满足要求, 专用集成电路成本过高,开发周期长,灵活性差,不适宜用来实现广泛使用的数据多路异速传输。现有基于PCI总线的多通道数据发送系统如图1所示,其包含数据发送软件模块,高速数据传输模块,DMA发送控制模块,本地总线模块。该系统主要以高速数据传输模块和DMA控制模块为核心,其中高速数据传输模块以PCI9054为例,其集成了两个相互独立的DMA发送控制器,在需要发送数据时,首先由数据发送软件模块将需要发送的两路数据送入高速数据传输模块,并由PCI9054向本地总线模块申请本地总线访问权,得到访问权之后,由高速数据传输模块将数据通过DMA发送控制模块送入发送接口,传输完成后,DMA发送控制模块向高速数据传输模块发送指令,由PCI9054向DMA发送控制模块设定DMA传输结束位结束传输。此系统虽然简单易用,但是由于只能实现双通道的低速数据发送,并且两个通道不能设置不同速度,灵活性差,不能满足大多数情况下所需要的多通道异速数据发送。
【发明内容】

[0004]本发明的目的在于针对现有技术的不足,提出一种基于FPGA的多通道异速数据发送系统,以自由配置发送速度,灵活实现多路数据的同时发送。
[0005]为实现上述目的,本发明利用FPGA具有资源丰富、使用灵活,可重新配置、开发周期短的优点,将其作为多通道异速数据传输的载体。本发明包括:
[0006]数据发送软件模块1,用于设置通道开关、正逆程长度、发送数据速率、各通道发送的文件,并将通道开关命令、正逆程长度命令、输出时钟选择命令、通道优先级命令传送给高速数据传输模块2;同时根据高速数据传输模块2返回的数据请求命令在各通道数据文件中选择对应的文件每次传送32KB的数据送给高速数据传输模块,并显示数据的发送速度和发送总量;
[0007]高速数据传输模块2,包括PC1-Express高速数据接口和动态随机存储器DDR3,该 PC1-Express高速数据接口对数据进行高速传输,将数据发送软件模块1传输的数据送入动态随机存储器DDR3暂时缓存,同时DDR3将数据输出并产生缓存数据量指示信号;该PC1-Express高速数据接口对命令进行双向传输,将数据发送软件模块1传送的命令和DDR3输出的缓存数据量指示信号送入通道选择模块3,同时将通道选择模块3返回的数据请求命令传给数据发送软件模块1;
[0008]通道选择模块3,其内部包含一个通道仲裁器,实现数据从高速数据传输模块2到组帧发送模块4传输时的通道选择,保证各通道数据独立异速的传输,同时根据通道仲裁器选择的当前通道及发送状态向高速数据传输模块2返回数据请求命令;
[0009]组帧发送模块4,包括可产生任意大小时钟的直接数字式频率合成器DDS、各通道的数据缓存器FIFO和各通道的组帧器。根据通道选择模块3传入的正逆程长度命令、输出时钟选择命令,控制数据缓存器FIFO—次性输出正程长度的数据,间隔逆程的长度后再继续输出,由组帧器将输出的数据按照固定帧格式进行组帧并以串行或者并行的方式送给后端设备。
[0010]本发明具有如下优点:[〇〇11]1.本发明提出的数据发送系统可以实现多通道和多速率的数据传输,能满足有多个后端和需要多种发送速率的情况;
[0012]2.本发明提出的多通道异速数据传输机制,对比单通道的数据传输,可在实现多通道高速传输的同时,保证数据不丢失、不出错,不降低传输效率;
[0013]3.本发明提出的数据发送软件模块可自行判断数据通道优先级,能进行各通道发送文件的选择、各通道的开关控制及正逆程长度和输出时钟大小的设置,操作简单、方便, 满足多种情况的要求;
[0014]4.本发明提出的通道选择模块,只利用一个通道仲裁器对数据传输通道的自动遍历和仲裁来实现多路数据的发送,节省了资源,提高了效率;
[0015]5.本发明提出的组帧发送模块所发送数据的组帧格式能根据需求进行改变,适应性强、灵活度高。【附图说明】
[0016]图1是现有基于PCI总线的多通道数据发送系统的框图;
[0017]图2是本发明的多通道异速数据发送系统框图;
[0018]图3是本发明中的通道仲裁器工作示意图;
[0019]图4是本发明中的通道仲裁器通道选择流程图。【具体实施方式】
[0020]下面将结合附图和具体实例对本发明做进一步详细说明:
[0021]参照图2,本发明基于FPGA的多通道异速数据发送系统,包括数据发送软件模块1、 高速数据传输模块2、通道选择模块3和组帧发送模块4。其中:[〇〇22]所述的数据发送软件模块1,是基于VS2010设计的,其可以循环读取任意大小、多种格式的文件,如:.dat、.raw、.jpg、.bmp、.png、.tif、.jpeg等格式,其具有各通道控制开关和正逆程长度的设置、待发送文件和输出时钟的选择、通道优先级的判断以及数据发送速度和发送量显示的功能。其中:
[0023]设置的通道开关,是用来开启或关闭某个传输通道,由通道选择模块(3)根据数据发送软件模块发送的该命令控制通道的开和关来实现;
[0024]设置的正逆程长度,是以字节为单位,由组帧发送模块(4)根据数据发送软件模块发送的该命令将数据持续正程的长度和间隔逆程的长度进行发送来实现;
[0025]设置的发送数据速率,是以Mbps或Gbps为单位,由数据发送软件模块(1)根据用户设置的该参数自动计算出时钟大小,通过组帧发送模块(4)产生对应控制字控制DDS输出所需大小的时钟,将其作为对应通道FIFO的读时钟,实现数据的异速发送;
[0026]设置的各通道待发送的文件,可以是多种格式和多达8个通道,由通道选择模块 (3)将数据发送软件模块读取的各数据文件进行通道选择,实现数据的多通道传输。
[0027]通道优先级命令,是通过软件自动计算并比较各个通道的吞吐率获取,吞吐率由正程长度与正逆程之和的比值、输出时钟和输出数据位宽三者的乘积来计算,吞吐率越大的通道优先级越高;
[0028]数据发送速度和数据发送量显示,是通过软件不断统计每秒发送的数据量和总的发送量,并将这两个数值每秒刷新一次显示在界面上。
[0029]当各通道的控制开关、正逆程长度、发送文件、输出时钟分别设置后,数据发送软件模块1自主判断发送通道优先级,并且将通道开关命令、正逆程长度命令、通道优先级命令、输出时钟选择命令传送给高速数据传输模块2,再由高速数据传输模块2传送给通道选择模块3。
[0030]所述的高速数据传输模块2,包括PC1-Express高速数据接口和动态随机存储器 DDR3,PC1-Express高速数据接口和DDR3的控制器程序是通过在Xilinx公司IP核的基础上编写用户接口程序实现的,其中,PC1-Express高速数据接口采用DMA直接存取方式进行数据的高速传输和软硬件的交互,它的控制程序中包含容量为128KB的FIFO缓冲器,用来将待发送的数据进行位宽转换和数据缓冲,当该FIFO缓冲器的可编程满信号有效时,反馈给数据发送软件模块1中断请求信号,数据发送软件模块1接收到中断请求信号之后暂停送数, 以保证数据在快速传输的同时不丢失;DDR3采用的是缓存大小为2GB的内存颗粒,将PC1-Express 高速数据接口传输的数据进行暂时缓存,其输出的缓存数据量指示信号用来实时显示DDR3内部的数据量是否达到门限值;[〇〇31]同时该PC1-Express高速数据接口对命令进行双向传输,将数据发送软件模块1传送的命令和DDR3输出的缓存数据量指示信号送入通道选择模块3,同时将通道选择模块3返回的数据请求命令传给数据发送软件模块1。
[0032]所述的通道选择模块3,包含一个通道仲裁器,其使用的时钟为输出时钟中最大的时钟,以减少仲裁时间,保证数据传输效率。该仲裁器根据数据发送软件模块1传送的通道优先级命令判断当前通道是否满足传输条件,来对通道进行仲裁,实现数据传输时的通道选择。其中,通道传输条件包括:当前通道FIFO的可编程满信号为低电平,S卩FIFO内数据量未达到所设定的可编程满值代表的数据量;高速数据传输模块2传送的当前通道的开关命令为高电平,即当前通道处于开启状态;DDR3输出的缓存数据量指示信号为低电平,即当前 DDR3内部有足够缓存空间来缓存数据。[〇〇33]若当前通道不满足以上三个通道传输条件,则通道仲裁器自动检测下一通道;若当前通道满足传输的条件,则将通道锁定并将该通道的32KB数据送入组帧发送模块4的对应FIFO中,传输完成后,释放该通道,通道仲裁器开始继续检测下一通道是否满足传输条件。[〇〇34]参照图3和图4,以四通道异速数据发送系统为例说明通道仲裁器的工作原理:
[0035]初始时,通道仲裁器处于遍历检测状态,各个通道处于等待状态,若用户设置的四个通道的发送速率分别为:2Gbps、1.5Gbps、lGbps、800Mbps,则数据发送软件模块1首先计算出四个通道的输出时钟大小分别为:256MHz、192MHz、128MHz、100MHz;若四个通道的正程长度分别为1000、1100、1200、1300字节,逆程长度分别为10、20、30、40字节,则数据发送软件模块1根据吞吐率计算公式自动判断出四个通道优先级顺序依次为:1,2,3,4。此时通道仲裁器首先开始检测第1个通道的开关信号、可编程满信号和DDR3缓存数据量指示信号是否都满足条件,若这三个条件中有任意一个不满足,则通道仲裁器直接检测第2个通道的传输条件,第1个通道仍然处于等待状态;否则通道仲裁器选择第1个通道并将该通道锁定,将传输的32KB的数据送入组帧发送模块4中对应通道的FIFO;
[0036]当传输完成后,通道仲裁器又进入遍历检测状态,同时开始检测第2个通道是否满足传输条件:若有任意一个不满足,则通道仲裁器直接检测第3个通道的传输条件,第2个通道仍然处于等待状态;否则通道仲裁器选择第2个通道并将该通道锁定,将传输的32KB的数据送入组帧发送模块4中对应通道的FIFO;
[0037]当传输完成后,通道仲裁器又进入遍历检测状态,同时开始检测第3个通道是否满足传输条件:若有任意一个不满足,则通道仲裁器直接检测第4个通道的传输条件,第3个通道仍然处于等待状态;否则通道仲裁器选择第3个通道并将该通道锁定,将传输的32KB的数据送入组帧发送模块4中对应通道的FIFO;
[0038]当传输完成后,通道仲裁器又进入遍历检测状态,同时开始检测第4个通道是否满足传输条件:若有任意一个不满足,则通道仲裁器直接检测第1个通道的传输条件,第4个通道仍然处于等待状态;否则通道仲裁器选择第4个通道并将该通道锁定,将传输的32KB的数据送入组帧发送模块4中对应通道的FIFO;
[0039]如此循环,通过通道仲裁器的循环检测,完成四个通道数据的传输与发送。
[0040]所述组帧发送模块4,包括可产生任意大小时钟的直接数字式频率合成器DDS、各通道的数据缓存器FIFO和各通道的组帧器。根据通道选择模块3传入的正逆程长度命令、输出时钟选择命令,控制数据缓存器FIFO—次性输出正程长度的数据,间隔逆程的长度后再继续输出,由组帧器将输出的数据按照固定帧格式进行组帧并以串行或者并行的方式发送给后端设备。其中,组帧发送模块4中各通道数据缓存器FIFO可编程满的值大于正程长度最大值的8倍,以保证组帧发送模块4中各通道FIFO内缓存的数据量始终满足发送需求;FIFO 的容量与设置的可编程满值之差大于32KB,以保证数据正常传输过程中不丢失。该模块中输出正程长度的数据,是通过触发输出时钟的上升沿,启动计数器在1到正程值之间进行计数,并在该计数范围内使当前通道FIFO的读使能为高电平而实现的;按照固定帧格式进行组帧,是通过组帧器对时钟进行计数,并根据用户需求在正程数据开始的地方加上所需字节的标头和帧计数器,在正程数据结尾的地方加上所需字节的标尾而实现的。[〇〇411本发明系统的工作原理如下:[〇〇42]数据发送软件模块1设置各通道的开关、正逆程长度、输出时钟,选择各通道待发送的文件,并首先将命令送入高速数据传输模块2,再经高速数据传输模块2传送给通道选择模块3;通道选择模块3内的通道仲裁器根据数据发送软件模块1发送的通道优先级命令遍历检测各个通道的传输条件,并锁定满足传输条件的对应通道,同时向数据发送软件模块1返回对应通道的数据请求命令;数据发送软件模块1根据数据请求命令读取对应数据文件中32KB的数据,发送给高速数据传输模块2;通道选择模块3将高速数据传输模块2传送的数据送入组帧发送模块4对应的通道,完成传输后通道仲裁器再次开始工作,遍历检测下一通道的通道传输条件;组帧发送模块4,根据设置的正逆程长度和选择的输出时钟,并利用时钟计数将各通道数据按照固定帧格式进行组帧发送给后端设备。[〇〇43]以上仅是本发明的一个实例,不构成对本发明的任何限制,显然在本发明的基础上可以进行适当的扩展和改进,但这些都属于本发明的权利保护范围。
【主权项】
1.一种基于FPGA的多通道异速数据发送系统,包括:数据发送软件模块(1 ),用于设置通道开关、正逆程长度、发送数据速率、各通道待发送 的文件,并将通道开关命令、正逆程长度命令、输出时钟选择命令、通道优先级命令传送给 高速数据传输模块(2);同时根据高速数据传输模块(2)返回的数据请求命令在各通道数据 文件中选择对应的文件每次传送32KB的数据送给高速数据传输模块,并显示数据的发送速 度和发送总量;高速数据传输模块(2),包括PC1-Express高速数据接口和动态随机存储器DDR3,该 PC1-Express高速数据接口对数据进行高速传输,将数据发送软件模块(1)传输的数据送入 动态随机存储器DDR3暂时缓存,同时DDR3将数据输出并产生缓存数据量指示信号;该PC1-Express高速数据接口对命令进行双向传输,将数据发送软件模块(1)传送的命令和DDR3输 出的缓存数据量指示信号送入通道选择模块(3),同时将通道选择模块(3)返回的数据请求 命令传给数据发送软件模块(1);通道选择模块(3),其内部包含一个通道仲裁器,实现数据从高速数据传输模块(2)到 组帧发送模块(4)传输时的通道选择,保证各通道数据独立异速的传输,同时根据通道仲裁 器选择的当前通道及发送状态向高速数据传输模块(2)返回数据请求命令;组帧发送模块(4),包括可产生任意大小时钟的直接数字式频率合成器DDS、各通道的 数据缓存器FIFO和各通道的组帧器。根据通道选择模块(3)传入的正逆程长度命令、输出时 钟选择命令,控制数据缓存器FIFO—次性输出正程长度的数据,间隔逆程的长度后再继续 输出,由组帧器将输出的数据按照固定帧格式进行组帧并以串行或者并行的方式送给后端 设备。2.根据权利要求1中所述的多通道异速数据发送系统,其特征在于,数据发送软件模块 (1)中所设置的各参数功能实现如下:设置的通道开关,是用来开启或关闭某个传输通道,由通道选择模块(3)根据数据发送 软件模块发送的该命令控制通道的开和关来实现;设置的正逆程长度,是以字节为单位,由组帧发送模块(4)根据数据发送软件模块发送 的该命令将数据持续正程的长度和间隔逆程的长度进行发送来实现;设置的发送数据速率,是以Mbps或Gbps为单位,由数据发送软件模块(1)根据用户设置 的该参数自动计算出时钟大小,通过组帧发送模块(4)产生对应控制字控制DDS输出所需大 小的时钟,将其作为对应通道FIFO的读时钟,实现数据的异速发送;设置的各通道待发送的文件,可以是多种格式和多达8个通道,由通道选择模块(3)将 数据发送软件模块读取的各数据文件进行通道选择,实现数据的多通道传输。3.根据权利要求1中所述的多通道异速数据发送系统,其特征在于,数据发送软件模块 (1)中的通道优先级命令,是通过软件自动计算并比较各个通道的吞吐率获取,吞吐率由正 程长度与正逆程之和的比值、输出时钟和输出数据位宽三者的乘积来计算,吞吐率越大的 通道优先级越高。4.根据权利要求1中所述的多通道异速数据发送系统,其特征在于,数据发送软件模块 (1)中数据发送速度和数据发送量显示,是通过软件不断统计每秒发送的数据量和总的发 送量,并将这两个数值每秒刷新一次显示在界面上。5.根据权利要求1中所述的多通道异速数据发送系统,其特征在于,高速数据传输模块(2)中PC1-Express高速数据接口,是通过编写用户控制程序实现高速无差错传输功能,其 控制程序中包含容量大小为128KB的FIFO缓冲器,用来将待发送的数据进行位宽转换和数 据缓冲,当FIFO的可编程满信号有效时,向数据发送软件模块(1)反馈中断请求信号,数据 发送软件模块(1)接收到中断请求信号之后暂停送数,以保证数据在快速传输的同时不丢失。6.根据权利要求1中所述的多通道异速数据发送系统,其特征在于,通道选择模块(3) 中的通道传输条件包括:当前通道FIFO的可编程满信号为低电平,S卩FIFO内数据量未达到 所设定的可编程满值代表的数据量;高速数据传输模块(2)传送的当前通道的开关命令为 高电平,即当前通道处于开启状态;DDR3输出的缓存数据量指示信号为低电平,即当前DDR3 内部有足够缓存空间来缓存数据。7.根据权利要求1中所述的多通道异速数据发送系统,其特征在于,通道选择模块(3) 中通道仲裁器是根据数据发送软件模块(1)传送的通道优先级对通道进行循环遍历和仲 裁,并根据仲裁结果选择传输通道:若当前通道不满足传输条件,则通道仲裁器自动检测下 一通道;若当前通道满足传输的条件,则将通道锁定并将该通道的32KB数据送入组帧发送 模块(4)的对应FIFO中,传输完成后,释放该通道,通道仲裁器开始继续检测下一通道是否 满足传输条件。8.根据权利要求1中所述的多通道异速数据发送系统,其特征在于,组帧发送模块(4) 中各通道的数据缓存器FIFO,其可编程满的值大于正程长度最大值的8倍,以保证组帧发送 模块(4)中各通道FIFO内缓存的数据量始终满足发送需求;FIFO的容量与设置的可编程满 值之差大于32KB,以保证数据正常传输过程中不丢失。9.根据权利要求1中所述的多通道异速数据发送系统,其特征在于,组帧发送模块(4) 中输出正程长度的数据,是通过触发输出时钟的上升沿,启动计数器在1到正程值之间进行 计数,并在该计数范围内使当前通道FIFO的读使能为高电平而实现的。10.根据权利要求1中所述的多通道异速数据发送系统,其特征在于,组帧发送模块(4) 中按照固定帧格式进行组帧,是通过组帧器对时钟进行计数,并根据用户需求在正程数据 开始的地方加上所需字节的标头和帧计数器,在正程数据结尾的地方加上所需字节的标尾 而实现的。
【文档编号】G06F13/38GK105975416SQ201610273516
【公开日】2016年9月28日
【申请日】2016年4月28日
【发明人】王海, 张敏, 贾祖琛, 刘岩, 赵伟, 秦红波
【申请人】西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1