一种网格接收机的数据缓存与发送装置及方法

文档序号:6629544阅读:195来源:国知局
一种网格接收机的数据缓存与发送装置及方法
【专利摘要】一种网格接收机的数据缓存与发送装置,包括由FPGA和DDR3存储器组成的缓存模块,片上系统及驻机软件组成的TCP通信模块。其中FPGA通过接口电路与DDR3存储器相连,并通过外部系统总线与片上系统相连,片上系统具有以太网接口,可以将数据发送到网络。本发明为接收机的FPGA芯片挂接DDR3存储器,数据可在中频处理后直接由FPGA写入DDR3存储器,使得接收机可以不间断的高速采集。FPGA向片上系统提供FIFO接口来支持异步数据搬移,在TCP通信模块中采用数据通道专门用于数据的发送,确保数据流在整个发送过程中都不会中断。
【专利说明】一种网格接收机的数据缓存与发送装置及方法

【技术领域】
[0001]本发明属于无线电监测领域,尤其是一种网格接收机的数据缓存与发送装置及该装置的工作方法。

【背景技术】
[0002]网格化已是无线电监测的一个重要发展方向,网格化的接收机不再是孤立的单站作业点,而是作为一个传感器,为监测系统提供频谱感知的能力。各个接收机通过网络相互连通,所测量的数据均发送到远端服务器进行比对融合和处理。由于网格化需要在监测区域内布设大量的接收机,因此接收机必须是小型化、低成本和易安装的,台式接收机不在考虑之列。此外,相比于传统的接收机,网格化更加强调接收机对数据的本地缓存和网络传输能力。在网格化的无线电监测系统中,接收机所采集的数据需要传送到远程的工作站进行处理。在目前有限的网络带宽下,当高速采集时,数据往往不能及时得到传输,因而需要接收机缓存数据。如果使用接收机内嵌入式系统自带的内存,其写入速度和容量均达不到要求。在数据传输方面,要求网格接收机在发送数据时不能中断数据流,确保数据流到达远程主机时与原始采集时保持一致。
[0003]目前小型化的接收机,其数字部分采用FPGA+ARM的架构,两者之间通过ARM的外部系统总线进行数据传输。对FPGA编程实现数字中频处理,每处理完一帧数据,FPGA发出中断请求通知CPU将数据读走。CPU在中断例程中,将数据从FPGA复制到内存中,然后控制FPGA启动下一帧的采集,复制到内存中的数据帧由其他模块进行后续的处理。
[0004]在程控时,远程主机与接收机的交互基于远程过程调用(RPC)的应用层协议。在该方式下,接收机被动的响应程控指令。当需要获取接收机的采集数据时,远程主机向接收机发送一条查询指令,RPC协议将指令解释成远程调用接收机的一个过程,接收机在此过程中把测量结果发送出去,远程主机方可继续执行下一步操作。


【发明内容】

