




已阅读5页,还剩66页未读, 继续免费阅读
(计算机应用技术专业论文)高性能绘图仪控制板接口及驱动研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
d i s s e r t a t i o nf o rm a s t e rd e g r e e ,2 01 1 嬲删炒 y 1 8 4 石1 芍芝芍。 s c h 0 0 1c o d e :1 0 2 6 9 n o :5 1 0 8 1 2 0 1 0 5 5 e a s tc h i n an o r m a l u n i v e r s i t y r e s e a r c hi nc o n t r o lp a n e li n t e r f a c e a n dd r i v e ro f h i g h p e r f o r m a n c e p 1 0 t t e r d e p a m e n t :q 堡p 巫星苎鱼i 星垒曼曼i ! ! 盟! 曼堡h 坠q ! q g y m a j o r :q 堡p 巫星! p p ! i 曼亟! 曼曼h 旦q ! q g y r e s e a r c ha t e a : 垦! 坠坠星亟立曼亟s y 墨! 曼垫! ! 叁旦p ! i 曼堑i q 塾 s u p e r v i s o r : j i n h u ax u s t u d e n tn a m e :b a o k uz h i o c t ,2 0 1 0 华东师范大学学位论文原创性声明 郑重声明:本人呈交的学位论文南怫镶国财生话f 枚西日霆嬲覆屯 , 是在华东师范大学攻读嘭博士( 请勾选) 学位期间,在导师的指导下进行的研究工作 及取得的研究成果。除文中已经注明引用的内容外,本论文不包含其他个人已经发表或 撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中作了明确说 明并表示谢意。 作者签名:互望良日期:加缈年f f 月巧日 ,、 华东师范大学学位论文著作权使用声明 南叮惋豫j 釜仪拉墒l 枚特o 蝴l 屯 系本人在华东师范大学攻读 学位期间在导师指导下完成的硬差博士( 请勾选) 学位论文,本论文的研究成果归华东 师范大学所有。本人同意华东师范大学根据相关规定保留和使用此学位论文,并向主管 部门和相关机构如国家图书馆、中信所和“知网”送交学位论文的印刷版和电子版;允 许学位论文进入华东师范大学图书馆及数据库被查阅、借阅;同意学校将学位论文加入 全国博士、硕士学位论文共建单位数据库进行检索,将学位论文的标题和摘要汇编出版, 采用影印、缩印或者其它方式合理复制! 学位论文。 本学位论文属于( 请勾选) () 1 经华东师范大学相关部门审查核定的“内部”或“涉密”学位论文木, 于年月日解密,解密后适用上述授权。 一, ( 、) 2 不保密,适用上述授权。 导师签钲丑墨:i 兰乏氓)本人签名走龌龟 。口f 9 年f 月万日 “涉密”学位论文应是已经华东师范人! 学学位评定委员会办公室或保密委员会审定过的学位 论文( 需附获批的华东师范人学研究生中请学位论文“涉密”审批表方为有效) ,未经上 述部门审定的学位论文均为公开学位论文。此声明栏不填写的,默认为公开学位论文,均适用 上述授权) 。 童宝座硕士学位论文答辩委员会成员名单 姓名职称单位备注 张卫教授华东师范大学主席 邵时副教授华东师范大学 王荣良副教授华东师范大学 i i 华东师范大学硕士学位论文摘要 摘要 高性能绘图仪作为主要的计算机输出设备,随着大幅面写真、喷绘、条幅等 打印需求的增加,其性能和功能一定会有很大的发展。绘图仪控制板与绘图仪客 户端之间的通信接口是控制绘图仪和传输绘图仪数据流的重要组成部分。本文旨 对绘图仪控制板接口和驱动程序进行研究,并提出设计方法。 本文介绍了绘图仪控制板相关的硬件,w i n d o w sx p 下绘图仪驱动程序开发 过程,接口部分的实现方案,阐述了绘图仪扩充多种接口的方法。 本文在分析了w i n d o w sx p 下打印体系架构和绘图仪驱动程序体系结构的基 础上,提出了w i n d o w s 下相关驱动程序开发的方法。同时,本文对网络接口, u s b 接口相关协议进行研究,实现了接口板固件程序并完成了w i n d o w s 驱动程 序的设计与开发。最后完成了通过多个接口传送绘图仪控制信息与绘图仪数据流 的任务。 关键词:绘图仪,网络接口,u s b 接口,驱动程序 i i i 华东师范大学硕士学位论文abslri认ct a b s t r a c t t h e1 1 i 曲- p e r f o 硼锄c ep l o t t e ri so n eo ft 1 1 em a i no u t p md e v i c e st o d a y ,i t s p e o 肌a u l c e 锄dm n c t i o n a l i t ) ,i sb e i n gg r e a t l yd e v e l o p e d 诵t ht l l ei n c r e 嬲i n gp r i n t i n g d e m a n do fl a 玛ef o m a tp h o t 0 ,i i l 蝎e t ,b 锄e r t h ec o m m l m i c a t i o ni m e r f i a c eb e 帆e e n 舭p l o 慨rc o n t r o lp a l l e la i l dt h ep l o t t e rc l i e n ti sa i li m p o 删p a i tt oc o n t r o lm ep l o t t e r a n dt ot r m s f e rp l o t t e fd a t as t r e 锄i nt h i st h e s i s ,an e wd e s i g nm e t h o di sp r o p o s e df o r p l o t t e rc o n t r o li n t e r f a c e 觚dr e l a t e di t r i v e r t h er e l a t e dh a 坩w a r ea n di m p l e m e n t a t i o np r o f i l eo ft h ep l o t t e rc o n t r o lp a l l e l i n t e r f a c ea sw e l l 嬲t h ed e v e l o p i n gp r o c e s so fp l o t t e rd r i v e ri nw i n d o w sx pa r e p r e s e n t e d ,a n dt h ei n t e r f - a c ee x p a n s i o nm e t h o do ft h ep l o t t e ri sa l s od e s c r i b e di 芏ld e t a i l i nt l l i st h e s i s t h e 砸n ta r c l l i t e c 骶o fw i n d o w sx pa 1 1 dt h e 积v e ra r c l l i t e c t u r eo f t h cp l o 懈 d r i v e ra r ea i l a l y z e dt op r e s e n tr e l a t e dd r i v e rd e v e l o p m e n tm e t h o do fw i n d o w sx pi n t i l i st h e s i s ,a 1 1 dt h ep r o t o c o lo fn e t 、7 l ,o r ki m e r f a c ea 1 1 du s bi n t e r f a c ei sa l s os 砌i e d i i l t h em e a i lw h i l e ,t h ef i 姗戳心o ft l l eh a r d 慨鹏b o a r di si m p l e m e n t e di nc o m p a l l y 淅t h t h ed e s i g na i l dd e v e l o p m e mo fm ew i n d o w s “v e r ,a i l da tl a s tt h et a s ko f t 啪s f e 仃i n g c o m r o li n f o m a t i o na 1 1 dd a t an o wo f p l o t t e rt :i l r o u 曲m u l t i p l e i i l t e = r 1 a c e s 黜 c o m p l e t e d k e yw o r d :p l o 仳r ,n e 铆o r ki n t e r f a c e ,u s bi m e r f a c e ,s o r w a r ed r i v e r i v 华东师范大学硕士学位论文目录 目录 第一章绪论3 1 1 弓i 言3 1 2 论文主要工作3 1 3 论文结构安排4 第二章w i n d o w sx p 绘图仪驱动程序体系结构6 2 1w i n d o w s ) ( p 下打印体系结构6 2 1 1 打印应用程序7 2 1 2 打印假脱机组件8 2 1 3 打印驱动程序1 1 2 1 4 端口驱动程序1 1 2 2w i n d o w s 下驱动程序体系架构1 2 2 2 1 驱动程序体系架构的意义与类别1 3 2 2 2 驱动程序层次结构1 3 2 2 3w i n d o w sx p 驱动程序架构与打印体系架构1 5 2 3 打印控制描述语言1 5 2 3 1 打印任务语言16 2 3 2 打印命令语言1 7 2 3 3 打印任务语言与打印命令语言1 8 第三章绘图仪接口一2 0 3 1u s b 接口2 0 3 1 1u s b 设备接入u s b 主机。2 0 3 1 2 打印设备u s b 协议2 2 3 2 网络接口2 3 3 2 1w i n d o w s 对网络打印的支持2 4 3 2 2 网络打印需要的协议栈2 4 3 2 2 协议栈的实现2 7 3 3 接口扩展2 8 第四章绘图仪接口设计与实现2 9 4 1w i n d o w sx p 下驱动程序设计与实现2 9 4 1 1 通过打印驱动程序2 9 4 1 2 微小打印驱动程序3 0 4 1 3u n i d r v 绘图程序3 1 4 1 4g p d 文件设计与实现3 2 4 2 绘图仪接口板硬件结构3 3 4 2 1u s b 控制器3 3 4 2 2 网络控制器模块3 5 4 2 3 连接以太网模块与开发板。3 6 4 3 绘图仪接口板固件程序设计。3 7 4 3 1u s b 部分固件程序设计3 7 4 3 2 网络部分固件程序设计。3 8 华东师范大学硕士学位论文目录 4 3 3 固件程序扩展部分设计4 l 4 4 驱动程序安装与固件程序下载4 1 4 4 1u s b 绘图仪程序安装4 2 4 4 2 网络绘图仪驱动程序安装4 3 4 4 3u s b 驱动程序安装过程分析与验证4 3 4 4 4 网络驱动程序安装过程分析与验证4 6 第五章总结与展望4 9 5 1 绘图仪接口设计总结4 9 5 2 设计的不足与展望4 9 附j 录5 1 参考文献5 2 致谢5 z l 2 华东师范大学硕士学位论文第一章绪论 1 1 引言 第一章绪论 随着广告、建筑、服装设计、展览等行业的发展,大幅面写真、喷绘、条幅 等打印的需求也正在逐步增加。因此,绘图仪作为重要的计算机输出设备,也必 将得到很大的发展。目前的绘图仪市场上,国外e p s o n 、h p 、o 、c 趟州o n 等绘图仪厂商占有很大的市场份额,国内的绘图仪厂商由于起步比较晚,还在不 断的壮大。根据国内有关厂家分析,国内品牌在绘图仪行业上下游几个关键点 上存在壁垒,如打印喷头、绘图仪控制板等,因而造成国产品牌技术落后,性能 较差,生产及使用受他人制约。在绘图仪控制板这一点上,国外厂家已研究使用 多年,技术非常成熟,然而不少国内厂家因为是做机械部分起家,没有自己的控 制板产品,只能依靠抄板,或者外购抄板厂家的产品。市场上确有几家将国外厂 家的产品分解抄板,但是这样的控制板显然技术落后、无法形成特色,甚至会面 临知识产权方面的法律问题,在质量、产量、价格、技术服务方面毫无优势而言。 例如某厂家的抄板是h p 公司5 、6 年前的产品,至今仍在销售,其使用的p o w e r p c 的c p u 早已停产,靠寻找市场上的尾货来维持生产。 基于上面提到的情况,以及某国内厂家的需求,我们着手研制具有自主知识 产权的绘图仪控制板产品,以期能为国内的绘图仪厂家解决问题,提高国产绘图 仪的技术水平。 1 2 论文主要工作 绘图仪控制板接口负责传输绘图数据流及绘图仪控制命令,同时接收来至绘 图仪的状态信息。绘图仪接口板的设计涉及到主机端的驱动程序设计,接口板部 分的固件程序设计,同时需要熟悉相关接口协议。 因此,本论文的主要工作分为: 1 ) 对w i n d o 、s 驱动程序架构的研究 任意操作系统都有自己的驱动程序架构。在丽n d o w sx p 操作系统下开发接 3 华东师范大学硕士学位论文第一章绪论 口板部分驱动程序必需要熟悉w i n d o 、sx p 的驱动程序架构,熟悉w i n d o w sx p 系统上开发驱动程序的方法。 2 ) 对w i n d o w sx p 中打印架构的研究 砌o w sx p 有自己的图形输出模型,并且打印架构属于其中一部分。因此 对w i n d o w s 打印架构进行研究有利于理解绘图数据流的生成过程,及传输路径。 3 ) 对打印绘图仪u s b 协议的研究 u s b 协议总线有接口简单,传输数据速度快等特点。作为绘图仪控制板的 主要接口,需要研究u s b 协议,方便主机端与客户端应用程序的开发。 4 ) 对网络接口协议的研究 网络接口协议的应用有广泛性和普及性。同时也可以使用它开发一个基于服 务器架构的绘图服务器。作为绘图仪控制板的主要接口,需要研究网络接口协议 以及相关的协议栈,方便主机端与客户端应用程序的开发。 5 ) 控制接口板上的固件程序设计 设计控制板端的固件程序,使其不但适用于常用接口的数据通信,同时也使 其具有可扩展性。 最终完成相关驱动程序与固件程序的设计,详细叙述驱动程序与固件程序的 设计过程,并对设计成果进行验证。 1 3 论文结构安排 本文主要研究绘图仪使用数据流的生成与传送,及对绘图仪状态信息的获取 过程。根据本文内容,将对论文结构做如下编排: 第一章,讲述本论文的研究背景,论文研究内容等信息。 第二章,分析w i n d o w s 下打印体系结构,w m d o w s 下驱动程序体系结构, 及对打印控制描述语言进行介绍。 第三章,对绘图仪使用接口进行详细介绍,其中有u s b 协议,网络接口协议, 并对接口的扩展性进行讨论。 第四章,为本文的重点,对w i n d o w s 下驱动程序部分设计与实现进行详 细阐述,并对绘图仪硬件接口板部分硬件结构进行介绍。对接口板部分的固件程 序层次结构进行分析与叙述,并详尽说明驱动程序安装及固件程序下载过程。 4 华东师范大学硕士学位论文第一章绪论 第五章,对本文研究成果进行总结,及对研究成果的可扩展部分进行说明。 本文对w i l l d o w s ,下的驱动程序架构、w i i l d o w s ,下打印架构、打印控 制语言、u s b 接口协议、t c p i p 协议有比较深入的研究,并提出了具体设计方 案,并对设计进行实现与验证。通过对多方面技术的研究,本文对国内绘图仪的 研制开发具有一定实用参考价值,同时也对相关技术的使用有一定的参考价值。 华东师范大学硕士学位论文第二章w i n d o w sx p 绘图仪驱动程序体系结构 第二章w i n d o w sx p 绘图仪驱动程序体系结构 为了便于应用程序的开发与维护,w i n d o w sx p 系统中的各组件部分采用分 层的层次结构。应用程序不可以直接访问或使用硬件设备,而需要使用系统提供 的通用接口来使用硬件设备。这不但屏蔽了硬件设备的差异性,同时也提高的程 序运行的可靠性。操作系统可以对应用程序发出的请求进行验证,对非法访问请 求进行拒绝。同时,这种层次结构简化了应用程序的开发,增加了程序的可维护 性。 在w 协d o 、sx p 中完成打印任务会涉及到多个组件部分,由多个组件协作完 成打印任务。要开发w i n d o w sx p 下的绘图仪驱动程序,有必要了解w i n d o w sx p 下的打印体系结构,打印体系结构涉及到的相关组件,及相关组件在完成打印任 务过程中的作用。只有在了解这些内容后,才可以确定绘图仪驱动程序在完成打 印任务过程中的作用和角色,并了解绘图仪驱动程序与其它完成打印任务过程中 涉及到的组件的交互过程。同时还需要了解w i n d o w sx p 下驱动程序体系结构, 驱动程序的加载过程,驱动程序的安装过程等。对于绘图仪驱动程序的编写,这 是必要的,也是必需的。为了完成绘图仪接口板对绘图仪数据流的正确接收,还 需要了解打印控制语言、打印任务语言,了解其在绘图仪完成绘图任务过程中所 起的作用,了解其在w 协d o w sx p 系统中是如何生成的。下面分别对相关内容进 行介绍。 2 1w i n d o w sx p 下打印体系结构 应用程序要完成一个打印任务,涉及到打印假脱机组件、打印驱动程序、 g d i ( 图形设备接口) 、端口驱动程序等。应用程序调用打印假脱机组件对打印任 务与打印文档进行打印设置,并调用g d i 完成打印任务。g d i 根据应用程序的 调用请求,并调用绘图驱动程序完成相关的绘图操作。打印假脱机组件根据打印 任务与打印文档的设置,调用打印驱动程序,插入打印任务语言数据流。打印驱 动程序根据g d i 的调用完成打印控制语言数据流的生成,同时根据打印假脱机 组件的调用插入打印任务语言数据流。最后打印驱动程序再调用假脱机组件,由 打印,假脱机组件调用端甲驱动得序,由端 驱动程序把打印驱动程序生成的数据 6 华东师范大学硕士学位论文第二章w i n d o w sx p 绘图仪驱动程序体系结构 流发送到绘图仪接口板上。完成打印任务的这些组件的交互过程如图2 1 。 图2 1 打印体系结构中主要组件调用关系图 应用程序使用系统编译工具提供的函数库或使用操作系统提供的a p i ( a p p l i c a t i o np r o 鲫ni n t e r f a c e ,应用程序编程接口) 来操作硬件设备。其中函 数库中的函数调用又可以转化为具体的a p i 调用。也就是说,应用程序实质生 操作的只是操作系统提供a p i 。操作系统再把这些a p i 调用转化为i o 请求包, 并把这些i o 请求包发送给具体的硬件驱动程序。由驱动程序对硬件进行操作i w i n d o w sx p 为了降低驱动程序的开发难度,为驱动程序提供了硬件抽象层。硬 件抽象层屏蔽了硬件总线的差异性。驱动程序使用硬件抽象层提供的接口对硬件 进行操作。【l 】 ” 在w i n d o w sx p 系统中,操作系统提供了操作打印设备的a p i 函数,应用程 序只需要调用a p i 函数就可以创建并完成打印任务。操作系统提供的a p i 打印 函数会调用操作系统中的g d i 函数来完成打印任务。这些g d i 函数接着会调用 打印驱动程序完成打印操作。当驱动程序完成打印任务时,驱动程序会把生成的 打印设备可使用打印控制数据流发送到端口驱动程序中。由端口驱动程序把打印 控制语言数据流发送到打印设备上。 2 1 1 打印应用程序 大多数的文本或图形图像处理软件都提供了打印功能,如m i c r o s o nw r o r d , p d fr e a d e r 等软件。当用户使用这些软件的打印功能时,这些软件会调用操作 系统中打印假脱机组件提供的接口,再由打印假脱机组件调用c p s u i ( c o m m o n 7 华东师范大学硕十学位论文第二章w i n d o w sx p 绘图仪驱动程序体系结构 p r o p e 啊s h e e tu s e ri m e r f i a c e ,通用属性表单用户接口) 组件;:最后由c p s u i 弹出 打印文档和打印设备设置对话框。在用户对打印文档与打印设备进行设置并确定 后,应用程序则完成了打印任务的初始化过程。【2 】【3 】 在完成打印任务初始化之后,有打印功能应用程序进行打印操作的过程与其 它有绘图功能应用程序绘图操作的过程是相似的。它们需要在打印之前,创建一 个打印区域,也就是应用程序所看到的设备上下文( d e v i c ec o n t e x t :d c ) + 。只有在 创建了打印设备上下文后,打印功能应用程序才可以进行打印任务操作,并把生 成打印控制语言数据流传送到打印设备上。打印设备上下文与显示设备上下文是 类似的,是操作系统定义的一种内部数据结构。这个数据结构中定义了一系例的 图形对象,及图形对象的属性值,同时也定义了影响输出的图形模式。图形对象 包括画笔、画刷、填充色和字体。值得注意的是,打印设备上下文不可以通过 g e t d c 函数获取,因为打印设备上下文不是由窗口管理组件管理的。因此打印功 能应用程序只能使用c r e a t e d c 或p r i n t d l g e x 函数创建打印设备上下文。h 在应用程序创建打印设备上下文之后,它可以像在窗口上画图一样,调用相 同功能g d i 函数完成打印操作,如使用画线函数、画圆函数、打印文本函数等。 然后g d i 会调用相应的驱动程序完成打印任务操作,并把生成的打印控制语言 数据流传送到打印设备上。 2 1 2 打印假脱机组件 为了提高w i n d o w sx p 系统上应用程序完成打印任务的效率,w i n d o w sx p 系统使用了假脱机组件。【5 】操作系统把应用程序生成的打印任务存贮到本地的 一个文件中,这个文件称为假脱机文件。然后由打印假脱机组件对生成的假脱机 文件进行处理,生成打印设备可识别的打印控制语言数据流,再把生成的数据流 发送到打印设备上。操作系统使用假脱机组件,使得应用程序具有了并发完成打 印任务的能力。使用假脱机组件,打印应用程序不需要等到打印设备空闲再完成 打印任务,而是立即把打印任务生成到一个文件中,并接着完成其它任务。应用 程序还可以调用假脱机组件了解当前打印任务的状态。使用假脱机文件屏蔽了开 发打印控制语言的差异性,假脱机组件看到的假脱机文件使用的命令都是一致 的。这提高了w i n d o w sx p 系统上打印体系结构各组件的可维护性,各组件不需 8 华东师范大学硕士学位论文 第二章w m d o w sx p 绘图仪驱动程序体系结构 要考虑打印控制语言的差异性。并且在有新打印控制语言加入打印体系结构的时 候,不需要修改其它组件,只需要修改相应的打印驱动程序,即可完成这一维护 过程。 w i n d o w s 中的打印假脱机组件相当于一个打印服务器,应用程序调用假 脱机组件来完成打印任务的设置,查询当前打印任务的状态。驱动程序调用打印 假脱机组件把生成的打印控制语言数据流发送到打印设备的端口上,进而传送到 打印设备上。同时,打印假脱机组件还会调用打印驱动程序完成打印控制语言数 据流的生成。假脱机组件的存在不但方便了应用程序的开发,同时也使得打印驱 动程序开发的过程简化。 对于给定打印任务,打印假脱机组件涉及到很多工作,并且要完成很多任务。 打印后台处理程序需要处理的主要任务有【3 】: 1 ) 确定打印任务在本地处理还是通过网络处理; 2 ) 接收g d i 创建的e m f ( e i l l l 锄c e dm e t a f i l e ,增强元文件) 数据流,并与- 。 打印驱动程序协作,生成洲【6 】数据流,传送到打印设备上; 3 ) 在允许后台处理的情况下,把接收到的数据流存贮到一个文件中; :+ 4 ) 从逻辑打印队列中,选择一个可用物理打印设备; :? 5 ) 把数据流发送到打印设备硬件上; 6 1 维护基于注册表的后台处理程序组件和打印格式数据库。 + , 打印假脱机组件由两部分组成,一部分为打印假脱机服务器,另一部分为打 印假脱机客户端。打印假脱机客户端用来把来自g d i 或应用程序的调用请求发 送到打印假脱机组件服务器上。打印假脱机服务器端接收来自打印假脱机客户端 的调用请求。打印假脱机组件涉及到的各组件部分如图2 2 : 9 华东师范大学硕士学位论文第二章w i n d o w sx p 绘图仪驱动程序体系结构 图2 2 打印假脱机组件结构 打印假脱机组件由打印假脱机组件客户端程序、打印假脱机服务器端程序、 打印假脱机路由程序、打印提供程序组成。它们的具体功能与作用如下: 1 ) w 协s p 0 0 1 d n ,为打印假脱机组件的客户端接口,它导出了组成打印假脱 机组件的a p i 函数。同也提供了访问服务器端的远程过程调用桩程序( r p c s n 山s ) 。 2 ) s p 0 0 1 s v e x e 为打印假脱机的a p i 服务器程序,它是以w i n d o w s 服务形 式实现的,并且在操作系统启动时被启动。这个模块导出了打印假脱机a p i 服 务器端的远程过程调用接口。s p o o l s v e x e 的客户端程序可以是“n s p 0 0 1 d n ,( 本地 客户端程序) 也可以是w i n 3 2 s p l d l l ( 远程客户端程序) 。这个模块实现了一些a p i 函数,但大多数函数都通过路由程序s p 0 0 1 s s d l l 发送到打印提供程序( p r i m p r o v i d e r ) 中。 3 ) s p o l l s s d l l 为打印假脱机组件的路由程序。它根据打印设备名或每一个函 数调用返回的句柄,确定调用哪一个打印提供程序。 4 ) 打印提供程序( p r i i :i tp m v i d e r ) 对具体的打印队列提供支持。 打印提供程序负责把打印任务发送到本地或远程打印设备上,同时负责打印 队列管理操作,如开始一个打印队列、停止一个打印队列、枚举服务器端的打印 队列。打印提供程序定义了高层次、机器独立、操作系统独立的打印服务,为打 印假脱机路由程序提供了统一的接口。所有的打印提供程序都要提供一系列通 :” l t - ,- 一- 一 1 0 华东师范大学硕士学位论文第二章w 访d o w sx p 绘图仪驱动程序体系结构 用的打印提供程序功能,这些功能由一系列a p i 函数定义,并且被打印假脱机 路由程序调用。 2 1 3 打印驱动程序 打印驱动程序可以看做是那些打印功能函数的容器。它实现了很多打印相 关、系统定义的打印函数。打印驱动程序由两部分组成,一部分是打印驱动程序 接口,另一部分是打印绘图程序。打印驱动程序接口用来提供打印文档设置与打 印设置相关的属性设置。而打印绘图程序用来提供绘图操作,即把绘图命令转化 为打印控制语言数据流,并通过打印假脱机组件发送到打印设备上。 要完成打印任务,需要打印假脱机组件与打印驱动程序一起协作。由打印假 脱机组件负责调用打印驱动程序接口,为应用程序提供打印文档设置和打印设备 设置。同时打印驱动程序又负责把g d i 生成的e m f 数据流转换成打印控制语言 数据流。在生成打印控制语言数据流后,驱动程序又会调用打印假脱机组件,把 、_ 。 生成的打印控制语言数据流通过打印假脱机组件发送到打印设备上。打印驱动程 序与打印假脱机组件之间的交互过程如图2 3 : 鞯醚 图2 3 打印假脱机组件与打印驱动程序协作过程 2 1 4 端口驱动程序 端口驱动用来把来自打印假脱机组件的打印控制语言数据流发送到打印设 备上。端口驱动程序分为语言端口监视程序和打印端口监视程序。语言端口监视 l t 华东师范大学硕七学位论文第二章w i n d o w sx p 绘图仪驱动程序体系结构 程序是依赖于端口监视程序而存在的。也就是说只有端口监视程序存在的时候, 才会存在语言端口监视程序,语言端口监视程序的存在不是必需的。 语言端口监视程序实质上也是一个驱动程序。它的作用是支持打印设备的双 向通信、监视打印设备状态,或向打印设备发送一些控制命令。对于支持双向通 信的打印设备,开发人员需要提供自己的语言监视程序,而对于只支持单向通讯 ( 只是把控制语言数据流从主机端向打印设备端发送) 的打印设备,是不需要语言 监视程序的。其实,语言端口监视程序是用来产生与发送打印任务语言数据流的。 端口监视程序实质上也是一个驱动程序。它用来把接收到的打印控制语言数 据流发送到i o 硬件端口,端口监视程序使用硬件端口驱动程序把打印控制语言 数据流发送到打印设备中。端口监视程序同时也负责管理并配置打印设备使用的 端口。端口是打印队列与打印设备之间物理连接。一个打印队列和打印设备之间 可以有多个端口,即多个物理连接存在。这时,打印假脱机组件会先选择第一个 可用端口发送打印控制语言数据流,如果这个端口不可用,打印假脱机组件会选 择其它可用端口,如果没有可用端口,打印假脱机组件则会发送出错信息。而打 印队列直观上可以认为是一个虚拟的打印设备。一个打印设备可以有多个打印队 列,一个打印队列只可以对应一个打印设备。因此当完成打印任务时,打印控制 语言数据流会通过端口发送到打印队列所代表的打印设备上。 如果存在语言端口监视程序,它必需与打印端口监视程序进行联系,并使用 端口监视程序完成打印控制数据流的发送,发送相关的控制信息,获取打印设备 状态信息。在这个过程中,端口监视程序是作为一个服务器的角色为语言端口监 视程序提供服务。 2 2w i n d o w s 下驱动程序体系架构 w i n d o 、sx p 下的驱动程序体系架构为系统中的设备驱动程序开发提供了一 个参考框架。也就是说,设备驱动程序的编写,安装和运行要求满足这个架构模 型。w i n d o w s ,下的驱动程序体系架构不但方便了w i n d o w sx p 上的驱动程序 开发过程,也方便了用户对操作系统的使用。一方面驱动程序架构简化了驱动程 序开发过程,另一方面驱动程序架构也提供了驱动程序自动安装与加载的机制, 方便了用户对操作系统的使用。 1 2 华东师范大学硕士学位论文第二章w i n d o w sx p 绘图仪驱动程序体系结构 2 2 1 驱动程序体系架构的意义与类别 在w - m d o w s 系统中,由驱动程序直接操作硬件设备。一个计算机系统必 然会存在很多硬件设备与其进行交互。因此要开发一个完成所有这些功能的驱动 程序必然是一件复杂、低效的事件,且不利于升级和维护。一但要求对硬件设备 进行扩充,必然会涉及到整个驱动程序的改变,因此增加了维护的复杂性。一但 出现故障必然要用去大量的时间查找和修复故障。采用驱动程序架构,可以改善 这些问题。驱动程序架构采用分层、分块的结构,不但提高了驱动程序的维护性, 也提高了驱动程序的可扩展性,同时也提高了驱动程序的复用性。当驱动程序出 现问题时,只需要对其中一个模块进行修改就可以完成对其进行维护。这不仅减 小了驱动程序的维护时间,也降低了维护的复杂性。当在计算机系统中增加新硬 件时,只需要写相应的驱动模块就可以完成对硬件设备的支持。由于驱动程序采 用分层的层次结构,上层的驱动程序可以复用下层驱动程序提供的服务,这大大露乞 方便了驱动程序的开发。 在w i n d o w s 系统中有两种驱动程序,一种是w d m 驱动程序,一种是n t j 一 驱动程序。n t 类型驱动程序是满足w i n d o w s2 0 0 0 0 以前操作系统的驱动程序架 一 构;而w d m 驱动程序则是w i n d o w s2 0 0 0 及以后操作系统增加驱动程序架构, 但这些操作系统也支持n t 驱动程序架构。w d m 驱动程序架构与n t 驱动程序, 簟。 架构之间的区别在于:w d m 驱动程序架构提供了硬件设备的即插即用功能,而 n t 驱动程序架构是以服务方式加载驱动程序的。w d m 驱动程序为用户添加新 设备提供了方便。当插入新设备时,操作系统会自动安装,并加载驱动程序,完 成硬件设备资源的相关配置。在n t 驱动程序架构中,需要用户自己对硬件设备 资源进行设置,安装驱动程序。 2 2 2 驱动程序层次结构 w i n d o w sx p 内核中存在多个组件,它们相互协作,为驱动程序提供服务。 这些存在的内核组件是实现w d m 架构的基础。主要的内核组件有i o 管理器程 序、配置管理器程序、即插即用管理器程序、电源管理器程序、内存管理器程序、 对象管理器程序等。i o 管理器程序用来负责发送来自应用程序或系统程序的i o 华东师范大学硕士学位论文第一二章w i n d o w sx p 绘图仪驱动程序体系结构 请求。配置管理器程序用来维护机器上的所有硬件与软件资源。即插即用管理器 程序用来协作驱动程序和操作系统组件完成硬件设备的动态维护、配置和管理。 电源管理器程序用于维护系统中的电源管理策略,并向驱动程序发送电源管理相 关的请求。内存管理器程序用来维护系统中各组件使用的内存。对象管理器程序 则维护系统中各组件所创建的数据对象。w i n d o w sx p 操作系统是以对象形式管 理系统中各组件的,对象管理器程序方便了各组件对象的维护过程。 w i n d o 、sx p 操作系统为了使开发的驱动程序满足平台之间的可移植性,对 不同软硬件平台的可配置性,使驱动程序采用基于对象与分层的结构。w d m 模 型驱动程序分层如图2 4 。 : 图2 4w d m 驱动程序和设备对象的分层情况( 来源【刀) 图2 4 中的虚线表示每一层驱动程序都对应一个设备对象,向上的箭头表示 设备对象创建的顺序,向下的箭头表示驱动程序调用的顺序,也就是硬件操作请 求传递的顺序。其中每一层驱动程序的作用如下。 1 上层过滤驱动程序,一般是用来为硬件设备提供一些增值特性。也就是 增加一些设备的额外特性。 2 功能驱动程序,用来控制硬件设备的驱动程序。 3 下层过滤驱动程序,通常用来改变设备硬件的行为或操作。 4 总线驱动程序,用来为总线控制器、总线适配器、总线桥提供服务,并 且枚举总线上的设备。 w i n d o w s2 0 0 0 内核是基于对象的,即驱动程序和内核例程使用的许多数 据结构都有公共的特征,这些特征集中由对象管理器管理。每一层驱动程序都对 应一个驱动程序对象。i o 管理器和设备驱动程序使用i o 请求包来管理i o 操 作的具体细节。当应用程序发出操作设备的请求时,由i o 管理器根据应用程序 ,、 ,、 “ : +。 一 - 1 4 华东师范大学硕士学位论文第二章w i n d o w sx p 绘图仪驱动程序体系结构 的请求来生成一个i o 请求包,这个i o 请求包再由图2 4 中的驱动程序栈从上 到下传送,或在某一层完成i o 请求。最后由i o 管理器把完成结果返回给应用 程序。驱动程序对象的分类如下: f i d o ( f i l t e rd e v i c eo b j e c t ,过滤设备对象) ,是由过滤驱动程序创建的设 备对象。 f d o ( f u n c t i o nd e v i c eo b j e c t ,功能设备对象) ,是由功能驱动程序创建的 设备对象。 p d o ( p h y s i c a ld e v i c eo b j e c t ,物理设备对象) ,是由总线驱动程序创建的 设备对象。 设备对象的创建过程如下:首先总线驱动程序发现设备,并创建物理设备对 象,接下来由i o 管理器通过所创建的物理设备对象来从驱动程序栈底依次加载 并创建驱动程序对象,同时调用驱动程序来创建相应的设备对象,最后建立设备 栈。 2 2 3w i n d o w sx p 驱动程序架构与打印体系架构 了解w i n d o w s ,驱动程序架构有利于理解w i n d o w sx p 下的打印体系架 构,理解打印驱动程序在w i n d o w sx p 下的打印体系架构中的位置与作用。 w i n d o w sx p 下打印体系架构中的打印驱动程序,端口监视程序都属于w i n d o w s x p 驱动程序架构中的一部分。因此驱动程序开发人员可以根据w i n d o w sx p 驱 动程序架构开发打印过滤驱动程序、打印监视程序、或开发支持多端口的监视程 序。 了解w i i l d o w sx p 驱动程序架构有利于理解w i n d o w s ,下打印驱动程序开 发的过程,同时也有利于理解打印控制语言数据流生成、传送的过程,及打印体 系架构中各组件的作用,并且也有利于理解w i n d o w sx p 下打印驱动及相关程序 开发与安装过程。 2 3 打印控制描述语言 打印设备的运作是由打印控制描述语言控制的。打印控制描述语言分为打印 设备任务语言( p r i n t e rj o bl a n g u a g e ,p 儿) 和打印设备命令语言( p r i n t e r 1 5 华东师范大学硕士学位论文第二章w i n d o w sx p 绘图仪驱动程序体系结构 c o 姗a n dl a n g u a g e , p c l ) 。打印客户端使用这两种语言控制打印设备完成打印 任务。打印设备接收打印任务语言数据流与打印控制语言数据流,并执行相应的 操作。在w i n d o w sx p 中,打印设备命令语言被称为打印控制语言。 2 3 1 打印任务语言 打印任务语言为打印设备提供任务级别的控制,它能够满足网络和多用户系 统的特殊需求,也就是用来进行打印的安排。它模拟了以前要通过按控制面板按 钮来控制打印设备的控制面板功能伸加们。可以使用打印任务语言设置完成打 印份数、切换打印设备语言、监视打印设各状态、请求打印设备的型号,及进行 打印设备的配置、改变打印设备控制板的默认设置、修改打印设备控制板上的信 息。打印任务语言关注打印任务相关的设置,也就是说它可以控制打印设备的打 印方式,而把打印过程交给打印控制语言处理。 。 应用程序可以通过使用p 儿获取打印设备模型、打印设备配置、打印设备状 态等请求信息,而打印假脱机程序也可以使用p j l 进行打印设备管理。e p s o n 与 h p 两大打印设备商的打印设备使用的任务语言分别是e p s o n 任务语言( e p s o n j o bl a n g u a g e ,e j l ) 与打印设备任务语言( p t r i n t e rj o bl a n g u a g e ,p 儿) 8 1 1 1 列。 下面列出两种打印任务语言的功能与形式,便于形象地理解打印任务语言在控制 打印设备方面的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 5463.3-2025非金属矿产品词汇第3部分:石膏
- 2025年导游面试高频题及答案解析
- 2025年客房安全操作手册及测试题
- 2025年58同城员工安全培训试题
- 2025年农业科技推广专家考试试题及答案解析
- 2025年美食节目主持人资格考试试题及答案解析
- 2025年旅游管理专业技能考核试卷及答案解析
- 2025年通信工程专业招聘面试模拟题集及深度解析
- 2025年游戏开发项目经理面试预测题及应对策略解析
- 2025年金融分析师执业水平认定考试试题及答案解析
- 六年级家长会课件
- 2025年安徽省淮南市【辅警协警】笔试模拟考试题(含答案)
- 废气处理活性炭吸附操作规范
- 创伤急救基本知识培训课件
- 2025年农业农村科技基础知识考试题库(附含答案)
- 合同第三方见证人范本
- 学生心理健康教育干预措施
- DB32∕T 4652-2024 基于区块链技术的多中心药物临床试验管理系统开发指南
- 实验室生物安全知识培训考试试题(含答案)
- 2025年成人高考英语试题及答案
- 高渗盐水治疗脑水肿及颅内高压专家共识解读
评论
0/150
提交评论