欢迎来到论文网! 加入收藏 | 设为论文网 | 网站地图 | Tags标签 | RSS
论文网 论文网8200余万篇毕业论文、各种论文格式和论文范文以及9千多种期刊杂志的论文征稿及论文投稿信息,是论文写作、论文投稿和论文发表的论文参考网站,也是科研人员论文检测和发表论文的理想平台。lunwenf@yeah.net。
您当前的位置:首页 > 科技论文 > 机电一体化论文

基于PCI-1711L的数据采集系统

时间:2016-02-23  作者:吴文秀 王孟伟 王孟法

[摘要]介绍一种基于PCI总线结构,16路模拟输入,DMA中断方式数据采集系统的硬件组成,及其在Visual C++ 6.0环境下的软件开发。整个系统具有同步误差小,操作简单、易于调试、采样速度快等特点,且系统功能模块化增加了其扩展与兼容性。重点介绍了PCI-1711L驱动方式与采用的数据处理技术。现场检测试验表明本系统不仅采集的数据误差小(小于1%),而且速度快,为进一步操作(如控制)提供一个良好的基础。
论文关键词:PCI-1711L,数据采集,句柄,VisualC++6.0,驱动设计,DMA

一、系统硬件组成

本数据采集系统所采用的PCI-1711L 是华研公司出品的一款经济实用的数据采集卡, 其主要特点有: 16 位PCI 总线接口, 完全符合PCI规格Rev2.1标准,支持即插即用。在安装插卡时,用户不需要设置任何跳线和DIP拨码开关。灵活的输入类型和范围设定PCI-1711/1711L有一个自动通道/增益扫描电路。在采样时,这个电路可以自动完成对多路选通开关的控制。用户可以根据每个通道不同的输入电压类型来进行相应的输入范围。所选择的增益值将储存在SRAM中。这种设计保证了为达到高性能数据采集所需的多通道和高速采样。卡上提供了FIFO(先进先出)存储器,可储存1KA/D采样值。卡上可编程计数器,可用于A/D转换时的定时触发。16路数字输入和16路数字输出,使用户可最大灵活的根据自己的需要来应用。

二、驱动方式

PCI-1711L的软件开发包包含用于多种语言的函数接口,包括:Driver.h和Adsapi32.lib 两个文件。在Visual C++6.0开发环境下,使用这些函数的关键是在FilevView视图下的增加Driver.h,和中增Adsapi32.lib,并在StdAfx.h全局头文件中包含如下语句:#include “…Driver.h”,采集实现过程如图所示。

驱动设计

由于驱动程序采用面向对象编程,所以要使用设备的一切功能,则必须先用函数DRV_DeviceOpen()创建一个设备对象句柄DriverHandle 。程序如下:

ErrCde=DRV_DeviceOpen(0,(LONG far*)&DriverHandle);

if(ErrCde!=SUCCESS)

{ strcpy(szErrMsg,'Device open error!');

MessageBox((LPCSTR)szErrMsg,'Device Open',MB_OK);

return;

}

有了这个句柄就有了对该设备的控制权。然后将些句柄作为参数传递给其他函数,如DRV_DeviceGetFeatures到得设备设置,DRV_AIConfig可配置设备增益,RV_DioWritePortByte可用于数据输出,DRV_DeviceClose释放句柄。

三、软件设计

为增加系统容错性,可移植性,可维护性,本软件统一由Visual C++6.0语言MFC方式编写数据处理程序,为提高数据实时采集速度和减少CPU占有率,采用基于DMA方式采集数据,为了便于实现其各功能,基于面向对象的程序设计思想把系统各个功能模块化处理。

(一)基本思想

把采集的数据实时处理.一方面图形显示(默认界面),或数据显示;一方面实时存储,以备查阅或后续处理.这里重点介绍本软件采用的数据处理技术。

数据预处理

在数据采集过程中,由于各种偶然因素的干扰,所采集电压信号明显偏离正常值,。如果不将这些偶然异常电压剔除,就会歪曲采集结果。结合硬件的性能指标,采用限幅方式剔掉偏离电压。

|X2 – X1| < △X (1)

式中:X2 与 X1是 相邻的两个采集值,△X 是限幅尺度。

如果X2与X1差值的绝对值小于△X,系统认为采集的是正常值,反之系统认为是异常值。

2.滑动平均

每采进一个新数据就将临时缓冲区最早存储的那个数据丢掉,认为包含新值在内的临时缓冲区内的所有数据的算术平均值或加权平均值是最新采集的一个值,该方法是数字滤波常用的一种有效方法。

Y1= (X1+X2+…X256)/256;

Y1= (X2+X3+…X257)/256

(二)DMA方式数据采集的编程实现

在计算机对采集的数据进行处理时存在一个瓶颈, 就是采集与传输数据的速度。采用DMA传送方式可以将采集的数据直接存入存储器, 避免使用CPU 的寄存器, 从而实现数据的高速采集。首先要获得设备句柄DriverHandle 以便使用PCI 设备。然后配置各项硬件参数, 包括://取得设备设置

ptDevFeatures.buffer=(LPDEVFEATURES)&DevFeatures;

ptDevFeatures.size=sizeof(DEVFEATURES);// 配置设备增益 ptAIConfig.DasGain=DevFeatures.glGainList[gwGain].usGainCde;

ptAIConfig.DasChan=gwChannel; //采集通道电压

ptAIVoltageIn.chan=gwChannel;

ptAIVoltageIn.gain=ptAIConfig.DasGain;

ptAIVoltageIn.TrigMode=0;

ptAIVoltageIn.voltage=(FLOAT far*)&fVoltage;

启动设备工作和计时器计时, 循环采集AD数据。其基本结构如下图所示。

VisualC++6.0

四、结束语

本数据采集系统应用PCI 总线作为传输介质,以采集卡PCI-1711L为核心硬件,开发设备驱动程序并用Visual C++6.0编写数据处理程序同时把采集处理过的数据用图形和列表显示;使用DMA方式采集数据,使系统不仅具有良好的采集速度和很好的程序移植性;而所采集数据误差很少完全满足实际工程要求。可作为故障诊断所需设备状态参数的前提。


参考文献
[1]李永忠.实时数据采集系统中定时程序的设计[J].南阳师范学院学报,2006,6: 88-90.
[2] PCL-1711L数据采集卡用户手册[M].2003.
[3] 何瑾,张烨君,于彤彦.基于PCI 总线的数据采集卡的设计[J] .现代电子技术, 2006

 

查看相关论文专题
加入收藏  打印本文
上一篇论文:现场总线技术在电力自动化中的应用分析
下一篇论文:后台监控系统在电力调度中的应用
科技论文分类
科技小论文 数学建模论文
数学论文 节能减排论文
数学小论文 低碳生活论文
物理论文 建筑工程论文
网站设计论文 农业论文
图书情报 环境保护论文
计算机论文 化学论文
机电一体化论文 生物论文
网络安全论文 机械论文
水利论文 地质论文
交通论文
相关机电一体化论文
最新机电一体化论文
读者推荐的机电一体化论文