[0005]本发明的目的就是针对现有网格接收机缺乏高速大容量的缓存功能,无法实现高速采集,FPGA要等待CPU读完数据之后才可进行后续处理,数据采集不连续的不足,提出了一种网格接收机的数据缓存与发送装置及方法。
[0006]本发明采用如下技术方案:
[0007]—种网格接收机的数据缓存与发送装置,包括数据缓存模块和TCP通信模块,所述缓存模块包括FPGA和DDR3存储器,所述FPGA通过接口电路与DDR3存储器相连,并通过外部系统总线与TCP通信模块中的片上系统相连,所述TCP通信模块由片上系统及驻机软件组成,所述片上系统设有以太网接口。
[0008]优选地,所述接口电路由控制线、数据通路和时钟线组成。
[0009]优选地,所述FPGA上设有供所述片上系统读取DDR3存储器数据的FIFO接口。
[0010]优选地,所述TCP通信模块包括管理单元、控制通道和数据通道三部分。
[0011]优选地,所述TCP通信模块的管理单元包括监听器、消息响应器、通道映射表和通道工厂。
[0012]优选地,所述TCP通信模块的控制通道包括指令分离器和准数据通道链表。
[0013]优选地,所述TCP通信模块的数据通道包括一个发送代理。
[0014]一种网格接收机的数据缓存与发送方法,采用DDR3存储器的异步读写,通过FPGA的流驱动作为驻机软件搬移数据的硬件控制接口,采用TCP通信模块进行数据发送,数据缓存与发送过程主要包含三个阶段:
[0015]缓存,网格接收机接收的数据由FPGA写入DDR3存储器中进行缓存,并由FPGA利用接口总线的空闲时间将数据输送到FIFO接口 ;
[0016]搬移,所述驻机软件中,有一个频谱数据搬移线程专门对数据帧进行搬移,该线程执行以下步骤:
[0017]步骤一,判断扫描参数列表是否为空,为空就休眠50毫秒继续执行步骤一,否则取出列表头节点;
[0018]步骤二,根据节点参数信息中的快速傅立叶变换点数在进程堆上创建相应大小的缓冲区;
[0019]步骤三,以该缓冲区地址和大小为参数,通过Device1Control O函数调用流驱动的数据搬移函数,由后者把FPGA FIFO里数据搬移到缓冲区中,其中DeviceloControlO为操作系统的一个API函数;
[0020]步骤四,对测量数据进行对数转换和频响补偿,并制作该帧的头部,头部包括频率、快速傅立叶变换点数、时间戳信息;
[0021]步骤五,以目前关联的数据通道的套接字句柄为参数,把步骤三中的两个数据块打包送往TCP通信模块;
[0022]步骤六,如果TCP通信模块接收,则执行步骤一,否则继续尝试步骤五;
[0023]传输,数据的传输由接收机的TCP通信模块实现,数据的传输过程包括以下步骤:
[0024]步骤a,申请数据连接,远程主机欲接收数据,首先通过已建立的控制通道向接收机发送“端口 ”指令,该指令向接收机提出了建立数据连接的申请,在指令帧中包含了远程主机用于该数据通道连接的TCP端口号,接收机收到该指令后,经过指令分离、指令解析和分发,最终由TCP通信模块自身负责响应。在响应过程中,TCP通信模块首先委托通道工厂创建出一个未连接的数据通道实例,并将此通道添加到控制通道的准数据通道链表,然后通过控制通道向远程主机发送应答;
[0025]步骤b,建立连接,远程主机在收到应答之后,就以申请连接时的端口号向接收机发起连接请求;接收机收到请求后,找到与该连接请求端口号一致的准数据通道,为该准数据通道建立连接;
[0026]步骤C,发送,接收机的内部模块总是通过数据通道向远程主机发送数据。发送时,内部模块以数据通道的套接字句柄,数据块的引用为参数,向TCP通信模块提出发送请求,由TCP通信模块负责将数据块发送到网络。
[0027]发送的具体过程由TCP通信模块控制,TCP通信模块首先根据套接字句柄查找通道映射表找到对应的数据通道,然后就把数据块的发送任务委托给了数据通道,数据通道在判断通道状态正常后,就把发送任务委托给发送代理,发送代理实现了发送的真正细节;
[0028]发送代理拥有一个64k字节的环形缓冲区,环形缓冲区被抽象成首尾相接,采用临界区保护,可以多线程访问。通常情况下,写入数据运行于数据采集线程的上下文,发送数据运行于主线程的上下文。缓冲中的数据先入先出,缓冲的空间可循环利用;
[0029]采集线程中的数据块发送请求被委托给发送代理后,发送代理首先把数据块的大小与环形缓冲的可用空间相比较。如果可用空间无法容纳该数据块,就拒绝该请求;否则就把数据块添加到缓冲中数据的尾部,更新数据尾部标记,并向窗口投递一条数据发送消息。
[0030]该消息经过主线程的分发,最终会由数据通道接收到。数据通道初步解析消息参数后,委托发送代理继续响应消息。发送代理会在三次迭代中尽可能多的发送环形缓冲中的数据,在迭代过程中如果环形缓冲已空或者发送受到阻塞,都会中途退出。在迭代完成后,如果环形缓冲仍有数据没有发送,则向窗口投递一条数据发送消息,留待下次响应消息时发送。
[0031]本发明具有以下有益效果:
[0032]1、在缓存模块中挂接DDR3存储器,数据可在中频处理后直接由FPGA写入DDR3存储器,使得接收机可以高速采集。
[0033]2、FPGA分时控制DDR3存储器的读写,为CPU访问DDR3存储器提供FIFO接口,CPU在读取数据时不会造成数据采集的中断。
[0034]3、采用专门的TCP通路传输数据,使数据流与控制流相分离,数据流可以高速连续的传送到远程主机。
[0035]4、网格接收机TCP通信模块的组成结构,分为管理单元、控制通道和数据通道三部分,接收机可以同时与多个远程主机交互,不同类型的测量数据可通过多个数据通道并行发送。
[0036]5、通过发送代理的方式,一方面向外界屏蔽了数据发送的复杂性,另一方面环形缓冲区的设计和由消息驱动的发送过程保证了数据发送的高效。

