数据采集论文(精选5篇)

  • 数据采集论文(精选5篇)已关闭评论
  • A+
所属分类:文学
摘要

为充分实现EPP模式的高速特性,外设应当及时响应EPP的握手信号,当数据采集系统工作于非实时多任务的WIN98操作系统环境下,为实现数据高速、均匀性采样,还需要在外设配置必要的数据缓冲存储器。如果数据采集速率低于EPP模式数据读入平均速率,就可能实现数…

数据采集论文(精选5篇)

数据采集论文范文第1篇

关键词:EPPCPLDFIFO数据采集

数据采集系统中,通过微机COM端口的RS-232串行通讯及通过微机并行端口的并行通讯具有开发使用方便的特点,前者可与工作于11.0592MHz晶振下的8052单片机在波特率115200时,实现10ksps(samplespersecond)的连续数据采集和传输而不丢失数据,若要达到更高速率的数据采集,可以通过并行口通讯方式实现。当前微机均可通过配置CMOS,将基地址为378H的并行口设置为EPP模式以支持通过数据口双向传输通讯,并由芯片硬件自动产生握手信号,实现高速传输的目的。

为充分实现EPP模式的高速特性,外设应当及时响应EPP的握手信号,当数据采集系统工作于非实时多任务的WIN98操作系统环境下,为实现数据高速、均匀性采样,还需要在外设配置必要的数据缓冲存储器。如果数据采集速率低于EPP模式数据读入平均速率,就可能实现数据的连贯有效性。有资料[1]说明在EPP模式,可实现500kBytes/s以上的传输速率,这表明通过EPP模式,可以实现500ksps的数据采集系统。通过对EPP模式的深入实验分析,发现要实现500ksps,外设硬件及微机软件程序均要采取一些策略:硬件上必须配置FIFO数据缓冲存储器,才能协调数据采集严格的时间间隔要求与数据传输给微机的非实时、非均匀性之间的矛盾;软件程序方面应当采取双字读的方法,否则EPP模式下仅能实现250kBytes/s数据读取可行性。

1EPP模式读取速率的实验分析

图1为实验EPP模式读取速率的电路,实验程序为

Delphi结合内嵌汇编语言,涉及EPP读取的关键代码如下:

FUNCTIONREADDATA:BYTE;

VAR

STARTTIME,STOPTIME,DELAY:INT64;

NUMBER:LONGWORD;

QUERYPERFORMANCECOUNTER(STARTTIME);

FORNUMBER:=0TO999999DO

BEGIN

ASM

MOVDX,$37C

INAL,DX

MOVRESULT,AL

END;

END;

QUERYPERFORMANCECOUNTER(STOPTIME);

DELAY:=STOPTTIME-STARTTIME;

END;

此为循环1000000次读取EPP数据口程序,循环仅为方便用计时及示波器观察而设,并在执行前后分别读取系统计数值,DELAY值除以1.2后为执行花费的时间(单位为微秒),执行前先通过对地址379H的D0位写入高,使该位为低(注意:对该位写入低通常不能达到使该位变为低的目的,只有采取写入高才能使该位变为低),以清除EPP超时位,当A、B点均为低时,可实现最快的EPP握手,若A为高、B为低时,由于EPP周期开始时满足WAIT为低的要求,EPP自动在DATASTB处输出低,但因WAIT没有出现表示应答的高状态,EPP在延时10μs后,将DATASTB恢复为高以结束该次EPP访问过程,并置超时位。稍后因WAIT为低再次开始一次EPP访问过程,如果B为高,则WAIT为高,不能满足EPP的开始条件,故DATASTB保持为高,EPP在延时10μs后结束该次EPP访问过程,并置超时位。在发生超时情况下,数据仍然可正确读入

(这一特性与笔者所查资料[1]有出入),此结论可通过对比循环前后时间差来及实际读入数据值证实。

注意程序循环中并未执行清除EPP超时位的指令,根据笔者实验,即使已发生EPP访问超时,也不影响下一次的EPP读周期(包括对37BH的地址读及对37CH的数据读),但超时对EPP写周期有影响,在清除超时位之前,EPP写周期无效(因本文不涉及EPP写周期的内容,此处不再展开探讨)。在图2所示意波形中,当有正确握手的EPP读周期执行时间约为1.5μs,此时间是字节模式下一次有效EPP访问所需最短时间,在这段时间内,“INAL,DX”这一条指令占据了约90%以上的访问时间,验证此点仅需临时屏蔽“INAL,DX”指令,并比较所花费的时间差别即可。1.5μs相当于接近700kBytes/s的数据读速率。如果以“INEAX,DX”替代“INAL,DX”指令,可以充分利用EPP模式下硬件将4个8位数自动合并为1个32位数的特性,在一次I/O访问中由硬件自动产生4个DATASTB负脉冲从而实现4个字节的输入。因为一次字节模式的I/O访问所费时大约间需要1.5μs,减少这类指令的执行次数有利于实现更高速的EPP访问过程,经实验发现以4字节方式访问的EPP过程可以在3.2μs内读取一次,即平均每字节需0.8μs,相当于1.2MBytes/s,此实验结果是基于外设可以连续不断的输送数据理想前提,实际上要实现有效的数据传输,可得到的速率要低于该值。

2WIN98下高速EPP接口的构成

在WIN98环境下,由于非实时多任务的特性,运行于RING3的应用程序频繁作系统打断,这决定了靠软件无法实现连续均匀的数据采样,只有在硬件上配置数据缓冲存储器并及时传入微机以免数据缓冲存储器溢出。只要保证一定深度的数据缓冲存储器,且满足数据传输平均速率大于数据采样速率,就能将所采集的数据传入微机的大容量内存,以备处理。在硬件构成方面,为以较低代价获得大容量的FIFO数据缓冲存储器,采取CPLD器件结合512KB的SRAM方式,实现,由CPLD器件完成读写控制的FIFO特性及EPP模式的应答握手信号。接口结构及CPLD内部功能模块见图3所示,数据在CPLD控制下,以2μs的固定速率存入SRAM环状连续增量地址,因为EPP模式读取速率与数据采样的固定速率是异步的,控制逻辑为保证2μs的固定采样速率,当采样时间点到达时,不论当前是否处于EPP应答处理期间,优先执行数据采样,因为处理是在系统时钟脉冲驱动下的硬件行为,仅存在固定的传输延时,故两次采样间隔是严格保证的。

