基于PXI总线的数据采集卡的WDM驱动程序设计

发布时间:2010-7-24 17:04    发布者:conniede
关键词: PXI总线 , WDM , 驱动程序 , 数据采集卡
0 引 言

Windows驱动程序模型(Windows driver model,WDM)是Microsoft公司力推的全新驱动程序模式,与以前的驱动程序模型比较,它支持即插即用(plug and play,PnP)、电源管理和Windows管理诊断WMI等技术。在Windows操作平台上,WDM已成为主流的驱动模型,但这也给WDM驱动程序的开发人员提出了许多新的挑战,即便是开发和测试最简单的设备驱动程序也变得比以前任何时候都复杂。DriverWorks由NuMega公司开发,主要为开发Windows98、Windows 2000和Windows NT的WDM设备驱动程序提供了一个自动化的方法,使驱动程序的开发相对于使用Microsoft公司提供的设备驱动程序开发包(device driverskit,DDK)工具更加容易;并且它可以集成到VC++6.0开发环境中(后面要介绍的功能实现都是在用VC++6.0集成环境生成的驱动程序框架中编写的),可以引导完成设备驱动程序开发的全过程,这样就可以像生成其他工程一样根据硬件种类自动生成设备驱动程序框架,省去了大量编写代码的时间。本文就是利用DriverWorks开发工具开发基于PXI总线的数据采集卡的WDM驱动程序。

1 PXI总线数据采集卡的硬件框图

该数据采集系统的硬件结构框图如图1所示,该系统包括数据采集模块、F先进先出数据缓存模块、接口电路模块和CPLD系统控制器模块4个部分。待采样的模拟信号经由数据采集模块进行数据采集,采样后经过转换得到的数字信号先被送入先进先出存储器进行缓存,当缓存器所存储的数据达到半满/全满时,将发送一个半满/全满标志信号,触发中断,由系统控制器通过PXI总线读取数据。整个系统的工作逻辑时序控制由1片CPLD控制芯片来编程实现,接口逻辑采用通用的PXI总线接口逻辑芯片PCI9030来实现。


2 驱动程序设计

2.1 中断过程调用

当FIFO数据缓存器读取的数据达到半满/全满时,其相应半满/全满信号线会走低,该信号线与PCI9030芯片的外部触发中断输入管脚相连,从而触发中断,主模块通过PXI总线接口芯片读取FIFO中的数据,其中断服务例程如下:


2.2 中断延迟过程调用

中断服务例程的处理时间应当尽可能短,并且由于中断服务例程在DIRQL级别上运行,很多函数不能调用,所以通常是在延迟过程调用例程中做大部分的中断处理工作。本系统延迟例程调用相关程序如下:


2.3 读取数据

对于数据的读取,主要是在SerialRead()例程中实现的,其主要程序语句如下:


2.4 SerialWrite()例程

数据采集卡硬件系统的初始化和肩动工作主要在Se-rialWrite例程中实现,其相关部分程序
如下:


3 应用程序设计

编写驱动程序本身不是最终目的,最终目的是调用驱动程序管理资源,并为用户应用程序使用。这里采用的是console控制台应用程序,其基本框架也可以由Driverstuio自动生成,只需在现有的框架里面插入相应的代码就可粤耍?渲骱?齧ain()的相应代码如下:


4 结束语

DriverWorks是一款功能强大、使用方便的驱动程序开发工具,利用它可以方便快捷地构造PCI设备的驱动程序框架,大大加快了开发周期,提高了开发效率。控制台应用程序的优点是开发起来方便、快捷,但在数据的图形化显示方面却有所不足,如果将驱动程序与VC或者LabVIEW等图形化应用程序编程环境相结合,就可以编制出界面更加友好、功能更为强大的数据采集系统软件平台。
本文地址:https://www.eechina.com/thread-16651-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表