【专利附图】

【附图说明】
[0037]图1为网格接收机内部框图;
[0038]图2为DDR3存储器与FPGA的连接部分框图;
[0039]图3为接收机的TCP通信模块结构框图。

【具体实施方式】
[0040]下面结合附图和具体实施例对本发明的【具体实施方式】做进一步的说明:
[0041]专用名词介绍:
[0042]FPGA:现场可编程门阵列,DDR3:第三代双倍数据率同步动态随机存取存储器,FIFO:先入先出队列,TCP:传输控制协议。
[0043]如图1所示,一种网格接收机的数据缓存与发送装置,包括数据缓存模块和TCP通信模块,缓存模块包括FPGA和DDR3存储器,所述FPGA通过接口电路与DDR3存储器相连,并通过外部系统总线与TCP通信模块中的片上系统相连,所述TCP通信模块由片上系统及驻机软件组成,所述片上系统设有以太网接口,可以将数据发送到网络。所述FPGA通过接口电路连接有DDR3存储器,在本发明中DDR3存储器的存储容量为4GB,片上系统与远程主机通过TCP通信模块实现通信,片上系统的CPU采用ARM Cortex-A8核的处理器,主频800MHz,具有百兆LAN网口,外部系统总线具有16位的数据线和24位的地址线,时钟频率133MHzο接收机采用Window Embedded Compact 7嵌入式操作系统。
[0044]如图2所示,所述连接FPGA与DDR3存储器的接口电路由控制线、数据通路和时钟线组成。
[0045]所述FPGA上设有供所述片上系统读取DDR3存储器数据的FIFO接口,FPGA内部通过Xilinx FPGA存储器接口生成器生成IP核,IP核包含物理层、控制器和用户接口层,物理层直接和DDR3存储器相连接。用户接口层用于接收用户控制接口发送过来的写地址、写数据和读地址。控制器是整个IP核的核心,负责处理用户接口层发送的命令,产生满足用户需求的激活、读、写、预充电、自刷新等命令。在该IP核的基础上,FPGA控制DDR3存储器部分的设计得以大大简化,编程人员只需要按照IP核用户操作端的时序要求进行读写操作即可。由于DDR3存储器不能同时又读又写,FPGA需要采用分时策略,把读写操作分离。FPGA内部采用流水作业,在生成下一帧IQ数据的同时对上一帧进行快速傅立叶变换运算和DDR3存储器写入操作,按照无缝采集的要求,运算和写入的时间一定会小于IQ数据帧的生成时间,在该时间差内,DDR3存储器的接口总线是空闲的,因而FPGA可利用此时间差将DDR3存储器中的数据输送到FIFO中。
[0046]如图3所示,所述TCP通信模块包括管理单元、控制通道和数据通道三部分。
[0047]所述TCP通信模块的管理单元包括监听器、消息响应器、通道映射表和通道工厂,其中监听器处理8080端口的连接请求,如果允许建立连接,就利用通道工厂创建通道对象。消息响应器用于响应网络事件,当窗口在收到网络事件消息后会通知TCP通信模块,然后由消息响应器把消息分发到对应的通道;通道映射表记录通道套接字句柄和通道对象的对应关系,每个已建立的控制通道和数据通道均记录在该表中,可以通过套接字句柄迅速找到其通道对象。通道工厂负责创建控制通道和数据通道的实例。
[0048]所述TCP通信模块的控制通道包括指令分离器和准数据通道链表。指令分离器对接收缓冲的数据流进行处理,将数据流分割成一个个指令帧,然后通过接收机的指令分发模块发送到接收机各个内部模块响应。控制通道还包含一个准数据通道链表,保存那些隶属于该控制通道,但尚未真正建立连接的数据通道。
[0049]所述TCP通信模块的数据通道包括一个发送代理,该代理在接受接收机内部模块欲发送的数据后,以Windows消息为驱动,异步地把数据发送到远程主机。
[0050]一种网格接收机的数据缓存与发送方法,采用DDR3存储器的异步读写,通过FPGA的流驱动作为驻机软件搬移数据的硬件控制接口,采用TCP通信模块进行数据发送,数据缓存与发送过程主要包含三个阶段:
[0051]缓存,网格接收机接收的数据由FPGA写入DDR3存储器中进行缓存,并由FPGA利用接口总线的空闲时间将数据输送到FIFO接口 ;
[0052]搬移,所述驻机软件中,有一个频谱数据搬移线程专门对数据帧进行搬移,该线程执行以下步骤:
[0053]步骤一,判断扫描参数列表是否为空,为空就休眠50毫秒继续执行步骤一,否则取出列表头节点;
[0054]步骤二,根据节点参数信息中的快速傅立叶变换点数在进程堆上创建相应大小的缓冲区;
[0055]步骤三,以该缓冲区地址和大小为参数,通过Device1Control O函数调用流驱动的数据搬移函数,由后者把FPGA FIFO里数据搬移到缓冲区中,其中DeviceloControlO为操作系统的一个API函数;
[0056]步骤四,对测量数据进行对数转换和频响补偿,并制作该帧的头部,头部包括频率、快速傅立叶变换点数、时间戳信息;
[0057]步骤五,以目前关联的数据通道的套接字句柄为参数,把步骤三中的两个数据块打包送往TCP通信模块;
[0058]步骤六,如果TCP通信模块接收,则执行步骤一,否则继续尝试步骤五;
[0059]传输,数据的传输由接收机的TCP通信模块实现,数据的传输过程包括以下步骤:
[0060]步骤a,申请数据连接,远程主机欲接收数据,首先通过已建立的控制通道向接收机发送“端口 ”指令,该指令向接收机提出了建立数据连接的申请,在指令帧中包含了远程主机用于该数据通道连接的TCP端口号;
[0061]步骤b,建立连接,远程主机在收到应答之后,就以申请连接时的端口号向接收机发起连接请求;接收机收到请求后,找到与该连接请求端口号一致的准数据通道,为该准数据通道建立连接。
[0062]步骤C,发送,接收机的内部模块总是通过数据通道向远程主机发送数据。发送时,内部模块以数据通道的套接字句柄,数据块的引用为参数,向TCP通信模块提出发送请求,由TCP通信模块负责将数据块发送到网络。
[0063]发送的具体过程由TCP通信模块控制,TCP通信模块首先根据套接字句柄查找通道映射表找到对应的数据通道,然后就把数据块的发送任务委托给了数据通道,数据通道在判断通道状态正常后,就把发送任务委托给发送代理,发送代理实现了发送的真正细节。
[0064]发送代理拥有一个64k字节的环形缓冲区,环形缓冲区被抽象成首尾相接,采用临界区保护,可以多线程访问。通常情况下,写入数据运行于数据采集线程的上下文,发送数据运行于主线程的上下文。缓冲中的数据先入先出,缓冲的空间可循环利用。
[0065]采集线程中的数据块发送请求被委托给发送代理后,发送代理首先把数据块的大小与环形缓冲的可用空间相比较。如果可用空间无法容纳该数据块,就拒绝该请求;否则就把数据块添加到缓冲中数据的尾部,更新数据尾部标记,并向窗口投递一条数据发送消息。
[0066]该消息经过主线程的分发,最终会由数据通道接收到。数据通道初步解析消息参数后,委托发送代理继续响应消息。发送代理会在三次迭代中尽可能多的发送环形缓冲中的数据,在迭代过程中如果环形缓冲已空或者发送受到阻塞,都会中途退出。在迭代完成后,如果环形缓冲仍有数据没有发送,则向窗口投递一条数据发送消息,留待下次响应消息时发送。
[0067]当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本【技术领域】的技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。
【权利要求】
1.一种网格接收机的数据缓存与发送装置,包括数据缓存模块和TCP通信模块,其特征是,所述缓存模块包括FPGA和DDR3存储器,所述FPGA通过接口电路与DDR3存储器相连,并通过外部系统总线与TCP通信模块中的片上系统相连,所述TCP通信模块由片上系统及驻机软件组成,所述片上系统设有以太网接口。
2.如权利要求1所述的一种网格接收机的数据缓存与发送装置,其特征是,所述接口电路由控制线、数据通路和时钟线组成。
3.如权利要求1所述的一种网格接收机的数据缓存与发送装置,其特征是,所述FPGA上设有供所述片上系统读取DDR3存储器数据的FIFO接口。
4.如权利要求1所述的一种网格接收机的数据缓存与发送装置,其特征是,所述TCP通信模块包括管理单元、控制通道和数据通道三部分。
5.如权利要求4所述的一种网格接收机的数据缓存与发送装置,其特征是,所述TCP通信模块的管理单元包括监听器、消息响应器、通道映射表和通道工厂。
6.如权利要求4所述的一种网格接收机的数据缓存与发送装置,其特征是,所述TCP通信模块的控制通道包括指令分离器和准数据通道链表。
7.如权利要求4所述的一种网格接收机的数据缓存与发送装置,其特征是,所述TCP通信模块的数据通道包括一个发送代理。
8.—种网格接收机的数据缓存与发送方法,采用DDR3存储器的异步读写,通过FPGA的流驱动作为驻机软件搬移数据的硬件控制接口,采用TCP通信模块进行数据发送,其特征是,数据缓存与发送过程主要包含三个阶段: 缓存,网格接收机接收的数据由FPGA写入DDR3存储器中进行缓存,并由FPGA利用接口总线的空闲时间将数据输送到FIFO接口 ; 搬移,所述驻机软件中,有一个频谱数据搬移线程专门对数据帧进行搬移,该线程执行以下步骤: 步骤一,判断扫描参数列表是否为空,为空就休眠50毫秒继续执行步骤一,否则取出列表头节点; 步骤二,根据节点参数信息中的快速傅立叶变换点数在进程堆上创建相应大小的缓冲区; 步骤三,以该缓冲区地址和大小为参数,通过Device1Control O的系统API调用流驱动的数据搬移函数,由后者把FPGA FIFO里数据搬移到缓冲区中; 步骤四,对测量数据进行对数转换和频响补偿,并制作该帧的头部,头部包括频率、快速傅立叶变换点数、时间戳信息; 步骤五,以目前关联的数据通道的套接字句柄为参数,把步骤三中的两个数据块打包送往TCP通信模块; 步骤六,如果TCP通信模块接收,则执行步骤一,否则继续尝试步骤五; 传输,数据的传输由接收机的TCP通信模块实现,数据的传输过程包括以下步骤: 步骤a,申请数据连接,远程主机欲接收数据,首先通过已建立的控制通道向接收机发送“端口 ”指令,该指令向接收机提出了建立数据连接的申请,在指令帧中包含了远程主机用于该数据通道连接的TCP端口号; 步骤b,建立连接,远程主机在收到应答之后,就以申请连接时的端口号向接收机发起连接请求;接收机收到请求后,找到与该连接请求端口号一致的准数据通道,为该准数据通道建立连接; 步骤C,发送,接收机的内部模块总是通过数据通道向远程主机发送数据。发送时,内部模块以数据通道的套接字句柄,数据块的引用为参数,向TCP通信模块提出发送请求,由TCP通信模块负责将数据块发送到网络。
【文档编号】G06F13/10GK104317747SQ201410525557
【公开日】2015年1月28日 申请日期:2014年10月9日 优先权日:2014年10月9日
【发明者】杨青, 孙发力, 李树芳, 何鹏 申请人:中国电子科技集团公司第四十一研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1