EPP模式的读取平均速率必须高于数据采样速率,一旦FIFO数据读空必须让微机正确处理,由前述实验可知,每次字节方式I/O执行时间约为1.5μs,如果通过在EPP的状态口(379H)的保留位输入代表FIFO读空的信号,则每完整读取均要执行两次I/O指令:EPP数据读及EPP状态读,至少需3μs完成读取一个字节,这也是通常方式能达到的最快有效读取速率。当采用双字读读及EPP状态读的方式时,需4.8μs完成4个数据字节读取,但此方式需要处理的一个问题:由于双字方式EPP数据读由硬件自动产生4个EPP数据读周期,当其执行完毕,执行EPP状态读发现FIFO已空,微机软件无法判别在从第几个EPP数据读周期开始FIFO为空,从而影响对数据队列的正确排序,故CPLD逻辑应当在FIFO队列还有至少4个未读数据时必须发出读空信号,微机程序应当在每次EPP开始前执行读取状态口的指令,以决定是否可以开始EPP数据读周期,从上分析可以看出为实现有效的EPP数据读取,平均每字节至少需要1.2μs,即可

以获得最快约800kBytes/s的数据传输速率。因500ksps的数据采集设计速率仅略低于800kBytes/s的数据传输速率,考虑WIN98工作环境,配置大容量的FIFO十分必要,采用大容量SRAM与CPLD器件构成FIFO,具有成本较低的优点,通过使用VHDL的行为描述,经CPLD器件开发软件的编译、综合、仿真、适配、下载,实现所需要的控制逻辑。根据设计,当数据锁存输出的下一个时钟脉冲(即83ns后),WAIT将输出为高电平,EPP在此时读取数据口信号,如果不采用外部缓冲驱动器,数据上升过程将耗时80ns,对EPP数据接收可靠性有不容忽视的影响,为减小电缆电容的影响,数据输出使用了74ALS574芯片作缓冲,其高电平输出能力达15mA,是ispLSI1032高电平输出能力的3.5倍,在电缆电容有100pF时,23ns可达到3.5V的逻辑高电平,保证数据接收可靠性。

仿真波形参见图4,出于方便,仿真时钟设置为12.5MHz。系统每24个时钟脉冲产生一次数据采集,仿真采样速率521ksps。数据由DIN[7:0]输入,通过CPLD内部数据输入触发时钟(该时钟同相缓冲后形成RAMOE脉冲,持续宽度为两个系统时钟)的上升沿锁存,并控制地址选择器将写地址输出到ABUS上,在RAMOE为高期间,DBUS开放三态数据触发器输出使能,使被锁存的8位数据经DBUS输出,数据输入触发时钟过后一个系统时钟,RAMWR产生一个系统时钟宽度的负脉冲,控制SRAM将DBUS上的数据写入,再下一个系统时钟的上升沿,RAMWR变高,RAMOE变低使SRAM输出有效,三态数据触发器恢复为高阻状态,ABUS变为待读数据地址,完成一次数据采集、存储过程。微机软件执行EPP数据读前先读取状态口(379H)以判别READ_EN是否有效,当READ_EN为高时,可以执行EPP数据读周期,CPLD在同步DATASTB_IN的下降沿后,产生一个宽度的OUTCLK输出锁存脉冲,其上升沿将相应待读地址的SRAM数据锁存于外部74ALS574,下降沿使WAIT_OUT上升,形成EPP模式的应答握手信号。WAIT_OUT在DATASTB_IN的上升沿异步复位以响应下一次EPP模式访问。数据写入优先于数据读取,当到达固定的采样间隔点时,CPLD总是推后OUTCLK及WAIT_OUT的执行,待采样并存储完毕才继续被暂缓的EPP应答,在设计中,数据的采样及存储需要两个系统时钟周期共167ns,远低于EPP的超时参数,故有充分的时间正确地完成EPP握手。图4仿真了数据读空状态,在图中部,READ_EN信号存在一个低电平区域,此负脉冲前,根据RAMWR个数可知当时采样了11个数据,根据OUTCLK个数可知读取了8个数,剩下3个数不足以提供EPP执行双字读的操作,如果此时微机需要访问EPP,在其对状态口的读取中,因得知READ_EN无效而暂缓EPP的执行,当再次完成一次数据采样后,达到至少存在4个未读数据的条件,READ_EN重新变为有效,可供微机读取。

数据采集论文范文第2篇

关键词:USB2.0CY7C68013DSP高速数据采集

随着数字信号处理理论和计算机的不断发展,现代工业生产和科学技术研究都需要借助于数字处理方法。进行数字处理的先决条件是将所研究的对象进行数字化,因此数据采集与处理技术日益得到重视。在图像处理、瞬态信号检测、软件无线电等一些领域,更是要求高速度、高精度、高实时性的数据采集与处理技术。现在的高速数据采集处理卡一般采用高性能数字信号处理器(DSP)和高速总线技术的框架结构。DSP用于完成计算量巨大的实时处理算法,高速总线技术则完成处理结果或者采样数据的快速传输。DSP主要采用TI或者ADI公司的产品,高速总线可以采用ISA、PCI、USB等总线技术。目前,使用比较广泛的是PCI总线,虽然其有很多优点,但是存在如下严重缺陷;易受机箱内环境的影响,受计算机插槽数量的地址、中断资源的限制而不可能挂接很多设备等。USB总线由于具有安装方便、高带这、易扩展等优点,其中USB2.0标准有着高达4800bps的传输速率,已经逐渐成为计算机接口的主流。本文介绍一个采用USB2.0接口和高性能DSP的高速数据采集处理系统,主要是为光纤通信中密集波分复用系统的波长检测与调整所设计的,也可以应用于像图像处理、雷达信号处理等相关领域。

1高速数据采集处理系统原理及器件选用

