Windows2000下PCI数据采集卡WDM驱动程序设计
基于WDM模型的PCI数据采集卡驱动程序设计

Windows2000下PCI数据采集卡WDM驱动程序设计

⑥ 2 0 S iT c . n n . 0 6 c. e h E g g
Wid w 2 0 下P I n o s0 0 C 数据采集卡WD M驱动程序设计
张广华 苏秀琴 李 哲
( 国科 学 院西 安 光 学 精 密 机 械 研 究 所 光 电测 控 研 究 室 , 安 7 0 6 ) 中 西 10 8
研究 方 向 : M驱 动 程 序 开 发 研 究 。 WD 通 讯 作 者 简介 : 秀琴 (9 o ) 女 , 苏 16 一 , 甘肃 省平 凉 市人 , 究 员 。 研
程 序模 型 ( aee 3 一 iD v eD vr d ) L y rd 2 bt ei r e e 。它支 c i Mo 持 即插 即用 ( n ) P P ,遵 循 电 源 管 理 协 议 ,并 能 在
维普资讯
1 期 2
张广 华 , : n o s0 o P I 据采 集 卡 WD 等 Wid w 2 0 下 C 数 M驱 动 程 序 设 计
13 63
Wid w 8 n o s9 和Wid w 2 0 间实 现 源代码 级兼 容 。 n o s0 0
图2 Wid w 2 0 中的 设 备 驱 动 程 序 种 类 n o s0 0
2 WDM 模 型 . 2
20 年 2 06 月4日收 到
第 一 作 者 简 介 : 广 华 (9 O ) 男 , 西 省 西 安 市 人 , 士 研 究 生 。 张 18 一 , 陕 硕
WD M来 源 于Widw T 分层 3 位 设 备 驱 动 n o sN 的 2
维普资讯
第 6卷
第 l 2期
20 0 6年 6月
科
学
技
术
基于Win2000的WDM设备驱动程序的开发

中图分类 号 :P 1 文献标识码 : T 32 A
Pr g a m i fW DM v c ie n W i o 0 0 o rm ng o De ie Drv r i nd ws2 0
JANG in LI Ou n , I Ja g , U a 2 LUO oh a Ya - u2
bnE gneigUnvri , abn10 0 , hn ) i n ier ie t H r i 5 0 1 C ia n sy
Ab t a t Th h o y tu t r n u n n f i d ws 0 0 W DM v c i e r n r d c d i h s sr c : e t e r ,s r c u e a d r n i g o n o 2 0 W De ie Drv r we e i t o u e n t i p p r Th r g a a e . e p o r mm i g o DM sd s u s d wi n e a p e n e DM Hel n f W wa i s e t a x m l a d W c h m l o.
Ke r : DM ;W i d ws 2 00;de ie drv r y wo ds W n o 0 v c ie ;DDK ; I RP
0 引 言
在 W id w 操 作 系统 下 , 理 和 控 制 计 算 机 no s 管 外 部 设备 的工作 一 般 是 由驱 动程 序 完成 的 。当有 新 的设 备 加 入 时 , 需 要 启 动 支 持 新 设 备 的驱 动 就 程 序 来 控制 和 管理 。微 软公 司最 先 推 出 了虚 拟设 备 驱 动 ( iul ei r e) 术 , 称 Vx 技 vr a dvc di r技 t e v 简 D 术 , 动 程 序 通 过 创 建 虚 拟 设 备 , 支 持 w i— 驱 以 n dw 5和 W idws8系统 下 对 硬 件 的操 作 ; 时 o9 no 9 同 微 软 公 司 为 W idws no NT提 供 了 NT式 驱 动程 序
PCI设备Windows通用驱动程序设计

