基于CPCI总线的数据采集卡及其驱动程序设计.docx
《基于CPCI总线的数据采集卡及其驱动程序设计.docx》由会员分享,可在线阅读,更多相关《基于CPCI总线的数据采集卡及其驱动程序设计.docx(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于CPCI总线的数据采集卡及其驱动程序设计 1CPCI总线机械特性上有VME总线的坚实特性,在数据传输方面实行与PCI一样的传输方法。高速数据采集系统中,总线数据传输实力要求强,数据采集系统采纳CPCI总线,极大提高了数据采集卡的数据传输实力。为了充分发挥CPCI总线数据传输快、高牢靠的优势,要解决好基于CPCI总线的数据采集卡与计算机主机之间的通信问题。Windows2000操作系统对CPCI总线供应良好的支持,该操作系统下,驱动程序的编写基于一种新的驱动模型WDM(WindowsDriverModel),WDM为Windows98/2000/XP操作系统的设备驱动程序的设计供应了统一的框
2、架。本文介绍的基于CPCI总线的高速数据采集卡用于某数字化仪(Digitizer)中,借助用DriverWorks开发的WDM设备驱动程序,用户应用程序和数据采集卡之间相互通信,实现主机吩咐的即时传送和板卡采集数据的高速传输。2硬件系统设计针对不同的应用要求,CPCI接口卡设计采纳的设计方案,一是运用PCI专用接口芯片与FPGA相结合的方案,专用接口芯片完成从PCI总线到本地用户总线的转接;FPGA敏捷的转换逻辑时序,以适应不同的外设时序要求;二是采纳可编程逻辑器件实现通用PCI总线接口,许多生产可编程逻辑器件的厂商都供应经过严格测试的PCI接口功能模块,由用户进行简洁的组合设计即可。考虑到开
3、发周期,本CPCI数据采集卡采纳前一种设计方法,用PCI专用接口芯片实现。系统硬件组成如图1所示。本数据采集卡PCI接口芯片选用PLX公司的PCI9054,PCI9054供应两个独立的可编程DMA限制器,有两个DMA通道,每个通道均支持Block(块传输)和Scatter/Gather(散/集传输)的DMA方式,PCI总线端支持32位/33MHz;本地端可编程实现8、16、32位数据宽度,传输速率最高可达到132M字节/秒。本地总线端时钟最高可达50MHz,支持复用(J模式)和非复用的32位地址/数据(C模式)。PCI9054工作方式有:干脆主模式,干脆从模式和DMA模式。干脆主模式由本地处理
4、器访问PCI总线上的I/O接口和计算机内存资源,本地处理器发起数据的传输。干脆从模式指PCI总线作为主控设备发起对本地总线资源的访问,包括对本地处理器的限制和对本地内存的访问。DMA模式支持PCI总线与本地总线之间的突发传输。PCI9054实现了PCI总线到局部端总线的转接,用该芯片做设计时,不必对PCI规范作全面深化理解,便利用户在设计时专注于详细功能的实现。本设计中PCI9054设置为非复用的32位地址/数据,即C模式,采纳干脆从模式和DMA方式分别传输主机吩咐和数据采集卡采集到的数据;可编程逻辑器件FPGA里边配置一个FIFO作为缓冲器,当主机向数据采集卡发送吩咐时,FIFO作为吩咐数据
5、的缓冲器,吩咐数据发送完毕,引起DSP的一个中断,DSP从FIFO里读出吩咐数据,对吩咐解析,完成实际的硬件操作;当主机要读取数据采集卡采集到的数据时,DSP对SRAM中数据作预处理,上传到FPGA里边配置的FIFO中,这时FIFO作为数据采集卡上传数据的缓冲器,当FIFO数据满时,引起PCI中断,通知上层应用程序读取数据。EEPROM中存放设备号,厂商号以及本地总线的基地址空间,I/O空间,中断限制信号等信息,初始化时,系统将EEPROM配置参数装入PCI配置寄存器,并依据本地总线对内存,I/O端口和中断的需求统一划分,自动安排系统资源。3数据采集卡WDM驱动程序设计3.1WDM模型(Win
6、dowsDriverModel)简述WDM模型(WindowsDriverModel)是微软公司为Windows98和Windows2000的驱动程序设计的一种架构,在WDM驱动程序模型中,每个硬件设备至少有两个驱动程序。其中一个为功能驱动程序,它了解硬件工作的全部细微环节,负责初始化I/O操作,处理I/O操作完成时所带来的中断事务,为用户供应与设备相适合的限制方式;另一个驱动程序为总线驱动程序,它负责管理硬件与计算机的连接,总线驱动程序由操作系统供应。Window2000系统结构图如图2所示,应用程序调用Windows子系统Win32API,这个调用由系统服务接口作用到I/O管理器,I/O管
7、理器进行必要的参数匹配和操作平安性检查,然后由这个恳求构造出合适的IRP(I/ORequestPackage)。IRP是DDK定义的一个数据结构,具有丰富的成员,对于单层驱动程序,干脆接受并执行这个恳求包,完成对硬件的操作,从而完成I/O恳求工作,并将执行的结果通过I/O管理器返回应用程序;对于多层驱动则将驱动程序分成若干层,每层驱动再把I/O恳求划分成更简洁的恳求,以传给更下层的驱动执行。3.2驱动程序设计实现该数据采集卡驱动程序完成以下功能:应用程序限制数据采集卡工作方式,向数据采集卡工作方式缓冲器发送工作方式限制字;应用程序查询数据采集卡工作状态,从数据采集卡工作状缓冲器读取工作状态字;
8、为了使应用程序能实时处理数据采集卡上采集到的数据,SRAM与主机内存之间要实现DMA方式的数据传输。采纳VC+DDK+Driverworks进行驱动程序开发,Driverworks为驱动程序开发供应向导,可以便利的建立一个驱动程序框架。下面分别说明限制吩咐和DMA方式传输数据的实现方法。1)主机发送数据采集卡限制吩咐实现Driverworks利用KMemoryRange和KIoRange实现内存和I/O映射空间的读写,通过配置EEPROM,将PCI9054的Base2空间设定为一个内存映射空间,局部端FPGA上配置的FIFO地址空间映射到该内存空间,这样对FIFO的访问,就是访问Base2空间
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 CPCI 总线 数据 采集 及其 驱动程序 设计
限制150内