整个高速数据采集处理系统的硬件构成为:高速ADC、高速大容量数据缓冲、高性能DSP和USB2.0接口。系统的原理框图如图1所示。

高性能DSP采用TI公司的TMS320C6000系列定点DSP中的TMS320C6203B;高速ADC采用TI公司的ADS5422,14位采样,最高采样频率为62MHz;PC机接口采用USB2.0,理论最大数据传输速率为480Mbps,器件选用Cypress公司EZ-USBFX2系列中的CY7C68013;数据缓冲采用IDT公司的高速大容量FIFO器件IDT72V2113;程序存储在Flash存储器中,器件选用SST291E010。下面逐一介绍各个器件的主要特性。

(1)TMS320C6203B

TMS320C6203B是美国TI公司高性能数字信号处理器TMS320C6000系列的一种,采用修正的哈佛总线结构,共有1套256位的程序总线、两套32位的程序总线和1套32位的DMA专用总线;内部有8个功能单元可以并行操作,工作频率最大为300MHz,最大处理能力为2400MIPS;内部集成了设备接口,如外部存储器接口(EMIF)、外部扩展总线(XB)、多通道缓冲串口(McBSPs)和主机接口(HPI),与外部存储器、协处理器、主机以及串行设备的连接非常方便。

(2)ADS5422

ADS5422是由美国TI公司生产的高速并行14位模数转换器,其最高采样频率达到62MHz,采样频率为100MHz时,SNR为72dB,SFDR为85dB。模拟信号输入可以是单端输入方式或者差分输入方式,最高输入信号峰峰值为4V,单一5V电源供电。输出数字信号完全兼容3.3V器件,并且提供输入信号满量程标志以及输出数字信号有效标志,从而方便和其它器件的连接。

(3)IDT72V2113

IDT72V2113是由美国IDT公司生产的高速大容量先进先出存储器件(FIFO)。其最高工作频率为133MHz;容量为512KB,可以通过引脚方便地将容量设置成512K×9bit或者256K×18bit两种方式;IDT72V2113可以设置标准工作模式或者FWFT(FirstWordFallThrough)工作模式,并提供全满、半满、全空、将满以及将空等五种标志信号;非常方便进行容量扩展。容量扩展是IDT72V2113的一大特点,扩展方式可分为字长扩展和字深扩展。通过容易扩展可以由多片IDT72V2113形式更大容量的缓冲,并且电路连接简单、可靠。

(4)CY7C68013

CY7C68013是美国Cypress公司推出的USB2.0芯片,是一个全面集成的解决方案,它占用更少的电路板空间,并缩短开发时间。CY7C68013主要结构如下:包括1个8051处理器、1个智能串行接口引擎(SIE)、1个USB收发器、16KB片上RAM(其中包括4KBFIFO)存储器以主1个通用可编程接口(GPIF)。

图3

CY7C68013独特的架构具有如下特点:

①包括1个智能串行的接口引擎(SIE),它执行所有基本的USB功能,将嵌入的MCU解放出来以用于实现其它丰富的功能,以保证持续高速有效的数据传输;

②具有4KB的大容量FIFO用于数据缓冲,当作为从设备时,可采用Synchronous/AsynchronousFIFO接口与主设备(如ASIC,DSP等)连接;当作为主设备时,可通过通用可编程接口(GPIF)形式任意的控制波形来实现与其它从设备连接,能够轻易地兼容绝大多数总线标准,包括ATA、UTOPIA、EPP和PCMCIA等;

③固件软配置,可将需要在CY7C68013上运行的固件,存放在主机上,当USB设备连上主机后,下载到设备上,这样就实现了在不改动硬件的情况下很方便地修改固件;

④能够充分实现USB2.0(2000版)协议,并向下兼容USB1.1。

2高速数据采集处理系统的硬件连接

2.1模拟信号输入电路

ADS5422的模拟信号输入可以采取单端输入方式或者差分输入方式。单端输入方式连接比较简单,但抗噪性能差,所以我们采取差分输入方式,以尽量减少信号噪声以及电磁的干扰,尤其是采用差分输入方式可以将所有偶次谐波通过正反反个输入信号基本上互相抵消。

ADS5422的模拟信号差分输入方式需要同时使用IN和IN引脚,其硬件连接方法如图2所示。图中,首先使用放大器OPA687以及RF变压器将单端信号转换成差分信号,然后输入到ADS5422,其中ADS5422的公共端CM和RF变压器的公共端连接,RF变压器的匝数比应该根据信号确定。为了增强信号的稳定性,在ADS5422每个信号的输入前加上RC低通滤波电路,图2中推荐Rt为50Ω,Rin为22Ω,Cin为10pF,这些元件也可以根据具体的信号进行调整,一般情况下电阻值在10~100Ω之间,电容值在10~200pF之间。

图4

2.2ADS5422与IDT72V2113的连接

虽然ADS5422的供电电压为5V,但其输出的数字信号电平兼容3.3V电平,因此不需要电平转换芯片,只要将ADS5422的数据线与IDT72V2113的数据线相连即可。但是,ADS5422采样和存储采样数据到IDT72V3113中,这两个操作对时序配置要求非常严格,如果两者时序关系配合得不是很好,就会发生数据存储出错或者掉数。如何简单、可靠地实现采样和存储是设计这部分电路的难点。一般的方法是,通过可编程逻辑器件(CPLD或FPGA)来实现ADC与FIFO存储器之间的时序,即由CPLD或FPGA来控制ADC采样和FIFO存储器的写操作。但是,通过仔细查看ADS5422和IDT72V2113的工作时序图,找到了一种简单可靠的实现方法,此方法不需要CPLD或FPGA就可以实现两者的时序配合。

首先分析ADS5422的工作时序图,如图3所示,其中t1为采样时钟上跳沿到输出数据无效之间的时间间隔,即数据保持时间,其大小为3ns。查看IDT72V2113的相关文档可知,对其进行写操作时,数据线的保持时间大于1ns即可满足要求。因此,ADS5422与IDT72V2113之间的时序配合可以采用以下简单的实现方法:ADS5422的采样时钟和IDT72V2113的写时钟采用同一个时钟源,这样,每一个时钟的上跳沿,ADS5422进行模数转换,同时将上个时钟周期内输出的采样数据存储到DT72V2113内部。