PCI设备Windows通用驱动程序设计2004-5-13 10:56:55驱动开发网李海(华强电子世界网讯)本文结合“通用高速PCI总线目标模块”的驱动程序设计,全面地讨论了Windows设备(特别是PCI设备)驱动程序编写时所面临的主要问题及解决方案,并提出了封装设备驱动的方法。
关键词:PCI设备驱动程序端口内存中断封装在设计和使用PCI设备时,经常要在PC机的软件中访问和控制硬件设备,但Windows操作系统(包括Windows95/98、Windows NT、Windows 2000为了保证系统的安全性、稳定性和可移植性,对应用程序访问硬件资源加以限制,这就要求设计设备驱动程序以实现PC机的软件对PCI设备的访问。
Windows下的驱动程序不仅仅包括物理设备的驱动程序,也包括为文件系统等非物理设备编写的虚拟设备驱动程序。
为了简化问题,下面只讨论硬件物理设备的驱动程序。
本文将以撏ㄓ酶咚伲校茫勺芟吣勘昴?閿[1]的驱动设计为例,探讨PCI设备的驱动程序设计方案。
我们开发了一套通用的PCI设备驱动程序,它可以完成一般PCI设备驱动所需的功能,可以作为其它PCI设备驱动开发的框架。
1驱动程序的模式和开发工具的选择设备驱动程序是指管理某个外围设备的一段代码。
驱动程序不会独立地存在,而是操作系统的一部分。
通过设备驱动程序,多个进程可以同时使用这些资源,从而可以实现多进程并行运行。
在下文中,将调用设备驱动程序的pc机程序称为用户程序。
Windows 95和Windows NT采用的驱动程序体系不同,所以大多数情况下驱动程序也不能通用。
如果设备需要在Windows 9X/NT下使用,一般至少要设计Windows 9X和Windows NT两个驱动程序版本。
wINDOWS 98 可以兼容Windows 95的驱动程序,同时它又推出一个新的Win32 Drivers Mode (WDM)驱动类型。
Windows 98中有些设备(如USB设备)的驱动程序必须为WDM模式。
PCI数据采集卡的WDM驱动程序开发

第2 5卷 第 8期 2 0 年 8月 06
国
外
电
子
测
量 技
术
V0.2 1 5,No 8 . Au .,2 0 g 06
F r in Elcr ncM e s rm e tTe h o o y o eg e to i a u e n c n lg
a e tt ed ie r x lie . d n t s h r ra ee pan d v
Ke wo d :P u ,W DM ,d ie ,d t c u st n y r s CIb s rv r a aa q iii . o
0 引 言
数据采集系统越来越多的应用于工业控制和测 试等领域 , 在某些特定的领域 , 人们对数据采集的要
a alb e v i l.Ac o dn ot ed sg h r ce it so h rv ro aa a q iiin s se ,t ed v l a c r igt h e in c a a t rs i f ed ie fd t c u sto y tm c t h e e- o me tme h d fd vc rv r o h ir s f id ws fm i f o e ai g s se s u i p n t o s o e ie d ie s f r t e M c o o t W n o a l o p r t y tm sn y n g W D M n e id ws2 0 a d t em an p o e so rv rp o r m n eal o eo l c u s r u d rW n o 0 0。 n h i r c s f ie r g a a dd t i c d fal o r ea e d
Windows 2000下PCI设备驱动程序开发

用, 微软公 司推 出了全新的 WD M设备驱 动模 式。详细阐述 了借 助工具软件 D i r rs用 Vsa C+ . r eWo , i l +6 0开发 P I v k u C 总线数据采集 卡的 WD 设备驱动程序的过程。 M 关键词 WD M驱 动程序 D i r rs 发工具 r eWok 开 v
Wid w 0 0下 P I 备 驱 动 程 序 开 发 no s 0 2 C 设
钱 宇 红
( 解放军电子工程学 院 安徽 合肥 2 03 ) 30 7
摘
要
在 Widw no s系统下开发 的硬件 必须编 写相应 的设 备驱 动程序才能正常工作。随着 Widw 00 X no s 0 / P操作系统的广 泛运 2
THE DEVELoP E M NT CIBUS DEⅥ CE DRI oF P VER UNDER I W NDoW S 2 0 0 0
Q a u o g i Y h n n
( l t ncE gneigIstt, e i 3 0 7A hiC i ) Ee r i n i r tueHf 03 ,n u,hn co e n ni e2 a
件工作 的所 有细节 , 始初始化 IO操作 , / 处理 IO操作完成时所 /
境 下对 所开发 的硬件设 备进行控制与访 问的问题 。以往在 D S O
环境 下解 决这些问题 比较简单 , 但是在 Wi o s n w 环境下 , d 为了确
保 系统的安全 ,P C U运行 于保护模 式 , 统一管 理硬 件资源 , 因此 应用程序 代码 不能直接访 问硬件 , 而是要 通过调 用属于 内核 的 设备驱动程序 提供 的各 种服务间接地对硬件资源进行访 问。也 就是说 , Widw 环境下开 发设 备驱动程 序是 目前计算 机硬 在 nos 件设 备开发的人员必须面临 的问题 。 由于设 备驱动程序需要 与操作 系统低层 进行 交互 , 因此不 同的操作 系统 底层 结构有着不同 的设备驱动程序模 型。微软公
WDM内核驱动程序模型分析

WDM内核驱动程序模型分析WDM驱动程序是Windows 2000操作系统重要的组成部分,它的正常工作需要有Windows 2000其它内核组件的支持,同时大部分的内核组件也必须同WDM驱动程序交互来完成它们的功能,为能够完整而清晰的说明WDM驱动程序的工作情况,本文首先说明Windows 2000操作系统的内核工作机理,同时将给出WDM驱动程序和内核其它组件的协同工作机制,最后分析WDM驱动程序的结构和工作流程。
1 Windows 2000内核组件工作模式1.1 Windows 2000的设计思想在现代操作系统中,应用程序和操作系统本身是分开的——操作系统代码运行在核心态并有权访问系统数据和硬件;应用程序运行在用户态,能够使用的接口和访问系统数据的权限都受到限制。
当用户程序调用系统服务时,处理器捕获该调用,然后把调用的线程切换到核心态。
当系统服务完成后,操作系统将线程描述表切换回用户态,允许调用者继续运行。
系统核心态部分的设计是丰富多样的。
较典型的有以下几种:A) 传统的单片式操作系统。
系统被设计为一个单一的、庞大的软件系统,在内部组件之间有许多关联。
这种软件系统依赖于许多系统组件。
这种相互关联意味着要扩展系统,就需要对全部代码库进行大量修改。
同时在单片式操作系统中大量的操作系统代码运行于同一内存空间,这就意味着任何操作系统组件都可能损坏正在被其它组件使用数据。
B) 分片式的操作系统。
将操作系统发分为不同层次中的模块。
每个模块提供一组功能函数其它模块调用。
在某一层次上的代码只能调用较低层次上的代码。
在一些了系统中,DEC公司的OpenVMS包括老的Multics操作系统,硬件甚至强制分层(使用多重、分级处理模式)。
分层操作系统结构的优点是,由于每层代码只能访问较低层的接口(和数据结构),因此限制了使用无限权利的代码数量,这种结构也允许在最底层开始调试操作系统,然后一层一层的往上调试,直到整个操作系统工作正常。
PCI总线电机控制卡的WDM设备驱动程序设计

