CN103218323B - 一种高速数据采集和传输装置 - Google Patents
一种高速数据采集和传输装置 Download PDFInfo
- Publication number
- CN103218323B CN103218323B CN201310096777.8A CN201310096777A CN103218323B CN 103218323 B CN103218323 B CN 103218323B CN 201310096777 A CN201310096777 A CN 201310096777A CN 103218323 B CN103218323 B CN 103218323B
- Authority
- CN
- China
- Prior art keywords
- data
- ram
- pld
- chip microcomputer
- fifo
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Communication Control (AREA)
- Information Transfer Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种高速数据采集和传输装置,包括可编程逻辑器件数据采集模块用于高速采集和缓冲;RAM读写协调控制模块用于可编程逻辑器件控制数据的高速缓冲和读取;在单片机存在数据请求时,将一定数据长度的数据从RAM中读出,缓冲在可编程逻辑器件中;通信模块用于实现可编程逻辑器件与单片机的通信,由乒乓操作的一对后级FIFO和SPI通信实现单片机与可编程逻辑器件间数据的读取;以太网数据发送模块对UIP协议栈进行优化,获取易于IP分包发送的数据量,将数据发送过程简化为拷贝包头和通过可编程逻辑器件间接读取缓存在RAM的数据到网络缓冲区。实现高速AD采集,减少数据上传到以太网的拷贝次数,解决CPU利用率低的问题。
Description
技术领域
本发明涉及信号采集技术领域,更具体地,涉及一种高速数据采集和传输装置。
背景技术
在信号采集尤其是高速数据采集技术领域,系统要求的采样速率高、采集精度高、数据传输量大。于是系统的采集速度、数据的传输、数据的存储问题就成了系统构建必须克服的关键问题。对于高速大规模数据的采集处理,使用FPGA作为单片机前端数据的采集缓冲是国内外常用的一种方法。比较典型是视频采集系统,如基于FPGA和ARM的视频采集处理系统,采用的是FPGA将图像数据采集后送到压缩芯片进行压缩,ARM读取压缩后数据并将数据缓冲到SDRAM,ARM读取SDRAM数据,进行打包处理通过UDP/IP协议实现以太网数据传输。该方法需要更高性能的ARM实现上述功能,且在大数据量处理上就更显不足,同时由于多次拷贝数据导致CPU的工作效率不高。还有一种UDP/IP协议栈硬件实现方法,即协议栈的处理功能采用硬件描述语言重新编写,并在FPGA上实现以太网传输的功能。其实现的协议类型有限,处理速度较慢,且存在开发难度大、周期长。
发明内容
为了实现高速AD采集,减少数据上传到以太网的拷贝次数,解决CPU利用率低的问题。本发明的主要目的在于利用可编程逻辑器件以及高速AD转换器进行数据采集并将数据缓存到外部的RAM中,单片机通过直接读取可编程逻辑器件从而实现间接读取缓冲在RAM的数据,然后直接将数据通过优化后的UDP协议上传到以太网,同时将读取到的数据用于液晶实时显示。本发明实现可编程逻辑器件高速采集以及可编程逻辑器件与单片机之间高速实时的数据传输,减少数据在底层硬件的复制转移次数,高效率地将数据通过以太网传输到上位机以及单片机液晶显示。本发明满足数据采集高实时性,高速性等性能,提高了CPU的工作效率。
为了实现上述目的,本发明公开一种高速数据采集和传输装置,包括:
可编程逻辑器件数据采集模块,用于实现对一个或多个通道的电信号数据进行高速采集和缓冲;
RAM读写协调控制模块,用于可编程逻辑器件控制数据的高速缓冲和读取;同时在单片机存在数据请求时,将一定数据长度的数据从RAM中读出,并缓冲在可编程逻辑器件中;
通信模块,用于实现可编程逻辑器件与单片机的通信,模块由乒乓操作的一对后级FIFO和SPI通信实现单片机与可编程逻辑器件间数据的读取;
以太网数据发送模块,通过对UIP协议栈进行优化,获取易于IP分包发送的数据量,将数据发送过程简化成了拷贝包头和通过可编程逻辑器件间接读取缓存在RAM的数据到网络缓冲区。
进一步的,所述装置的实现方式:采用可编程逻辑器件采集数据并将数据缓存到外部RAM中,通过对UIP协议栈进行优化,数据发送过程简化成了拷贝包头和单片机通过可编程逻辑器件间接读取缓存在外部RAM的数据到单片机内部网络缓冲区,同时数据的IP分包发送的缓冲区长度按需任意设定。
可编程逻辑器件数据采集模块,该模块是可编程逻辑器件对一个或者多个AD转换芯片进行控制,实现对一个通道或者多通道的电信号高速采集;将AD采集到的数据按照各路AD标号,依次顺序写入乒乓操作的两个前级FIFO。当第一个前级FIFO写满时,开启一次RAM的写操作。与此同时,第二个前级FIFO写进整理好的数据。当第二个前级FIFO写满时,开启一次RAM的写操作。与此同时,第一个前级FIFO写进整理好的数据,实现AD数据的高速采集和缓冲。
RAM读写协调控制模块,该模块由可编程逻辑器件对RAM的读写控制,实现大数据量的高速缓冲和读取。当前级可编程逻辑器件数据采集模块的一个采集缓冲区填满时,将触发RAM的写操作。经过一系列写操作之后,可编程逻辑器件检测后一级的FIFO有没有一个被读空。若有,则触发RAM的读操作,从而让后一级的FIFO能及时被填满。若没有,则将数据继续保存在RAM中,作为以太网的数据缓冲。由于RAM不能同时读写,此模块需设置RAM读写的优先级仲裁,即写的优先级比读的高,才能完整地收集采集到的数据。为了保证RAM读写不出现混乱,在对RAM读写时,是以一定数据长度读取,并缓冲在可编程逻辑器件中,实现RAM读写交替进行,保证数据能正确写入和读出。
可编程逻辑器件与单片机的通信模块,该模块由乒乓操作的一对后级FIFO和SPI通信实现单片机与可编程逻辑器件间数据的读取。当第一个后级FIFO写满时,可编程逻辑器件通过SPI向单片机发送数据传送请求,若单片机响应并传来数据读取命令,则将第一个后级FIFO的数据通过SPI传送给单片机。与此同时,第二个后级FIFO接收前级RAM读取出的数据。
当第二个后级FIFO写满时,可编程逻辑器件通过SPI向单片机发送数据传送请求,若单片机响应并传来数据读取命令,则将第二个后级FIFO的数据通过SPI传送给单片机。与此同时,第一个后级FIFO接收前级RAM读取出的数据。该模块对两个后级FIFO的乒乓操作主要实现使后级FIFO缓冲区被读空时能及时被装满并随时快速响应单片机的读命令,从而实现数据的实时、连续的传递。
以太网数据发送模块,该模块使系统实现最大的吞吐量,减少冗余的数据拷贝。通过对UIP协议栈进行优化,将数据发送过程简化成了拷贝包头和通过可编程逻辑器件间接读取缓存在RAM的数据到网络缓冲区。同时设计更易于数据的IP分包发送的数据量,可按不同系统需求设定任意长度。通过间接控制RAM实现大数据量以最少次数的拷贝到以太网控制器缓冲区中,大大提高了单片机的工作效率。
本发明的有益效果:采用本发明,既能使可编程逻辑器件在AD采集完数据后实时写入RAM,又能让单片机所读的可编程逻辑器件的后级FIFO及时被填满,使得单片机可以随时来读可编程逻辑器件收集的数据。当上位机有请求,以太网需要发送数据时,单片机通过与可编程逻辑器件协商的数据管脚判断RAM内部是否有数据,若无,则不发送,若有则通过可编程逻辑器件内部FIFO读取数据,由于可编程逻辑器件预置的一对FIFO的乒乓操作,从可编程逻辑器件读取完全等效于直接从RAM读取,在ARM内部则优化UIP协议栈,改变UDP的发送结构,优化内部存储以及数据转移,使数据跳过复杂的多重拷贝,直接将可编程逻辑器件端口数据放到以太网发送缓冲区,以待发送。对于单片机来说,FPGA+RAM这两部分,完全等效于一片能自动收集数据的RAM。整个系统从宏观上看,数据是从RAM到以太网发送缓冲区一步到位转移的,中间数据没有多余停留以及冗余的拷贝,而单片机也能够对读入的数据进行液晶显示等操作,再次减少了数据的拷贝时间,从而实现大数据量吞吐以及高速实时传输,提高了CPU的工作效率。
附图说明
图1为本发明涉及的一种高速数据采集、转移装置的系统原理性示意图。
图 2为UIP协议优化后的数据流程图。
具体实施方式
下面结合附图对本发明做进一步描述,但本发明的实施方式并不限于此。
根据本发明的一个实例化,用于高速数据采集和传输装置包括,
本发明是基于可编程逻辑器件+单片机实现的高速数据采集和传输装置,通过FPGA实现单通道或者多通道的高速AD数据采集并按顺序依次写入到外部的RAM中,实现数据的缓冲,同时将一定长度的数据读到FPGA的0号FIFO中。当上位机有请求,以太网需要发送数据时,此时单片机通过与FPGA控制信号线,判断所述用于缓冲外部RAM数据的0号FIFO是否有数据,若无,则不发送,若有则单片机通过FPGA内部0号FIFO读取数据,并把每个数据放入以太网发送缓冲区,以待发送。同时,FPGA将外部RAM的缓冲数据写入到FPGA内部的1号FIFO中,等待下一个数据包的读取。利用所述RAM读写控制模块,实现对RAM写FPGA采集到的数据之余,将已写入RAM中一定长度的数据读出存放在FPGA的FIFO中,通过对图示0号和1号FIFO的乒乓操作实现单片机不间断的数据读取。
对于过去常用的UIP协议栈有两个明显的缺点:
(1)发送数据经过了三次完整的拷贝,而其中并无中间状态的转移与等待,这属于冗余开销。完全可以通过将网络数据包头独立,在发送的时候分布拷贝包头与数据到发送缓冲区达到优化的效果。
(2)以太网数据报的最大容量是1500个字节,除去IP和UDP包头长度,一次可发送的有效数据量为1472,当UDP数据报长度大于1472的时候势必将导致IP层要分包处理,传统的UIP协议栈将分包设置在UIP_BUF中进行,这增加了数据拷贝开销。而将数据报大小限制在1472或者1472以下则会导致上位机接收开销太大,因为当数据传输量达到1MB/s时,上位机的反应速度需要达到1000000/1472=680次/s,这对于上位机的非实时的通用操作系统來说是不可能的。
根据所述以太网发送模块,优化以上两大缺点,将拷贝次数从三次减少到了一次,加大发送缓冲区大小,优化缓冲区结构,先将包头数据拷贝到网络缓冲区,单片机通过上述方法间接读取外部的RAM数据拼接到包头数据后网络缓冲区TX0~n中,形成一个个完整的网络缓冲包。分配一个独立的包头缓冲区,将数据直接从FPGA中拷贝与包头分开拷贝的方法可解决分包数据冗余拷贝与操作复杂的问题。设置一个发送指针指向需要发送的数据,依据上一次发送的包头信息更新当前数据包头,完成拷贝包头和数据便可以实现数据发送了。改进后的数据流程如图2所示,对于ARM来说,FPGA+SDRAM这两部分,完全等效于一片能自动收集数据的SDRAM。整个系统从而从宏观上看,数据是从SDRAM到以太网发送缓冲区一步到位转移的,中间数据没有多余停留以及冗余的拷贝,从而实现大数据量吞吐以及高速转移。
由于FPGA预置的一对FIFO的乒乓操作,从FPGA读取完全等效于直接从SDRAM读取,在ARM内部则优化UIP协议栈,改变UDP的发送结构,优化内部存储以及数据转移,使数据跳过复杂的多重拷贝,直接将FPGA端口数据放到以太网发送缓冲区,以待发送
以上所述的本发明的实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神原则之内所作出的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
Claims (3)
1.一种高速数据采集和传输装置,其特征在于,包括:
可编程逻辑器件数据采集模块,用于实现对一个或多个通道的电信号数据进行高速采集和缓冲;
RAM读写协调控制模块,用于可编程逻辑器件控制数据的高速缓冲和读取;同时在单片机存在数据请求时,将数据长度为M的数据从RAM中读出,并缓冲在可编程逻辑器件中;
通信模块,用于实现可编程逻辑器件与单片机的通信,模块由乒乓操作的一对后级FIFO和SPI通信实现单片机与可编程逻辑器件间数据的读取;
以太网数据发送模块,通过对UIP协议栈进行优化,获取易于IP分包发送的数据量,将数据发送过程简化成了拷贝包头和通过可编程逻辑器件间接读取缓存在RAM的数据到网络缓冲区;
所述可编程逻辑器件数据采集模块实现数据的高速采集和缓冲的方式为:可编程逻辑器件对一个或者多个AD转换芯片进行控制,实现对一个通道或者多通道的电信号数据的高速采集;将AD采集到的数据按照各路AD标号,按顺序依次写入乒乓操作的两个前级FIFO;当第一个前级FIFO写满时,开启一次RAM的写操作,与此同时,第二个前级FIFO写进整理好的数据;当第二个前级FIFO写满时,开启一次RAM的写操作,与此同时,第一个前级FIFO写进整理好的数据,实现AD数据的高速采集和缓冲;
所述装置的实现方式:采用可编程逻辑器件采集数据并将数据缓存到外部RAM中,通过对UIP协议栈进行优化,数据发送过程简化成了拷贝包头和单片机通过可编程逻辑器件间接读取缓存在外部RAM的数据到单片机内部网络缓冲区,同时数据的IP分包发送的缓冲区长度按需任意设定。
2.根据权利要求1所述的高速数据采集和传输装置,其特征在于,所述RAM读写协调控制模块的实现方式为:该模块由可编程逻辑器件对RAM的读写控制,实现大数据量的高速缓冲和读取;当可编程逻辑器件数据采集模块的一个采集缓冲区填满时,将触发RAM的写操作;将数据保存在RAM中;其中RAM写的优先级比读的高;对RAM进行读写时,是以数据长度为M读取,并缓冲在可编程逻辑器件中,实现RAM读写交替进行;其中可编程逻辑器件检测后级的FIFO有没有一个被读空,若有,则触发RAM的读操作,从而让后一级的FIFO能及时被填满;若没有,则将数据继续保存在RAM中,作为以太网的数据缓冲。
3.根据权利要求1所述的高速数据采集和传输装置,其特征在于,所述通信模块的实现方式为:当第一个后级FIFO写满时,可编程逻辑器件通过SPI向单片机发送数据传送请求,若单片机响应并传来数据读取命令,则将第一个后级FIFO的数据通过SPI传送给单片机,与此同时,第二个后级FIFO接收前级RAM读取出的数据;
当第二个后级FIFO写满时,可编程逻辑器件通过SPI向单片机发送数据传送请求,若单片机响应并传来数据读取命令,则将第二个后级FIFO的数据通过SPI传送给单片机,与此同时,第一个后级FIFO接收前级RAM读取出的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310096777.8A CN103218323B (zh) | 2013-03-25 | 2013-03-25 | 一种高速数据采集和传输装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310096777.8A CN103218323B (zh) | 2013-03-25 | 2013-03-25 | 一种高速数据采集和传输装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103218323A CN103218323A (zh) | 2013-07-24 |
CN103218323B true CN103218323B (zh) | 2016-09-21 |
Family
ID=48816133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310096777.8A Expired - Fee Related CN103218323B (zh) | 2013-03-25 | 2013-03-25 | 一种高速数据采集和传输装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103218323B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103514132B (zh) * | 2013-09-12 | 2016-06-08 | 广东电网有限责任公司电力科学研究院 | 一种用于大数据量高速率通讯的数据优化方法 |
CN104317747B (zh) * | 2014-10-09 | 2017-03-01 | 中国电子科技集团公司第四十一研究所 | 一种网格接收机的数据缓存与发送装置及方法 |
CN109327424B (zh) * | 2017-08-01 | 2021-06-04 | 徐州天荣医疗通讯设备有限公司 | 基于小内存单片机的自带缓冲区mqtt协议实现方法 |
CN109358547B (zh) * | 2018-10-29 | 2023-09-19 | 甘肃酒钢集团宏兴钢铁股份有限公司 | 一种植入式控制系统数据获取方法 |
CN112130485A (zh) * | 2020-08-31 | 2020-12-25 | 南京理工大学 | 一种高速多通道同步采集装置及方法 |
CN113984162A (zh) * | 2021-09-13 | 2022-01-28 | 西安航天三沃机电设备有限责任公司 | 一种治超非现场执法高速高精度信号采集终端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398877A (zh) * | 2008-11-18 | 2009-04-01 | 谢翔 | 一种内嵌计算机的数据上载传输扩展卡装置 |
CN101916429A (zh) * | 2010-07-09 | 2010-12-15 | 浙江大学 | 双目相机的几何校正及视差提取装置 |
CN101930479A (zh) * | 2010-08-27 | 2010-12-29 | 中国科学院上海微系统与信息技术研究所 | 一种基于pcie协议的多通道数据采集装置 |
-
2013
- 2013-03-25 CN CN201310096777.8A patent/CN103218323B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398877A (zh) * | 2008-11-18 | 2009-04-01 | 谢翔 | 一种内嵌计算机的数据上载传输扩展卡装置 |
CN101916429A (zh) * | 2010-07-09 | 2010-12-15 | 浙江大学 | 双目相机的几何校正及视差提取装置 |
CN101930479A (zh) * | 2010-08-27 | 2010-12-29 | 中国科学院上海微系统与信息技术研究所 | 一种基于pcie协议的多通道数据采集装置 |
Non-Patent Citations (2)
Title |
---|
一种高速数据采集及存储系统的研究;何维;《中国优秀硕士论文全文数据库》;20070715;第6-10页,附图1-2,2-1,3-1 * |
基于千兆以太网的高速数据采集系统设计;吕小平等;《计算机科学》;20080430;第248页,附图1-2 * |
Also Published As
Publication number | Publication date |
---|---|
CN103218323A (zh) | 2013-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103218323B (zh) | 一种高速数据采集和传输装置 | |
CN102831090B (zh) | 一种用于星载dsp与fpga通讯接口的地址线及其优化方法 | |
CN109412914A (zh) | 流数据与axi接口通信装置 | |
US8788726B2 (en) | Data transmission system, storage medium and data transmission program | |
CN102065569B (zh) | 一种适用于wlan的以太网mac子层控制器 | |
JP2018185814A (ja) | NVMe−oF SSDにおける低レイテンシ直接データアクセス方法、及びそのためのシステム | |
CN103986931B (zh) | 一种fpga+dsp结构上基于srio总线传输视频数据的实现方法 | |
CN109089029B (zh) | 一种基于FPGA的Gige Vision接口图像传输系统与方法 | |
CN103532807B (zh) | 一种用于pcie数据服务质量管理的方法 | |
CN102185833B (zh) | 一种基于fpga的fc i/o并行处理方法 | |
CN110462599A (zh) | 用于循环缓冲器的自主硬件管理的设备和方法 | |
AU2006222461A1 (en) | Method and apparatus for improving the performance of USB mass storage devices in the presence of long transmission delays | |
WO2023098099A1 (zh) | 基于ddr实现大规模fifo数据处理的系统、方法、装置、处理器及其存储介质 | |
EP1897335A1 (en) | Automated serial protocol initiator port transport layer retry mechanism | |
CN203812236U (zh) | 一种基于处理器和现场可编程门阵列的数据交换系统 | |
CN102420877A (zh) | 一种多模式高速智能异步串口通信模块及实现方法 | |
CN102841871A (zh) | 基于高速串行总线的DMA结构的pipeline读写方法 | |
WO2014131273A1 (zh) | 数据传输方法、装置及直接存储器存取 | |
CN106843023B (zh) | 一种基于fpga的电力数据采集系统 | |
CN103517085B (zh) | 一种基于视频解码设计实现远程服务器管理的方法 | |
CN101753584A (zh) | VxWorks系统下提高智能变电站快速报文处理速度的方法 | |
CN103731364B (zh) | 基于x86平台实现万兆大流量快速收包的方法 | |
CN117591451B (zh) | 一种cpu与fpga间循环缓冲通信方法及系统 | |
CN101793557B (zh) | 高分辨率成像仪数据实时采集系统及方法 | |
CN102637148B (zh) | 一种基于ddr sdram的栈式数据缓存装置及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160921 Termination date: 20180325 |