2.3C6203B与IDT72V2113的连接

C6203B与IDT72V2113的连接是通过C6203B外部扩展总线(XB)。C6203B的外部扩展总线(XB)宽度为32位,可以实现与同步FIFO无缝连接,可以同时无缝实现四个FIFO写接口或者实现3个FIFO写接口及1个FIFO读接口。通过无缝连接实现FIFO读接口,FIFO必须连接到XCE3上,数据通过DMA方式从IDT72V2113传送到C6203B的片内RAM中,具体连接如图4所示。图4中,4片IDT72V2113经过字长和字深扩展形成2MB的数据输入缓冲,输入数据总线(D0~D15)、输出数据总线(Q0~Q15)、读使能(REN)、读时钟(RCLK)、写使能(WEN)、写时钟(WCLK)和将空标志信号(PAE)是由4片IDT72V2113的相应信号组合形成的;XCE3为外部扩展总线(XB)的空间选择信号,XFCLK为外部扩展总线(XB)的输出时钟,EXT_INT4是C6203B的外部中断信号4,DX0用作通用输出口,控制IDT72V2113的写使能信号。

2.4CY7C68013与C6203B的连接

CY7C68013是一个非常方便的USB2.0实现方案,它提供与DSP或者MCU连接的接口,连接方法有两种:SlaveFIFOs和Master可编程接口GPIF。在本方案中,选用了SlaveFIFOs方式,异步读写。SlaveFIFOs方式是从机方式,DSP可以像读写普通FIFO一样对CY7C68013内部的多层缓冲FIFO进行读写。具体的电路连接如图5所示。FLAGA、FLAGB和FLAGC是CY7C68013内部FIFO的状态标志,C6203B通过通用I/O口来获得FIFO的空、半满(由用户设定半满的阈值)和满等状态信息。C6203B对CY7C68013内部FIFO的选择,以及数据包的提交也是通过通用I/O口来实现。C6203B通过EMIF接口的CE2空间对CY7C68013进行读写操作。工作过程为:DSP通过USB向PC发送数据时,首先查看空、半满和满这三个状态信号,然后向USB写入适当大小的数据,以保证数据不会溢出;PC机通过USB向DSP发送命令字时,USB通过中断方式通知DSP读取命令字。

3USB软件设计

USB接口开发中有相当大的工作量是关于USB软件的开发,USB软件包括三方面的工作:固件(firmware)设计,驱动程序设计和主机端应用程序的设计。

3.1固件设计

固件是运行在CY7C68013上的程序,可采用汇编语言或C语言设计,其主要功能是控制CY7C68013接收并处理USB驱动程序的请求(如请求设备描述符、请求或设置设备状态,请求或设置设备接口等USB2.0标准请求)、控制CY7C68013接收应用程序的控制指令、通过CY7C68013存放数据并实时上传至PC等。

本方案中的固件设计思路如下:

①使CY7C68013工作于异步从FIFO(AsynchronousSlaveFIFO)模式。相应的寄存器操作为:IFCONFIG=0xCB。

CY7C68013具有多种工作方式,除了可以作为能够产生任意控制波形的主控芯片外,即使作为从设备,也可选择异步还是同步方式。由于DSP的关系,本方案选择异步从方式。

②将4KB的FIFO对应两个端点(EndPoint),即EndPoint2和EndPoint6。相应的寄存器操作为:EP2CFG=0xA0,EP6CFG=0xF2。

EndPoint2与EndPoint6分别对应2KB的内装中FIFO(下文分别称为FIFO2、FIFO6),存放USB需要上传与接收的数据。其中EndPoint2为OUT型,负责从主机接收数据;EndPoint6为IN型,负责向主机发送数据。另外,EndPoint2与EndPoint6均采用批量(BULK)传输方式,这种方式相对于其它USB2.0定义的传输方式具有数据可靠、传输速率高等特点,是最常用的传输方式。

③对FIFO进行配置。相应的寄存器操作为:EP2FIFOCFG=0x11,EP6FIFOCFG=0x0D。

本方案将FIFO2、FIFO6设置成自动方式。这里所谓“自动”,是指在数据的传输过程中,不需要CY7C68013的8051内核参与。如有特殊需要可以设成手动方式,这样8051就可以对数据进行修改,如图6所示。另外还将FIFO配置成16位接口。

④其它操作。为了完善整个USB传输功能,提高固件的健壮性,还必须配以其它设计,这包括FIFO的自动清空复位,个性化命令等功能,在此就不进行详细讨论了。

3.2驱动程序设计

USB系统驱动程序采用分层结构模型,分别为较高级的USB设备驱动程序和较低级的USB函数层。其中USB函数层由两部分组成:较高级的通用串行总线驱动程序模块(USBD)和较低级的主控制器驱动程序模块(HCD)。在上述USB分层模块中,USB函数层(USBD及HCD)由Windows提供,负责管理USB设备驱动程序和USB控制器之间的通信;加载及卸载USB驱动程序;与USB设备通用端点(EndPoint)建立通信并执行设备配置、数据与USB协议框架和打包格式的双向转换任务。目前Windows提供有多种USB设备驱动程序,但并不针对实时数据采集设备,因此USB设备驱动程序需由开发者自己编写。

开发USB设备驱动程序,可采用Numega公司的开发包DriverWorks和Microsoft公司的2000DDK,并以VC++6.0作为辅助开发环境。DriverWorks提供的驱动向导,可根据用户的需要,自动生成代码框架,减少了开发的难度,缩短了开发的周期。但是,Cypress公司为了方便用户开发USB接口,在CY7C68013的开发包中提供了一个通用驱动程序,该程序可不加修改,经DDK编译后直接使用。在本设计方案中,采用的就是这个通用驱动程序。

3.3应用程序设计

主机应用程序是主要实现从高速数据采集处理板该取处理后的数据、存储、显示处理结构以及向数据采集处理板发送控制命令。在Windows2000下,我们使用的应用程序开发工具是VC++6.0。

4系统工作原理

