


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于CPCI总线的数据采集卡及其驱动程序设计 08-05-02 15:03:00 作者:周玉恒 师奕兵 王 编辑:studa0714摘 要 介绍了一种基于CPCI总线的高速数据采集卡硬件及其WDM驱动程序设计方法,详细说明了计算机通过驱动程序与数据采集卡硬件进行高速数据交换的方法,利用DriverWorks完成了满足高速数据传输要求的WDM驱动程序设计,实现了数据采集卡与主机内存之间
2、数据传输的DMA方法。 关键词 数据采集;WDM ;CPCI;DriverWorks;DMA 1 引言 CPCI总线机械特性上有VME总线的坚固特性,在数据传输方面采取与PCI一致的传输方法。高速数据采集系统中,总线数据传输能力要求强,数据采集系统采用CPCI总线,极大提高了数据采集卡的数据传输能力。为了充分发挥CPCI总线数据传输快、高可靠的优势,要解决好基于CPCI总线的数据采集卡与计算机主机之间的通信问题。Windows2000操作系统对CPCI总线提供良好的支持,该操作系统下,驱
3、动程序的编写基于一种新的驱动模型WDM(Windows Driver Model),WDM为Windows98/2000/XP操作系统的设备驱动程序的设计提供了统一的框架。本文介绍的基于CPCI总线的高速数据采集卡用于某数字化仪(Digitizer)中,借助用DriverWorks开发的WDM设备驱动程序,用户应用程序和数据采集卡之间相互通信,实现主机命令的即时传送和板卡采集数据的高速传输。2 硬件系统设计 针对不同的应用要求,CPCI接口卡设计采用的设计方案,一是使用PCI专用接口芯片与FPGA相结合的方案,专用接口芯片完成从PCI总线到本地用
4、户总线的转接;FPGA灵活的转换逻辑时序,以适应不同的外设时序要求;二是采用可编程逻辑器件实现通用PCI总线接口,很多生产可编程逻辑器件的厂商都提供经过严格测试的PCI接口功能模块,由用户进行简单的组合设计即可。考虑到开发周期,本CPCI数据采集卡采用前一种设计方法,用PCI专用接口芯片实现。系统硬件组成如图1所示。 本数据采集卡PCI接口芯片选用PLX公司的PCI9054, PCI9054提供两个独立的可编程DMA控制器,有两个DMA通道,每个通道均支持Block(块传输)和Scatter/Gather(散/集传输)的DMA方式,PCI总线端支持32位/3
5、3MHz;本地端可编程实现8、16、32位数据宽度,传输速率最高可达到132M字节/秒。本地总线端时钟最高可达50MHz,支持复用(J模式)和非复用的32位地址/数据(C模式)。PCI9054工作方式有:直接主模式,直接从模式和DMA模式。直接主模式由本地处理器访问PCI总线上的I/O接口和计算机内存资源,本地处理器发起数据的传输。直接从模式指PCI总线作为主控设备发起对本地总线资源的访问,包括对本地处理器的控制和对本地内存的访问。DMA模式支持PCI总线与本地总线之间的突发传输。PCI9054实现了PCI总线到局部端总线的转接,用该芯片做设计时,不必对PCI规范作全面深入理解,方便用户在设计
6、时专注于具体功能的实现。 本设计中PCI9054设置为非复用的32位地址/数据,即C模式,采用直接从模式和DMA方式分别传输主机命令和数据采集卡采集到的数据;可编程逻辑器件FPGA里边配置一个FIFO作为缓冲器,当主机向数据采集卡发送命令时,FIFO作为命令数据的缓冲器,命令数据发送完毕,引起DSP的一个中断,DSP从FIFO里读出命令数据,对命令解析,完成实际的硬件操作;当主机要读取数据采集卡采集到的数据时,DSP对SRAM中数据作预处理,上传到FPGA里边配置的FIFO中,这时FIFO作为数据采集卡上传数据的缓冲器,当FIFO数据满时,引起PCI中断,通
7、知上层应用程序读取数据。EEPROM中存放设备号,厂商号以及本地总线的基地址空间,I/O空间,中断控制信号等信息,初始化时,系统将EEPROM配置参数装入PCI配置寄存器,并根据本地总线对内存,I/O端口和中断的需求统一划分,自动分配系统资源。3 数据采集卡WDM驱动程序设计3.1 WDM模型(Windows Driver Model)简述 WDM模型(Windows Driver Model) 是微软公司为Windows98和Windows2000的驱动程序设计的一种架构,在WDM驱动程序模型中,每个硬件设备至少有两个驱动程序。其中一个为功能驱
8、动程序,它了解硬件工作的所有细节,负责初始化I/O操作,处理I/O操作完成时所带来的中断事件,为用户提供与设备相适合的控制方式;另一个驱动程序为总线驱动程序,它负责管理硬件与计算机的连接,总线驱动程序由操作系统提供。Window2000 系统结构图如图2所示,应用程序调用Windows子系统Win32 API,这个调用由系统服务接口作用到I/ O 管理器,I/ O 管理器进行必要的参数匹配和操作安全性检查,然后由这个请求构造出合适的IRP(I/O Request Package) 。IRP是DDK定义的一个数据结构,具有丰富的成员,对于单层驱动程序,直接接受并执行这个请求包,完成对硬件的操作,
9、从而完成I/ O请求工作,并将执行的结果通过I/ O 管理器返回应用程序;对于多层驱动则将驱动程序分成若干层,每层驱动再把I/ O 请求划分成更简单的请求,以传给更下层的驱动执行。图2 Windows2000 系统结构 3.2 驱动程序设计实现 该数据采集卡驱动程序完成以下功能:应用程序控制数据采集卡工作方式,向数据采集卡工作方式缓冲器发送工作方式控制字;应用程序查询数据采集卡工作状态,从数据采集卡工作状缓冲器读取工作状态字;为了使应用程序能实时处理数据采集卡上采集到的数据,SRAM与主机内存之间要实现DMA方式的数据传输。 采用VC+DDK+Driverworks进行驱动程序开发,Driverworks为驱动程序开发提供向导,可以方便的建立一个驱动程序框架。下面分别说明控制命令和DMA方式传输数据的实现方法。 1)主机发送数据采集卡控制命令实现 Driverworks利用KMemoryRange和KIoRange实现内存和I/O映射空间的读写,通过配置EEPROM,将PCI9054的Base2空间设定为一个内存映射空间,局部端FPGA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 经济法概论考试主题试题及答案
- 2025年卫生资格考试相关法规知识与试题答案
- 签订房屋购买协议书
- 药店房屋转让协议书
- 自愿更改离婚协议书
- 设备机械租赁协议书
- 秋季幼儿园安全管理计划
- 路面养护设备采购协议
- 竖笛社团年度发展计划
- 领导者的情感智力培训协议
- 全国高校辅导员素质能力大赛试题(谈心谈话、案例分析)
- 2025高级会计师(四套全真模拟)《高级会计实务》案例分析及答案
- 蒙医学在肿瘤治疗中的应用
- 2025年全国保密知识竞赛题库及答案(共290题)
- 土石方工程施工安全责任协议书
- 高三基本能力学科三模复习计划
- 烟雾病和烟雾综合征诊断与治疗中国专家共识(2024版)
- DBJ03-107-2019 房屋建筑和市政工程施工危险性较大的分部分项工程安全管理规范
- 2025年贵州中考二轮道德与法治专题复习 题型三 判断与分析
- 《Hadoop电信大数据的用户分群算法研究与实现》
- 《烈士陵园游》课件
评论
0/150
提交评论