




已阅读5页,还剩59页未读, 继续免费阅读
(控制理论与控制工程专业论文)基于fpga的pci总线接口桥接逻辑设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉科技大学硕士学位论文第1 页 摘要 随着信息技术的发展,数字信号的采集与处理在科学研究、工业生产、航空航天、医 疗卫生等部门得到越来越广泛的应用,这些应用中对数字信号的传输速度提出了比较高的 要求。传统的基于i s a 总线的信号传输效率低,严重制约着系统性能的提高。 p c i 总线以其高性能、低成本、开放性、软件兼容性等众多优点成为当今最流行的计 算机局部总线。但是,由于p c i 总线硬件接口复杂、不易于接入、协议规范比较繁琐等缺 点,常常需要专用的接口芯片作为桥接,为了解决这一系列问题,本文提出了一种基于 f p g a 的p c i 总线接口桥接逻辑的实现方案,支持p a 突发访问方式,突发长度为8 至1 2 8 个 双字长度,核心f p g a 芯片采用a i 肛i 认公司的c y c l o n ef p g a 系列的e p i c 6 q 2 4 0 c 8 ,容 量为6 0 0 0 + 逻辑宏单元,速度为8 ,编译后系统速度可以达到8 0 m h z ,取得了良好的效果。 基于f p g a 的p c i 总线接口桥接逻辑的核心是p c i 接口模块。在硬件方面,特别讨论了 p c i 接口模块、地址转换模块、数据缓冲模块、外部接口模块和s r a md m a 控制模块等五 个功能模块的设计方案和硬件电路实现方法,着重分析了p c i 接口模块的数据传输方式, 采用模块化的方法设计了内部控制逻辑,并进行了相关的时序仿真和逻辑验证,硬件需要 软件的配合才能实现其功能,因此设备驱动程序的设计是一个重要部分,论文研究了 w i n d o w s ) 口体系结构下的w d m 驱动模式的组成、开发设备驱动程序的工具以及开发系统 实际硬件的设备驱动程序时的一些关键技术。 本论文最后利用基于f p g a 的p c i 总线接口桥接逻辑中的关键技术,对p a 数据采集卡 进行了整体方案的设计。该系统采用a l t e n 公司的c y c l o n e l i 系列f p g a 实现。 关键词:f p g a ;p c i 总线;d m a 控制器;驱动开发:d r j v e r s t u d i o 第1 i 页武汉科技大学硕士学位论文 a b s t r a c t w i t ht h ed e v e l o p m e n to fi n f o r m a t i o nt e c h n o l o g y ,d i g i t a ls i g n a la c q u i s i t i o na n dp r o c e s s i n g i nt h es c i e n t i f i cr e s e a r c h ,i n d u s t r i a l p r o d u c t i o n ,a e r o s p a c e ,m e d i c a l a n d p u b l i c h e a l t h d e p a r t m e n t sh a v ei n c r e a s i n g l yb r o a da p p l i c a t i o n s t h e s ea p p l i c a t i o n sh a v eah i 【g hd e m a n dt ot h e d i g i t a ls i g n a lt r a n s m i s s i o ns p e e d b a s e do nt h ei s a b u ss i g n a l st r a n s m i s s i o ni si n e f f i c i e n t ,a n d s e r i o u s l yh a m p e r i n gt h ei m p r o v e m e n t o f s y s t e mp e r f o r m a n c e t h ep c ib u sw i t hi t sh i g h p e r f o r m a n c e ,l o w - c o s t ,o p e n ,s o f t w a r ec o m p a t i b i l i t ya n dm a n y o t h e ra d v a n t a g e sb e c o m et h em o s tp o p u l a rc o m p u t e rb u si nt o d a y sl o c a lb u s h o w e v e r ,a st h e p c ib u sh a r d w a r ei n t e r f a c ei sc o m p l e xa n dd i f f i c u l tt oa c c e s s ,s u c ha sp r o t o c o ls p e c i f i c a t i o ni s r e l a t i v e l ym o r ec o m p l i c a t e d ,o f t e nr e q u i r e ss p e c i a li n t e r f a c ec h i pa sab r i d g e ,i no r d e rt os o l v e t h i s p r o b l e m s ,t h i sp a p e r , g i v e s t oaf p g a - b a s e dp c ib u si n t e r f a c e l o g i cb r i d g i n g i m p l e m e n t a t i o n ,t h es y s t e ms u p p o r t sb u r s tv i s i t ,t h eb u r s tl e n g t hi s8t o1 2 8p a i r so fw o r d s ,t h e c o r ef p g ac h i pi su s i n ga l t e r a sc y c l o n ef p g as e r i e se p l c 6 q 2 4 0 c 8 ,c a p a c i t yo f6 ,0 0 0 l o g i cu n i t sa n das p e e do fm i n u s8 ,a f t e rc o m p i l i n gt h es y s t e ms p e e dc a r lr e a c h8 0m h z , a n d h a v ea c h i e v e dg o o dr e s u l t s t h ep c ii n t e r f a c em o d u l ei st h ec o r eo ff p g a - b a s e dp c ib u si n t e r f a c el o g i cb r i d g i n g i m p l e m e n t a t i o n i nt e r m s o fh a r d w a r e ,t h i sp a p e rd i s c u s s e st h ep c ii n t e r f a c em o d u l ep a r t i c u l a r l y , a d d r e s st r a n s m i s s i o nm o d u l e ,d a t ab u f f e rm o d u l e ,e x t e r n a li n t e r f a c em o d u l ea n ds r a md m a c o n t r o lm o d u l e ,t h i sp a p e rg i v e st ot h ed e s i g no fp r o g r a m sa n dh a r d w a r ec i r c u i ta n df o c u s e so n t h ea n a l y z i n go ft h ep c ii n t e r f a c em o d u l e sd a t at r a n s m i s s i o n ,u s i n gm o d u l a rm e t h o dt or e a l i z e t h ei n t e r n a lc o n t r o ll o g i ca n dt h er e l a t e dt i m i n gs i m u l a t i o na n dl o g i cv e r i f i c a t i o n ,h a r d w a r en e e d s t h es o f t w a r et oa c h i e v ei t sf u n c t i o n ,t h e nt h ed e v i c e sd r i v e rp r o g r a m m ed e s i g ni sa ni m p o r t a n t p a r to ft h et h i sd e s i g n t h i sp a p e ri n v e s t i g a t e st h ec o m p o s i t i o no fw d md r i v e rm o d u l eu n d e rt h e w i n d o w sx pa r c h i t e c t u r e ,t h ed e v e l o p m e n tt o o lo fd e v i c ed r i v e ra sw e l la st h ek e yt e c h n o l o g y t h a tr e l a t e dt ot h ea c t u a lh a r d w a r ed e v i c ed r i v e r l a s t l y ,i ts u m su pt h ed e s i g n i n ge x p e r i e n c ea n d p o i n to u ti t sl i m i t a t i o n ,a n dm a k e saf o r e c a s to ft h i ss y s t e m 1a s t l y ,t h i sp a p e ru s e st h ek e yt e c h n o l o g yo ff p g a - b a s e dp c ib u si n t e r f a c el o g i cb r i d g i n g , t h e nw ed e s i g nt h ef r a m eo ft h ew h o l es y s t e mo fp c id a t aa c q u i s i t i o nc a r d t h es y s t e mu s e st h e c y c l o n ei is e r i e sa l t e r af p g a k e yw o r d :f p g a ;p c ib u s ;d m ac o n t r o l l e r ;d r i v e rd e v e l o p m e n t ;d r i v e r s t u d i o 武汉科技大学硕士学位论文第1 页 1 1 计算机总线技术的简介 第一章绪论 计算机总线( b u s ) 是指连接计算机各部件之间进行信息传输的公共通道。微型计算机系 统中广泛采用总线结构,其优点是系统成本低、组态灵活、维修方便。采用总线标准设计、 生产的硬件模块兼容性强,并通过系统总线可以方便地组合在一起,以构成满足不同需要 的微机系统。总线的关键特征是共享传输介质,多种设备连接到总线上,一个设备发出的 信号可以被其它所有连接在总线上的设备所接受,如果多个设备同时占用总线发送数据, 那么它们的信号会重叠,就会引起混乱。计算机的系统总线主要用于主机与磁盘驱动器、 显示器、打印机等众多外部设备之间传送数据i l j 。 计算机总线技术包括通道控制功能、使用方法、仲裁方法和传输方式等。总线结构不 同,性能差别很大。计算机总线的主要职能是负责计算机个模块间的信息传输,因此,对 总线的传输率是性能的主要指标。随着计算机技术的不断发展,微型计算机的体系结构发 生了显著的变化。如c p u 运行速度的提高,多处理器结构的出现,高速缓冲存储器的广泛 采用等,都要求有高速的总线来传输数据,从而出现了多总线结构。多总线结构是指c p u 与存储器、1 o 等设备之间有两种以上的总线,这样可以将慢速的设备和快速的设备挂在 不同的总线上,减少总线竞争现象,使系统的效率大大的提高。以往的微机系统总线是i b m 的1 6 位工业标准总线i s a ,其成熟及支持度是别的总线所不及的。但由于i s a 总线制定时间 已较久,不可避免地带有一些局限性;其数据宽度是1 6 位,总线同步时钟也只有8 m h z 。 随着半导体技术的发展,i s a 总线显然已满足不了c p u 的要求,造成了c p u 与外设之间的 数据传送瓶颈问题。为解决这个问题,出现了e i s 凡s ap o 等典型的微机总线。 在所有不同的总线中,局部总线的发展最令人瞩目。虽然总线的设计有很多种,基本 上都可以分成如下3 个功能组:数据总线、地址总线和控制总线。 数据线提供系统模块间传送数据的路径。典型的数据总线包括1 6 位、3 2 位和6 4 位。这 些线的位数称为数据总线的宽度。数据总线的宽度在很大程度上决定了系统的性能。 地址线指定数据总线上的数据将要来自的位置,地址总线的宽度决定了系统能够使用 的最大的存储器容量,地址线也通常用于i o 端口的寻址。地址线的高位用于选择总线上 指定的区域,低位用来选择指定区域内具体的存储单元或 o 端口。 控制总线用来控制对数据总线地址总线的存储操作。由于所有设备都挂靠在数据总线 和地址总线上,被所有设备共同所有,所以必须有一种方法来控制他们。控制总线在系统 模块之间发送总线命令和时序信号,时序信号指定了数据和地址信息何时有效,总线命令 指定了要执行的操作。典型的控制信号有如下几种: 存储器写:把总线上的数据写入被寻址的单元。 存储器读:把所寻址单元早的数据读出到总线上。 第2 页武汉科技大学 硕士学位论文 i 0 写:把总线上的数据输出到被寻址的 o 端口。 i o 读:把被寻址的i 0 端口的数据放在总线上。 总线请求:指出某个设备需要使用总线。 总线准许:指出发出请求的设备获得使用总线的权利。 中断请求:指出某个设备要求使用中断。 中断应答:中断请求被批准。 1 2p c i 总线简介及信号定义 p c i 总线的英文全称为:p e r i p h e r a lc o m p o n e n ti n t e r c o n n e c t ,简称p c i 。e p 夕l - 设部件互连。 1 9 9 1 年下半年,i n t e l 公司首先提出了p c i 总线的概念,并与i b m ,c o m p a q ,a s t ,h p ,d e c 等1 0 0 多家公司联合共谋计算机总线发展大业,于1 9 9 3 年推出p c i 局部总线标准p c i 总 线。p c i 总线是目前局部总线的最新技术,其在微机系统结构中的作用如图1 1 。p c i 总线不 仅可应用到低档至高档的台式系统上,而且还可应用在便携机乃至服务器的范围中。p c i 局部总线规范中明确指定了两种电源电压,并说明了相应的转变途径,支持3 3 v 和5 v 两种 信号环境。为了适应诸如高清晰度电视( h d t y ) 和三维显示等视频和多媒体显示的发展, 以及高带宽i o 对局部总线带宽的进一步要求,p c i 总线是一种高速同步总线,p c i 局部总 线定义了可对3 2 位数据地址总线,并可以进行“位扩展,并提供了3 2 位及6 4 位p c i 局部总 线设备的向前和向后的兼容性。运行在3 3 m h z 下的p c i 其数据传输率可达到1 3 2 m b s , 6 6 m h z 工作频率,使数据吞吐量增倍,支持突发传输方式,最大传输速率达至l j 5 2 8 m b y t e s , 远远大于i s a 总线5 m b y t e s 的速率。 p r o c e s s o r i c 扯l l c 音频运动视频 桥,存储控制器l _ f :i i ! j 口 ip c l 总线1 1 i s c s i 扩展总线桥 图形 n 州 软盘机l i 软软盘机l丙 c r t i s a e i s a m c a 基本i ,o 功能 图1 1 微机系统结构 在一个p c i 应用系统中,如果某设备取得了总线控制权,就称其为“主设备”;而被主 设备选中以进行通信的设备称为“从设备”。对于相应的接口信号线,通常分为必备的和可 选的两大类。如果只作为目标的设备,至少需要4 7 条信号线,若作为主设备则需要4 9 条信号线。利用这些信号线便可处理数据、地址,实现接口控制、仲裁及系统功能,下面 武汉科技大学硕士学位论文第3 页 按功能分组将这些信号表示如图1 2 中。 争冷 争 坠b 丝- 些q 丝, 垒k 笪- p c i 总线设t 等:b 备 ! 型! 皇 - 型堡- 型匹 - 型婴 - 墨旦q二 警一 ! - 型- - 匿m s :t r s t “位总线 扩展信号 接口控制 中断信号 支持c a c l l c 的信号 边界扫描 信号 图1 2p c i 局部总线信号 其中常用各信号定义如下: c l k :系统时钟信号,对于所有的p c i 设备都是输入信号。其工作频率最高可达3 3 m h z , 其它的信号在c l k 的上升沿有效。 r s t :复位信号。用来使p c i 专用的特性寄存器和定序器相关的信号恢复规定的初始状 态,必要的p c i 配置寄存器其复位状态是明确规定的,每当复位时,p c i 的全部输出信号一 般都应驱动到第三态。当设备请求引导系统时,将响应复位,复位后响应系统引导。 a d 【3 1 :0 0 】:它是地址、数据多路复用的输入输出信号。在f r a m e 有效时,是地址 期,在m d y 和t r d y 同时有效时,是数据期。一个p a 总线传输中包含了一个地址期和接 着的一个( 或无限个) 数据期。p c i 总线支持突发方式的读写功能。 c b e 3 :0 1 :它是总线命令和字节使能多路复用信号线,在地址期中,这四条线上传 输的是总线命令,在数据期内,它们传输的是字节使能信号。 f r a m e :由当前的设备驱动,表示一次访问的开始和持续时间,它的有效预示着总线 传输的开始,它的无效是传输的最后一个数据周期。 i r d y :主设备准备好信号,它的有效表明发起本次传输的设备能够完成一个数据期, 它要与t r d y 配合使用,二者同时有效,数据方能完整传输,否则为等待周期。 t r d y :从设备准备好信号,它的有效表示从设备已作好完成当前数据传输的准备工 作,同样该信号要与i r d y 配合使用,二者同时有效,数据才能完整传输。 s t o p :停止数据传输信号,当它有效时,表示从设备要求主设备停止当前的数据传输。 【o c k :锁定信号。当该信号有效时,表示驱动它的设备所进行的操作可能需要多个 传输爿。能完成。而此时,未被锁定的设备,对它的非互斥访问仍然可以进行。 第4 页武汉科技大学硕士学位论文 m s e l :初始化设备选择信号。在参数配置读写传输期间,用作片选信号,表明本卡 为配置的目标设备。 d e v s e l :设备选择信号。该信号有效时,表示驱动它的设备已成为当前访问的从设 备。 r e q :总线站用请求信号,该信号一旦有效即表明驱动它的设备要求使用总线。它是 一个点对点的信号,任何主设备都有其r e q 信号。 g n t :总线站用允许信号,用来向申请占用总线的设备表示,其请求已经获得批准, 这也是一个点对点的信号,任何主设备都应有自己的g n t 信号。 p c i 上的基本总线传输机制是突发成组传输。一个突发分组由一个地址期和一个( 多 个) 数据期组成,即在给出首地址后,主设备连续写入多个数据,用户设备需对首地址自 动加1 。其中配置空间和i 0 空间只能单周期读写,而m e m o r y 空间可以单周期或突发读写。 p c i 规范中定义了三种读写操作,i o 读写、m e m o r y 读写以及配置读写。其 m e m o r y 读写 分为m e m o r y 单周期读写、m e m o r y 突发读写,l 0 读写只有单周期模式。 1 3p a 总线操作及总线协议 总线命令的作用是用来规定主、从设备之间的传输类型,它出现于地址期的c b e 3 :0 】 线上,这里的主设备是指通过仲裁获得总线控制权的设备:从设备是指在c b e 3 :0 上出 现命令的同时,被a d 3 1 :0 0 l 线上的地址所选中的设备。对于c b e 3 :0 ,下面将给出一个 表1 1 ,表中的对于c b e 【3 :o 】的不同编码对应不同的命令类型。综合后的p c i 接口软核模块 便可处理数据、地址,实现接口控制、仲裁及系统功能。下面对其接口控制信号和内部结 构进行介绍。 配置读命令和配置写命令要求所有的p c i 命令都以目标设备的形式给予响应,其它所 有命令都为可选项。在p c i 总线上执行i o 读写命令时,应保证其执行顺序。p c i 上的设备 应具有可再定位功能或寄存器,以便通过配置寄存器将它们映射到存储器空间。所有的主、 从设备都可以依据需要来实现选项命令,但是,如果某个设备实现了基本的存储器命令, 那么,它就必须支持所有的存储器命令,否则,就必须用别名将这些为优化性能而设的命 令转变为基本的存储器命令,无论是i o 读写还是存储器块数据的读写都必须遵守规则。 表1 1 总线命令类型 c b e 3 :0 1命令类型说明 o o l o i o 读 o o l l i o 写 0 1 | 0 存储器读 0 l l l存储器写 1 0 1 0 配置读 1 0 1 1 配置写 武汉科技大学硕士学位论文第5 页 p a 上的基本总线传输机制是突发成组传输。一个突发分组由一个地址期和一个( 多 个) 数据期组成。p o 支持存储器空间和i o 空间的突发传输。这里的突发传输是指主桥可 以将多个存储器写访问在不产生副作用的前提下合并为一次传输。一个设备通过将基址寄 存器的预取位置1 ,来表示允许读数据和合并写数据。一个桥可利用初始化时配置软件所 提供的地址范围,来区分那些地址空间可以合并,哪些不能合并当遇到要写的后续数据 不可预取或者一个对任何范围的读操作时,在缓冲器的数据合并操作必须停止并将以前的 合并结果清洗。但其后的写操作,如果是在预取范围内,便可与更后面的写操作合并,但 无论如何不能与前面合并过的数据合并。 对于i o 空间的访问不能合并,因此它们一般只有一个数据期。也就是说,对于所有 的i 0 访问,在处理机产生它们的同时,该访问也必须出现在p c i 总线上。如果一个从设备 被i o 访问选中,在字节使能信号所代表的传输长度大于该设备能支持的长度时,从设备 要用目标终止方式结束本次访问。 1 3 1p c i 总线的传输控制 p c i 总线上所有的数据传输基本上都是由以下三条信号线控制的: f r a m e :由主设备驱动,指明一个数据传输的起始和结束。 i r d y :由主设备驱动,允许插入等待周期。 t r d y :由从设备驱动,允许插入等待周期。 当数据有效时,数据资源需要无条件设置x r d y 信号,接收方可以在适当的时间发出 它的x r d y 信号。f r a m e 信号有效后的第一个时钟前沿是地址期的开始,此时传送地址信 息和总线命令。下一个时钟前沿开始一个( 多个) 数据期,每逢i r d y 和t r d y 同时有效时, 所对应的时钟前沿就使数据在主从设备之间传送,在此期间,可由主设备或从设备分别利 用m d y 和t r d y 的无效而插入等待周期。 一旦主设备设置了m d y 信号,将不能改变i r d y 和f r a m e ,直到当前的数据完成为止, 而一个从设备一旦设置了t r d y 信号或s t o p 信号,就不能改变d e v s e l 、t r d y 或s t o p , 直到当前的数据期完成。也就使说,不管是主设备还是从设备,只要承诺了的数据传输, 就必须进行到底。当到最后一次数据传输时主设备应撤消f r a m e 信号,而建立i r d y 信号, 表明主设备已做好了最后一次数据传输的准备,待到从设备发出t r d y 信号后,就说明最 后一次数据传输已完成,f r a m e 和i r d y 信号均撤消,接口回到了空闲状态。 1 3 2p c i 的编址 p c i 总线定义了三个物理地址空间:内存地址空间、l o 地址空间和配置地址空间。 这罩重点讨论一下配置地址空间。p c i 总线的编址时分布式的,每个设备都有自己的地址 译码,从而省去了中央译码逻辑。 在 o 地址空间,全部3 2 位a d 线都被用来提供一个完整的地址编码( 字节地址) , 第6 页武汉科技大学硕士学位论文 这使得要求地址精确到字节水平的设备不需要多等一个周期就可完成地址译码( 产生 d e v s e l 信号) ,也使负的地址译码省去了一个时钟周期。在i o 访问中,a d 【1 :o 】两位 很重要,它一方面用来产生d e v s e l 信号,更值得注意的使它也表示传输涉及的最低有 效字节,并且要与c b e 3 :0 相配合。 在存储器访问中,所有的目标设备都要检查a d 【1 :0 】,要么提供所要求的突发传输顺 序,或者执行一目标设备断开操作。对于所有支持突发传输的设备都应能实现线性突发传 输顺序。 在配置地址空间中,要用a d 【7 :2 】将访问落实到一个d w o r d 地址。当一个设备收 到配置命令时,若i d s e l 信号成立且a d i :0 = 0 0 ,则该设备即被选位访问的目标。否则 就不参与当前的对话。如果译码出的命令,符合某桥路的编号,且a d 1 :0 = 0 1 ,则说明 配置访问是对着该桥路后面的设备1 2 j 。 1 4 配置空间的编程模式 这里的配置寄存器空间是指各种类型的系统的p c i 设备所共有的规定,不涉及某一个 特定平台的系统。与某一类p c 相容的系统所涉及的问题。 定义一个p c i 配置空间的目的在于:提供一套适当的配置措施,使之满足现行的和可 预见的系统配置机构,因为这些机构还在发展中,对它们无法限定或者对它们的用法不能 加以约束。充分支持未来的配置机构,使之提供完全的设备再定位,无需用户干预的安装 配置和引导,由与设备无关的软件进行系统地址映射。 1 4 1 配置空间结构 配置地址空间是一个容量为2 5 6 字节并具有特定记录结构或模型的地址空间。该空间 又分为头标区和设备有关区两部分。设备在每个区中只实现必要的和与之相配的寄存器。 一个设备的配置空间不仅在需用自举时可以访问,在其它时间内也是可以访问的。投标区 的长度为6 4 字节,每个设备都必须支持该区的寄存器分配。该区中的各个字段用来唯一地 识别设备,并使设备能以一般方法控制。其余的1 9 2 字节是因设备而异。系统软件可能要 扫描p c i 总线以确定存在什么样的设备,配置软件必须读取每个p c i 槽上的设备供应商识别 码。如果所读取的位置上不存在以个设备,则从宿主总线连接至r j p c i 的桥必须准确无误的 报告出来。由于o f f f f i 是一个非法的供应商识别码,所以,宿主总线至i j p c i 的桥可以返回一 个全1 ,作为一个设备的配置空间寄存器之读出值,以表示设备不存在。表1 2 给出6 4 字 节头标区的布局情况。 武汉科技大学 硕士学位论文第7 页 表1 2 配置空间 设备识别供应商代码 状态 命令 分类代码 修改版本 内含自测试 头标类型 延时记数c h e 大小 保留 保留 扩展r o m 基址寄存器 保留 保留 m a x l 砒m i n g i l t 中断引脚 中断干线 0 0 h 0 4 h 0 8 h 0 c h 2 8 h 2 c h 3 0 h 3 4 h 3 8 h 3 c h 任何因设备而异的寄存器都不在这个头标区,而必须安排在6 4 - - 2 5 5 所对应的地址空 间。所有多字节的数码字段都遵循低位在后的排列顺序,也就是说,低部地址含有字段值 的低位部分。对于位编码字段中某些为将来使用而保留的位,软件必须小心正确处理它们。 在读取时,软件必须以适当的屏蔽来抽取定义过的位,而不能指望保留位的值不发生变化。 配置空间的头标区又分为两部分,前1 6 个字节的定义在各种类型的设备中都以样的,而其 余4 8 个字节可以依据设备支持的基本功能情况进行不同的设置。所有符合p c i 要求的从设 备都必须支持供应商识别设备识别命令和状态字段。如果一个设备支持的功能是某个寄存 器所管辖的,则它必须实现此寄存器,并且要符合规定的位置和功能【3 j 。 1 4 2 配置空间功能 p c i 总线为系统配置的简易性提供了较大的潜力,为实现这个潜力,所有的p c i 设备 必须提供一定的功能,以使系统配置软件能够被利用。在头标区有五个字段涉及设备的识 别,所有的p c i 设备必须实现这些字段,一般配置软件利用它们便能很容易地确定在系 统的p c i 总线上有什么样的可用设备。这些寄存器都使只读寄存器,下面说明它们的具 体功能。 设备识别字段:该字段用以标明特定的设备,具体代码由供应商来分配。 供应商识别字段:该字段用以表明设备的制造者。 修改版本识别字段:该字段用来指定一个设备特有的修改识别代码,其值由供应商选 定。 头标类型字段:该字段有两个作用,其一是用来表示配置空间内字节1 0 h 3 f h 的布 局类型,其二是用以指出设备是否包含多功能。该字段现在只有一个编码0 0 h ,其它的编 码都是保留。 第8 页武汉科技大学 硕士学位论文 分类代码字段:该寄存器是只读的,用来标识设备的总体功能和特定的寄存器级编程 接口,该寄存器分为三段,每段占一个字节,高位字节在0 b h 处,是一个基本分类代码, 对设备的功能进行粗略的分类,中间字节在0 a h 处,叫做子分类代码,它对设备的功能 给与更精确、更详细的分类。低位字节在0 9 h 处,用来标识一额特定的寄存器级编程接 口,以使与设备无关的软件可以与设备交互作用。在本设计中由于系统的数据流量较大, 暂且把其设为多媒体设备,对应的代码值使0 4 h ,对于子分类代码,这里选视频设备,对 应的代码值是0 0 h 。 1 4 3设备的控制及状态寄存器 头标区中的命令寄存器可为发出和响应p c i 总线命令提供粗略的控制,当向这个寄 存器写入0 时,对应的设备在逻辑上除了可进行配置访问外,其它所有访问都与p a 总 线脱开,要求所有的设备都应支持这一基本的功能。根据一个设备的功能要求,命令寄存 器的个别位可以实现,也可以不实现。典型的设备,在系统复位后该寄存器应为全“o ” 关于命令寄存器的具体格式以及命令寄存器每一位的定义如图1 3 所示。 ( 1 ) 位2 为控制一个设备在p a 总线上作为主设备的工作能力,该位为0 时,禁 止设备发出p a 访问,当它为1 时,允许设备作为总线主设备工作。 ( 2 )位0 控制对i 0 空间访问的响应,当它为0 时,禁止设备响应对i o 空间的 访问,当其为1 时,则允许设备响应对i 0 空间的访问。 ( 3 ) 位1 控制一个设备对存储器空间访问的响应,其值为0 时,禁止响应,当它 为1 时,允许设备响应对存储器空间的访问。 151 09 8 7 6 5432l0 存 图l j 命令寄存器格式 设备状态寄存器用于记录p c i 总线有关事件的状态信息。其中每位的定义如图1 4 , 设备可以依据自己的功能来决定实现状态寄存器的哪些位,不一定要实现所有的位,系统 对该寄存器的读写操作无特殊要求,而对写操作,由于该寄存器的有些位时可清不可职的, 因而有所不同。其中位9 位1 0 ,这两位编码用束表示d e v s e l 信号的时州关系,其编 武汉科技大学硕士学位论文第9 页 码值表示三种地址译码速度:0 0 表示快速,0 1 表示中速,1 0 表示慢速,1 1 保留。二位均 为只读位,除了配置读写外,这两位必须表示设备在其它的总线命令下d e v s e l 所对应 的时间中最慢的一个【4 1 。 067 8 91 01 1 1 21 31 4 1 5 图1 4 状态寄存器格式 1 5 驱动程序的发展及n t 组件构成 我们在早期的采用i n t e lc p u 的p c 机用户可以购买不同厂商生产的扩展卡,随着 这些卡会附带如何设置d 口开关的说明,为了正确设置这些跳线开关,用户必须知道计 算机i o 空间的分配和中断的分配。程序员采用汇编语言通过使用i n t 指令调用b i o s 和系 统服务。后来m m 推出采用i n t e r 0 2 8 6 处理器的a t 系列p c 机,8 0 2 8 6 处理器增加 了保护模式,可以使用1 6 m 内存地址。m s d o s 仍然工作在实模式,于是一些软件供应 商生产d o s 扩展产品使程序员可以将实模式下的程序转换到保护模式下,使程序可以使 用所有的内存。 m i c r o m f l 为设备驱动程序开发了新的技术,即w d m 设备驱动程序,它实现了平台 之间可移植性。w d m 驱动程序在其定义中就规定了其源代码可以在w i n d o w s9 8 w i n d o w sm e ,w i n d o w s2 0 0 0 ,w i n d o w sx p 之间相互移植。为了实现这种可移植性,驱动 程序应该全部采用c 语言编写,应避免使用编译器厂商专有的语言特征。因为w d m 设 备驱动程序的目标就是适用于多平台,所以为多个应用平台只编写一次驱动程序成为可能 的设计。 w i n d o w s2 0 0 0 操作系统包括了许多内核模式组件,它们被定义为功能独立的组件, 对内核模式驱动程序设计者来说,最感兴趣的是内核、 o 管理器即插即用( p n p ) 管理 器电源管理器硬件抽象层配置管理器内存管理器运行支持和进程结构组件。8 0 3 8 6 处理 器使程序可以间接通过页表访问4 g b 的虚拟内存。但是设备驱动程序仍然采用汇编语言 编写,通过c o n f i g s y s 安装,还需要手工配置板卡。随同硬件平台的发展,操作系统 w i n d o w s 在丌始只是m s d o s 的图形外壳,w i n d o w s3 0 在增强模式下可以很好的利用处 理器的虚拟内存能力,但是每个硬件设备仍然需要实模式的驱动程序。为了支持m s d o s 第1 0 页武汉科技大学硕士学位论文 的多任务执行,m i c r o s o f i 设计了虚拟机操作系统,每个m s d o s 应用程序运行在自己的 虚拟的计算机中,但所有的d o s 程序都直接采用输入、输出指令同硬件设备接口,这样 在使用显示器、鼠标、键盘时就有可能发生冲突。 非n t 核心的w i n d o w s 操作系统并没有充分利用计算机的能力,直到w i n d o w s9 8 才 采用3 2 位保护模式的驱动程序,具有即插即用特点。在w i n d o w s3 1 之后m i c r o s o f l 为t 开发稳定的平台w i n d o w sn t ,w i n d o w sn t 的驱动程序采用了完全不同的技术,它采用 c 语言编写,这样在将它移植到新的c p u 时不需要重新编写。 n t 核心的操作系统包括了许多组件,有些组件运行在用户模式,有些运行在核心模 式。内核模式组件被设计成为功能相互独立的组件,对驱动程序设计者来说最感兴趣的就 是内核,这些组件包括:i o 管理器、即插即用管理器、电源管理器、硬件抽象层、配置 管理器、内存管理器、运行支持、进程结构组件。在将请求传递到内核其他部分之前,内 核的系统服务( s y s t e ms e r v i c e s ) 进行所有的安全性检查和参数检查,然后再将其传送 到其他的组件。 有三种类型的核心模式驱动程序,每种驱动程序的结构和功能都不同: ( 1 ) 高层驱动程序,例如系统提供的文件系统驱动程序( f s d s ) ,高层驱动程序总是依 赖于底层的驱动程序。 但) 中间层驱动程序,例如虚拟磁盘驱动程序。中间层驱动程序仍然需要底层驱动程 序的支持。p i l p 功能驱动程序、p i l p 过滤驱动程序都是中间层驱动程序p i l p 功能驱动程序 控制某一总线上的设备,该总线由p n p 硬件总线驱动程序控制,p n p 过滤驱动程序将它们 自己插入某一设备驱动程序堆栈中。 ( 3 ) 底层驱动程序。例如p n p 硬件总线驱动程序。底层驱动程序不依赖更底层的驱动 程序,它直接控制一个物理的外围设备。 从驱动程序的功能,可以分为三类: ( 1 ) 总线驱动程序:驱动输入、输出总线,提供与设备无关的功能。 ( 2 ) 功能驱动程序:驱动单独的具体设备。 ( 3 ) 过滤驱动程序:用于改变设备的行为。 这里的总线指s c s i 总线、p c i 总线、并口、串口。总线驱动程序是一个总线的控制 器或适配器。在一个机器上每个总线都有总线驱动程序。通常由m j c m s o f t 在操作系统中 实现。总线过滤驱动程序用来为总线驱动程序增加附加功能。底层过滤驱动程序通常用来 更改硬件设备的行为。一个设备可以有多个底层过滤驱动程序。功能驱动程序是一个设备 的主要驱动程序,由设备供应商提供。上层驱动程序为设备增加附加的特性,图1 5 显示 了个设备的总线驱动程序、功能驱动程序、过滤驱动程序之问的关系1 5 j 。 武汉科技大学 硕士学位论文第1 1 页 1 6w d m 驱动程序的初始化 1 6 1 设备和驱动程序的层次结构 图1 3 驱动结构 w d m 驱动程序采用分层的结构模型。如图1 6 所示,左边是设备对象堆栈。设备对 象是操作系统为帮助软件管理硬件而创建的数据结构。处于堆栈最底层的设备对象称为物 理设备对象( p h y s i c a ld t = v i c co b j e c t ) ,简称为p d o 。在设备对象堆栈的中间有一个对象 称为功能设备对象( f u n d i 伽i a ld e v i c eo b j e a ) ,简称为f d o 。在f d o 的上面和下面还 会有一些过滤器设备对象( n i t e rd e v i c eo b j e c o 。位于f d 0 上面的过滤器设备对象称为上 层过滤器,位于f d o 下面的过滤器设备对象称为下层过滤器。 图1 6 驱动层次结构 设备对象堆栈是按照操作系统的p n p 管理器依据设备驱动程序的要求构造的,总线 驱动程序的一个任务就是枚举总线上的设备,并为每个设备创建一个p d o 。一旦总线驱 第1 2 页武汉科技大学 硕士学位论文 动程序检查到新硬件存在,p n p 管理器就创建一个p d o ,创建完p d o 后p n p 管理器按照 注册表中的信息查找与这个p d o 相关的过滤驱动程序和功能驱动程序,它们之间的关系 如上图所示。系统安装程序负责添加这些注册表项,而驱动程序包中控制硬件安装的i n f 文件负责添加其它表项。这些表项定义了过滤器和功能驱动程序在堆栈中的次序。p n 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 把p d o 连接到f i d o 上,建立设备对象之间的连线。然后p n p 管理器依次向上执行,直到完成最后整个堆栈。 上面的层次结构使i o 请求过程显得更加清晰明了,对上面设备的每个操作都使用 了o 请求包,一般i r p 先被送到设备堆栈的最上层驱动程序,然后逐渐过滤,逐步送 到下面的驱动程序。每一层驱动程序都可以决定如何处理i r p 。有时,驱动程序不做任何 事,仅仅是向下层传递该i r p ,有时驱动程序直接处理完该i r p 就不再向下传递,还有时 驱动程序既要处理i r p 又把i r p 往下传递,这取决于是何种设备以及i r p 所携带的内容。 在单个硬件的驱动程序堆栈中,不同位置的驱动程序扮演的角色也不同。功能驱动程 序管理f d o 所代表的设备,总线驱动程序管理计算机与p d o 所代表的设备的连接,过滤 器驱动程序则用于监视以及修改i r p 流。 1 6 2 设备的识别 驱动程序被加载后,内核其它驱动程序和用户态程序都可能与该驱动程序通讯,通过 这个驱动程序控制某个硬件设备的行为,用旧的命名方法命名设备对象,并创建一个应用 程序能够使用的符号连接,存在着两个主要问题,一是命名设备对象会带来潜在的安全问 题,访问设备的应用程序需要先知道设备采用的命名方案,如果硬件只使用你的应用程序 访问,不会出现什么问题,但是如果硬件使用的是其他的公司写的应用程序,那么设计一 个合适的命名方案是很困难的,为此需要有一种方法使其他的程序可以识别这个驱动程 序,创建设备接1 3 :驱动程序通过全局唯一标识符( g u m ) 来标识一个接口,w i n 3 2 程序 通过该接口可以识别相应的设备。可以用g u i d g e n 工具生成一个g u i d ,所有的g u i d 都是唯一的,然后在功能驱动程序的a d d d e v i c e 例程中调用i o r e g i s t e r d e v i c e i n t e r f a c e 函 数注册这个设备接口。i o r e g i s t e r d e v i c e i n t e r f a c e 的第一个参数必须是设备p d o 的地址。 第二个参数指出与接口关联的g u l d ,第三个参
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年贷款利率变动委托管理合同范本
- 2025版人工智能语音助手授权委托协议
- 2025年度高新技术项目居间对接服务协议
- 2025年度化工原料采购协议
- 2025年安防监控系统采购合同保密条款及保密协议
- 2025年企业出纳风险防控聘用服务协议
- 2025版汽车全车系事故车辆修复服务协议
- 2025年度融资租赁担保合同条款设计及法律适用研究
- 2025年智能穿戴设备采购协议书规范
- 2025范文大全:电力工程劳务合同范本
- 2023门球竞赛规则电子版图文并茂
- 树木清障专项施工方案
- 内部审计-内部审计准则完整版-中国内部审计准则体系
- 大班社会《班级规则我遵守》课件
- 能源概论__第一章能源概述PPT课件
- 《爱的教育》读书分享读书分享2
- 合伙经营教育培训机构合同经典版
- 体适能评定理论与方法实验指导
- 配网工程管理流程及注意事项
- PTB220串行数字气压计用户手册
- 政教处周工作历(2)
评论
0/150
提交评论