上电后,ADS5422一直工作,采样产生的数据是否存储到IDT72V2113中,由C6203B的DX0引脚状态来决定。C6203B进行初始化,外部扩展总线的XCE3设置为同步FIFO读操作模式。DMA通道0配置为每次传输1帧,每帧1024个半字,同步事件设置为外部中断4,触发极性为高电平,初始化定时器0,定时间隔为22ms。当外部同步信号到来时,启动定时器0,手动启动DMA通道0,同时设置DX0为低电平。ADS5422采样产生的数据开始写入IDT72V2113,当定时器0中断到来时,设置DX0为高电平,关闭IDT72V2113的写使能,采样数据不再存储到IDT72V2113内。随着数据不断写入IDT72V2113,当其内部的数据量大于1023个半字时,IDT72V2113的将空标志信号(PAE)由低电平变为高电平,使得C6203B的外部中断信号有效,从而触发DMA传输,C6203B的DMA通道0通过外部扩展总线(XB)读取1024个半字的数据,存储于内部RAM中,传输结束后向C6203B发送中断,通知C6203B处理数据。C6203B处理完数据后,通过USB2.0接口发送处理结果,然后重新启动DMA通道0,进行下一次DMA传输。如此循环,直到处理完所有数据。当下一个外部同步信号到来时,进行下一轮数据采集处理过程。

数据采集论文范文第3篇

关键词:声卡数据采集频率测量

一、概述

数据采集是信号分析与处理的一个重要环节,在许多工业控制与生产状态监控中,都需要对各种物理量进行数据采集与分析。但是,专用数据采集卡的价格一般比较昂贵,而我们PC机的声卡就是一个很好的双通道数据采集卡。实际测量中,在满足测量要求的前提下,可以充分利用计算机自身资源,完成数据采集任务,从而节省成本。

本文利用vc编程实现了声卡的双通道数据采集,并且对信号进行频谱分析同时实时测量出信号的频率。还利用声卡的DA通道,实现了正弦波、方波、三角波输出的信号发生器。波形发生器产生的信号同时还可以作为内部测试用信号,检验数据采集的准确性。

二、声卡数据采集系统硬件组成

LineOut

图1声卡数据采集的硬件组成图

利用声卡进行数据采集的硬件组成如图1所示。通常,利用声卡的LineIn端作为信号输入端口,两路被测的模拟信号经过左右声道,A/D转换进入计算机,通过vc编写的虚拟仪器界面显示出来。声卡一般都具有单、双声道输入,从而可实现单双通道的采集.双通道采集时,声卡采用并行采集,并具有采样保持功能,两个通道的数据不存在时间差,第一通道和第二通道数据存储在同一个数据缓冲区中,且等间隔存储,奇数序列是一个通道数据,偶数序列为另一个通道数据.读取数据时,将缓冲区中的数据全部读入到一个数组中,然后对该数组数据,采用隔一点取一点的方法,将数据分开并分别存到另外的两个数组中,即将两个通道的数据分开,从而实现了双通道的采集.单通道采集时,缓冲区中仅仅是一个通道的数据,直接保存到一个数组即可。同时,信号发生器产生的波形也可经过Lineout端输出。

为了保护声卡,被测信号并不是直接进入声卡,而是先经过一个信号调理电路,对信号进行放大或限幅,滤波等处理,信号调理电路如图2所示。(a)图是直流电平叠加模块:C1代表信号的输入,D1代表叠加直流电平后信号的输出,电位器R8控制输入直流电平的大小;(b)图是信号叠加模块:A1、A2代表叠加信号的输入,B1代表叠加后信号的输出;(c)图是模拟滤波模块:LPIN代表滤波器的输出,LPOUT代表滤波器的输出,调节R6可以控制输出的、幅度大小。当然可以根据需要在调理电路中加入一些其它的模块。

图2信号调理电路

三、声卡采集系统的软件编程

微软公司已经提供了一系列API函数用于对声卡的操作,为了将需要用到的函数封装成了一个类,编程时只需直接调用。使用的API函数有:

waveInGetDevCaps实现声卡的性能测试

waveInOpen打开波形输入设备

waveInPrepareHeader为波形输入准备缓冲区

waveInAddBuffer将数据缓存发送给波形输入设备驱动

waveInStart启动向波形输入缓冲区存储数据

waveInUnprepareHeader释放波形输入缓冲区

waveInStop停止向波形输入缓冲区存储数据

waveInClose关闭波形输入设备

设计的软件界面如图3所示。目前所实现的功能有:

图3软件界面设计

1.两路波形发生器。可产生正弦波、方波和三角波,并且频率和幅值可调。

2.频谱分析仪。可以对采集的信号进行频谱分析。频谱分析采用了快速傅立叶变换(FFT)算法,并且将其封装成独立的函数,方便调用。

3.频率计。同时还可以实时地测量出采集到的信号的频率。在利用程序计算频率时,一般采用两种方法。一种是利用快速傅立叶变换,它的优点是不仅能对标准的周期波形进行测量,而且能够计算出各种复杂波形和信噪比非常低的信号的频率值,缺点是分辨率受到限制。另一种计算频率的方法是采用脉冲计数法。它的优点是测量低频信号时精度高,但它不适合波形复杂和信噪比低的信号频率测量。所以在测量过程中,程序先判断信号上述的性质,根据信号的性质,自动地采用相应的测量方法。

四、小结

采用声卡制作的信号采集系统,具有廉价、方便等优点,它可用于振动、噪声、位移、温度、压力等各种物理量的测试。但是一般的声卡支持的采样频率有11025、22050和44100,对高频信号的采集会出现失真。总之,运用廉价的声卡,辅以适当的软件编程,可以构成一个较高采样精度,中等采样频率且具有很大灵活性的数据采集系统。

参考文献

[1]种兰祥,阎丽,张首军.基于计算机声卡的多通道数据采集系统.西北大学学报,2002.

[2]云升,姚晓,夏志忠.vc++声卡低层音频服务的编程技术.计算机应用,2002.

数据采集论文范文第4篇

1虚拟仪器的特点和构成

1.1虚拟仪器的特点

与传统仪器相比,虚拟仪器具有高效、开放、易用灵活、功能强大、性价比高、可操作性好等明显优点,具体表现为:

