![(电路与系统专业论文)基于IEEE+1394总线的图象采集及处理系统软件技术研究[电路与系统专业优秀论文].pdf_第1页](http://file.renrendoc.com/FileRoot1/2019-12/13/bc6bd992-830b-4e1f-9a47-1c5e92c5431c/bc6bd992-830b-4e1f-9a47-1c5e92c5431c1.gif)
![(电路与系统专业论文)基于IEEE+1394总线的图象采集及处理系统软件技术研究[电路与系统专业优秀论文].pdf_第2页](http://file.renrendoc.com/FileRoot1/2019-12/13/bc6bd992-830b-4e1f-9a47-1c5e92c5431c/bc6bd992-830b-4e1f-9a47-1c5e92c5431c2.gif)
![(电路与系统专业论文)基于IEEE+1394总线的图象采集及处理系统软件技术研究[电路与系统专业优秀论文].pdf_第3页](http://file.renrendoc.com/FileRoot1/2019-12/13/bc6bd992-830b-4e1f-9a47-1c5e92c5431c/bc6bd992-830b-4e1f-9a47-1c5e92c5431c3.gif)
![(电路与系统专业论文)基于IEEE+1394总线的图象采集及处理系统软件技术研究[电路与系统专业优秀论文].pdf_第4页](http://file.renrendoc.com/FileRoot1/2019-12/13/bc6bd992-830b-4e1f-9a47-1c5e92c5431c/bc6bd992-830b-4e1f-9a47-1c5e92c5431c4.gif)
![(电路与系统专业论文)基于IEEE+1394总线的图象采集及处理系统软件技术研究[电路与系统专业优秀论文].pdf_第5页](http://file.renrendoc.com/FileRoot1/2019-12/13/bc6bd992-830b-4e1f-9a47-1c5e92c5431c/bc6bd992-830b-4e1f-9a47-1c5e92c5431c5.gif)
已阅读5页,还剩53页未读, 继续免费阅读
(电路与系统专业论文)基于IEEE+1394总线的图象采集及处理系统软件技术研究[电路与系统专业优秀论文].pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 i e e e1 3 9 4 总线弦为一穆褰速串缮蕊线在漾题孛被麓来设誊卡对传羧速率要求较 高的圈像采集系统。本文介绍了基于i e e e1 3 9 4 总线的图像采集系统计算机端软件 设冬驱动程序和客户应雳程序熬拜发。 校w i n d o w s 平台下,系统资源由系统进行统一管理。不论是开发设备驱动程 序还是实现国像实时爨示,郡嚣要j l 重w i n d o w s 煮一个深入静了鳃。本文酋先分摄 了w i n d o w s2 0 0 0 的体系结构。接着讨论了w i n d o w s 对i e e e1 3 9 4 总线提供的支持, 绘出了一个符会w d m 的设备驱动程廖,分别撼述了各个例疆的实现方法。最聪奔 绍了客户应用程序和驱动程序之间的通信方法。在此蘩础上,使用d i m c t x 技术实 现了燃像的实时采集葶显示。 关键谰:i e e e1 3 9 4 总线内核模式设备驱动程序d i r e c t x a b s t r a c t 1 e e e1 3 9 4b u s h i 曲p e r f o r m a n c es e r i a lb u s 廷u s e dt od e s i g nt h ei m a g e a c q u i s i t i o ns y s t e mi n t h e p r o j e c t ,w h i c h n e e d s h i g h e rs p e e d t h i sp a p e ri n t r o d u c e sh o wt od e v e l o pt h ec o m p u t e r s s o f t w a r eo fi m a g ea c q u i s i t i o na n dp r o c e s s i n gs y s t e m ,w h i c hi sb a s e do ni e e et 3 9 4b u s , s u c h 曩s d e v i c ed r i v e ra n dc l i e n ta p p l i c a t i o n u n d e rw i n d o w so s ,跚t l 档e so f s y s t e mh a v eb e e nm a n a g e db yo s 。d e v e l o p i n g d e v i c ed r i v e ra n dd i s p l a y i n gi m a g ei nr e a lt i m e ,w em u s th a v eag o o dk n o w l e d g eo f w i n d o w s 、f i r s t l y , t h ep a p e ra n a l y z e st h ea r c h i t e c t u r eo fw i n d o w s2 0 0 0 s e c o n d l y ,t h e p a p e r d i s c u s s e st h es u p p o r tw h i c hw i n d o w s s u p p l i e sf o rt e e e 13 9 4b u s t h e ni m p l e m e n t s ad e v i c ed r i v e r a c c o r d i n g t ow d m 。i nt h ep r o g r a m , s o m e s u b p r o g r a m s a l ea c c o m p l i s h e d 。 l a s t l y ,i ti m m d u c e st h ec o m m u n i c a t i o nm e a n sb e t w e e nc l i e n ta p p l i c a t i o na n dd e v i c e d r i v e r o nt h eb a s i so f a b o v e ,i ti se x p l a i n e dh o w t oi m p l e m e n tt h ei m a g e a c q u i s i t i o na n d d i s p l a yi nr e a lt i m ew i m d i r e c t x k e y w o r d s :l e e e1 3 9 4b u s i c e r n e lm o d ed e v i c ed r i v e r d i r e e t x 藏裁犊或蘩耩缝声鬻 零文声鞣器塞燮瓣谂文爨襄争太在罨簿懿黉爵下遮牙瓣辑凳瑟终及袈褥髓餐 究成果。尽我所知,除了文中特别加以标淀和致谢中所罗列的内容外。论文不包 窘葵豫天蠹缀菱轰藏攘写避瓣疆嚣蕊慕;运不篷客两获霉嚣蜜毫予辩鼗太攀蠛荬 他教育机构的学位戚证书硝使用过的材料。与我一同工作趟的同恣对本研究所做 熬蔹镶赁熬稳跫奁稔交孛鬃了赛臻翁瀵鹱箨裘示了嚣惫; 本入签名: 关于论熨能用漤衩的声胡 零入宪钕了解鞭密电子科技大学有关裸留和使鲷学位论文的规液,即:研究 尘袭梭玫读擘整焱瓣谂文王撵熬恝谈产莰攀挺矮疆安逸予馥技夫学。本太揲涯睾 盈离较后,淡袭论文域使弼谂文工依成粟对辫名单德仍然为西安电予科技大学。 学较礴投僳鏊送交论文静复爨谚,灸诲查鼹黪潜蜓谂文;学校露噬公奄论文鹣全 帮戢龋劳两誉,可戳兔诲暴溺彩印、缩印或熬它复蒂平段保存论文。 本人签襄;鸯型塾瑟臻;奎! ! 叁f :篁。 嚣炳签惑。 拉臌鱼塑。 第一章绪论1 第一章绪论 1 1i e e e1 3 9 4 总线介绍 i e e e1 3 9 4 总线,也叫f i r e w i r e ( 火线) ,最初由苹果公司提出和实施,1 9 9 5 年被i e e e 标准委员会批准的一种高速、对等的串行总线。它支持三种传输速率: 1 0 0 m b s 、2 0 0 m b s 和4 0 0 m b s 。术语1 3 9 4 通常用来描述p c 硬件上的总线。s o n y 和其它摄像机公司将其称为i l i n k 。 每种1 3 9 4 设备能够用一根长4 5 米的4 芯或6 芯电缆与主机相连。最多6 3 个 设备可以在7 2 米范围内串行在一起。桥路是跨越总线的设备因此最多允许额外连 接6 2 个设备。最多1 0 2 4 根总线能被桥接在起。在1 3 9 4 拓扑结构中,理论上允许 的设备数是6 4 k 。当一个新设备被增加时,为之分配一个1 6 位结点i d 。 i e e e 1 3 9 4 总线被设计成直接而且智能地支持即插即用功能。当有新的设备被 添加到总线上,总线复位,主机( 或其它结点) 遍历设备上1 3 9 4 芯片的配置r o m 以 发现新的设备。 从驱动程序的角度来看,1 3 9 4 的中断和d m a 能力实际上是由符合o h c i ( o p e n h o s tc o n t r o li n t e r f a c e ,开放主机控制接口) 标准的主机控制器定义的。主机控制器 为1 3 9 4 设备提供一种常规的中断和d m a 机制。 为了模拟中断,设备驱动在计算机的1 3 9 4 地址空间中开辟缓冲区。当要求主机 干预时,设备发送一个请求以声明它的状态。当设备驱动在缓冲区中收到该请求, 对此做出响应。 1 3 9 4 设备不能直接访问系统内存,但主机控制器可以使用d m a 与系统内存传 输数据。主机控制器提供了一个地址范围,它被软件和主机接口的d m a c ( d i r e c t m e m o r y a c c e s s c h a n n e l ,直接存储器存取通道) 直接传递到系统内存。这样,为每 个设备提供一个d m a 模拟。 1 2 课题的背景和意义 由于数字广播、因特网、家庭数字网络和高带宽的视频音频传输的需求,i e e e 1 3 9 4 获得了迅速的发展。目前,i e e e1 3 9 4 还主要应用于商业和民用产业,而且主 要集中在要求高速率、大批量数据传输的场合,如多媒体、数字视频、大容量存储 器和家庭网络等。 我们开发的基于i e e e1 3 9 4 总线的图像采集及处理系统,其目的是将采集到的 图像数据实时的传输入计算机,为最终的运动图像分析开辟一个高速通路。这就要 求该系统可以大批量且实时的传输图像数据并能够在计算机上实时显示,而1 3 9 4 总线正符合我们的要求。 图像采集及处理系统欲和计算机一起工作,虽然i e e e1 3 9 4 总线是对等总线, 二者地位是平等的,但形式上图像采集及处理系统仍然是作为计算机的外设存在的, 2基t - t e e e1 3 9 4 蕊线舶翌橡采镶及按理蓑缓较# 技术骚窥 不可避免的将需鬻计算机端软硬件的支持。基于这种要求,本课题将集中阐述图像 蒗集及憝攥系统在诗算辍瀚较释一设备驱动程瘩帮客户成震程带一的开发。 i 。3w i n d o w s2 0 0 0 驱动程穿豹耱类 设备驱动程序是一系列实现硬件设备控制的函数集合,是操体系统控制硬件设 备鹩模块。它终嚣潦箨系筑戆部分,提徽难题程窿黎实繇馥理设备之溆交互载软 件接口,从而将硬件细节和操作系统高层分开,实壬见了对底层硬件内部细节的屏蔽, 使应蘑程序敬援藕酶方式采谤蠢设备。 设备驱动程序和设各种类之间是一一对应的关系,不同厂家生产的同炎设备也 霹谈是是不露蕊设蘩。一个设备骧劫程穿冒骥驱动麓粪设餐孛豹多个兹瑗设备。 不同的操作系统,将采用不同的设备驱动程j 学模型。搬w i n d o w s2 0 0 0 操作系 统中,寅嚣令基零数驱动程痒器类: a 用户模式驱动程序( u s e r - m o d ed r i v e r s ) 遥户撰式驱动稷序是与予系缝绥节橱笑鳃。铽躲w i n 3 2v d d s ( v i r t u a ld e v i c e d r i v e r s ) ,它是为m s d o s 应用程序的专用设备歼发的。 b 。错蹲逻辑、嶷拱戴妨理设备戆露竣摸式驱动程彦( k e r n e l - m o d ed r i v e r s ) 内核模式驱动稔序是依据仔细定义的需求功能集,作为单独的、模块化的组 牛寒实理豹。它鲣都包含一维系统定义熬拣准驱动穗序饿糕鞠一些镣赣予个襞设餐 需求的内部例程,作为w i n d o w s2 0 0 0 执彳亍体部分米运行。w i n d o w s2 0 0 0 内核模式 驱魏程序,既包括w d m ( w i n d o w s d r i v e r m o d e ,w i n d o w s 驱蘑程痔模型) 驱蘸程 序,也包括菲w d m 驱动弦序。 w d m 憝m i c r o s o f t 公蟊l 力雄的全舞鲍驱动程序模式,掰肖酶w d m 驱勘程序 是p n p 驱韵程亭,并支持电源管理。它韵蕊常工作需要有w i n d o w s2 0 0 0 熟它内核 组l 牛的支持,其中大部分鲍内核组 牛( 如类驱动程詹) 必须同w d m 驱动程序交要 来究成它稻瀚功畿。t v d m 支持u s b 、i e e e1 3 9 4 、a c p i 等全新的硬件标准。w d m 驱 动稷序对w i n d o w s9 8 和w i n d o w s2 0 0 0 来说,是源代码兼容的( 不是= 进毒4 兼容的) 。 戳槛冠一释设备在两个平台上运行辩需要编霹两个截然不瀚韵驱动稔序,现在只需 要编写一个w d m 驱动程序就可以了。 本文涉及餮熬蒸予i e e e1 3 9 4 藤线靛强像采集及楚理系统翡设备驱动程序就符 合w d m 。 l 。4 实时显示 t e e e1 3 9 4 慧线握撰了投裹浆数覆铸赣逮率,这懿对p c 掇糍鍪像靛实时霞示提 出了极高的鞭求。为了实现宓时显示,只有尽量使用显示设备的硬件加速功能,同 霹褥主c p u 肢撬霉操锋中释放鑫来,蔹筵完成萁它瓣豫楚蘧经务。 第一章绪论 然而,w i n d o w $ 在设计时屏蔽了所有的系统资源,对显示设备的操作实际上变 成了对w i n d o w s 提供的g d i 函数的调用。这样虽然能实现设备无关性,不过,调 用g d i 函数相比m s d o s 下直接操作硬件仍然要慢不少。对于一般的应用程序来 说这种影响可能还不是太明显,但对于实时图像处理来说,在进行大量的图像数据 处理时如果每次都去调用g d i 函数,当然会很慢以至于不可能实现实时显示。显然, 通过调用g d i 在w i n d o w s 平台中进行高分辨率、大容量的图像实时显示并非易事。 而在w i n d o w s 环境下通过调用显示设备的驱动程序直接操作硬件( 如直接写显存) 来提高软件运行的效率又容易引起系统崩溃。w i n d o w s 中如何实现高速、大容量图 像的实时显示一直是困扰我们的难题。 d i r e c t x 是一种既能够实现硬件无关性又能够充分利用硬件的加速特性来编写 高效率的显示程序的应用技术。本文将详细论述如何利用d i r e c t x 技术,在采集和 存储数据的同时,实现高分辨率、大容量图像的实时显示。 1 5 基于i e e e1 3 9 4 总线的图像采集及处理系统简介 基于i e e e1 3 9 4 总线的图像采集及处理系统大体上可以分为图像采集、数据传 输和计算机端软件三部分。图像采集部分以3 5 2 2 8 8 的c m o s 图像采集芯片 o v 6 6 2 0 为核心。数据传输部分以t i 公司的1 3 9 4 芯片t s b 4 3 a a 8 2 为核心,负责图 像采集模块和计算机的数据传输。计算机端的软件包括设备驱动程序和w i n 3 2 应用 程序。其基本的功能框图如图1 1 。 图1 1 基于i e e e1 3 9 4 总线的图像采集及处理系统的功能框图 萋 i e e e1 3 9 4 总线她莲髂聚集及楚联系统软纷控本骚究 1 6 本课题豹主要任务 本文作者在熬个项目的设计开发过稷中主要做了以下几方面的工作: 1 援据系统豹其髂要求,漆技术实现豹可纾经、鸯效洼浚及可靠谯豹角度离 发,参与系统方案设计。 2 深入了麟w i n d o w s 熬运行辍毒l ,攥解w i n d o w s2 0 0 0 裁薄系结稳,麓基予i e e e 1 3 9 4 总线的图像采集及处理系统的驱动程序和成用程序的开发做准备。 3 ,熬悉秘掌握了系统秀发王具v e + 6 。0 纛2 0 0 0 d d k d r i v e rw o r k s 数及调试工 凝s o f l l c e ,实现基于i e e e1 3 9 4 总线的图像采集及处理系统的驱动程序。 4 。熟悉和掌握td i r e e t x 技本,零惩s d k 秘d i r e c t xs d k 拜发7 蒸予i e e e 1 3 9 4 总线的图像采集及处理系统的应用程序。 第二章w i n d o w s 操作系统相关部分分析5 第二章w in d o w s 操作系统相关部分分析 在w i n d o w s 平台中,应用程序和操作系统本身是分开的:操作系统代码运行在 内核态并有权访问系统数据和硬件;应用程序运行在用户态,能够使用的接口和访 问系统数据的权限受到限制。当用户程序调用系统程序时,处理器捕获该调用,然 后把调用的线程切换到核心态。当系统服务完成后。操作系统将线程描述表切换回 用户态,允许调用者继续运行,就像一个中断处理过程一样,只不过中断处理变成 了内核态的系统调用。驱动程序想要使用的资源恰恰是w i n d o w s 想要屏蔽的。因此 有必要了解一下w i n d o w s2 0 0 0 的系统组成。 2 1i n t e lx 8 6 体系c p u 的工作模式 i n t e lx 8 6 体系c p u 可在三种模式下工作实模式、保护模式和v 8 6 模式。实 模式是m s d o s 的运行环境。w i n d o w s 只利用了两种模式:保护模式和v 8 6 模式。 这些模式的区分主要体现在内存管理机制上。 2 1 1 地址概念 一般涉及到的地址概念有逻辑地址、虚拟地址、线性地址、物理地址。下面加 以一一说明。 逻辑地址是在应用程序中使用的用来访问存储器的地址。系统总是通过c p u 的 存储管理机制,将逻辑地址转换为实际存储器的地址。保护模式和实模式中,逻辑 地址为:段基地址+ 偏移量。 虚拟地址是逻辑地址在保护模式中的一种叫法。保护模式中内存地址采用的是 段页式内存管理机制,应用程序不是针对实际物理内存工作,而是认为在虚拟内存 中工作,故称逻辑地址为虚拟地址。 线性地址是无符号的数,表示c p u 在线性处理空间中可访问空间的位置。 逻辑地址经过分段机制处理,就可转换为响应的线性地址。实模式中,线性地址对 应其物理地址。保护模式中,线性地址通过分页机制处理,转换为物理地址,如果 不可分页,则线性地址就是物理地址。 物理地址就是在实际物理存储器中的位置,是逻辑地址经过存储管理机制作用 后的结果。 2 1 2 实模式 实模式也称为实地址工作模式。应用程序使用的逻辑地址就是实际的物理地址。 该模式下,地址总线为2 0 位,应用程序地址空间为1 m b 。内存管理采用分段内存 管理机制,i m b 空间被分为1 6 个段,每个段为6 4 k b ,没有分页机制。 w i n d o w s 系统在开机时也处于实模式中,关闭了所有保护功能,使用 m b 之 内的内存空间。 6基于i e e e1 3 9 4 总线的图像采集及处理系统软件技术研究 2 1 _ 3 保护模式 c p u 最常使用的最为复杂的方式。它采用分段分页的内存管理机制,利用3 2 位地址总线提供高达4 g b 的内存空间,应用程序不再受i m 内存的限制。支持多任 务多线程并行执行,每个任务好像独立运行在自己的环境中,彼此不受干扰。这种 模式给我们带来了很多优越性。 但在保护模式下,c p u 的运行级别被分为四等,从高到低依次为r i n 9 0 、r i n g l 、 r i n 9 2 、r i n 9 3 。不同的程序运行在不同的c p u 级别上,权力不同。w i n d o w s 平台只 使用r i n 9 0 和r i n 9 3 两个级别。 运行在r i n 9 0 级的应用程序可以执行所有的指令并可直接对硬件进行物理访 问。w i n d o w s 操作系统运行在r i n 9 0 级。一般的应用程序运行在r i n 9 3 级,那么它 能执行的指令是非常有限的,对硬件的很多直接操作是不能实现的。它享有的权限 是最低的,受到了保护模式的限制:它没有权限去绕过操作系统直接对硬件操作。 有了权限级别,操作系统就可以屏蔽应用程序的i o 操作。为了使自己的应用程序 也能直接处理硬件,我们就需要编写专门的驱动程序。 2 1 4 v 8 6 模式 为了使d o s 实模式应用程序无需修改就可以在w i n d o w s 保护模式下直接运行, c p u 提供了v 8 6 模式。 它实质上是一种能运行实模式软件的保护模式,使得c p u 即可向下兼容8 0 8 6 程序,又可利用保护模式的优点。在v 8 6 模式中,系统为不同的d o s 程序生成不 同的8 0 8 6 虚拟机,从而使得d o s 程序工作在保护模式中。其内存管理采用的分段 管理模式和实模式相同,支持分页管理,但是分页管理的模式和保护模式下的寻址 方式不同,只是将1 m 空间分为2 5 6 个页面。 在这种模式下,可同时运行多个v 8 6 程序,将这些v 8 6 程序映射到不同物理地 址空间,感觉好像是多个8 0 8 6 机器在运行。 2 2w i n d o w s 2 0 0 0 体系结构 w i n d o w s 2 0 0 0 实现了一套小型、功能齐全的软件组件集,提供了供应用程序运 行的环境。这些组件在执行任务时协同工作。每个组件提供一组功能,充当系统的 其余部分的接口。该组件集提供了访问处理器和所有其它硬件资源的途径。另外 w i n d o w s2 0 0 0 还提供了应用程序和组件进行相互通讯的机制。图2 1 为w i n d o w s 2 0 0 0 体系结构图。 按照实现的功能不同,这些组件可分为用户模式组件和内核模式组件。用户模 式是应用程序软件运行所在的操作系统的部分。内核模式是与计算机硬件进行交互 的部分。当然,这时c p u 必须运行在保护模式。在i n t e lx 8 6 平台上,内核模式对应 于c p u 的r i n 9 0 ( 0 级环) ,用户模式对应于c p u 的r i n g3 ( 3 级环) 。相应的, 第二章w i n d o w s 操作系统相关部分分析 7 软件也可分为用户模式代码( 包括应用程序软件,如电子表格程序) 和内核模式代 码( 如核心操作系统服务和设备驱动程序) 。 保护子系统 用户模式 执 行 体 内核模式 图2 1w i n d o w s2 0 0 0 体系结构图 1 用户模式 用户模式的软件在非特权状态下运行,对系统资源的访问有所限制。例如,这 种软件不能直接访问硬件。基于w i n d o w s2 0 0 0 的应用程序和受保护的子系统在用 户模式下运行。受保护的子系统在其自己的受保护空间中运行,不会相互干扰。 w i n d o w s2 0 0 0 的用户和程序员不是直接与操作系统打交道,而是与这些子系统打交 道。它们分为以下两组: 1 ) 环境子系统( 参见上图l 的右上方) 是提供操作系统专用的应用程序 编程接1 7 :1 ( a p i ) 的服务。如:w i n 3 2 子系统、v d m ( v i r t u a ld o sm a c h i n e ) 子系统、 w o w ( w i n d o w s o n w i n d o w s ) 子系统、o s 2 、p o s i x 子系统等等。通过环境子系统, w i n d o w s2 0 0 0 可以使用这些a p i 来运行为不同操作系统( 如o s 2 ) 编写的应用 程序。 2 ) 集成子系统是作为用户模式进程而实现的关键性系统组件,为接口提供 重要的操作系统功能的服务。这些组件包括: 安全子系统( s e c u r i t ys u b s y s t e m ) ,它使用不同的进程和动态库管理 本地和远程安全性。部分活动目录的工作也驻留在这一逻辑子系统中。 服务控制管理程序( s e r v i c ec o n t r o lm a n a g e r ) ,管理服务和设备驱动 8鏊予i e e e1 3 9 4 总线熬塑豫采集及齄壤系统软终拄本研究 稳序。 r p c 定位程序和骚努( r p cl o c a t o ra n ds e r v i c e ) 进程,支持分布在 网络上的成用程序。通过使用远稷过程调用,一个应用程序可以将它的工作负荷分 醚绘疆终上煞其稳撬器。 2 内核模式 在肉核模式下,软释霹戳谤滔繇有熬系统资澈,强诗算祝硬 争稻敏感钓系统数 据。内核模式的软件组成操作系统的核心,并且可以分为以下几组: 1 ) e x e c u t i v e 执行体包括负责为环境子系统和其它执行程序组件提供系统服务的系统组件, 囊萋于独立懿内核缝停毂集会。嚣这些癌核缍 孛之阕势没蠢多少联系,是宠垒疆立 的,它们鼠通过定义好的接口进行通信。这些内核组件包括: a 。系统骚务接日。掇供雳户模式到蠹援模式翦接盈。在w i n 2 0 0 0 孛, 系统服务调度者使用一种基于c p u 硬件异常机制的技术给用户模式代硒提供对 e x e c u t i v e 服务弱谤耀权。 b 对象管理器。进程对象、线程对苏、文件对象等都是系统提供给用户模 式程序的对象,出对象管联器负责篱理这魑对象。 c i y o 管理嚣。把用户模式城内核模式的l d o 请求转换成对各种驱动程序 例程一定顺序的调鼹。i y o 鸷理器怒与驱动程序封交道最多的系统缎传。 d p n p 管理器。由两部分组成:核心态p n p 管理器和用户态p n p 管理器。 核心态p n p 管理嚣阉操作系统组件驷内核驱动程序进簿交羹来动态驰维护、配置、 管理设备。用户态p n p 管理器和用户安装组件迸行交互,来配置和安装设豁。用户 态p n p 管理器同时也和应用程序交互,例如:为一个应用浚艇一个设备变化通知消 息精来在设备状态发生变化对通知应用程序。 e p o w e r 管瑷器。p o w e r 管理器负责蛰理系统的电源使用。它负责维护系统范 围内的电潦策昭,并负责p o w e r i r p 在系统中传递路径。 f 虚拟内存管理器 v l v i m ( v i r t u a lm e m o r ym a n a g e r ) 采用按需分鼯内存的技术管理虚拟内存和物 理内存的使用。w i n d o w s2 0 0 0 支持4g b 的虚拟内存,上丽的2g b 为内核模式 逡疆l :瑟留,丽下瑟豹2g b 由肉核模式和瑚户模式避程共事。v m m 使用内存摇述 表( m d l ) ,来跟踪属于各个进程的虚拟地址,及这些地址所引用的实际数据在物 理内存中羟整静位甏。为了让一些液爝程净袋享内存,侵其弼疆立即运行,v m m 使 用一个称为分页的过程,来交换物理内存和磁盘存储之间的内容。被交换的内容称 为燹。 第二章w i n d o w s 操作系统相关部分分析9 w i n d o w s2 0 0 0 把内核模式地址空间分成分页内存池和非分页内存池。分页内存 是摆可以被交换至4 硬盘上的内存萸,两非分页内存是指不毖被换出鲍页嚣,即它存 在于物理内存中。 2 1 设备驱动程序是连接操作系统与硬件( 如晨卡稆键盘) 的蠹核模式代码, 将来自组件的调用( 如打印请求) 转换为硬件操作。 3 ) 硬件抽象层( h 从) 将其余的w i n d o w s2 0 0 0 执行程序与特定软件分隔 开来,使搡作系统与多个处理器乎台兼容。它是物理硬件资源的一种摘象,通过动 态链接库( d l l ,d y n a m i c l i n kl i b r a r y ) 实现,管理的项强包括:片外高速缓存、 定时器、v o 总线、设备寄存器、中断控希器、d m a 控带8 器。 各种祭统组件使用h a l 函数与c p u 外的硬件打交道,这样就把平台特定的细 繁对系统的其余部分隐藏起来,可移植往辍佳。祷潮地,h a l 餐糕的使用德得内核 和设备驱幼程序在有相同c p u 体系结构的平台上二进制代码兼容。 4 ) 徽内孩。代表c p u 童身酌擒象模挺,管瑷c p u 。它挠彳亍戳下功麓: 中断和异常处理 线程调魔释磊多 多处理机同步 宠辩控翱 通过使用这些内核服务,操作系统的商层部分可以忽略底层的c p u 的体系结 孛奄,霞褥疆动程黟褰裹层系统组释毒可能实凌在不同c p u 体系缍稳闺嚣代强缀兼容。 内核还管理了一些内核对象。驱动程序可以通过创建和管理各种内核对象来请 求爽孩款帮爨。这些对象分必嚣大类: 1 调度者对缘主翳用于线程调度和同步。如:e v e n t 、m u t e x 等。负责同步 瞧能劳改变或影晌线程谖发。用予羟刳孛凝秘驱麓程窍静滚程。 2 控制者对稼邀些对象以某种方式控制操作系统的行为。如d p c ( 推迟 过程调用) 对象、i n t e r r u p t 对象等。 2 t 3 驱动程序积溉i 子系统的协同工作 在w i n d o w s2 0 0 0 下,客户应用程序运行在用户态,操作系统代码运行在内核态。 在内拨态中,操作系统秘c p u 没有任何限制。程序可以执行掰煮特权级指令, 代码可以访问所有系统内存。操作系统软件的特税缀别高于应用程序软件,通过这 种机制,使褥应用程序的不当行为在总体上不会破坏系统的稳定性。为了充分发搀 系统性能,w i n d o w s2 0 0 0 对核心态运行的缀件不提供任何保护。操作系统相信该代 码没有错误。为了安全地与其它驱动程序和操作系统组 牛交互,驱动程序和其它内 核模式代鹬必须遵循复杂的舰刚。稍一违葳这些规则,就有可能导致错误的代码, 可能不经意地破坏分配给其它内核模式组件的内存。 l o蒸予1 e e e1 3 9 4 惑线瓣塑像采集及楚瑷系统软嚣:技本研究 强2 2 i o 请求模型 w i n 3 2 客户应用程序逐行在用户态,操作系统提供内存保护机制以严格限制成 髯程序豹移为,防止萁对箕它应磺程穿稻系统筏鹨的破坏。困诧波翔程序只能调嗣 w i n 3 2 子系统提供的a p i 函数来同设备交甄,w i n 3 2 子系统模块中的服务代码使用 系统鞭务羧口来讶入孩心态并调瑟棱心态缀 孛提供豹藏务饲程。当w i n 3 2 请求传递 到i o 管理器时,玄创建一个i r p 并将其传递到适当的驱幼程序去,并给应用程序 一个瀵患,遥魏这次鞠- 搽俸还没宠戒。瘦短程彦渡裂通知后或者继续撬行,或者 挂超等待。在任何一种情况下驱动程序独立的执行来服务成用程序。 驱动耧序最终辫要谤溺疆俘来宠残1 1 0 请求,在程窿羧秘豹i o 方式下翡读请 求,驱动穰序的动作表现为读i o 端口或寄存器。尽管驱动程序运行在核心态下, 可敬壹搂秘矮 孛交驻,徨褒大多数揍援下,为保挎獒霹移攘毪,驱动程滓一般灞鞲 硬件抽象层提供的例程来和硬件交飘。硬件抽象层提供一种与处理器平台无关的方 法寒执行实际款i o 操终。 驱动程序完成i o 操作后,它将调用一个特殊的内核服务例程来完成i r p 。这 l l 重,困这个i o 请求挂起黪侄捉w i n 3 2 应鼹垮继续羧行。 第三章图像采集及处理系统驱动程序的设计i1 第三章图像采集及处理系统驱动程序的设计 为了实现基于i e e e1 3 9 4 总线的图像采集及处理系统和计算机之间的通信,我 们必须开发图像采集及处理系统计算机端的驱动程序。w i n d o w s 是个人计算机市场 上最流行的操作系统,并且微软已经宣布未来的w i n d o w s 系列操作系统的驱动模型 将是基于w d m 构架的。故我们在w i n d o w s2 0 0 0 系统下设计w d m 驱动程序。 本章介绍的图像采集及处理系统的驱动程序是完全基于w d m 的,所提到的 1 3 9 4 设备泛指使用i e e e1 3 9 4 总线进行通信的设备。 3 1 驱动程序的基本结构 w d m 的设计思想是非常先进的,它迎合了当前的高级操作系统的设计的先进 之处: 它是支持多处理器架构的,完全支持对称多处理。 它是处理器无关的,支持多种处理器架构。 它完全支持即插即用和电源管理。 3 1 1 基本概念 3 1 1 1 基本数据结构 d r i v e r o b j e c t d r i v e ro b j e c t 结构用来表述d r i v e r 对象。每个驱动程序有唯一的一个 d r i v e r 对象,它代表每个设备驱动程序。d r i v e ro b j e c t 结构保存驱动程序中各 个例程的指针。利用这些指针i o 管理器把i r p 发送到正确的例程并执行。另外, d r i v e r _ o b j e c t 结构还有指向这个驱动程序的设备链表的指针,驱动程序通过它 找到自己控制的设备。d r i v e r 对象的结构如图3 1 。 图3 1d r i v e r 对象 2基予i e e e1 3 9 4 慧线鹃蓬稼采集及处理蒹缝软$ :技末磷爽 d e v i c eo b j e c t d e v i c eo b j e c t 终褥表述d e v i c e 对象,存继设备豹信息。d e v i c e 对象是 设备的软件抽象。它代表驱动程序所管理的设备。驱动程序为它管理的每个设锯 郝建立一个d e v i c e 对象。该霹象豫存有骚精程旁d r i v e r 对象麓指针秘当翁设荟正在 处理的i r p 。它还维护一个挂接到d e v i c e 对象上的i r p 链淡的指针。这个链表上的 i r p 是瑟窝等蒋该设备楚毽戆t o 请求熬撵敬。d e v i c e 对象麓结构瓤墨3 。2 。 隧3 2 d e v i c e 对蒙 另井,d e v i e e 对象还脊一个d e v i c ee x t e n s i o n 域,它对驱动歼发者来说意义羹 大。d e v i c e 对象巍内核绷霄,该域由驱动糕序使越,指向我们自已定义的包仑设备 特定信息静数舞绪构。该数据结稿遥常存敞与设器肖关韵窝量和使厢对象的指针。 这是块可变大小的菲分页池,出i o 管理器分配。 3 1 i 2 中断请求级 在w i n d o w s 内核中,中断按其优先级分为3 2 个等级,使褥低优先级的中断 戳拔高嚣究级懿中灏掰串辑。表3 1 翳窭7 这些孛断等缓( i r q l ) 嬲饶先擗弼。表 中顺序为从上到下优先级依次提高。 在这些中鼗缀孛,p a s s i v el e v e l 、a f cl e v e l 翱d t s p a t c hl e v e l 楚 属于软件中断级,其他属于硬件中断级。驱动程序使用三个软件中断级。许多驱动 程窿嚣调攒程在d i s p a t c h _ l e v e l 缀运行。驱秘程序的硬辞书断鼹务铡程在 d i r q l 级遮行。驱动程序的分发例程在p a s s w el e v e l 级调用。 第三章图像采集及处理系统驱动程序的设计 1 3 表3 1 中断请求级 顺序i r q l描述 无中断 o p a s s i v el e v e l 常规线程 软件中断 1a p cl e v e l异步过程调用 2 d i s p a t c hl e v e l 线程调用,延迟过程调用 硬件中断 3 2 6 d i r o l 硬件中断 2 7 p r o r i l el e v e l 配置文件定时器 2 8 c l o c k 2l e v e l 时钟 2 9i p il e v e l 处理器之间中断级 3 0p o w e rl e v e l电源故障级 3 1 h i g hl e v e l最高级 3 1 1 3 驱动程序存储分配 编写驱动程序不能象在应用程序中那样调用m a l l o c 和f r e e ,或者n e w 和d e l e t e 来实现存储分配。但是,又必须确保分配正确类型的内存和释放它们分配的任何内 存。 在一个驱动程序中分配临时内存有三种方法: 内核堆栈。在驱动程序例程执行期间,内核堆栈为局部变量提供总量有限的非 分页存储。在x 8 6 平台上,内核堆栈只有1 2 k b 大小。 分页池( p a g e dp 0 0 1 ) 。运行于d i s p a t c h _ l e v e li r q l 等级以下的驱动程序 例程可以使用一个称为分页池的堆区域。此区域中的内存是可分页的,想分配分页 内存,指定e x a l l o c a t e p o o l 0 函数的p o o l t y p e 参数为p a g e d p o o l 。 非分页池( n o n p a g e dp 0 0 1 ) 。在d i s p a t c h _ l e v e li r q l 或以上的中断级访 问内存,必须使用非分页内存。它位于称为非分页池的堆区域。系统保证非分页池 中的虚拟内存在物理上总是可得的。想分配非分页内存,指定e x a l l o c a t e p o o l 0 函数 的p o o l t y p e 参数为n o n p a g e d p o o l 。 因为驱动程序需要是可重入的,以使它们可以在不同的处理器上同时被调用。 因此,尽量避免使用全局变量和局部静态变量。 3 1 1 4 用户缓冲区 驱动程序可以使用两个主要的方法访问用户缓冲区这两个方法是缓冲i o 和 直接i o 。在创建设备时,必须设置新设备对象的f l a g s 域中的d ob u f f e r e d1 0 位来使用缓冲i o ,或设置d od i r e c ti o 位来使用直接i o 。 如果使用缓冲i o ,内核使用户缓冲区在某个非分页内存中可用。在驱动程序 运行前,i o 管理器把用户缓冲区复制到非分页内存。在请求完成时把用户缓冲区 从非分页内存复制出来。这个技术是驱动程序开发者最容易使用的一个技术。但是, 它总体上速度要慢一些。 4基_ 丁_ i e e e1 3 9 4 总线的图像采集及处理系统软件技术研究 直接i o 是首选的技术。i o 管理器传递一个内存描述符列表( m d l ) 描述用 户空间缓冲区,更少地涉及数据复制,速度要快些。但这仅可用于可以执行直接内 存访问( d m a ) 的硬件,传输大量的数据。 3 1 2w d m 的层次化体系结构 w d m 引入“驱动程序栈”的概念来实现层次化体系结构。驱动程序栈是w d m 驱动体系中驱动程序的有序集合。通过它把各层次的驱动程序按一定顺序排列起来, 各负责完成一定的功能。具体层次划分如图3 3 的右侧所示: 图3 3 设备对象和驱动程序的层次结构 在单个设备的驱动程序栈中,不同位置的驱动程序扮演不同的角色。 总线驱动程序负责枚举总线,也就是说,它负责发现总线上的所有设备和检测 设备何时被添加或删除。它总是位于处于驱动程序栈的最下层。这里所说的总线是 指物理的、逻辑的或虚拟的设备所能附着的任何设备,如s c s i 、p c i 、并口、串口、 u s b 、i e e e1 3 9 4 等。每个类型的总线有一个驱动程序,它是必须的。m i c r o s o f t 公 司为大多数通用总线提供了总线驱动程序。 功能驱动程序知道如何控制设备完成工作。它是设备的主要驱动程序,分层在 总线驱动程序上面。功能驱动程序即设备驱动程序( d e v i c ed r i v e r ) ,由设备开发 者来提供。p 1 1 p 管理器为一个设备至少装载一个功能驱动程序,功能驱动程序能服 务一个或多个设备。 各种类型的过滤驱动程序可以插入在驱动程序栈中。对于总线上的所有设备, 总线过滤驱动程序被添加在总线驱动之上;而对于一个特定类的所有功能驱动程序, 添加类过滤驱动程序。设备过滤驱动程序仅对特定的设备添加。上层的过滤驱动程 序添加在功能驱动程序之上,而下层的过滤驱动程序添加在功能驱动程序的下面。 第三章图像采集及处理系统驱动程序的设计 1 5 相对应于驱动程序栈存在设备对象栈,如图3 3 的左侧。处于堆栈最底层的设 备对象称为p d o ( 物理设备对象,p h y s i c a l d e v i c eo b j e c t ) 。在设备对象栈的中间某 处有一个对象称为f d o ( 功能设备对象,f u n c t i o n a ld e v i c eo b j e c t ) 。在f i x ) 的上面 和下面还会有一些f i d o ( 过滤器设备对象,f i l t e r d e v i c eo b j e c t ) 。位于f d o 上面的 过滤器设备对象称为上层过滤器,位于f d o 下面( 但仍在p d o 之上) 的过滤器设备 对象称为下层过滤器。 操作系统的p i l p 管理器按照设备驱动程序的要求构造设备对象栈。当总线驱动 程序枚举出连接到总线上的设备并为每个设备创建一个p d o ( 物理设备对象, p h y s i c a ld e v i c eo b j e c t ) 后,如果检测到新的硬件,p i l p 管理器就创建一个p d o ,开 始描绘如图3 3 的结构。创建完p d o 后,p i l p 管理器查阅注册表以找到与这个p d o 相关的过滤器和功能驱动程序,它们出现在图3 3 的中部。系统安装程序负责添加 这些注册表项,控制硬件安装的1 n f 文件负责添加其它表项。这些表项定义了过滤 器和功能驱动程序在堆栈中的次序。p 1 1 p 管理器先装入最底层的过滤器驱动程序并 调用其a d d d e v i c e 函数开始创建这个栈。该函数创建一个f i d o ,这样就在过滤器 驱动程序和f i d o 和之间建立了水平连接。然后,a d d d e v i c e 把p d o 连接到f i d o 上,这就是设备对象之间连线的由来。p n p 管理器继续向上执行,装入并调用每个 低层过滤器、功能驱动程序、每个高层过滤器,直到完成整个堆栈。 层次结构可以使i o 请求过程更加明了。每个影响到设备的操作都使用i r p 。 通常i r p 先被送到设备堆栈的最上层驱动程序,然后逐渐过滤到下面的驱动程序。 每一层驱动程序都可以决定如何处理i r p 。有时,驱动程序不做任何处理,仅仅是 向下层传递该i r p 。有时,驱动程序直接处理完该i r p ,不再向下传递。还有时, 驱动程序既处理了i r p ,又把i r p 传递下去。这取决于设备以及i r p 所携带的内容。 3 1 - 3 i i 诤 i o 请求包( i or e q u e s tp a c k a g e ) 是驱动程序中最重要的数据结构,系统使 用它和驱动程序进行通信。v o 管理器在收到用户的i 0 请求时创建一个i r p ,并发 送给驱动程序。驱动程序的例程处理它,并在这个v o 任务最终完成时销毁它。i r p 记载着i 0 过程每个阶段的状态,跟踪i 0 发展,并向驱动程序报告i ( 3 任务的完成 情况。i r p 除实现i o 请求外,i o 管理器还与p n p 管理器和电源管理器一起工作发 送包含p 1 1 p 和电源管理请求的i r p ,来完成p n p 和电源管理。i r p 的创建、发送、 处理和销毁实际上构成了整个驱动程序。很好的理解i r p 对驱动程序的设计意义重 大。 i r p 是一个从非分页池分配的可变大小的结构,它有一个固定的首部和可变数 目的i r p 栈单元块,如图3 4 的右侧。固定部分含有i r p 的固定属性,每个栈单元 ( 一个i o s t a c kl o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于鞍山千山旅游非物质文化遗产的安全防护设计与研究
- 工程沉降监测与风险防范合同
- 车贷中介服务及贷后管理合作协议
- 跨国企业车间承包管理服务合同范本
- 房地产私募基金财务顾问财务顾问尽职调查合同
- 《城市综合体商业布局分析与销售策略实施合同》
- 餐饮饭店食品安全管理与租赁合同
- 住宅小区清洁服务及垃圾分类指导协议
- 车辆赠与及汽车租赁平台合作协议
- 草原生态保护承包权转让与草原畜牧业转型协议
- GB/T 8195-2011石油加工业卫生防护距离
- GB/T 32151.6-2015温室气体排放核算与报告要求第6部分:民用航空企业
- GB/T 13936-2014硫化橡胶与金属粘接拉伸剪切强度测定方法
- GB 29837-2013火灾探测报警产品的维修保养与报废
- 一例慢阻肺病人护理个案
- 建平中学自招真题解析
- DB50-T 1293-2022 松材线虫病疫木除治技术规范(标准文本)
- 金属材料检验的标准课件
- 动物疫病流行病学调查表诊断送检用
- 模具技术要求
- 广东省公务员录用审批表
评论
0/150
提交评论