连续大容量数据采集与处理
系统设计与实现
现在没人用delphi了吧,这个题材有点旧了
贾大云 毕复强 马书磊
(黑龙江大庆钻探地质录井一公司信息中心,大庆 163411)
摘要:在信号处理与分析过程中,要求数据采集的容量大又要连续采集存盘不丢点,同时还要进行数据处理;对这方面数据采集的编程有诸多的语言,如
VB、VC++、
Delphi和LabVEIW等。介绍了基于PCI总线的数据采集卡的硬件结构和
软件编程;以Delphi语言实现了在Windows环境下多任务多线程高速数据采集、存储与数据处理的软件设计方法,采用半满中断方式实现数据采集传输,多线程技术使数据采集与数据处理相独立,数据缓冲队列技术实现了连续大容量存盘和数据处理。以实例验证了软件编程实现的效果。
关键词:数据采集;数据存储;A/D转换器;多线程;软件编程
Programming Realization of Continuous Large Data Acquisition and Process Based on Delphi
Abstract: In the course of signal processing and analysis, sampling data need be large and continuous, further-more processed at the same time. Many languages such as VB,VC++,Delphi and LabVEIW are used in programming of data acquisition in this way. The hardware structure and software programming of the data acquisition card on PCI bus are introduced. Delphi is used to realize high-speed data acquisition, data storage and data processing in the environment of Windows with multi-task and multi-thread technology. Half-interruption method is used to collect and transfer data. Multi-thread technology is designed to make data acquisition and data processing separate. Data buffer is used to meet continuous large data storage and data processing. An example validates the effect of programming.
Key
words: data acquisition; data storage; A/D converter; multithread; software programming
大概的提纲是:
1.概述
2.总体结构(设计)
3.(关键功能)设计与实现
4.结论
在虚拟仪器开发、实验室数据分析等诸多研究和应用领域中,对信号数据的要求很高,一方面数据容量较大,如几百甚至几千MB,另一方面采样频率都较高达到MHz;更重要的是要求在高速长时间采集数据过程中,不能丢掉一个点,必须全部存入硬盘,同时还要进行数据处理分析,如数据计算、显示波形等,这在DOS环境中实现起来就有较大的难度,更别说在Windows这样的多任务环境中。由于Windows的各应用
程序总是不断地被任何调度,处在睡眠、排队、就绪、触发运行等状态中,各任务之间的切换密度至少大于1ms,那么如果要以300kHz频率采样,即每3.3μs就得传输一个数据,很显然有大量的数据在传输中由于任务之间的切换而被丢失掉。这就是基于Windows客户程序在传统模式下,高速连续数据采集传输时所具有的局限性。为了解决这个
问题,本文提出了一种数据采集线程和数据处理线程的设计思想,并使用了数据缓冲队列的技术。
目前,PCI和USB总线数据采集卡以其优越的性能成为工业测控领域中的主流。本文所采用的是PCI2006数据采集卡,它具有一级硬件8KB缓冲FIFO,可以在应用程序中建立循环式用户缓冲,实现高速连续大容量数据采集和处理功能。
编程语言平台为Delphi,它是一个可视化的快速应用程序开发工具,具有高效、优化的
源代码编译器,是一种面向对象的结构化编程语言,具有优秀的面向对象的编程风格。其开发的应用程序可以调用C++的DLL和OCX控件,在程序中可以嵌入汇编语言代