智能化程度高,处理能力强虚拟仪器的处理能力和智能化程度主要取决于仪器软件水平。用户完全可以根据实际应用需求,将先进的信号处理算法、人工智能技术和专家系统应用于仪器设计与集成,从而将智能仪器水平提高到一个新的层次。

复用性强,系统费用低应用虚拟仪器思想,用相同的基本硬件可构造多种不同功能的测试分析仪器,如同一个高速数字采样器,可设计出数字示波器、逻辑分析仪、计数器等多种仪器。这样形成的测试仪器系统功能更灵活、更高效、更开放、系统费用更低。通过与计算机网络连接,还可实现虚拟仪器的分布式共享,更好地发挥仪器的使用价值。

可操作性强,易用灵活虚拟仪器面板可由用户定义,针对不同应用可以设计不同的操作显示界面。使用计算机的多媒体处理能力可以使仪器操作变得更加直观、简便、易于理解,测量结果可以直接进入数据库系统或通过网络发送。测量完后还可打印、显示所需的报表或曲线,这些都使得仪器的可操作性大大提高而且易用、灵活。

1.2虚拟仪器的构成

虚拟仪器的构建主要从硬件电路的设计、软件开发与设计2个方面考虑。

硬件电路的设计主要根据用户所面对的任务决定,其中接口设计可选用的接口总线标准包括GPIB总线、VXI总线等。推荐选用VXI总线。因为他具有通用性强、可扩充性好、传输速率高、抗干扰能力强以及良好的开放性能等优点,因此自1987被首次推出后迅速得到各大仪器生产厂家的认可,目前VXI模块化仪器被认为是虚拟仪器的最理想平台,是仪器硬件的发展方向。由于VXI虚拟仪器的硬件平台的基本组成是一些通用模块和专用接口。因此硬件电路的设计一般可以选择用现有的各种不同的功能模块来搭建。通用模块包括:信号调理和高速数据采集;信号输出与控制;数据实时处理。这3部分概括了数字化仪器的基本组成。将具有一种或多种功能的通用模块组建起来,就能构成任何一种虚拟仪器。例如使用高速数据采集模块和高速实时数据处理模块就能构成1台示波器、1台数字化仪或1台频谱分析仪;使用信号输出与控制模块和实时数据处理模块就能构成1台函数发生器、1台信号源或1台控制器。专用接口是针对特定用途仪器需要的设计,也包括一些现场总线接口和各类传感器接口。系统的主要硬件包括控制器、主机箱和仪器模块。常用的控制方案有GPIB总线控制方式的硬件方案、MXI总线控制方式的硬件方案、嵌入式计算机控制方式的硬件方案3种。VXI仪器模块又称为器件(devices)。VXI有4种器件:寄存器基器件、消息基器件、存储器器件和扩展器件。存储器器件不过是专用寄存器基器件,用来保存和传输大量数据。扩展器目前是备用件,为今后新型器件提供发展通道。将VXI仪器制作成寄存器基器件,还是消息基器件是首先要做出的决策。寄存器基器件的通信情况极像VME总线器件,是在低层用二进制信息编制程序。他的明显优点在于速度寄存器基器件完全是在直接硬件控制这一层次上进行通信的。这种高速通信可以使测试系统吞吐量大大提高。因此,寄存器基器件适用于虚拟仪器中信号/输出部分的模块(如开关、多路复用器、数/模转换输出卡、模/

数转换输入卡、信号调理等)。消息基器件与寄存器基器件不同,他在高层次上用ASCII字符进行通信,与这种器件十分相似是独立HPIB仪器。消息基器件用一组意义明确的“字串行协议”相互进行通信,这种异步协议定义了在器件之间传送命令和数据所需的挂钩要求。消息基器件必须有CPU(或DSP)进行管理与控制。因此,消息基器件适用于虚拟仪器中数字信号处理部分的模块。

软件的开发与设计包括3部分:VXI总线接口软件、仪器驱动软件和应用软件(软面板)。软件结构如图1所示。

VXI总线接口软件由零槽控制器提供,包括资源管理器、资源编辑程序、交互式控制程序和编程函数库等。该软件在编程语言和VXI总线之间建立连接,提供对VXI背板总线的控制和支持,是实现VXI系统集成的基础。

仪器驱动程序是完成对某一特定仪器的控制与通信的软件程序,也即模块的驱动软件,他的设计必须符合VPP的2个规范,即VPP3.1《仪器驱动程序结构和模型》和VPP3.2《仪器驱动程序设计规范》。

“软面板”设计就是设计具有可变性、多层性、自、人性化的面板,这个面板应不仅同传统仪器面板一样具有显示器、LED、指针式表头、旋钮、滑动条、开关按钮、报警装置等功能部件,而且应还具有多个连贯操作面板、在线帮助功能等。

2虚拟仪器在数据采集中的应用

利用虚拟仪器制作数据采集器可以按照硬件设计、软件设计两个步骤来完成。

2.1硬件设计

硬件设计要完成以下内容:

1)模/数转换及数据存储

设置具有通用性的数据自动采集系统,一般应满足能对多路信号尽可能同步地进行采集,为了使所采集到的数据不但能够在数据采集器上进行存储,而且还能及时地在采集过程中将数据传送到上位机,选用存储量比较适中的先进先出存储器,这样既能满足少量数据存储的需要,又能在需要实时传送数据时,在A/D转换的同时进行数据传送,不丢失任何数据。)VXI总线接口

VXI总线数据采集器通常可以利用两种VXI总线通用接口消息基接口和寄存器基接口。消息基接口的作用是通过总线传送命令,从而控制仪器硬件的操作。通用寄存器基接口是由寄存器简单的读写来控制仪器硬件的操作。利用消息基接口进行设计,具体消息基接口的框图见图2。

3)采样通道控制

为了满足几种典型系统通道控制的要求,使通道的数量足够多,通道的选取比较灵活,可以利用寄存器电路、可预置计数器电路以及一些其他逻辑电路的配合,将采样通道设计成最多64路、最少2路可以任意选择,而且可以从任意一路开始采样,也可以到任意一路结束采样,只要截止通道号大于起始通道号就可以了。整个控制在虚拟仪器软面板上进行操作,通过消息基接口将命令写在这部分的控制寄存器中,从而设置计数器的初值以及采样的通道总数。

