教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> 论文> 其他论文> 基于WDM的PCIE设备驱动程序开发

基于WDM的PCIE设备驱动程序开发

上传者:网友
|
翻新时间:2022-11-09

基于WDM的PCIE设备驱动程序开发

相关技术标准,详细说明关于PCIE设备驱动开发技术,通过开发者掌握的现有技术,给出了一个基于PCIE接口的嵌入式系统的驱动开发例子,在visual studio 2008开发环境中采用Windows DDK开发完成系统驱动实例。

关键词:WDM模型,驱动编程,PCIE,WinDDK

1.引言

基于PCIE总线在各个方面的优势众多,从推出至今,被广泛的接受和应用,市场上大多数新系列的以太网卡,PCIE显卡和PCIE声卡,都摒弃传统的PCI总线技术,采用优点更多的PCIE总线协议技术,针对这种大的背景趋势,开发者结合具体的实例系统工程,详细探讨说明基于WDM的PCIE设备驱动开发技术。

2.设备驱动程序

设备驱动程序是连接应用程序、硬件以及操作系统的桥梁,是硬件设备连接到计算机系统的软件接口。Windows xp操作系统,为了提高系统的稳定性,将windows程序分为两类,用户态和内核态程序,执行在用户态的程序不能直接调用系统底层的物理地址,所有操作必须在用户态内存地址空间中,内核态程序,能访问到内核态内存地址,即能访问系统物理设备映射在系统内部的物理地址空间,设备驱动程序属于内核态程序。

2.1概念

设备驱动程序(Device Driver)是操作系统内核的重要组成部分,运行在操作系统的内核态,属于操作系统的信任部分,驱动程序能工作在32位和64位下,用来控制和管理计算机物理设备的可执行二进制代码,在windows XP系列操作系统中,驱动程序文件扩展名为.SYS。现在的驱动程序遵循内核模式驱动程序框架规范(WDM),与windows 98能绕过驱动程序访问硬件特性不同,Xp必须通过设备驱动程序访问硬件,基于WDM内核驱动程序框架规范的驱动程序,能很好的支持设备的即插即用功能。

2.2WDM的基本原理

WDM(Windows Driver Model)值得是windows驱动模型,目前大部分计算机设备驱动程序都采用WDM驱动框架规范,动态构造WDM驱动程序堆栈是实现即插即用设备支持的关键,WDM属于一个分层型驱动模型框架,分为设备对象堆栈结构,和设备驱动程序结构,设备驱动分为功能驱动层和总线驱动层,总线驱动层为总线上发现的设备创建物理设备对象PDO,功能驱动层为设备驱动创建自己的功能设备对象FDO,用户太的应用程序通过API发送IRP数据包,和驱动进行交互,然后驱动将用户请求的数据,以IRP数据包格式返回给连接的用户应用程序。内核模式的WDM驱动程序有着可移植性,可配置性,即插即用等特点。

3.基于PCIE接口的嵌入式系统

笔者结合一个实际基于PCIE接口的嵌入式系统例子详细说明基于WDM的PCIE设备驱动开发过程,主要介绍如何实现该系统的PCIE设备驱动程序,对于系统的其他设计功能模块在此不做说明。

3.1基于PCIE接口的嵌入式系统结构

基于WDM,和PCIE接口的众多优势,开发PCIE设备已成为一种趋势,笔者提出开发完成了基于PCIE接口的嵌入式系统。所以,主机通过系统驱动与PCIE2SATA芯片通讯,对挂载在PCIE外接卡上的SATA硬盘发送标准的ATA指令,从而实现嵌入式系统的存储系统。

3.2基于WDM的PCIE设备驱动程序实现

由于系统的驱动完成了很多命令功能,篇幅有限,笔者特别截选了PCIE驱动实现中最具有代表性的驱动命令字的实现细节,即PCIE驱动动态获取PCIE外接卡中的物理寄存器的分配地址和类型。

该解析过程是根据PICE3.0协议规定,PCIE硬件接口必须实现三类物理资源寄存器,一类是case CmResourceTypePort,IO端口寄存器,二类是case CmResourceTypeMemory,内存地址寄存器,三类是case CmResourceTypeInterrupt,中断寄存器地址。在前面的函数获取的数据资源中,通过枚举解析,基于WDM的PCIE设备驱动程序就能动态的获取PCIE卡上的资源端口物理地址,驱动程序之后通过操作这些物理端口地址,就能实现完全控制PCIE外接卡的目的,最终驱动程序就能实现应用程序与外接卡的通讯连接桥梁功能作用。

4.系统调试运行

基于WDM驱动程序在visual stdio2008环境下编译连接的命令配置十分复杂,笔者的开发调试环境是,windows XP系统,基于visual stdio2008环境下的windows DDk驱动开发包,按照参数表设置完编译配置命令参数,编译后得到扩展名为.SYS的设备驱动二进制执行代码文件,在应用程序中,CreateFile驱动文件,获取驱动句柄成功后,调用DeviceIoControl函数发送命令字,与驱动通讯,笔者开发的系统调试运行图,运行结果正确,达到了预计设计效果。

5.总结

笔者通过探讨PCIE以及WDM的原理,优势,分析得出开发PCIE设备驱动的趋势,有与篇幅有限,文中给出了基于WDM的PCIE设备驱动程序的部分代码实现,笔者通过一个实际的PCIE嵌入式系统问例子,详细描述了基于WDM的PCIE设备驱动程序的开发流程和方法,基于PCIE设备驱动编译通用方式的繁杂,最后在编译调试章节给出了在visual stdio2008环境中编译参数设置表,笔者最终通过实验得出,该设计的正确性和可行性,为以后的PCIE设备驱动开发者提供了可行的借鉴,对于驱动开发领域有积极促进作用。

下载文档

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

网友最新关注

一双布鞋
小黄豆成长记
火星之旅
有苦有甜学游泳
春天,我和家人放风筝
舞动的校园
巴菲特的幸福时光
礼物
我和我的死党
我的家乡
一张纸屑
放风筝
我也有个新想法
节水的夕会
我的小弟弟
打破陈旧的初中化学教学模式
刍议小组合作学习在高中英语教学中的应用
学习 从心开始
探究初中阶段化学理论与实验的结合
关注交际心理障碍,培养健全人格
横看成岭侧成峰
初中阶段优质物理课堂构建策略初探
“探究电解的原理”教学设计
浅谈如何让孩子快乐学琴
探究高中化学如何进行高效的教学
英语课堂上的“听”与“写”
初中英语教育教学探究
农村初中物理实验教学的现状及思考
新课程中元素化合物知识的教学观点
个体跟进式循环作文教学模式的探索与实践
去年的树教案一教学案例反思
去年的树教案四教学案例反思
去年的树教案三(盛新凤)教学案例反思
幸福是什么教案精品教学设计
幸福是什么教案教学设计精品
幸福是什么教学片段赏析教学案例反思
读后感:幸福是什么教学案例反思
去年的树教案二教学案例反思
11 去 年 的 树之教材分析教学案例反思
去年的树教案六教学案例反思
去年的树说课稿去年的树教学
幸福是什么优秀教案教学设计
去年的树练习设计教学案例反思
幸福是什么练习设计教学案例反思
去年的树教案五教学案例反思