已阅读5页,还剩70页未读, 继续免费阅读
(通信与信息系统专业论文)在线签名的数据采集及usb通信.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 在当今的信息化社会,基于i n t c m e t 等开放式网络的电子商务活动越来越频 繁,个人电子身份认证是未来社会发展的必然趋势。基于生物特征的身份识别园 具有方便性、安全性和不易伪造性,从而成为个人电子身份识别的主要方法。论 文的主要工作: l 、介绍了目前比较流行的身份认证技术,并从可行性和实用性等角度进行 对比分析,最后提出了在线签名系统这个研究方向。 2 、设计了在线签名硬件系统,简述了各模块的基本工作原理并给出了具体 的电路设计实现。硬件系统主要由数据采集模块、液晶显示模块、u s b 通信模 块和系统控制模块组成。经过测试,采集数据的分辨率为1 2 位,速度达2 0 0 d o t s 以上。 3 、重点分析了在线签名系统中u s b 通信的软件实现,主要包括u s b 固件、 驱动程序设计和应用软件设计。签名系统的u s b 固件基于u s b l 1 协议,采用 k _ e i l c 编写,具有层次结构,其中协议层负责主机对u s b 设备的枚举和配置,主 循环层负责m c u 初始化,液晶初始化和签名数据的发送和接收。驱动程序是按 照w d m 模型建立,其例程的编写可以通过专门的驱动程序开发工具w i n d o w s d d k 实现。u s b 应用程序主要采用v i s u a l b a s i c 6 0 编写,通过访问u s b 接口实 现了签名笔迹的实时显示和签名数据的保存,为了提高程序的精简性和执行效 率,程序中把对u s b 的操作访问采用了动态链接库的方式。虽然在硬件部分做 了种种抗干扰措施,但在应用程序的软件设计过程中也要考虑到抗干扰问题。 4 、在p c 机上对原始签名数据进行了相应的预处理。预处理的工作主要包 括零点的处理、归一化处理和灰度处理。在预处理过程中,保存了大量的动态信 息,为第一级基于特征值的认证打下了基础。 关键词:u s b ,固件,w d m 模型,v b ,预处理 a b s t r a c t i nm o d e r ni n f o r m a t i o ns o c i e t y , e l e c t r o n i cb u s i n e s st h a tb a s e do nt h eo p e n n e t w o r kc a l l e di n t e m e ti sb e c o m i n gm o r ea n dm o r ep o p u l a r s ot h et e c h n o l o g yo f p e r s o n a le l e c t r o n i ci d e n t i t yv e r i f i c a t i o nw i l lb et h ei n e v i t a b l ed i r e c t i o ni nt h ef u t u r e d e v e l o p m e n to fs o c i e t y i d e n t i t yv e r i f i c a t i o nb a s e do nb i o l o g yc h a r a c t e rr e c o g n i t i o n h a sb e c o m eam a i nm e t h o db e c a u s ei ti sn o to n l yc o n v e n i e n tb u ta l s os a f ea n dh a r dt o f a b r i c a t e n 坞m a i nw o r ko f t h i sp a p e ri sa sf o l l o w s : f i r s t l y , v a r i o u sp o p u l a ri d e n t i t yv e r i f i c a t i o nt e c h n o l o g i e sa r ei n t r o d u c e da n da c o m p a r ei sm a d eb e t w e e nt h e mf r o mt h ea n g l eo ff e a s i b i l i t y , p r a c t i c a b i l i t ya n ds oo n l a t e r , p u t sf o r w a r do n - l i n es i g n a t u r es y s t e ma sr e s e a r c hd i r e c t i o n s e c o n d l y , o n - l i n es i g n a t u r eh a r d w a r es y s t e mi sd e s i g n e d t h eh a r d w a r es y s t e mi s m a i n l yc o m p o s e d o fd a t ac o l l e c t i o nm o d u l e ,l c d d i s p l a ym o d u l e ,u s b c o m m u n i c a t i o nm o d u l ea n ds y s t e mc o n t r o lm o d u l e a f t e rt e s t i n g , t h er e s o l u t i o no f d a t ac o l l e c t i o ni s1 2b i t sa n dt h es p e e da c h i e v e sa b o v e2 0 0 d o t s t h i r d l y , s o f t w a r er e a l i z a t i o no fu s bc o m m u n i c a t i o ni sm a i n l ya n a l y z e di nt h e p a p e r n 坞s o f t w a r ei n c l u d e su s bf i r m w a r e d r i v e rd e s i g na n da p p l i c a t i o nd e s i g n n 圮f l m l w a r ei sb a s e do nt h eu s b l 1p r o t o c o l 。c o m p i l e db yk e i l ca n dd e s i g n e di n t h es t r u c t u r eo f h i e r a r c h y a m o n gf i r m w a r e t h ep r o t o c o l l a y e rc o m p l e t e se n u m e r a t i o n a n dc o n f i g u r a t i o no fu s bd e v i c e 1 1 1 em a i nl c o pl a y e ri sr e s p o n s i b l ef o rm c u i n i t i a l i z a t i o n , l c dh a i t i a l i z a t i o na n ds i g n a t u r ed a t at r a n s m i s s i o no rr e c e i v i n g 硼1 e d r i v e ri se s t a b l i s h e da c c o r d i n gt ow d mm o d e la n di t sr e g u l a rp r o g r a mc a nb e c o m p i l e dw i t has p e c i a lt o o l _ w i n d o w s d d k 1 1 圮a p p l i c a t i o np r o g r a mi sc o m p i l e d b yv i s u a l b a s i c 6 0a n di tf i n i s h e sr e a l - t i m ed i s p l a ya n dd a t ac o n s e r v a t i o no fs i g n a t u r e t h r o u g hu s bi n t e r f a c e f o rt h es a k eo fe f f i c i e n c ya n ds i m p l i f i c a t i o n , t h ea c c e s st o u s bi n t e r f a c ei si nt h em a n n e ro fd l l a l t h o u g hs o m eh a r d w a r ec h a n g e sh a v eb e e n d o n et oe l i m i n a t ed i s r l r b a n c e , t h ee m ip r o b l e m ss h o u l db ec o n s i d e r e di ns o f t w a r e d e s i g n f i n a l l y , s o m ec o r r e s p o n d i n gp r e p r o e e e s i n g sh a sb e e nd o n et ot h ep r i m i t i v e s i g n a t u r ed a t ao np c t h ep r e p r o e e e s i n g si n c l u d ez e r op o 缸s o l u t i o n , w a v e f o r m n o r m a l i z a t i o na n dg r a yd e g r e ew a n s f o n n a t i o n i nt h ep r o c e s so fp r e p r o c e s s i n g s , al o t o fd y m m i ci n f o r m a t i o nh a sb e e ns a v e d 1 1 l i se s t a b l i s h e sab a s i so ft h ef i r s t v e r i f i c a t i o ns t e pt h a tb a s e do ne i g e n v a l u e k e yw o r d s :u s b ,f i r m w a r e ,w d mm o d e l ,v b ,p r e p r o c e s s i n g s u 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及取得的研究成果。 尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或 撰写过的研究成果,也不包含为获得武汉理工大学或共它教育机构的学位或证书而使 用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的 说明并表示了谢意。 签名:墼篮日期:丝:z : 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即学校有权保留、 送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容, 可以采用影印、缩印或其他复制手段保存论文 i 保密的论文在解密后应遵守此规定) 武汉理工大学硕士学位论文 第1 章绪论 1 1 生物特征识别技术简介 1 1 1 生物特征识别的产生背景和意义 在当今的信息社会,信息安全已成为世界各国广泛关注的重要问题。随着通 信技术和互联网的飞速发展,人类物理和虚拟活动空问不断扩大,社会对于人类 自身身份认证的准确性、安全性和实用性提出更高要求,由于耳前广为使用的身 份证件和i c 卡、密码等传统的身份认证方法存在失密和易受攻击的缺陷,从而 容易造成重大的安全隐患和经济损失。 生物特征识别【l 】技术为上述方法的不足提供了一个很好的解决方案。首先我 们得知道什么是生物特征,它是怎么定义的。人的任何生理和( 或) 行为特征只要 满足以下要求都可以作为生物特征:普遍性:这种特征是每个人都具有的; 独特性:任两个人的这种特征都不相同;稳定性:这种特征至少在一定时间内 ( 相对某种匹配准则) 是不变的;可采集性:这种特征可以被定量测量。由此 我们可以定义出生物特征识别是自动识别或确认人的生理特征( 如指纹,手掌的 几何形,掌纹,虹膜,视网膜,面孔,面部热像图,手腕脉络,皮肤毛孔,身体气味等) 和行为特征( 如声音,签名,步态,姿势等) 来进行身份验证的一种技术。例如;眼 睛瞳孔周围的虹膜具有复杂的纹理,能够成为独一无二的标识;虹膜纹理的贝努 里分布的自由度超过2 6 0 ,而且人的虹膜在一岁以后就不再变化,具有极高的唯 一性和稳定性,世界上还不曾发现两个人的虹膜是完全相同的。 生物特征识别技术可广泛应用于军事、公安和民用领域。例如:军事机密单 位,枪械库,核能设施;政府办公室,保密资料室,重要物品仓库;机场,港口 的安全系统,身份认证系统:金融领域:银行金库,保险箱;门禁系统,考勤系 统,流动人口管理以及电子商务、电子政务等。因此,这种技术对于当前以及未 来的社会生活和发展都是非常有必要的。 图1 - 1 生物特征识别系统原理框图 武汉理工大学硕士学位论文 1 1 2 主要的生物特征识别技术 ( 1 ) 指纹识别 指纹识别是使用最早也是最成熟的生物特征识别技术。指纹是手指末端正面 皮肤上的呈有规则定向排列的纹线。指纹识别主要包括指纹图像增强、特征提取、 指纹分类和指纹匹配几个部分。指纹图像增强目的在于提高可恢复区域的脊信息 清晰度,同时删除不可恢复区域;美国国家标准局提出用于指纹匹配细节的四种 特征为脊终点、分叉点、复合特征( 三分叉或交叉点) 以及未定义;指纹分类方 面,常见的有基于神经网络的分类方法、基于奇异点的分类方法、基于脊线几何 形状的分类方法、隐马尔可夫分类器的方法、基于指纹方向图分区和遗传算法的 连续分类方法;指纹匹配是指纹识别系统的核心步骤,匹配算法包括图匹配、结 构匹配等 指纹识别有很好的可靠性,但是它很大程度依赖于获取指纹的质量。影响指 纹识别率的因素有噪声,变形等,例如脏手指,千手指,疤痕导致的不同时期, 不同季节间指纹的差异,芯片表面残留物带来的噪声;手指按压过程中的扭转和 拉伸,按压力度等因素会使指纹产生变形,这些都会影响指纹质量。 ( 2 ) 虹膜识别 虹膜是位于眼睛黑色瞳孔和白色巩膜之间的圆环状部分,总体上呈现一种由 里到外的放射状结构,包含有很多相互交错的斑点、细丝、冠状、条纹、隐窝等 细节特征,这些特征在出生之前以随机组合的方式确定下来,一旦形成终生不变。 虹膜识别技术是利用虹膜终身不变性和差异性的特点来识别身份的,其准确性是 各种生物识别中最高的。虹膜识别算法主要包括虹膜定位、虹膜编码、匹配决策 等部分。 尽管虹膜识别系统能够取得很高的识别率,但也存在如下的缺点:当前的虹 膜识别系统没有进行现实世界的唯一性认证的试验;图像获取设备复杂,昂贵; 黑眼睛的虹膜极难读取。 ( 3 ) 入脸识别 人脸识别的准确性虽然不如虹膜、指纹等的识别,但是由于其直观性和无侵 害性而最为人们所接受。根据人脸表征方式的不同,通常将人脸正面识别技术分 为三大类;基于几何特征的识别方法、基于代数特征的识别方法和基于连接机制 的识别方法。虽然人脸的无侵害性和对用户最自然,最直接的方式使人脸识别成 为最容易被接受的生物特征识别方式,但是人脸的准确率要低于虹膜,指纹识别, 另外人脸识别受化妆,表情,姿势,光照变化等影响。 ( 4 ) 签名识别 签名识别作为一种行为识别技术,目前主要用于认证。签名认证按照数据的 2 武汉理工大学硕士学位论文 获取方式可以分为离线( o f f - l i n e ) 认证和在线( o n - l i n e ) 认证两种。离线认证是 通过扫描仪获得签名的数字图像;在线认证 2 1 是利用数字写字板或压敏笔来记录 书写签名的过程,从而获得手写签名的图像、笔顺、速度和压力等信息。离线数 据容易获取,但是它没有利用笔划形成过程中的动态特性,因此在线签名容易被 伪造。签名图像中的端点、交叉点及弯曲都可以作为签名识别的特征点,反映了 签名的几何变化。目前已提出的签名认证方法,可以分为三类:模板匹配的方法、 隐马尔可夫模型( m 心i ) 方法和谱分析法。模板匹配的方法是计算被测签名和 参考签名的特征矢量间的距离进行匹配;h m m 方法是将签名分成一系列的帧或 者状态,然后将其与从其它签名中抽取的对应状态进行比较;谱分析法是利用倒 频谱或对数谱对签名进行认证。 ( 5 ) 声音识别 每个人都有自己的发音器官特征以及说话时特殊的语言习惯,这些都反映在 声音信号中。声音识别,即说话人识别,是根据语音波形中反映说话人的生理、 心理和行为特征的语音参数来自动识别说话人身份的技术。声音的识别设备不断 地测量、记录声音的波形和变化,消除噪声后通过l p c 分析得到倒谱系数、差值 倒谱系数、基音频率及差值基音频率等特征参数,将采集到的声音同登记过的声 音模式匹配,从而鉴别出说话人。一个声音识别系统主要由三部分组成:声音信 号的分割、特征提取和说话人识别。说话人识别模型可分为参数模型和非参数模 型。参数模型中以h m m 最常使用,它能够较好地描述动态时间序列;非参数模 型中最常使用人工神经网络( a n n ) ,其静态分类能力较强。 声音识别的缺点:作为行为识别技术,声音变化的范围太大,很难精确的匹 配;声音会随着音量、速度和音质的变化( 例如感冒时) 而影响到采集与比对的 结果;很容易用录在磁带上的声音来欺骗声音识别系统;高保真的麦克风很昂贵。 表1 1 是各种生物特征识别技术的各方面性能比较。 表1 - 1 各种生物特征识别技术的比较 生物特征易用性安全性稳定性可采集性接受程度 指纹 由 高高 中 由 虹膜低高高低低 人脸中 由出 低低 签名高 由由 高 高 声音高低低高 高 武汉理工大学硕士学位论文 1 2 在线签名技术 1 2 1 在线签名的特点 签名作为人的一种行为特征,与其它生物特征相比,其优点是:具有非侵犯 性、易为人所接受;对设备的要求不高,因而成本低,适合于普及使用;不会丢 失、遗忘;可随时产生。其缺点是签名本身的不稳定性,因此对认证技术提出了 较高的要求。随之产生的签名认证技术,即将书写人提供的签名与数据库中已有 的他( 她) 的签名相比较,以确定该书写人身份是否属实。该技术在模式识别、 图像处理与中文信息处理领域都属前沿课题,引起了国内外众多学者的研究兴 趣,目前也已成为一种便捷高效的个人身份认证技术,在金融系统、安全系统等 领域,都有着广阔的应用前景。 以往的手写签名一般是人工专家通过视觉辨别真伪,并且只能从笔形外观来 判断,效率较低,现有方法明显改善了原有状况并提高了准备率。签名认证同时 也涉及到生理学、心理学等许多学科的问题,但目前的科学技术尚不能提示手写 签名人工认证机制( 尚未能解释大脑活动的机理和人类智能的本质) ,就当前而 言,利用计算机进行签名认证的理论,从一开始就是以功能实现为目标建立的, 即不追究人工认证的脑机制到底如何,只要能够实现功能即可。 签名认证技术的主要应用有辨识和验证两种。辨识( i d e n t i f i c a t i o n ) 指的是 确定用户的身份,通常是在签名特征模板库中进行一对多匹配( o n e - t o m a n y m a t c h i n g ) ;验证( v e r i f i c a t i o n ) 指的是验证用户是否为他所声明的身份,通常是 一对一比对( o n e - t o o n em a t c h i n g ) 。 如前面的介绍所说,签名认证分为在线签名验证和离线签名验证两类。离线 签名验证是利用笔画本身的特征及相互关系来识别不同签名者。这种方法安全性 相对较差。而在线签名则引入了签名识别的动态机制,它不仅能利用签名的几何 特征,还可以利用签名的速度、加速度、以及签名的线条流向等动态特征这些 动态特征的使用有益地补充了静态方法的不足,使伪造变得更加困难。 1 2 2 在线签名的国内外研究现状 在线签名验证的研究工作最早可以追溯到2 0 世纪6 0 年代。1 9 6 5 年, a j m a n e e r 中首先发表了。利用签名进行个人识别的可行性研究”报告【3 】,提出 了利用手写签名作为个人身份识别标志的可能性。总的说来初期研究工作仅局限 于离线方法,而且识别效果不理想,但其若干研究思想对在线方法仍然有参考价 值。7 0 年代末开始,i b m 的h e r b s t 等人引入签名力信息,虽然使识别效率得到 较大提高,但是结构复杂了许多h 1 ;后来,日本ys t a o 等人利用动态规划方法 提出了最佳时间轴匹配法p j 。 4 武汉理工大学硕士学位论文 九十年代初日本和田安弘等人建造了签名时手腕运动的非线性筋肉动力学 理论模型【6 l ,但模型过于复杂,难以用于在线识别。 q i 和h u n t 对静态认证技术也作了详细地探讨,他们的特征向量包括全局和 局部的特征值【7 】【引。全局特征值有签名图像的高度和宽度,去除水平间隔后的宽 度、签名倾斜角度;局部特征值包括拐点处笔划构成的角度、弧线的曲率、笔划 交叉点等。对4 5 0 个签名样本的测试结果为f r r 从3 到1 1 3 不等,f a r 则从 o 到1 5 。 g - u p t a 和j o y c e 提出选取特征值应满足简单易计算,不受平移、旋转、尺度 缩放的影响,有全局性,数量少( 不超过1 0 个) 等要求 9 1 。他们认为手写签名 的动态特征比形状特征更重要。对每一个特征值他们都作了认真的实际分析,并 且对每个特征值都计算f r r 和f a r ,其计算量非常大,不适合实际应用。 l l l e e 等在1 9 9 6 年研究了一个手写签名的在线系统【。该项研究设计了 4 2 个特征构成的子集,其中包含了2 9 个动态特征和1 3 个静态特征。l l l e e 通 过实验找到了更适合于他的系统的较少的3 4 个特征分量的子集,据称采用较小 的特征子集比较大的更好。该系统有一个包括1 0 5 个数据项的数据库。 由于发达国家的信息技术起步早、发展快,其普及和使用程度已达到较高的 水平,而且他们的计算机管理与自动化技术亦有相当的普及率和较高的现代化程 度,因而该技术已逐步受到广泛的注意和研究。 国内在这方面的研究要迟一些,直到9 0 年代才逐步发展起来,中科院自动 化所和吉林大学走在了前面。吉林大学承担的吉林省科技发展计划重点项目 8 ; s e n d n u m 6 + c o u t + i + 2 = p o s i l & o x o o f f ; s e n d n u m 6 + c o u t + i + 2 + 1 = t e m p & 0 x 0 0 f f ; c o u t - - c o u t + 1 ; i f ( c o u t 3 ) d 1 2 _ w r i t e e n d p o i m ( 5 ,2 4 ,s e n d n u m ) ; c o u t - - o ; ) ) 武汉理工大学硕士学位论文 第4 章u s b 上位机驱动程序设计 在完成了固件编程后,为使计算机操作系统能够正确的识别外设,就需要编 写自己的驱动程序。w i n d o w s 驱动的编写包括检测设备时系统要用到的引导 文件、设备信息文件等。要使所开发的产品能够在计算机上顺利地工作,计算机 必须能够“识别”用户的产品,并将其引导入系统中,对其进行协调和控制,这 个“识别”的过程便是设备驱动程序所要完成的任务。对大多数标准设备来说 ( 如鼠标、键盘) ,计算机系统本身己经有了内建的对其支持的驱动程序,而用户 自己所开发的产品往往是不能直接在计算机上使用的,这便需要自己编写设备的 驱动。 4 1 驱动开发工具的选择 目前驱动程序的开发,有以下几种方法可供选择: ( 1 ) 直接使用w m d o w sd d k :这种方式开发难度大一些,而且有很多颓琐的 工作要做,大部分都是通用的基础性工作。但如果选用这种方式的话,将对整个 体系结构会有很好的理解和把握。 ( 2 ) 使用d r i v e r s t u d i o :这种力一法难度低一些,工具软件帮你做了很多基础 性的工作。也封装了一些细节,你只要专心去做你需要的操作,但由于封装的问 题,可能会带来一些b u g ,有可能导致项目的失败。 ( 3 ) 使用w i n d r i v e r :这种方法几乎没有什么难度,但只能开发硬件相关的驱 动,事实上你写的只是定制和调用它提供的通用驱动而已,工作效率不是很高。 但开发花费的时间与上面相比就很少了。 为了对w i n d o w s 底层机制有更好的了解,同时也为了使采集系统的驱动程 序有更高的效率,系统采用v c + d d k 的方法来开发驱动程序。 4 2w d m 概述 w d m ( w m 3 2d r i v e rm o d e l ) ,即w m 3 2 驱动程序模型p 2 1 ,是微软公司全新 的驱动程序模式,支持即插即用、电源管理和w m i 技术,它的运行平台是 w i n d o w s 9 8 2 0 0 0 x p 操作系统。w d m 是通过一个1 2 8 位的全局惟一标识符对驱 动程序进行识别。在应用程序与w d m 驱动程序通信方面,系统为每一个用户请 求打包形成一个i o 请求包结构。将其发送至驱动程序,并通过识别i r p 中的 p d o ( 物理设备对象) 来区别是发送给哪一个设备的。内核通常通过发送i r p 来运 行驱动程序中的代码。 武汉理工大学硕士学位论文 在w d m 驱动程序模型中,每个硬件至少有两个驱动程序。其中一个驱动程 序称为功能( f t m c t i o n ) 驱动程序,通常它就是我们一般所说的硬件设备驱动程序。 它负责初始化i o 操作,处理i o 操作操作完成时所带来的中断事件,为用提供 一种设备适合的控制方式。另一个驱动程序称为总线( b u s ) 驱动程序,它负责管 理硬件与计算机的连接。 w d m 驱动程序采用分层的结构模型,如图4 1 所示,处于左边的是一个设 备对象堆栈,设备对象是操作系统为帮助软件管理硬件而创建的数据结构。处于 堆栈最底层的设备对象称为物理设备对象( p h y s i c a ld e v i c eo b j e c t ) ,简称为p d o 。 在设备对象堆栈的中间有一个对象称为功能设备对象( f u n c t i o n a ld e v i c e o b j e c t ) ,简称为f d o 。在f d o 的上面和下面可能还会有一些过滤器设备对象 ( f i l t e r d e v i c e o b j e c t ) ,位于p d o 上面的过滤器设备对象称为上层过滤器,位于 p d o 下面的过滤器设备对象称为下层过滤器。 :丑一一一一 :丑一 :丑一一一一 二丑一 图4 1w d m 设备对象和驱动层次结构图 层次结构可以使i o 请求过程更加明了,影响到设备的每个操作都使用i o 请求包。通常,i r p 先被送到设备堆栈的最上层驱动程序,然后逐渐过滤到下面 的驱动程序。每一层驱动程序都可以决定如何输i r p 。有时,驱动程序不做任何 事,仅仅是向下层传递i r p ;有时,驱动程序直接处理完该i r p ,不再向下传递; 还有时,驱动程序既处理了i r p ,又把i r p 传递下去。这取决于设备以及i r p 所 携带的内容。 在单个硬件的驱动程序堆栈中,不同位置的驱动程序扮演了不同的角色。总 线驱动程序管理计算机与p d o 所代表的设备连接。功能驱动程序管理f d o 所代 表的设备。过滤驱动程序用于监视和修改i r p 流。 i r p 是d d k 定义的一个数据结构。表4 1 给出了其数据结构。 武汉理工大学硕士学位论文 表4 - 1i r p 的数据结构 t y p e s i z e m d l a d d r e s s f l a g sa s s o e i a t e d l r p t h r e a d l i s t e n t r y i o s t a t u s r e q u e s t o r m o d ep e n d i n g r e t u r n e di s t a c k c o u t i c u r r e n t l o e a t i o n c a n e e l c a n c e l i r q l i a p c e n v i r o n m e n t i a l l o e a t i o n f l a g s u s e r l o s b u s e r e v e n t o v e r l a p c a n c e l r o u t i n eu s e r b u f f e r t 缸l 主要的参数介绍如下: m d l a d d r e s s :指向一个内存描述符表( m d l ) ,该表描述了一个与该请求关 联的用户模式缓冲区。 a s s o e i a t e d l r p :是一个三指针联合。其中,与w d m 驱动程序相关的指针是 a s s o e i a t e d i r p s y s t e m b u f f e r o 。s y s t e m b u f f e r 指针指向一个数据缓冲区,该缓冲区 位于内核模式的非分页内存中。 i o s t a t u s :是一个仅包含两个域的结构,驱动程序在最终完成请求时设置这 个结构。i o s t a t u s s t a t u s 域将收到一个n t s t a t u s 代码,而i o s t a m s i n f o r m a t i o n 的类型为u l o n o 阿t ,它将收到一个信息值,该信息值的确切含义要取决于 具体的类型和_irp请求完成的状态。 r e q u e s t o r m o d e :u s e r m o d e 或k e m e l m o d e ,取决于i r p 是由谁发出的。若 由应用程序发出i r p ,此值为u s e r m o d e ;若由核心模块或其他驱动程序发出i r p , 此值为k e m e l m o d e 。 w m d o w s 2 0 0 0 操作系统使用i r p 与内核模式驱动程序通信,i r p 在w i n d o w s 2 0 0 0 驱动程序中起到非常重要的作用。w d m 驱动程序使用分层设备对象结构的 目的,是为了使i r p 能方便地从一层驱动程序被传递到下一层驱动程序。如果驱 动程序不能处理一个i r p ,就应当向下传递,由下层驱动程序来完成。若本层驱 动程序不用关心i r p 传递到下层驱动程序之后的事情,则可以不复制堆栈单元, 仅调整堆栈单元指针就可以了,不设置完成例程;否则的话,在传递到下一层驱 动程序之前,需要把堆栈单元内容复制到下一个堆栈单元,当下一层驱动程序完 成i r p 时,系统将通知完成例程。 4 3 主要例程的设计 从驱动程序的角度出发,每个设备可被看成若干个设备对象,每个设备对象 都有驱动程序与之对应。处于最底层的是物理设备对象,一般由总线生成,一个 设备只能有一个物理设备对象,但可以有若干个功能设备对象。功能设备对象是 武汉理工大学硕士学位论文 由所编写的驱动程序成生的,它负责从逻辑上操作设备。 驱动程序中对u s b 进行操作的请求都应调用系统例程,将其转化为一个 u r b 结构,即u s b 请求块( u s br e q u e s tb l o c k ) ,然后使用系统级的i r p 将其 提交。该驱动程序由四个模块组成:初始化模块、即插即用管理模块、电源管理 模块和i o 控制模块。 4 3 1 初始化模块 w d m 驱动程序有一个主要的初始化入1 2 点,即一个必须称为d r i v e r e n t r y 的例程。它有一个标准的函数原型。当w d m 驱动程序被装入时,内核调用 d r i v e r e n t r y 例程。驱动程序的d r i v e r e n t r y 例程必须设置一系列的回调例程【3 3 1 来 处理i r p 。每个回调例程有个标准的函数原型。内核会在合适的环境下调用这 个例程 系统提供的默认驱动程序的入口处为d r i v e r e n t r y ,通过它来执行大量的初始 化函数。其部分程序如下: n t s t a 兀r s d r i v e r e n t r y ( i np d r i v e ro b j e c t d r i v e r o b j e e t , i np u n i c o d e _ s t r i n g u n i i e g i s t r y p a t h ) n t s t n 兀7 sn t s m t u s = s t a t u s _ s u c c e s s ; p d e v i c e _ o b j e c td e v i e e o b j e e t = n u l l ; d r i v e r o b je e t 一 d r i v e r u n l o a d = d 1 2 _ d r i v e r u r d o a d ; d r i v e r o b j e e t - - d r i v e r e x t e n s i o n - - - a d d d e v i e e ; d r i v e r o b j e e t - - m a j o r f u n e t i o n i r p m j - p o w e r = d 1 2 _ p o w e r ; d r i v e r o b j e e t - - m a j o r f u n c t i o n i r p m lp n p 】= d 1 2 _ p n p ; d r i v e r o b j e e t - - m a j o r f u n c t i o n i r p m jc r e a t e = d 1 2 - c r e a t e ; d r i v e r o b j e e t - - m a j o r f u n c t i o n i r p m j c l o s e 】= d 1 2 _ _ c l o s e ; d r i v e r o b j e e t - - m a j o r f u n c t i o n i r p m j r e a d 】= d 1 2 _ r e a d ; d r i v e r o b j e e v - m a j o r f u n c d o n i r p m jw r i t e = d 1 2 - w r i t e ; d r i v e r e n t r y _ e x i t ; r e t u r nn t s t a t u s ; d r i v e r e n t r y 中的这两行: d r i v e r o b j e e v - - d r i v e r e x t e n s i o n - - - a d d d e v i e e ; d r i v e r o b j e e t 一 d r i v e r l l r d o a d = d1 2 _ d r i v e r u n l o a d ; 这两个例程分别为第一次安装硬件和卸载硬件时使用。在上面的程序里, 武汉理工大学硕士学位论文 d r i v e r e n l p 负责建立两类函数指针,一类是在d r i v e ro b j e 斌中有显示的位置和名 字的函数;另一类是在d r i v e ro b j e c t 中的m a j o r f u n c t i o n 数组所列出的i r p 调度 函数。 4 3 2 即插即用管理模块 即插即用的功能有两个: ( 1 ) 自动和动态识别安装p n p 设备。当添加一个p n p 设备时,系统就能自动 识别它。 ( 2 ) 硬件资源分配和再分配。p i l p 管理器给每一个p n p 设备所提出的资源请 求进行适当的资源分配。当有新的p i l p 设备被添加到正在使用的系统中时,可 以重新分配资源。 例程如下; d r i w r o b j e 灯- - m a j o r f u n c t i o n i r p m j - p n p 】p 1 2 _ p n p ; 即插即用管理模块实现设备的热插拔和动态配置。驱动程序初始化完成后, 接着对设备进行初始化,这主要是通过即插即用( p n p ) 管理器调用驱动程序中 的a d d d e v i c e 和i r pm jp n p 两个例程来完成的。当驱动程序从p n p 管理器中 收到i r pm ns t a r td e v i c e 请求时,驱动程序启动设备,并且准备好处理 i o 操作。图4 2 是一个即插即用设备在系统中所有可能的状态以及它们之间的 关系。 i r pm nr e m o v e _ d e v i c e ( 设圣确已卸载) 瓮 设备已技i 举i p n p 管理以及核心部 l 件鉴定以及调用驱动 j 程序( d r j v e , r e n u y l h 里! 教举且驱动程 序己初始化 等待卸载状态f 下1 _ j i l t p _ m n ii r p - m n i _ q u e r hc a n c e l _ ll 啦m 0 lr e m o v e l v ed e 叫d e v i c e i i c ei t pm n ir e m o v i io e v l c e 意外卸载状态 m p m n s u r p r i s er e m o v a l 一停止状态l i r p m n ,i r p m n 盯a r td ls t o pd e e v i c ev i c e f 等待停止状态f m pm n - q u e r l s t o p m p c a n c e l 盯o pd e v l c e 设备启动状态 m nr e m o v e d e ! ( 设备还在) p n p 管理器调用a d d d c v i c e f d o 和p i t t c r d o 已 刨建且连接好 n j p 管理器分配 资源且发送 t pm n 图4 2 即插即用设备的状态及它们之间的转换 必须由p l l p 管理器以及总线驱动对设备进行枚举。p 1 1 p 管理器,有时可能还 要用户模式下的组件帮忙,检测出设备的驱动程序,包括功能驱动程序以及其他 武汉理工大学硕士学位论文 层次驱动。如果此驱动程序尚未调入,则p n p 管理器调用d r i v e r e n t r y 例程。驱 动程序初始化完成后,接着必须对设备进行初始化,p n p 管理器调用驱动程序中 a d d d e v i c e 例程来初始化该驱动程序控制的每个设备。当一个驱动程序从p i l p 管 理器中收到i r pm ns t a r td e v i c e 请求时,驱动程序使设备启动并且准备好 处理i o 操作。设备被停止时,会接到一个i r p _ m nq u e r y _ r e m o v e ,此时 驱动程序决定是否同意停止。著同意,则会在稍后接到一个m e _ m nr e m o v e d e v i c e ,同时进入待停止状态。处于此状态时,还可以回到设备启动状态。 在w m d o w s2 0 0 0 操作系统中,和停止有关的i r p 只有在重新分配硬件资源 的时候才会使用。在设备进行停止或者卸载时。需要等待其余i r p 都操作完毕。 4 3 3 电源管理模块 电源管理可以发生在系统范围内,也可以发生在设备特定的范围内。电源管 理可以请求整个系统关闭。电源状态是一个系统定义的结构,它可以分成系统电 源状态和设备电源状态。系统电源状态和设备电源状态都是枚举型的结构。共有 六个系统电源状态:即s o 到s 5 ,其中8 0 是正常工作状态,s 5 是关机状态。s l , s 2 ,s 3 ,s 4 是休眠状态,能源消耗依次递减。驱动程序中的六种状态分别对应 如下名称: s o p o w e r s y s t e m w o r k i n g s 1 p o w e r s y s t e m s l e e p i n g l s 2 p o w e r s y s t e m s l e e p i n 9 2 s 3 p o w e r s y s t e m s l e e p i n 9 3 s 4 p o w c r s y s t e m h i b e r n a t e s 5 p o w c r s y s t e m s h u t d o w n s 4 状态是冬眠状态,是最低功率的休眠状态。系统不能从一种休眠状态直 接进入另一种休眠状态。它必须在进入另一种休眠状态之前先进入工作状态。因 为处于一种中间休眠状态的系统己经失去了它的操作环境,在改变其状态前,必 须回到工作状态s 0 以恢复该环境。 设备电源状态描述特定设备的能源消耗。可支持四种状态,从d o 到d 3 , 状态d o 是工作状态,状态d 3 是关闭状态。状态d 1 ,d 2 是休眠状态,能源消 耗依次递减。在驱动程序中分别对应名称如下: d 0p o w e r d e v i t e d 0 d 1 p o w e r d e v i c e d l d 2p o w e r d e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026殡仪职业测试试题及答案
- 八年级地理《中国的交通运输业》第一课时教学设计:立体交通网络的区位逻辑与空间重构
- 2026高压考试题库及答案
- 初中九年级地理中国地理四大区域差异复习教学设计
- 2026年ICU院感专项防控试题及答案
- 高中地理高三一轮复习教学设计:异龙湖区域认知与综合思维构建
- 2026年茂名石化人员招聘考试参考试题及详细答案解析
- 2026年白山市烟草专卖局人员招聘笔试参考试题及详细答案解析
- 2026年西藏移动人员招聘笔试参考题库及详细答案解析
- 2026年厦门海沧投资集团有限公司人员招聘考试模拟试题及详细答案解析
- 护理中保护患者隐私
- 对外汉语词汇教学教案(2025-2026学年)
- -心理健康四年级下册《6 同伴交往有分寸》 教学设计+教学设计(教科版)
- 矿山地质课件
- 感染性疾病科医生进修汇报
- 泥浆清运合同(2025版)
- 睿达杯二试试题和答案
- 再别康桥混声四部合唱谱
- 内部工作流程优化调研表
- 《四川省汉源县岩窝沟铅锌、磷矿勘探实施方案》评审意见书
- 高中技术苏教必修1课件51方案的构思方法――手机支架的设计和制作共18张
评论
0/150
提交评论