4)定时采样控制

由于不同的自动测试系统对采样时间间隔的要求不同,以及同一系统在不同的试验中需要的采样时间间隔也不尽相同,故可以采用程控的方式将采样时间间隔设置在2μs~13.0ms之间任意选择,可以增加或减少的最小单位是2μs。所有这些选择设置可以在虚拟仪器软面板上进行。

5)采样点数控制

根据不同测试系统的需求,将采样点数设计成可在一个比较大的范围中任意选择,该选择同样是在软面板上进行。

6)采样方式控制

总结各种自动测试系统的采样方式不外乎软件触发采样和硬件触发采样。在硬件触发采样中又包括同步整周期采样和非同步整周期采样,这2种采样又可以是定时进行的或等转速差进行的。所有这些采样方式,对于数据采集器来说都可以在软面板上进行选择。

2.2软件设计

软件是虚拟仪器的关键,为使VI系统结构清晰简洁,一般可采用组件化设计思想,将各部分彼此独立的软件单元分别制成

标准的组件,然后按照系统的总体要求组成完整的应用系统,一个标准的组件化的虚拟仪器软件系统,如图3所示。

应用软件为用户提供了建立虚拟仪器和扩展其功能的必要工具,以及利用PC机、工作站的强大功能。同时VPP联盟提出了建立虚拟仪器标准结构库(VISA)的建议,为虚拟仪器的研制与开发提供了标准。这也进一步使由通用的VXI数据采集模块、CPU/DSP模块来构成虚拟仪器成为可能。

基于虚拟仪器的数据采集器的软件包括系统管理软件、应用程序、仪器驱动软件和I/O接口软件。以往这4部分需要用户自己组织或开发,往往很困难,但现在NI公司提供了所有这四部分软件,使应用开发比以往容易得多。

下面简单介绍以NI公司的LabWindows/CVI为开发环境,来进行VXI虚拟仪器的驱动程序开发的方法。

第一步:生成仪器模块的用户接口资源文件(UIR)。用户接口资源、文件是仪器模块开发者利用LabWindows/CVI的用户界面编辑器为仪器模块设计的一个图形用户界面(GUI)。一个LabWindows/CVI的GUI由面板、命令按钮、图标、下拉菜单、曲线、旋钮、指示表以及许多其他控制项和说明项构成。

第二步:LabWindows/CVI事件驱动编程。应用程序开发环境LabWindows/CVI中设计一个用户接口,实际上是在用户计算机屏幕上定义一个面板,他由各种控制项(如命令按钮、菜单、曲线等)构成。用户选中这些控制项就可以产生一系列用户接口事件(events)。例如,当用户单击一个命令按钮,这个按钮产生一个用户接口事件,并传递给开发者编写的C语言驱动程序。这是运用了Windows编程的事件驱动机制。LabWindows/CVI中使用不同类型的控制项,在界面编辑器中将显示不同类型的信息,并产生不同操作的接口事件。在LabWindows/CVI的开发平台中,对事件驱动进行C程序编程时可采用2种基本的方法:回调函数法和事件循环处理法。

回调函数法是开发者为每一个用户界面的控制项写一个独立的用户界面的控制函数,当选中某个控制项,就调用相应的函数进行事件处理。在循环处理法中,只处理GUI控制项所产生的COMMIT事件。通过GetUserEvent函数过滤,将所有的COMMIT事件区分开,识别出是由哪个控制项所产生的事件,并执行相应的处理。

第三步:应用函数/VI集与应用程序软件包编写。应用函数/VI集需针对具体仪器模块功能进行编程,应用程序软件包只是一些功能强大、需要完善的数据处理能力的模块才需要提供,如波形分析仪模块、DSP模块等。

3结语

本文探讨了虚拟仪器的基本组成,以及实际的虚拟仪器软硬件设计的一般方法,这些方法经过实际设计工作运用证明是可靠的,可供系统工程技术人员在组建具体的基于VXI总线的虚拟仪器数据采集、测试时参考使用。

参考文献

1]赵勇.虚拟仪器软件平台和发展趋势[J].国外电子测量技术,2002,(1)

2]陈光禹.VXI总线测试平台[M].北京:电子科技大学出版社,1996

3]孙昕,张忠亭,薛长斌.集成VXI总线自动测试系统的方法[J].测控技术,1996,15(4)

数据采集论文范文第5篇

关键词:USBRS485数据采集

在工业生产和科学技术研究的各行业中,常常利用PC或工控机对各种数据进行采集。这其中有很多地方需要对各种数据进行采集,如液位、温度、压力、频率等。现在常用的采集方式是通过数据采集板卡,常用的有A/D卡以及422、485等总线板卡。采用板卡不仅安装麻烦、易受机箱内环境的干扰,而且由于受计算机插槽数量和地址、中断资源的限制,不可能挂接很多设备。而通用串行总线(UniversalAerialBus,简称USB)的出现,很好地解决了以上这些冲突,很容易就能实现低成本、高可靠性、多点的数据采集。

1USB简介

USB是一些PC大厂商,如Microsoft、Intel等为了解决日益增加的PC外设与有限的主板插槽和端口之间的矛盾而制定的一种串行通信的标准,自1995年在Comdex上亮相以来至今已广泛地为各PC厂家所支持。现在生产的PC几乎都配备了USB接口,Microsft的Windows98、NT以及MacOS、Linux、FreeBSD等流行操作系统都增加了对USB的支持。

1.1USB系统的构成

USB系统主要由主控制器(HostController)、USBHub和USB外设(PeripheralsNode)组成系统拓扑结构,如图1所示。

1.2USB的主要优点

#183;速度快。USB有高速和低速两种方式,主模式为高速模式,速率为12Mbps,另外为了适应一些不需要很大吞吐量和很高实时性的设备,如鼠标等,USB还提供低速方式,速率为1.5Mb/s。

