CN110347369A - 一种多缓存多线程数据采集方法 - Google Patents
一种多缓存多线程数据采集方法 Download PDFInfo
- Publication number
- CN110347369A CN110347369A CN201910488486.0A CN201910488486A CN110347369A CN 110347369 A CN110347369 A CN 110347369A CN 201910488486 A CN201910488486 A CN 201910488486A CN 110347369 A CN110347369 A CN 110347369A
- Authority
- CN
- China
- Prior art keywords
- data
- thread
- buffering area
- user buffering
- fifo memory
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 230000003139 buffering effect Effects 0.000 claims abstract description 66
- 238000012545 processing Methods 0.000 claims abstract description 16
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 238000013481 data capture Methods 0.000 claims 1
- 239000000872 buffer Substances 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006854 communication Effects 0.000 description 1
- 230000005574 cross-species transmission Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/065—Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种多缓存多线程数据采集方法,包括数据采集卡和嵌入式系统,数据采集卡具有FIFO存储器1和FIFO存储器2;嵌入式系统作为上位机,在嵌入式系统中采用双线程和两级用户缓冲区,形成线程1、线程2和用户缓冲区1、用户缓冲区2,线程1用于将数据从数据采集卡的FIFO存储器中取出放入用户缓冲区1,线程2用于从用户缓冲区读取数据及数据处理。FIFO存储器1和FIFO存储器2依次轮换存储;线程1对用户缓冲区1和用户缓冲区2交替写入,线程2对用户缓冲区1和用户缓冲区2进行交替读取。本发明解决了FIFO存储器数据溢出和用户缓冲区数据“丢点”的问题,应用多缓存多线程数据采集方法可实现高速、连续、大容量的无丢点数据显示和存盘。
Description
技术领域
本发明属于数据处理技术领域,具体涉及一种多缓存多线程数据采集方法。
背景技术
在数据采集系统中,数据采集卡获取的数据在嵌入式系统(上位机)上的显示和存储通常采用定时器实现。由于数据需要边采集边传输至嵌入式系统并进行相应的信号处理,且对同步性要求较高,而现代CPU处理速度远远快于计算机接口传输速度,而数据传输几乎只能通过接口来完成,所以在高速大数据采集中,数据的丢点和数据访问冲突问题就显得尤为突出。本发明涉及的一种多缓存多线程数据采集方法,通过多缓存防止了数据的溢出,多线程确保了处理线程总是等待采集线程先行,既保证了FIFO存储器数据不溢出又保证了用户缓冲区数据不“丢点”,为高速、连续、大容量的无丢点数据显示和存盘提供了解决方法。
发明内容
本发明的目的在于用于解决系统数据采集过程中上位机与下位机通讯过程中数据丢失的问题,提供一种多缓存多线程数据采集方法。
本发明是通过以下技术方案实现的:
一种多缓存多线程数据采集方法,包括数据采集卡和嵌入式系统,数据采集卡具有FIFO存储器1和FIFO存储器2;
嵌入式系统作为上位机,在嵌入式系统中采用双线程和两级用户缓冲区,形成线程1、线程2和用户缓冲区1、用户缓冲区2,线程1用于将数据从数据采集卡的FIFO存储器中取出放入用户缓冲区1,线程2用于从用户缓冲区读取数据及数据处理;
数据采集卡的FIFO存储器1存满后,数据采集卡向上位机发送信号通知上位机开始采集数据,然后上位机开始进行FIFO存储器数据的读取,数据读取过程中,数据采集卡采集到的新数据将存入FIFO存储器2,FIFO存储器2存满后,再转到FIFO存储器1,如此FIFO存储器1和FIFO存储器2依次轮换存储;
上位机对数据采集卡的FIFO存储器进行数据读取时,线程1和线程2同步进行,线程1将数据从FIFO存储器中取出并写入用户缓冲区1,同时线程2读取数据,由线程2从用户缓冲区1中读取线程1写入的数据并进行后续数据处理,线程2工作量大于线程1,因此,线程2读取的用户缓冲区总是落后于线程1写入的用户缓冲区,当线程2从用户缓冲区1读取处理数据过程中,如线程1已执行到用户缓冲区1写数据完成时,线程1即可向用户缓冲区2写入数据,线程2则继续对用户缓冲区1中的数据进行处理;待线程2完成对用户缓冲区1的数据读取和处理后,转向对用户缓冲区2进行数据读取和处理,如此,线程1对用户缓冲区1和用户缓冲区2交替写入,线程2对用户缓冲区1和用户缓冲区2进行交替读取。
本发明的优点和有益效果为:
本发明解决了FIFO存储器数据溢出和用户缓冲区数据“丢点”的问题,应用多缓存多线程数据采集方法可实现高速、连续、大容量的无丢点数据显示和存盘。
相对于现有技术,本发明所述的一种多缓存多线程数据采集方法具有以下优势:
(1)避免了FIFO存储器缓冲区的溢出。
(2)避免了用户缓冲区的丢点。
附图说明
图1为一种多缓存多线程数据采集方法系统结构图。
对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,可以根据以上附图获得其他的相关附图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合具体实施例进一步说明本发明的技术方案。
参见附图1,一种多缓存多线程数据采集方法,包括数据采集卡和嵌入式系统,在数据采集卡的FIFO存储器中增加二级缓存,形成FIFO存储器1和FIFO存储器2。
嵌入式系统作为上位机,在嵌入式系统中采用双线程和两级用户缓冲队列,形成线程1、线程2和用户缓冲区1、用户缓冲区2。线程1用于将数据从数据采集卡的FIFO存储器中取出放入用户缓冲区1,线程2用于从用户缓冲区读取数据进行图形化显示,同时,完成数据在存储设备中的文件保存。
数据采集方法如下:
数据采集卡的FIFO存储器1存满后(FIFO存储器的空满状态通过其状态引脚判别),数据采集卡向上位机发送信号通知上位机开始采集数据,然后上位机开始进行FIFO存储器数据的读取,数据读取过程中,数据采集卡采集到的新数据将存入FIFO存储器2,FIFO存储器2存满后,再转到FIFO存储器1,如此FIFO存储器1和FIFO存储器2依次轮换存储,避免了单一FIFO存储器情况下由于接口传输速度小于CPU处理速度而造成数据溢出的问题,即,避免了数据采集卡采集的数据丢失问题。
上位机对数据采集卡的FIFO存储器进行数据读取时,线程1和线程2同步进行,线程1将数据从FIFO存储器中取出并写入用户缓冲区1,同时线程2读取数据,由线程2从用户缓冲区1中读取线程1写入的数据并进行后续数据处理(例如数据的图形化显示、数据的后续存盘处理),由于线程2工作量大于线程1,因此,线程2读取的用户缓冲区总是落后于线程1写入的用户缓冲区,当线程2从用户缓冲区1读取处理数据过程中,如线程1已执行到用户缓冲区1写数据完成时,线程1即可向用户缓冲区2写入数据,线程2则继续对用户缓冲区1中的数据进行处理;待线程2完成对用户缓冲区1的数据读取和处理后,转向对用户缓冲区2进行数据读取和处理,如此,线程1对用户缓冲区1和用户缓冲区2交替写入,线程2对用户缓冲区1和用户缓冲区2进行交替读取。
以上对本发明做了示例性的描述,应该说明的是,在不脱离本发明的核心的情况下,任何简单的变形、修改或者其他本领域技术人员能够不花费创造性劳动的等同替换均落入本发明的保护范围。
Claims (1)
1.一种多缓存多线程数据采集方法,其特征在于:包括数据采集卡和嵌入式系统,数据采集卡具有FIFO存储器1和FIFO存储器2;
嵌入式系统作为上位机,在嵌入式系统中采用双线程和两级用户缓冲区,形成线程1、线程2和用户缓冲区1、用户缓冲区2,线程1用于将数据从数据采集卡的FIFO存储器中取出放入用户缓冲区1,线程2用于从用户缓冲区读取数据及数据处理;
数据采集卡的FIFO存储器1存满后,数据采集卡向上位机发送信号通知上位机开始采集数据,然后上位机开始进行FIFO存储器数据的读取,数据读取过程中,数据采集卡采集到的新数据将存入FIFO存储器2,FIFO存储器2存满后,再转到FIFO存储器1,如此FIFO存储器1和FIFO存储器2依次轮换存储;
上位机对数据采集卡的FIFO存储器进行数据读取时,线程1和线程2同步进行,线程1将数据从FIFO存储器中取出并写入用户缓冲区1,同时线程2读取数据,由线程2从用户缓冲区1中读取线程1写入的数据并进行后续数据处理,线程2工作量大于线程1,因此,线程2读取的用户缓冲区总是落后于线程1写入的用户缓冲区,当线程2从用户缓冲区1读取处理数据过程中,如线程1已执行到用户缓冲区1写数据完成时,线程1即可向用户缓冲区2写入数据,线程2则继续对用户缓冲区1中的数据进行处理;待线程2完成对用户缓冲区1的数据读取和处理后,转向对用户缓冲区2进行数据读取和处理,如此,线程1对用户缓冲区1和用户缓冲区2交替写入,线程2对用户缓冲区1和用户缓冲区2进行交替读取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910488486.0A CN110347369A (zh) | 2019-06-05 | 2019-06-05 | 一种多缓存多线程数据采集方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910488486.0A CN110347369A (zh) | 2019-06-05 | 2019-06-05 | 一种多缓存多线程数据采集方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110347369A true CN110347369A (zh) | 2019-10-18 |
Family
ID=68181597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910488486.0A Pending CN110347369A (zh) | 2019-06-05 | 2019-06-05 | 一种多缓存多线程数据采集方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110347369A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111209228A (zh) * | 2020-01-02 | 2020-05-29 | 上海航天计算机技术研究所 | 一种加速多路星上载荷文件存储的方法 |
CN111436943A (zh) * | 2020-04-15 | 2020-07-24 | 山东省科学院自动化研究所 | 一种非接触式浴室跌倒检测监护系统及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101403980A (zh) * | 2008-11-12 | 2009-04-08 | 西安交通大学 | 一种电子产品码多线程处理方法 |
CN101950261A (zh) * | 2010-09-09 | 2011-01-19 | 中兴通讯股份有限公司 | 数据存储与鉴权并行的处理方法和终端 |
-
2019
- 2019-06-05 CN CN201910488486.0A patent/CN110347369A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101403980A (zh) * | 2008-11-12 | 2009-04-08 | 西安交通大学 | 一种电子产品码多线程处理方法 |
CN101950261A (zh) * | 2010-09-09 | 2011-01-19 | 中兴通讯股份有限公司 | 数据存储与鉴权并行的处理方法和终端 |
Non-Patent Citations (2)
Title |
---|
JERRY*CAT: "双fifo的乒乓式读写", 《HTTPS://BLOG.CSDN.NET/A931863759/ARTICLE/DETAILS/78137305/》 * |
张彦铎等: "高速图像采集系统的研制", 《武汉工程大学学报》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111209228A (zh) * | 2020-01-02 | 2020-05-29 | 上海航天计算机技术研究所 | 一种加速多路星上载荷文件存储的方法 |
CN111209228B (zh) * | 2020-01-02 | 2023-05-26 | 上海航天计算机技术研究所 | 一种加速多路星上载荷文件存储的方法 |
CN111436943A (zh) * | 2020-04-15 | 2020-07-24 | 山东省科学院自动化研究所 | 一种非接触式浴室跌倒检测监护系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4439491B2 (ja) | マルチグラフィックスプロセッサシステム、グラフィックスプロセッサおよびデータ転送方法 | |
CN110347369A (zh) | 一种多缓存多线程数据采集方法 | |
CN100361523C (zh) | 一种数字相机实时采集系统 | |
CN107527317A (zh) | 基于图像处理的数据传输系统 | |
RU2016119814A (ru) | Инструкция и логика для доступа к памяти в кластерной машине широкого исполнения | |
CN103034581B (zh) | 一种嵌入式系统跟踪调试方法及装置 | |
CN110058816B (zh) | 一种基于ddr的高速多用户队列管理器及方法 | |
US20100211755A1 (en) | Method and apparatus for allocating storage addresses | |
CN115080206B (zh) | 一种基于多线程机制的高速回波数据实时记录系统及记录方法 | |
CN106959929B (zh) | 一种多端口访问的存储器及其工作方法 | |
CN102841871A (zh) | 基于高速串行总线的DMA结构的pipeline读写方法 | |
CN115640052A (zh) | 用于图形处理器中多核多流水线并行执行优化方法 | |
CN103136038A (zh) | 嵌入式系统及其线程与缓冲区管理方法 | |
CN101901278B (zh) | 一种高速数据采集卡及数据采集方法 | |
CN101793557B (zh) | 高分辨率成像仪数据实时采集系统及方法 | |
US7694041B2 (en) | Method for managing buffers pool and a system using the method | |
CN104809093A (zh) | 对串行接口传输的数据进行处理的方法及装置 | |
CN112948287B (zh) | 一种基于Hashmap缓存机制的SD卡读写方法及系统 | |
CN117896399A (zh) | 用于高场和超高场磁共振成像的通信系统和方法 | |
CN108647278A (zh) | 一种文件管理方法及系统 | |
CN110019051A (zh) | 一种基于通用文件系统的高速数据记录方法 | |
CN116383132A (zh) | Soc芯片及其数据存储方法 | |
CN103593307B (zh) | 一种电磁法勘探系统处理采集数据的方法和装置 | |
CN106445842B (zh) | 一种数据缓存器和数据缓存方法 | |
EP2902910A1 (en) | Electronic device, and method for accessing data in electronic device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191018 |