PCI图像采集卡的Windows驱动程序开发
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
月.. 叫 . . ,
Bu d ie s v r r
图I M驱动分层和 II WD R〕 处理流程
WD M驱动程序模型是典型的分层结构, 如图 1 所示。这与 Wi o s n w 系统有一致性。对硬件的 d 访问均是通过统一的 I O请求包( P来实现的。 I ) R
一般都会实现一些自 定义的I s R 的。 P 设备中断响应例程处理实时异步事件, 对访间
硬件的性能有较大的影响。WD 驱动程序通过 M
源的分配与释放等, 处理系统发向驱动的 IP R
MT P P _N I O请求包。对于 P I C 设备来说, P P 对 N IP 的处理工作是和 P I Rs C 总线驱动程序 (C. PI
9 X 列,M C 9X系 CPES 0 系 A C 的5 X X 列,YR 的 S
C 7049 Y c94 等等。P T C 接口芯片一般实现:C 配 PI
第 3 卷(05第 6 3 20 ) 期
计算机与数字工程
中断对象, 以及初始化 D A对象。设备的端 M 口 寄存器被系统映射到 I O空间或者内存空间 中, 驱动代码通过访问 这些空间中的地址, 就 访问到实际硬件了。除 了上述的 】P处理, R 驱
第 3 卷(05第 6 3 20) 期
计算机与数字工龚艳军 朱德森 肖 力
( 华中科技大学控制科学与工程系 武汉 407) 304
摘 要
结合自 行开发的P I C 总线的图像采集卡, 讨论了一般P I C 设备驱动程序编写时所面临的主要问题及解决方案, 特别分 析了图像采集卡对驱动程序的额外要求同时提出了解决方案, 并简略的 说明了驱动程序的安装与调用问题。 关键词:C 图像采集卡 WD 设备驱动程序 共享内存 D A PI M M 中图分类号:P 1 T3
IP R 是包含了I O请求信息的数据结构。驱动程序
的 工作都是围绕 IP的处理与完成来进行 的。 R WD 的分层结构适应即插即用的要求, M 我们称之 为即插即用设备栈, 每一层代表一个驱动程序, 整
() 要了解设备产生中断的条件和使用 3中断 中断的数量, 中断提供通信的实时性的可能。 () 4数据传输机制 最常见的数据传输机制是 通过 I / O端口(o )也就是通过 C U的 I/ pr , t P N O T指令进行数据读写。还有一种用于少量数据 U 传输机制的叫MaBx信箱) io( l 机制。 另一种重要的
A s at s o h m g ba f bs e pd u e e w iu t e iu n 乡 e e li s a d t iae r o P I dvl e b o sv , d c s ky e ad v t ro tn o bt c: n r Be e o d C u e o y ls e s h r s e s s s h suo f e t dvom n o gnr P I i dir t n eay c s u t iae t i ba s cl es h eep et f e l dve e h e cl d u aot m g c un o d’ sear u to e l s e a C ec r s, e s il i s b h v p s e a rg r p pi e s f q di rad e r o tn, te bi y mnt i tlet c lg te e. r e n g te l i s ad n e i i e am n ad i f h di r v s i h e uo v s n h rf l a n l l l u s n an o l r r v K y od: , g cp r g d WD dv e e, r m m r, e w rsP I iae t i c , M, i di r sa d o D C m a un a r ec r v h e e y MA
查询 C Rs rTpIeut m e u eye tr 类型的描述符, oc n rp 就
可以获得相关中断信息并保存到设备扩展中去。 D K还提供了响应中断事件的服务例程, R的 D I S 例程。驱动初始化的时候, 把中断处理挂接到 I S R 上, 在驱动卸载时释放。由于中断处理时间宝贵, 所以一般的 I S R只做些中断处理初始化的工作, 进一步的处理将调用一个 D C过程, P 来实现 I S R 没有完成的工作。D A传输对高效数据传输十分 M 有用。一般的P I C 设备有自主的 D MA控制器, 而 不用系统提供的 D MA通道。驱动程序根据实际 需要, 在某些 IP的处理例程中使用 D R MA传输。 另外, 对硬件和内存的访问要考虑到同步问 题, 保证驱动不同的代码不同时访问同一临界资 源, 系统提供了很多机制解决这些问题, 如串行化
32 I . P 设备驱动程序的组成 C WD M驱动程序有着非常规范的编写模式, PI C 设备驱动属于功能驱动程序, 处于即插即用设 备栈的顶层。 系统和应用层对设备的访间都是通 过发送 I O请求包( P到驱动程序来完成的, I ) R 因 此, 驱动程序主要是由一组处理各种各样的 IP R 的例程构成的。图2 展示了 P I C 驱动程序的基本
传输机制是D A用于大批量数据的 M , 传输, C 但P I
规范没有 D , MA 它由碎发机制来完成类似的功能。 () 5设备内存 许多设备自 身带有内存,C PI 设备大多是采用映射的方式映射到 P C系统的内
存空间中去。
个设备栈一起才能实现对 IP的正确响应。( R 参
看上图的 IP R 处理流程) 由此可见, M模型对 WD 硬件访问的实现是多个驱动程序协作的结果。一 般的来说, 系统提供底层的总线驱动程序, 硬件驱 动程序处于驱动栈的顶层, 属于功能驱动程序。 22开发工具的选择 . 开发设备驱动采用的主要开发工具是微软为 设备 开 发者提供 的软件包 Dve ir t ei D v K c re i (D ) D K 。这个软件包包括有关设备开发的文档、 编译需要的头文件和库文件、 调试工具和程序范 例。不同版本的操作系统有不同的D K版本, D 应
3 C 设备驱动程序的一般性设计 PI
31 I . 设备硬件特点 P C 在设计驱动程序之前, 首先要对欲控制的硬件 设备的功能与工作流程进行细致地分析。P I C接 口 卡一般都是一块 P I C 接口芯片, 是主机与板上 硬件相互通信的桥, 市场上有几款, P X的 如 L
() 1驱动的人口 点和初始化模块 驱动程序的入口 点是一个名为Dirn 的 re t vE r y 函 Dirn 里面主要是注册一些驱动程序 数. re t vE r y 的回调例程, P的处理人口 I R 都是从这里查找相应 的处理例程的。应用程序或者系统模块通过该人
C as mb rT 3 l n s u e二 P 1
1 前言
如今, 图像技术已经广泛的应用于各大领域, 如工业, 医药, 纺织, 航天等等。图像技术非常丰 富, 其中获取图像是其重要的一环。各种各样的图 像采集卡已经推出市场。同时由于 P C机有着非 常丰富的图像处理能力, 所以基于P C的P I C 图像 采集卡更是其中的主流。但是由于实际需求的不 同, 要求图 像采集卡具有不同的特点, 市场上的通 用型号不能满足需要, 所以开发自己的图像采集卡
D vl m n o Wi o s vr P I ae pui C r ee p et n w D i fr I g C tr g d o f d re o C m a n a
G n Y u Z u e Xa L og n Ds i i 咧 h e n o ( et o Cn oSi c & E g ei , T Wua 407) D p. ot l ne ni en H S , hn 304 f r c e n rg U
和相应的软件是有现实意义的。
应用软件对 P I C 设备的访间。
本文将以P I C 总线采集卡为例, P I 探讨 C 设
备的驱动程序的一般设计思路, 同时针对图像采集 的特点对驱动程序提出更多的要求。
2 D V M驱动程序开发基础 W
21 M驱动模型简介 . WD 设备驱动程序是指管理某个外围设备的一段 代码。驱动程序不会独立地存在, 而是操作系统的 一部分, 与系统内核同处于内核空间。内核空间的 代码要求很严格, 出错将导致系统的崩溃。Wi n - dw 针对驱动开发不断的推出了新的方案 ,X os VD 驱动程序, T式驱动程序, N 到如今极力推荐的 WD M驱动程序模型。这使得驱动程序的编写越 来越简单化 WD M驱动程序模型, 是微软针对如今硬件的 特点、 推出的全新的驱动程序的开发模式, 增加了 系统对硬件的支持, 简化了 用户驱动程序的开发规 模和难度, 特别适合即插即用设备( P I 驱 如 C) 的
U pr edie pe f r r I r t v
置空间寄存器组, 局部总线控制力 态乃 信寄存器 伏 直 组, 中断控制状态寄存器组和 D MA状态控制寄存 器组。驱动程序最关心的 是硬件的可访问的资源。
一般硬件卡的资源包括:
f nt d vr c i n i e u o r
Lo r l r i e we fl d v r ie r
()C 设备的配置空间寄存器组 每个 P I 1P I C 设备都要实现这个寄存器组, 它是系统自动上电检 测和P P N 技术实现的基础。 () 要了解设置的控制寄存器、 2寄存器 数据 寄存器和状态寄存器, 以及这些寄存器工作的特
性。
. . .叫 . . . . . .月 月. .勺月 . . 叫 ,.. .. . . . .., .一
动也可根据实际需要定 义自己的 D VC EI I E_ O
_ O TO I s C N R L , R 来实 P
图2 M设备驱动程序基本构成 WD
现对硬件更具体的访
问, 实际设备驱动程序
系统相关的模块, P P 有 N 处理模块, 电源管理 模块, 和WMI 模块。这些模块一般的由操作系统 调用, 来实现对设备的管理。一般的用户程序不会 用到这些例程的。P P N 模块管理设备的状态和资
口 点转而调用到驱动中其他的例程的。A d ei dDv e c 函数用于产生一个新的该驱动程序的设备对象, 对
新的设备进行初始化, 同时寄存一个或多个设备接 口, 便应用程序能知道设备的存在, 以 最后它把新
设备对象放到设备驱动即插即用设备栈上去。在 该例程中还可添加一些 自定义的全局的初始化的 工作, 如分配一段内存共享区等等。 () 2系统相关的模块
Wi os n w 是现今最为流行的操作系统, d 在其平 台上有很丰富的图像处理分析软件, 其本身对图像
的支持能力也非常强, 所以大部分图像处理系统都 是基于Wi o s n w 平台的。在设计和使用 P I d C 采集 卡时, 经常要在P 机的软件中访问和控制硬件设 C 备, no s 但Wi w 操作系统为了保证系统的安全性 d 稳定性和可移植性, 对应用程序访问硬件资源加以 限制, 这就要求设计设备驱动程序以实现 P C机的
构成。
用对应的版本才能正确编译驱动程序。如 Wi 8 n 9
由图2 可看出, 驱动程序主要由三大模块组 成: 初始化和入口 点模块, 系统相关的模块和硬件
相关的模块。
D K 00 K等等。另外, D , n 0D Wi 2 D 还有一些其他
的Wi o s n w 驱动开发2具, Dirt i Wi d 如 re u o n v S d , - Dir re等等, v 他们都是基于D K的, D 帮助人们快速 开发驱动程序, 工具的选择由个人想法决定, 可直 接选择 D K, V 60 D 在 C 下开发。 .
收到本文时间: 0 年 1 月 2 2 4 0 5日 0
PI C 图像采集卡的 Wi o s n w 驱动程序开发 d
第3卷 3
动程序开发。同时 WD 驱动程序可在 Wi 8 M n/ 9
M , 00X 等多个流行的 e n 0/P Wi 2 平台 上运行, 兼容
性好。因此如今驱动开发者们均选择 WD 开发 M 模式来开发 P I C 设备驱动程序。