(热能工程专业论文)基于pci总线的计算机励磁控制系统驱动开发.pdf_第1页
(热能工程专业论文)基于pci总线的计算机励磁控制系统驱动开发.pdf_第2页
(热能工程专业论文)基于pci总线的计算机励磁控制系统驱动开发.pdf_第3页
(热能工程专业论文)基于pci总线的计算机励磁控制系统驱动开发.pdf_第4页
(热能工程专业论文)基于pci总线的计算机励磁控制系统驱动开发.pdf_第5页
已阅读5页,还剩68页未读 继续免费阅读

(热能工程专业论文)基于pci总线的计算机励磁控制系统驱动开发.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中文摘要 摘要 在现代电厂中,同步电机是系统中的一个非常重要的设备,其运行效果直接影 响整机的运行效率的发挥。实现同步电机励磁系统计算机控制是提高同步电机运 行效率的有效手段。该系统中数据采集是实现计算机控制的关键环节,其中的数 据采集卡的驱动是一个容易被人忽视但实现技术最难的部分之一。 设备驱动是硬件系统与应用程序之间的接e l 软件,它的效率决定了计算机与硬 件间数据传输的速度,也影响软件系统的健壮性和可移植性。所以设备驱动与硬 件接口和软件系统紧密相关。但是一方面,设备驱动是属于计算机系统编程范畴, 它建立在操作系统的基础上,对操作系统有很强的依赖性,另一方面,作为硬件 设备的功能接口,需要对硬件进行操作和控制,因此,这就给驱动开发带来的相 当的难度。 传统的非图形界面系统驱动和虚拟设备驱动即将成为历史,w d m 驱动将成为 设备驱动的主流。开发基于w d m 驱动成为必要。 本文首先分析了数据采集卡的p c i 接口技术,特别分析了p c i 接口时序和配置 空间等难点问题,并介绍了$ 5 9 3 3p c i 接口控制芯片;然后对操作系统体系结构即 驱动程序运行环境进行分析,主要介绍了处理器保护模式、w i n d o w s 2 0 0 0 系统模 型和系统结构;最后着重分析了w d m 的驱动软件设计 在驱动程序分析中,首先介绍了驱动程序的入口例程以及驱动设计中最难以理 解的i r p 请求包,然后分析了硬件初始化即即插即用,最后分析了主要针对控制 用的计时器和数据处理过程。 论文最后对这次设计进行了总结。 关键词:p c i 总线,w i n d o w s 2 0 0 0 ,w d m 驱动程序,i r p 英文摘要 a b s t r a c t s y n c h r o n o u sm o t o ri sa ni m p o r t a n td e v i c ei nm o d e r np o w e rs t a t i o ns y s t e m i t s f u n c t i o nh a sd i r e c te f f e c t e d o nt h ee f f i c i e n c yo fw h o l es t a t i o n i ti se f f e c t i v et h a t e x c i t a t i o ns y s t e m ,w h i c hc o n t r o l l e db yc o m p u t e r , i sr e a l i z e d t h ed a t aa c q u i s i t i o ni s p i v o t a lt or e a l i z et h i ss y s t e m b u tt h ed r i v e ro ft h ed a t aa c q u i s i t i o nc a r da sad i f f i c u l t p a r to f t h es y s t e mi so f t e nn e g l e c t e db yt h ed e s i g n e ra n do f t e nb r i n g su ss o m et r o u b l e d e v i c ed r i v e ri su s e da st h ei n t e r f a c ef r o mh a r dd e v i c et oa p p l i c a t i o ns o f t ,i t s e f f i c i e n c yr e s t r i c t st h ec o m m u n i c a t i o nb e t w e e nc o m p u t e ra n dh a r dd e v i c e t h er o b u s t a n dp o r t a b l eo ft h es o f ts y s t e mi si n f l u e n c e db yi tt o o s ot h ed e v i c ed r i v e ri sa s s o c i a t e d t i g h t l yw i t ht h eh a r di n t e r f a c ea n dt h es o f ts y s t e m b u ta tt h ef i r s t ,t h ed e v i c ed r i v e ri s a t t r i b u t et ot h ec a t e g o r yo ft h es y s t e mp r o g r a m i ti sb a s e do nt h eo p e r a t i o ns y s t e m s o i td e p e n d s0 1 1o p e r a t i o ns y s t e m t h es e c o n d , a st h es p e c i a lf u n c t i o np a r to ft h eh a r d d e v i c et h ed e v i c ed r i v e ri sr e q u i r e do f o p e r a t i o nh a r dd e v i c e a l lo f t h e s ea r o s es e r i o u s t r o u b l ef o ru s c o n v e n t i o n a l n o n g r a p h i c a l i n t e r f a c e s s y s t e m a n dv i r t u a ld e v i c ed r i v e rw a s e l i m i n a t e dt h r o u g hs e l e c t i o na n dc o n t e s t w i n d o w sd e v i c em o d e l ( w d m ) w i l lb e c o m e t h et i d e w a y i ti sn e e dt od e v e l o pw d md r i v e r i n t e r f a c eo ft h ep c ib u so f ft h i ss y s t e mi sd i s c u s s e di nt h i sp a p e r c o n f i g u r a t i o n s p a c ea n d t i m es e q u e n c ei ss p e c i a ld i s c u s s e d a n dt h e nt h ep c ii n t e r f a c ec o n l x o lc h i po f $ 5 9 3 3i si n t r o d u c e d a tt h en e x t ,t h ea r c h i t e c to ft h eo p e r a t i o ns y s t e m ,e t c t h er t l n c o n d i t i o no ft h ed e v i c ed r i v e r , i sa n a l y z e d i ti ss p e c i a li n t r o d u c e do ft h ep r o c e s s o r p r o t e c tm o d e l w i n d o w s 2 0 0 0s y s t e mm o d e la n ds y s t e ma r c h i t e c t a tl a s t , a st h em o s t i m p o r tp a r t , t h ep a p e ra n a l y z e dt h ew d m s o f td e v e l o p m e n t a tt h ep a r to f t h ed r i v e ra n a l y s e s t h ep a p e rb e g i n s 诹mt h ed r i v e re n t r yp a r ta n dt h e 冲p a c k a g e w h i c hi sh a r dt ob eu n d e r s t o o di nd r i v e r t h e nt h eh a r di n i t i a l i z a t i o n ( e t c t h ep l u ga n dp l a y ) i sp r e s e n t e d a tl a s tt h et i m e ra n dd a t ap r o c e s si si m p o r t e di no r d e rt o c o n t r o ls y s t e m s o m er e s u l t sa r er e c e i v e df r o mt h ed e v e l o p m e n ta n db el i s t e d0 nt h ep a p e rf i n a l l y k e yw o r d s :p c ib u s ,w i n d o w s2 0 0 0 ,w d md r i v e r ,i r p i u 1 概述 1 概述 1 1 励磁控制系统方案 1 1 1 计算机控制系统方案的提出 同步电动机是通过对转子施加直流电流进行励磁,使定子磁极和转子达到同步 转速。其运行的稳定性和可靠性的关键在于电机在启动、变负荷及停机等阶段中 的励磁控制与保护。由于励磁可调,电机可以在超前功率因数下工作,向电网输 送超前的无功功率,运行稳定,功率因数可调,被广泛应用于大中型矿井、泵站 等。当前8 0 的同步电机采用全可控硅励磁控制装置1 2 】,但由于其控制部件大多 仍采用分立元件组成,故障率高,可靠性差,调试维护工作量大,现在运行在这 类系统中的励磁调节器大多没有考虑到控制对象的时变性和随机性,控制效果不 能令人满意【3 。 针对上述情况,对现行的同步电机可控硅励磁控制系统进行了改造设计,并在 四川石油管理局川东天然气开发公司卧龙河天然气增压站的三台同步电机上运行 实施,取得了良好的效果。改造中,提出以下总原则:采用新技术,提高装置可 靠性;使系统调试维护方便;采用优化的励磁控制算法。下面对改造中的关键技 术和效果进行介绍。 1 1 2 系统构成 同步电机励磁系统由励磁功率单元( 又称励磁供电装置) 、励磁控制单元( 包 括计算机控制系统和手动调节器) ,本项目主要是对可控硅励磁控制单元的设计, 包括整流变压器、可控硅整流桥、灭磁装置以及自动励磁调节器( a v r ) 4 】,其中 整流变压器、可控硅整流桥和灭磁装置均采用常规电路控制,而对于自动励磁调 节器,现在许多常规模拟控制系统中,常使用功率因数表( 如最常见的电动系功 率因数表,d 3 一咖型、和d 2 6 一巾型等) 均为模拟表,误差和迟延大瓯为克服这些 缺点,本设计采用计算机控制,组成个典型的d d c ( 直接数字控制) 单速率系 缔 6 1 。 硬件方面关键是要采集到相同时刻的电流信号和电压信号,以精确计算出电流 和电压的相位差。为此,特设计出一多路同步数据采集卡,8 路同步保持、双端隔 离模拟量输入;1 2 位的a d 转换器;模拟量输入范围可编程:两块8 位的d a 转 换器d a c 0 8 3 2 和一块并行接1 5 1 芯片8 2 5 5 a 提供开关量和模拟量的输入输出( ”:支 持软件查询,软件触发,和硬件中断编程方式;数据传送速率最大1 3 2 m b s :用 p c i 插槽j 。 重庆大学硕士学位论文 整 计算机控制单元 图1 1 系统构成原理 f i 9 1 1s i m p l i f i e ds y s t e ms c h e m a t i c 本文主要是针对励磁控制系统的数据采集的驱动设计,充分利用w d m 中i o 管理器技术、1 r p 包驱动技术、代码运行级别技术、时钟器技术等来解决控制系统 准实时以及任务高级别等问题。 1 2 计算机控制系统的总线技术 总线技术是数据采集的基础,只有对总线技术进行深入研究,才能找到高速数 据采集的方法。 总线对所有计算机系统来说,都是一个非常重要的部分。从最初设计计算机时 就引入总线的概念。最早的总线只适应于某些简单类型的处理器,而且只能完成 一些最基本的操作,随着计算机技术的日益完善,总线也相对复杂起来,其能力 越来越强大,速度也越来越快。 总线以机械形式、电气特性和通信协议等方面在系统设备之间建立一个标准, 是计算机各功能模块相互连接的工具及连接外设与主机系统的桥梁。其基本的功 能包括数据传输、中断能力、多重主控设备选择和其它一些适用功能。 几乎所有的计算机总线都具有以下几种通用信号,尽管这些信号的实现细节、 用法和功能在具体的应用中有很大差别。 d a t ab u s 是从属设备与总线主控设备之间进行数据传输的数据通道。 a d d r e s sb u s 是从属设备与总线主控设备之间进行传送地址信息的通道。 c o n t r o lb u s 1 概述 用来协调各部件之间的操作,是各种类型总线变化最大的部分,也是最灵活和 能力最强的一组总线。控制总线主要完成对存储器、i o 、中断、d m a 及c p u 之 间的操作,还包括主控时钟、系统同步、系统复位等功能。 p o w e r & g r o u n db u s 是总线结构中最简单的一组信号。在插卡的设计中,如果对接地信号不合理或 对电源需求缺乏周密考虑的话,就极有可能系统故障的根源。】 总线的种类很多,在此,我们仅研究数据采集卡与主机之间的总线结构及数据 存储设备所需的总线结构。 1 2 1p c i 总线 自从1 9 7 0 年美国d e c 公司为其p o p l i 2 0 计算机推出u n i b u s 以来,随着电子 技术、计算机技术和测控技术的发展,各种非标准的总线应运而生。如今,所有 的计算机系统都采用了总线连接。 计算机总线技术一直在探索中前进着,从x t 、i s a 、m c a 、e i s a 、v e s a 、 p c i 到最新的a g p ,总线技术日益完善。以下是几种主要总线类型的比较9 1 【1 1 。 表1 1 几种总线类型的比较 t a b 1 1c o m p a r i s o no f v a r i o u sk o n do f b u s 1 二拳 i s ae i s am c av e s ap c i p e r f 0 衄a 1 1 c r m a xb a n d w i d t h ( b i t )1 63 23 23 23 2 6 4 m a xc l o c k ( m h z )88 _ 31 03 33 3 6 6 m a xd a t at r a n s f e r1 6 3 2 4 01 3 2 1 3 2 2 6 4 r a t e ( m b s ) l 0 a dc a o a b i l t y 1 2 1 2 1 231 0 通过表可以看到,与其它类型总线相比,p c i 总线的性能最佳。 p c i 总线是一种高性能的总线结构,拥有许多近乎完美的特性。因此,我们采 用p c i 总线进行数据采集。关于p c i 在数据采集中的应用,将在后面详细论述。 1 2 ,2s c s i 总线 在数据采集系统中,需要一种高速、可靠同时占用c p u 资源最少的i o 总线 对存储介质进行存取,s c s i 总线正好满足以上要求。 s c s i 是一种智能化接口,个别适合于并发数据的请求处理,它能够最大限度 地减少磁头移动和盘片旋转,因而在并发数据的请求处理中有极佳的性能。与a t a 接口相比,s c s i 接口提供了更强的扩充能力】。 1 3w in d o w s 2 0 0 0 与励磁控制系统驱动 在现代控制系统中需要支持多任务及快速、可靠的系统来完成繁重的数据采 重庆火学硕士学位论文 集、控制、存储和显示等功能,这就不可避免的涉及到操作系统的底层操作,不 论采用何种操作系统,都应将数据采集等对硬件的直接操作建立在特权级上,这 样不仅能取得最高的优先级,避免应用程序的干扰,更重要的是实现对系统硬件 资源的完全访问,提高整个系统的效率。 毫无疑问,m i c r o s o f t 的w i n d o w s ( 尤其是w i n d o w s 9 x 、w i n d o w s n t 和 w i n d o w s 2 0 0 0 ) 是p c 机上真正的主流操作系统,从现在直到将来,w i n d o w s 都将是 我们的主要工作和开发平台 1 。基于w i n d o w s 平台编程的特点就在于对编程的支 持非常丰富,有大量的a p i 共开发人员调用。但是,正如在d o s 下仅满足于i n t 2 1 调用是难以编写出精湛的程序来样,在w i n d o w s 下也需要对其内部原理有深刻 的认识。在实际应用中,为了提高应用软件的实时性与同步性,需对w i n d o w s 内 核进行进行深入剖析。由于稳定性、安全性的问题,我们将处理平台建立在 w i n d o w s 2 0 0 0 之上。 为了使p c i 总线数据采集卡正常工作,需要在软件中对系统资源( 如中断、 d i v l a 、物理端口、物理内存等) 进行直接访问,然而w i n d o w s 并不是一个开放的 系统,为保证的系统的安全性、稳定性,对应用程序访问物理资源加以限制,只 有编制设备驱动程序才能实现对p c i 总线设备的完全访问,直接使用各种系统资 源。 设备驱动程序是可以加载的k e r n e l 模式模块,他们是j o 系统和相关硬件的接 口,一般情况下,设备驱动程序作为操作系统的一部分运行于m n g o 级,由于具 有最高特权级,驱动程序可以直接访问物理设备、对硬件设备进行虚拟化、安装 真正的中断处理器、直接修改页表等,即驱动程序实质上就是工作在k e m d 模式 上的动态连接库。软件可以通过调用驱动程序的服务来使用相应的设备,故设备 驱动程序在很大程度上起到了原来b i o s 的作用,所有的驱动程序构成了w i n d o w s 操作系统的基础。 设备驱动程序不是单独存在的,是操作系统内核的一部分,因此需要对操作系 统的体系结构及底层运行机制有一定了解。本文将详细讨论w i n d o w s 2 0 0 0 的核心 态模式并重点如何编制基于p c i 总线数据采集卡的设备驱动程序。 1 4 常规控制系统驱动存在的问题 自从计算机运用于控制系统以来,即从8 0 2 8 6 开始,人们便开始需要计算机与 外部控制设备之间通信的实时与商效性,但随着计算机操作系统在稳定性、人性 化等方面的日益完善,其内部结构也日益复杂,计算机与外部控制系统的通信也 日益变得困难,所以需要有专门的软件实现这一功能。随着操作系统从d o s 进入 到w i n d o w s 、再到n t 系统,驱动程序也经过了多次的转换与改进,但对于控制系 4 1 概述 统来说,总存在某些缺陷和不足。下面将分别进行论述。 1 ,4 1 实模式驱动 从一开始,m s d o s 和系统基本输入输出系统( b i o s ) 就已经提供了许多硬件 设备的驱动程序。b o s 通过一些常用的软件中断,开放出驱动程序的服务,像 i n t1 0 h 是显示系统中断,i n t1 3 h 是磁盘子系统中断,i n t1 6 h 是键盘中断等等。 b i o s 也处理硬件中断,并承担对“可编程中断控制器”( p r o g r a m m a b l ei n t e r r u p t c o n t r o l l e r ,p i c ) 的管理任务。m s d o s 也通过软件中断( 如i n t2 l h 、i n t 2 5 h 、 i n t 2 6 h ) 提供了系统服务,并提供一个机制( c o n f i g s y s 中的d e v i c e = 语句) , 让新的或强化后的驱动程序能绚在系统启动时被加载进操作系统内核。但是作为 非图形界面的操作系统,现在基本被淘汰。 1 4 2 标准模式驱动 早期的w i n d o w s 中,m s d o s 和b i o s 是最重要的。w i n d o w s 运行在实模 式状态中,这时的w i n d o w s 充其量不过是一个强化后的m s d o s 图形用户界面而 已。从系统角度看,w i n d o w s 只不过是个大的图形应用程序。i n t e l8 0 2 8 6 的出现, 使w i n d o w s 能绚在保护模式中运行并获得高达1 6 m b 实际内存空间。依靠保护 模式和实模式的转换,w i n d o w s 仍然继续使用m s d o s 和b i o s 提供的服务来 完成所有的系统需求。这种运作模式被称为w i n d o w s 标准模式( w i n d o w ss t a n d a r d m o d e ) 。在p c 机上切换实模式和保护模式,系统开销很大。无论哪一种作法, 代价都很昂贵,因为它们至少都得经过b i o s 的引导程序。事实上,在某些p c 机,模式的切换要花掉好几毫秒。显然w m d o w s 需要一种方法,避免每次一有事 件发生,像是键盘被按下或鼠标移动等等,就得切换到实模式。解泱方法就是写 一个保护模式驱动程序,可以在保护模式中处理i o 中断。我把它们称为r i n 9 3 d l l 驱动程序,但是它们实质上都是1 6 位w m d o w s 动态链接库( d l l s ) ,在 r i n 9 3 层( i n t e lc p u 最不受保护的层,一般应用程序运行在r i n 9 3 层,核心态的驱 动程序动行在血层) 执行。它们的任务是在不离开c p u 保护模式的前提下, 和w i n d o w sk e r n e l 、u s e r 、g d i 模块之间形成接口,这就使得驱动程序容 易受到应用程序的干扰。 1 4 3 增强模式驱动 i n t e l8 0 3 8 6c p u 使w m d o w s 的第三种操作模式( 所谓的e n h a n c e dm o d e ) 成 为可能。在此模式中w i n d o w s 采用分页( p a g i n g ) 和虚拟8 6 ( v 8 6 ) 特性,创造出虚 拟机器( v i r t u a l m a c h i n e s ,v m s ) 。对一个应用程序而言,v v l 就像一独立的的 个人电脑,独自拥有自己的键盘、鼠标、显示器等等硬件。而实际上,经过所谓 的虚拟化( v i r t u a l i z a f i o n ) ,数个w m s 共享相同硬件。对最终用户而畜,最大的好 处是他现在能麴在窗口状态中( 而非全屏幕) 运行m s d o s 程序。”虚拟化”是v x d s 5 重庆大学硕士学位论文 的工作。v x d 的名称来自于”v i r t u a lxd e v i c e ”,意思是此驱动程序用来虚拟化某 个( x ) 某些v x d s 并不是为了虚拟化某些硬件,而是为了提供各种底层系统服 务。页面交换( p a g e s w a p ) 和页面文件( p a g e f i l e ) 就属于这种非设备v x d 。它 们共同管理交换文件( s w a pf i l e ) ,使增强模式w i n d o w s ( e n h a n c e d m o d e w i n d o w s ) 得以将磁盘空间分配成为虚拟内存的一部份。 尽管基础技术令人耳目一新,但增强模式w m d o w s ( e n h a n c e d - m o d ew i n d o w s ) 还是继续在磁盘和文件i o 方面使用m s d o s 和b i o s 。需要交换( s w a p ) 一个文件时,它还是把c p u 切换到v 8 6 模式,让m s d o s 和b i o s 来处理 f o 操作。在保护模式、真实模式、v 8 6 模式之间的所有切换动作都使得w i n d o w s 慢下来。更多的延时则来自于m s d o s 和b i o s 不可重入这一问题( 即不能两个 程序同时使用相同的服务) 。w i n d o w s 必须强迫所有应用程序在同一个队列等待实 模式服务j 。 1 4 ,4w in d o w s 9 5 w i n d o w s9 5 使用数种不同的驱动程序模型,大部份是使用3 2 位 n 层的 虚拟设备驱动程序( v x d s ) ,而非血层的d l l s 。所有的设备驱动程序都有一 个具有管理功能的核心虚拟机v m m ( 虚拟机管理器) 管理。w i n d o w s 对中断的处理 与m s d o s 大不一样。当中断发生时,处理器转换为r i n 9 0 级保护模式。w i n d o w s 系统并不像m s d o s 那样通过中断描述符表i d t ( i n t e r r u p td e s c r i p t o rt a b l e ) 直接指 向中断处理过程,两是由i d t 入口指向v m m 中的程序。该程序将判断是否为中 断调用,如果是,则把中断控制权交给虚拟可编程中断控制器v p i c d ( v i r t u a l p r o g r a m m a b l ei n t e r r u p tc o n t r o l l e rd e v i c e l ,v p i c d 实际上是一个重要的v x d 。 v p i c d 再将其交给另一个注册了该中断的v x d ( 如a u d c a r d v x d ) 来处理。v x d 程序是通过调用v p i c d 服务v p i c dv i r t u a l i z em q 来注册中断的。例如,w i n d o w s 9 5 的串行通信( s e r i a lc o m m u n i c a t i o n s ) 。从前w i n d o w s 的串行通讯是使用一个 r i n 9 3 驱动程序( c o m m d r v ) ,内含硬件中断处理程序以及驱动一个通用异步 收发蕊片( u n i v e r s a la s y n c h r o n o u sr e c e i v e r - t r a n s m i t t e r ( u a r t ) 蕊片) 所需的全部逻 辑功能代码。在未让此驱动程序知道的情沉下,两个v x d s ( v c d 和c o m b u f f ) 拦截了硬件中断和软件i n o u t 指令,为的是虚拟化每一个p o r t ,并且改善因 多任务而引起的问题。w i n d o w s9 5 也有一个r i n 9 3 组件名为c o m m d r v ,但 这个组件已经成为新的v x d ( v c o m m ) 的一个简单的外层程序,只用来提供1 6 位程序和v c o m m 之间的接口。v c o m m 则处于底层,联结一般应用程序、 c l i e n t s 、v x d 端口驱动程序和实际的硬件。端口驱动程序现在负责处理所有中 断,并执行真正与硬件起作用的n w o u t 指令。 但是v x d 主要应用在w i n d o w s9 x 系统,并且可以直接操作硬件,权限过大, 6 1 概述 完全与操作系统并行运行,所以常常只要有任何的驱动程序错误或无法启动,就 会引起操作系统崩溃。 1 4 5w i ) m 驱动技术 在w d m 驱动程序模型中,每个硬件设备至少有两个驱动程序。其中一个驱动 程序称为功能( f u n c t i o n ) 驱动程序,通常它就是本文中讨论的硬件设备驱动程序。 它了解使硬件工作的所有细节,负责初始化i o 操作,有责任处理i o 操作完成时 所带来的中断事件,有责任为用户提供一种设备适合的控制方式。另一个驱动程 序我们称为总线( b u s ) 驱动程序。它负责管理硬件与计算机的连接。 在设备驱动程序开发中,充分利用w d m 模型的属性,可以开发出满足要求的 基于p c i 总线的驱动程序。主要利用了驱动模型的以下属性: 可移植性。内核模式驱动程序的源代码应该可以移植于所有w i n d o wn t 平 台。w d m 驱动程序在其定义中就规定了其源代码可以在w i n d o w s9 8 和w i n d o w s 2 0 0 0 之间相互移植。为了实现这种可移植性,应避免使用编译器厂商专有的语言 特征,并避免使用没有被操作系统内核输出的运行时间库函数。如果不能避免驱 动程序中的平台依赖,至少应该用条件编译指令隔离这些代码。如果严格遵循这 些设计方针,那么仅需要重新编译连接源代码,生成的驱动程序就可以运行在任 何新的w i n d o w sn t 平台上。在这里,我们主要利用v c 6 0 来开发驱动,但代码 中不使用任何的基于m f c 类库和任何的a p i 函数,而是完全基于d d k 的开发。 这样就实现了代码的可移植性 可配置性。为了实现可配置性,在驱动开发中,在代码中避免直接引用硬件, 即使是在平台相关的条件编译块中也是这样。使用h a l 工具或调用低级总线驱动 程序,使用注册表作为配置信息的数据库,这可以使配置信息在系统重新启动后 仍然存在。 可抢先往和可中断性。w i n d o w s2 0 0 0 和w i n d o w s9 8 都是多任务操作系统, 可以为任意多个线程分配c p u 时间。在大部分时间中,驱动程序例程执行在可以 被其它线程( 在同一个c p u 上) 抢先的环境中。线程抢先取决于线程的优先级,系 统使用系统时钟为线程分配c p u 时间片。 w i n d o w s 2 0 0 0 还使用了一个中断优先级的概念,即i r q l 。有三个i r q l 值对 设备驱动程序有重要意义:p a s s i v el e v e l 、d i s p a t c hl e v e l ,以及所谓的 设备中断请求级d i r q l ( 设各的中断服务例程在该级上执行) 。在大部分时间中, c p u 执行在p a s s el e v e l 级上,所有的用户模式代码也运行在 p :a s s el e v e l 级上,并且驱动程序的许多活动也都发生在p a s s w el e v e l 级上。当c p u 运行在p a s s i v el e v e l 级时,当前运行的线程可以被任何优先级 大于它的线程抢先。然而,一旦c p u 的i r q l 大于p a s s i v el e v e l 级,线程抢 重庆大学硕士学位论文 先将不再发生,此时c p u 执行在使c p u 越过p a s s i v el e v e l 级的任意线程上 下文中。 在驱动开发中把高于p a s s i v el e v e l 级的i r q l 看成是针对中断的优先级。 这是一个与支配线程抢先机制不同的优先级方案,正如我前面说的,在 p a s s i v el e v e l 缴上没有线程抢先发生。但是,运行在任何i r q l 级上的活动都 可以被更高i r q l 级上的活动中断。所以驱动程序必须假定在任何时刻都可能失去 控制权,而此时系统可能需要执行更基本的任务。这样,就形成了系统事件优先 级最高,驱动程序次之,应用程序最低,这就符合我们的控制系统要求。 基于对象。w i n d o w s2 0 0 0 内核是基于对象的,即驱动程序和内核例程使用 的许多数据结构都有公共的特征,这些特征集中由对象管理器管理。这些特征包 括名称、参考计数、安全属性,等等。在内部,内核中包含了许多执行公共对象 管理的方法例程,例如打开和关闭对象或析取对象名。驱动程序使用内核部件输 出的服务例程来维护对象或对象中的域。某些内核对象,例如内核中断对象,是 不透明的,d d k 头文件中没有其数据成员的声明。其它内核对象,如设备对象或 驱动程序对象则是部分不透明的,d d k 头文件中声明了其结构的全部成员,但 d d k 文档中仅描述了可访问的成员并警告驱动程序开发者不要直接访问或修改其 它成员。对于驱动程序必须间接访问的不透明域,可以用支持例程访问。部分不 透明的对象类似于c + + 的类,有任何人都能访问的公共成员,还有必须通过方法 函数才能访问的私有成员和保护成员 3 0 1 。 包驱动。y o 管理器和设备驱动程序使用y o 请求包来管理y o 操作的具体 细节。首先,某个内核模式部件创建一个i r p ,该i r p 可以是让设各执行一个操作、 向驱动程序发送一个命令,或者向驱动程序询问某些信息的请求。然后y o 管理器 把这个i r p 发送到驱动程序输出的例程上。一般,每个驱动程序例程仅执行i r p 指定的一部分工作然后返回i o 管理器。最后,某个驱动程序例程完成该i r p ,之 后y o 管理器删除该i r p 并向原始请求者报告结束状态。 异步。w i n d o w s2 0 0 0 允许应用程序和驱动程序在起动一个i o 操作后继续执 行,而此时i o 操作仍在进行。所以,需要长时间运行的y o 操作应该以异步方式 执行。即当驱动程序接收到一个i r p 后,它首先初始化用于管理该i o 操作的任何 状态信息,然后安排i r p 的执行,而该i r p 将在以后的某个时刻完成,最后返回 调用者。由调用者决定是否等待该i r p 的完成。【l o 】 1 5 本文研究的内容 1 5 1w d m 驱动成为必然趋势 w i n d o w s 以其友好丰富的图形用户界面,简单灵便的操作,被越来越多的用户 1 概述 所接受,并涌现出了大量w i n d o w s 环境下的软件开发工具,如:v i s u a lc + + ,v i s u a l b a s i c ,b o f l a n dc + + 等。利用这些新的开发工具,可以很方便地设计出符合w i n d o w s 标准的用户界面。以至大多数用户要求数据采集系统采用w i n d o w s 风格的用户界 面。因此,开发w i n d o w s 环境下的数据采集软件的要求日益突出。习惯了w i n d o w s 界面后,很少有用户愿意回到d o s 下去面对那枯燥无味的屏幕,许多工控软件用 户在协议中直接提出了要在w i n d o w s 下运行的要求。同时,数据采集驱动软件模 块的开发也有了新的要求。 在1 9 9 6 年的w i n d o w sh a r d w a r ee n 西n e e r i n gc o n f e r e n c e ( w i n h e c ) 会议上, m i c r o s o f t 宣布了一种新的w i n d o w s 设备驱动程序模型_ w i n 3 2d r i v e rm o d e l ( w d m ) 。这种新的设备驱动程序模型将成为w i n d o w s2 0 0 0 ( 即w i n d o w sn t5 o ) 的核心。他主要应用与w i n d o w s 9 8 、w i n d o w s n t ( 2 0 0 0 ) 操作系统,其稳定性好, 现已成为驱动主流。 w i n d o w s 2 0 0 0 在操作系统控制方面进行了最具挑衅性的尝试。m i c r o s o f t 的n t ( n e wt e c h n o l o g y ) 操作系统形成于t 9 8 9 年初,到现在经历了一个漫长的发展过 程,现己基本实现了以下目标: 兼容性。操作系统已基本支持已经存在的软件和硬件。 健壮性和可靠性。操作系统经得起有意或无意的错误操作,用户的应用程序 不会使操作系统崩溃。 作为我们控制来说,健壮性和可靠性是最重要的性能,n t 设计者客户一服务 器体系来设计它的核心。用户应用程序作为o s 服务器的一个客户在操作系统上运 行。用户应用程序运行在用户模式中( 也称为硬件模式) ,在这个模式中,代码局 限于无害操作,硬件i o 操作也不能被执行。如果应用程序要求使用这些被禁止执 行的操作。中的任何一个,应用程序必须向操作系统进行请求。 操作系统代码则以内核模式的硬件模式迸行运行。内核模式代码可以执行任何 有效的c p u 指令,尤其包括i o 操作。 当前所有处理器都执行各种形式的特权于非特权模式。内核模式在特权模式中 执行,而用户模式在非特权环境中执行。因为不同的处理器和不同平台对于执行 特权模式是不同的,加上为了帮助实现可移植目标,o s 设计者为用户和内核模式 提供了一个抽象概念。o s 代码总是使用抽象代码来执行特权环境切换,因而只有 抽象代码自身需要被移植到一个新的平台上。在i n t e l 平台上,使用指令集中的 m n 9 3 执行用户模式,而使用r i n 9 0 执行内核模式。 可移植性。为了实现可移植性,n t 使用软件分层体系结构。位于在底层的 硬件抽象层( h a l ) 将处理器和平台依赖于o s 和设备驱动程序代码分开。所有设 备驱动程序被移植到另一个平台上去时,只需要进行重编译即可。所有设备驱动 9 重庆大学硕士学位论文 程序代码都是依赖于h a l 中的代码,以便引用硬件寄存器和总线。在通常情况下, 设备驱动程序代码必须依赖i o 管理程序中提供的抽象代码来控制硬件资源。 性能。虽然分层方式会导致性能下降,但快速层交互直是n t 设计组的目 标。首先在用户模式和内核模式间调用只涉及处理c a l l 指令。而h a l 的作用通 常是通过宏来实现的,从而实现联机性能。其次是通过将线程分配给不同的工作 单元,使尽量多的任务并行执行,这样就最小化了处理器的空闲时间。i l 0 】 所以,w i n d o w s2 0 0 0 以其特有的稳定性和可靠性等成为了操作系统的主流, 相应的,在w i n d o w s2 0 0 0 上主要支持的的驱动程序模型即w d m 也就成为了驱动 的主流。 在控制系统中,i s a 接口卡已经基本淘汰,现在最常用的是p c i 接口卡。p c i 接口具有i s a 接口无法比拟的优势。p c i 总线宽度3 2 位,可升级到6 4 位:最高工 作频率3 3 m h z ,支持猝发工作方式,传输速度更高;低随机访问延迟( 对从总线 上的主控寄存器到从属寄存器的写访问延迟为6 0 n s ) ;处理器内存子系统能力完全 一致;隐含的中央仲裁器;多路复用体系结构减少了管脚数和p c i 部件;给于i s a , e i s a ,m a c 系统的p c i 扩展板,减少了用户的开发成本。 另外,对p c i 扩展卡及元件,能够自动配置,实现设备的即插即用;处理器独 立,不依赖任何c p u ,支持多种处理器及将来待开发的更高性能处理器;支持6 4 位地址;多主控制允许任何p c i 主设备和从设备之间进行对点访问;p c i 提供数 据和地址的奇偶校验功能,保证了数据的完整性和准确性。p c i 卡现已逐渐成为控 制卡的接口标准。 1 5 2 本文研究的内容 通过上节分析,w i n d o w s 下的驱动中,w d m 成为必然趋势。因此,本文主要 从控制系统的角度来分析,在分析p c i 接口基础上,运用w d m 驱动程序来达到 控制系统控制要求,重点研究励磁控制系统数据采集在w i n d o w s2 0 0 0 下的驱动, 主要研究内容如下: 分析p c i 接口协议,主要分析了p c i 接口的时序和配置空间等较难以掌握 的部分,也是开发p c i 接口所必须的,这是驱动软件与硬件接口部分的开发必须 了解的,只有深入了解接口协议,才能在驱动程序中设置有效的控制命令、设备 初始化命令等,提高驱动软件的运行效率; 重点分析w i n d o w s 2 0 0 0 的体系结构,这是驱动程序运行所依赖的,也是各 类型驱动程序的集合,从某种意义上来说,我们所开发的驱动程序就是操作系统 的一个嵌入块,所有详细分析操作系统,以充分利用操作系统中已有的功能块, 入i o 管理器、底层的总线驱动程序、类驱动程序等; 分析驱动体系模型,充分利用i r p 包驱动技术,将数据和命令以包的形式 o 1 概述 传递和处理,使任务串行化、模块化处理,从而提高数据安全性,满足我们的控 制要求; 充分利用设备驱动模型中代码分级别运行特性,使关键代码在高的中断级 运行,不被一般的应用程序中断,当仍可以被操作系统中断,这样就形成了以操 作系统稳定性和可靠性为前提,使其达到最快的处理响应,使驱动程序满足控制 需求: 控制系统中,系统硬件如数据采集卡等如果没有按照它应该的那样工作。 例如错误的条件可以阻止一个中断的产生,而这个中断确实是需要的。更有甚者, 一些设备不能使用中断发出重要状态更改的信号。针对些情况,设计中采用了计 时器,设置时钟监视任务的完成,使在规定时间内没有完成的任务停止并复位; 根据项目要求,研究p c i 总线的接口规范和p c i 总线接口芯片的应用,设 计基于p c i 总线的高速数据采集卡。 开发基于p c i 接口的w i n d o w s 2 0 0 0 平台下的设备驱动程序。在研究 w i n d o w s 2 0 0 0 内核构造及相关机制的基础上,研制设备驱动程序实现数据的实时 采集,是本文的主要任务。 2 励磁系统数据采集卡的设计 2 励磁系统数据采集卡的设计 在以p c 为平台的数据采集卡设计中,首先需要确定的是采集卡即存储介质采 用的总线类型。所选的总线需要满足以下基本条件: 数据传输率要高,这样才能满足现代控制系统实时控制的要求。 c p u 占

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论