5自动化技术与应用62003年第22卷第6期计算机应用Computer Applica tionsPCI总线电机控制卡的WDM设备驱动程序设计王磊,朱齐丹,王亮(哈尔滨工程大学自动化学院哈尔滨150001)摘要:结合基于PCI总线的精密电机运动控制卡,介绍了PCI设备的WDM设备驱动程序的设计过程,PCI设备的获得,I P O端口的读写,内存的读写以及中断的处理,和设备驱动程序的安装。
关键词:PCI总线;WDM中图分类号:TP311111文献标识码:A文章编号:1003-7241(2003)06-0052-03PCI Bus-Based WDM Device Driver for Motor Control BoardWANG Lei,ZHU Qi_dan,WA NG Liang(Automation college o f Harbin Enginee rin g Un iversity,Harbin150001,China)Abstract:As a prevalent technology,PC I bus protocol has man y advantages an d is widely used.This p a per presents the design of WDM de vice driver f or de vice based on PCI bus by introducing design of exact motor motion con tr ol boa rd based on PCI bus.It elaborates ca p ture o f PCI device,read an d write of I P O port,read an d write of memory and manage o f interru pt.At last the installation of WDM device driver is shown.Key words:PCI Bus;WDM device driver1引言微型计算机界以INTEL公司为主推出了PCI总线规范。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
的数 据 传 输 设 备 时 .需 要 开 发 相 应 的设 备 驱 动 程
序 。 常 开 发 P I 备 驱 动 程 序 有 多 种 模 式 , 如 通 C设 例 VD ( x 虚拟 设 备 驱 动 程 序 )WD ( n o sD v r 、 M Wid w r e i Mo e 等 。 文 针 对基 于 P I 线 的数 据 采集 卡 . d) 本 C总 编
通 讯 作 者 简 介 : 秀 琴 (9 0 , , 肃 省 平 凉 市 人 , 究 员 , 士 苏 16 ) 女 Wid w 0 0中 的设 备 驱 动 程 序种 类 no s 0 2
维普资讯
15 52
科 学 技 术 与 T 程
④ 2 0 S iT c . nn . 0 6 c. eh E g g
Wid w 0 0 P I n o s 0 下 C 数据采集卡 WD 2 M 驱动程序设计
张 广 华 苏 秀琴 李 哲
( 国 科 学 院 西 安 光 学 精 密 机 械 研 究 所 光 电 测控 研 究室 , 安 70 6 ) 中 西 10 8
维普资讯
第 6卷
第 1 1期
20 0 6年 6月
科
学
技
术
与
工
程
Vo .6 No 1 J n 2 0 1 . l u. 06
1 7 —8 5( 0 6 1 —5 1— 5 6 1—1 1 2 0 、 1—1 5 — 0
S in eTe h oo y a d E gn e n ce c c n lg n n i e r g i
中图法分类号
T 3 5 ; 文献 标 识码 P 1. 12
B
P I P r hrl o p n n nec n et 总 线 规 C ( e p ea C m o etItro n c) i
户 应用 程 序 的请 求 随 即返 回 。 问硬 件 时 , 动 程 访 驱
范 是 为提 高 微 机 总线 的数 据 传 输 速 度 而 制 定 的一
匝巫 卜 ]
厂 用模 户式
内核模 式
Ii 2 P调 n I用 W 3A
L 塑
IO管理器 /
J统 务 口 系 服接
传递 I P给驱动 R 程序派遣 函数
写 了符 合 WD 模 式 的驱动 程 序 。 M
1 W id ws 0 0环 境 下 W DM 驱 动程 序 no 0 2
序 的 请 求 , 创 建 一 个 I 请 求 包 (R ) 数 据 结 就 / O IP 的 构 . 将 其 作 为参 数 传递 给 驱 动 程 序 。 动 程 序 通 并 驱
过识 别 I P中的物 理设 备对 象 ( D 来 区别是 发 送 R P O)
Wid w 0 0系统 可 以使 用 多种 驱动 程 序 , no s 0 2 图 2显示 了其 中几 种 。
1 Wid w 0 0系统 结构 及驱 动程 序种 类 . 1 n o s2 0
图 l着 重 描 述 了从 驱 动 程 序 开 发 者 角 度 关 心
—
1L用 H 调 A
墨 I
I 平台相关操作 硬件 I
图 1 Wid w 0 0系统 结 构 no s 0 2
的 Wid w 0 0系统 结构 。 件要 么执 行 在用 户模 n o s2 0 软 式 中 , 么执 行 在 内核 模 式 中 。 备 驱 动 程序 由 I 要 设 / O 管 理器 调 动 和管 理 . 每 收 到一 个来 自用 户 应 用程 它
6 卷
1 WDM 模 型 . 2 WD 来 源 于 Wid w T的分 层 3 M no s N 2位设 备 驱 动 程序 模 型 (a ee 2 bt eieD v r d )它 L y rd3 一 i D vc r e e 。 i Mo 支持 即插 即用 ( n ) P P ,遵循 电源 管理 协议 ,并 能在
给哪 一个 设 备 。R I P结构 中存放 请求 的类 型 、 户 缓 用 冲 区 的 首 地 址 、 户请 求 数 据 的 长 度 等 信 息 。 动 用 驱 程序 处理 完 这个 请 求后 , 其返 回给 I 将 / O管理 器 , 用
2 0 年2 1 06 月 0日收 到
第一 作 者 简 介 : 广 华 (9 o - , , 西 省 西 安 市 人 , 士 研 究 生 。 张 1 8- ) 男 陕 硕 研 究 方 向 : M 驱 动 程 序 开 发 研 究 。 - i:yrn e9 0 6 . l。 WD E malf oag 1 8@1 3 o l ci n
建完 成 I P 经 过初 始 化 . R . 就可 以把 I P发送 到设 备 R 驱动 程 序 。 派遣例 程 可 以立 即完 成该 I P 可 以把它 R .
传递 到 处 于 同一 堆 栈 的下 层驱 动 程 序 . 可 以排 队 也
该 I P以便 由这 个 驱 动程 序 中 的其 它 例程 处 理 。 R 每
摘
要
介 绍 了 WD 基 本 组 成 和 工 作 原 理 。 用 D vrtdo 发 符 合 Widw 0 0操 作 系 统 环 境 下 WD 模 式 的 P I 据 M 利 i r eSu i 开 no s 0 2 M C数
采 集 卡 驱 动 程 序 , 细 分 析 了程 序 设 计 中的 几 个 关 键 步 骤 。 详 关键词 P I 设备驱动程序 C WD M D vrtdo 中断 i r eS i u
处 理一 个 I P I R . O管 理 器就 调 用一 次 Sat / tr O例 程 。 l Sa l 的工作 是就 着手 处理 I P tt rO R 。如何 做 完全 取决