#183;设备安装和配置容易。安装USB设备不必再打开机箱,加减已安装过的设备完全不用关闭计算机。所有USB设备支持热拔插,系统对其进行自动配置,彻底抛弃了过去的跳线和拨码开关设置。

#183;易于扩展。通过使用Hub扩展可拨接多达127个外设。标准USB电缆长度为3m(5m低速)。通过Hub或中继器可以使外设距离达到30m。

#183;能够采用总线供电。USB总线提供最大达5V电压、500mA电流。

#183;使用灵活。USB共有4种传输模式:控制传输(control)、同步传输(Synchronization)、中断传输(interrupt)、批量传输(bulk),以适应不同设备的需要。

2采用USB传输的数据采集设备

2.1硬件组成

一个实用的USB数据采集系统包括A/D转换器、微控制器以及USB通信接口。为了扩展其用途,还可以加上多路模拟开关和数字I/O端口。

系统的A/D、数字I/O的设计可沿用传统的设计方法,根据采集的精度、速率、通道数等诸元素选择合适的芯片,设计时应充分注意抗干扰的性能,尤其对A/D采集更是如此。

在微控制器和USB接口的选择上有两种方式,一种是采用普通单片机加上专用的USB通信芯片。现在的专用芯片中较流行的有NationalSemiconductor公司的USBN9602、ScanLogic公司的SL11等。笔者曾经采用Atmel公司的89c51单片机和USBN9602芯片构成系统,取得了良好的效果。这种方案的设计和调试比较麻烦,成本相对而言也比较高。

另一种方案是采用具备USB通信功能的单片机。随着USB应用的日益广泛,Intel、SGS-Tomson、Cypress、Philips等芯片厂商都推出了具备USB通信接口的单片机。这些单片机处理能力强,有的本身就具备多路A/D,构成系统的电路简单,调试方便,电磁兼容性好,因此采用具备USB接口的单片机是构成USB数据采集系统较好的方案。不过,由于具备了USB接口,这些芯片与过去的开发系统通常是不兼容的,需要购买新的开发系统,投资较高。

USB的一大优点是可以提供电源。在数据采集设备中耗电量通常不大,因此可以设计成采用总线供电的设备。

2.2软件构成

Windows98提供了多种USB设备的驱动程序,但好象还没有一种是专门针对数据采集系统的,所以必须针对特定的设备来编制驱动程序。尽管系统已经提供了很多标准接口函数,但编制驱动程序仍然是USB开发中最困难的一件事情,通常采用WindowsDDK来实现。目前有许多第三方软件厂商提供了各种各样的生成工具,象Compuware的driverworks,BlueWaters的DriverWizard等,它们能够很容易地在几分钟之内生成高质量的USB的驱动程序。

设备中单片机程序的编制也同样困难,而且没有任何一家厂商提供了自动生成的工具。编制一个稳定、完善的单片机程序直接关系到设备性能,必须给予充分的重视。

以上两个程序是开发者所关心的,用户不大关心。用户关心的是如何高效地通过鼠标来操作设备,如何处理和分析采集进来的大量数据,因此还必须有高质量的用户软件。用户软件必须有友好的界面,强大的数据分析和处理能力以及为用户提供进行再开发的接口。

3实现USB远距离采集数据传输

传输距离是限制USB在工业现场应用的一个障碍,即使增加了中继或Hub,USB传输距离通常也不超过几十米,这对工业现场而言显然是太短了。

现在工业现场有大量采用RS-485传输数据的采集设备。RS-485有其固有的优点,即它的传输距离可以达到1200米以上,并且可以挂接多个设备。其不足之处在于传输速度慢,采用总线方式,设备之间相互影响,可靠性差,需要板卡的支持,成本高,安装麻烦等。RS-485的这些缺点恰好能被USB所弥补,而USB传输距离的限制恰好又是RS-485的优势所在。如果能将两者结合起来,优势互补,就能够产生一种快速、可靠、低成本的远距离数据采集系统。

这种系统的基本思想是:在采集现场,将传感器采集到的模拟量数字化以后,利用RS-485协议将数据上传。在PC端有一个双向RS-485~USB的转换接口,利用这个转接口接收485的数据并通过USB接口传输至PC机进行分析处理。而主机向设备发送数据的过程正好相反:主机向USB口发送数据,数据通过485~USB转换口转换为485协议向远端输送,如图3所示。

在图3的方案中,关键设备是485~USB转换器。这样的设备在国内外都已经面市。笔者也曾经用NationalSemiconductor公司的USBN9602+89c51+MAX485实现过这一功能,在实际应用中取得了良好的效果。

需要特别说明的是,在485~USB转换器中,485接口的功能和通常采用485卡的接口性能(速率、驱动能力等)完全一样,也就是说,一个485~USB转换器就能够完全取代一块485卡,成本要低许多,同时具有安装方便、不受插槽数限制、不用外接电源等优点,为工业和科研数据采集提供了一条方便、廉价、有效的途径。

4综合式采集数据传输系统的实现

现在的数据采集系统通常有分布式和总线两种。采用USB接口易于实现分布式,而485接口则易于实现总线式,如果将这两者结合起来,则能够实现一种综合式的数据采集系统。实现方法是:仍然利用上面提到过的USB~485转换器实现两种协议的转换。由于USB的数据传输速率大大高于485,因此在每条485总线上仍然可以挂接多个设备,形成了图4所示的结构,其中D代表一个设备。

这种传输系统适用于一些由多个空间上相对分散的工作点,而每个工作点又有多个数据需要进行采集和传输的场合,例如大型粮库,每个粮仓在空间上相对分散,而每个粮仓又需要采集温度、湿度、二氧化碳浓度等一系列数据。在这样的情况下,每一个粮仓可以分配一条485总线,将温度、湿度、二氧化碳浓度等量的采集设备都挂接到485总线上,然后每个粮仓再通过485总线传输到监控中心,并转换为USB协议传输到PC机,多个粮仓的传输数据在转换为USB协议后可以通过Hub连接到一台PC机上。由于粮仓的各种数据监测实时性要求不是很高,因此采用这种方法可以用一台PC机完成对一个大型粮库的所有监测工作。

5前景展望