基于USB总线的高速数据采集系统
电源管理模块负责设备的挂起与唤醒。
I/O功能实现模块可完成I/O请求的大部分工作。当应用程序提出I/O请求时,它将调用Win32 API函数DeviceIoControl向设备发出命令,然后由I/O管理器构造一个IRP并设置其MajorFunction.域为IRP MJ DEVICE CONTROL。在USB设备驱动程序收到该IRP后?它将取出其中的控制码?并利用一个开关语句查找对应的程序入口。
3.3 应用程序设计
应用程序设计由两个部分组成:动态链接库和应用程序。动态链接库负责与内核态的USB功能驱动程序通信并接收应用程序的各种操作请求,而应用程序则负责对所采集的数据进行实时显示、分析和存盘。
动态链接库的工作原理如下:当它收到应用程序开始采样的请求后,首先创建两个线程:采样线程和显
示存盘线程。采样线程负责将采样数据写到应用程序提交的内存;而显示存盘线程则负责给应用程序发送显示和存盘消息。当应用程序接收到此消息后,便从它提交的内存中读取数据并显示和存盘。要注意的是:采样线程和显示存盘线程在读写应用程序提交内存时要保持同步。
PC机或工控机应用程序是数据实时采集系统的中心?可采用Labview编程。它是当今国际上唯一的编译型图形化编程语言,其特点如下:
(1) 能完成对固体表面速度的实时测量;
(2)主介面与多重窗口结合?可完成数据连续采集、实时统计分析、系统参数设置、信号波形显示、被测参数输出等综合系统功能。
(3)能充分利用Labview开发平台和WINDOWS视窗所提供的良好操作环境?集曲线、图形、数据于一体?可准确描述过程参数的变化。
图3所示是用高速数据采集系统采集通过Lab-view显示的一个波形实例,其输入信号是一个频率为5MHz的正弦波。
4 结束语
随着电子计算机的广泛应用,社会的数字化程度越来越高,数据采集也越来越重要,本系统是一种通用的高速数据采集系统,可用于生物电波、电子学频谱、声波分析等瞬态信号的实时采集和观察等场合。其中基于USB总线的高速数据采集系统具有可靠性高、数据不丢失、抗干扰性强、便于数据传输和处理等优点,因而具有良好的应用前景和很大的实用价值。
《基于USB总线的高速数据采集系统(第3页)》