(计算机应用技术专业论文)基于cpci总线的高速雷达光栅扫描显示系统的设计和实现.pdf_第1页
(计算机应用技术专业论文)基于cpci总线的高速雷达光栅扫描显示系统的设计和实现.pdf_第2页
(计算机应用技术专业论文)基于cpci总线的高速雷达光栅扫描显示系统的设计和实现.pdf_第3页
(计算机应用技术专业论文)基于cpci总线的高速雷达光栅扫描显示系统的设计和实现.pdf_第4页
(计算机应用技术专业论文)基于cpci总线的高速雷达光栅扫描显示系统的设计和实现.pdf_第5页
已阅读5页,还剩62页未读 继续免费阅读

(计算机应用技术专业论文)基于cpci总线的高速雷达光栅扫描显示系统的设计和实现.pdf.pdf 免费下载

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

文档简介

西南交通大学硕士研究生学位论文第m 页 s y s t e mb a s e do nw i n d o w sp l a t f o m ld e s i g nh a si m p o r t a n tm e a n i n g a tt h es a m e t i m e ,t h i sp 印e rh a sb e e na c h i e v e dr a d a rs c a n n i n gr e a l i z a b l ei m a g ea n ds o l v e d m es p e e db o t t l ep r o b l e mo fd e s p l a yf a e af i n a jc o n c l u s i o ni sg i v 寄nt h a t h e m e t h o dh a sh i g h e rp r a c t i c a lv a l u e k e yw 口r d s :c p c ib u s ;w d md e v i c ed r i v e r ;d e v i c ed r i v e r sk i t : d i r e c t d r a w ;r a s t e rs c a i l ; 西南交通大学硕士研究生学位论文 第1 页 1 1 论文背景 第一章绪论 现代军事技术的一个重要特点就是各种武器装备越来越广泛地采用无 线电电子技术,各种新式武器威力的发挥、战区的监视与警备、各兵种协调 作战的联系和指挥,都越来越多地依靠于各种雷达的效能l l 。在各种现代 武器系统中,雷达是信息获取和精确制导领域中最重要的装备,特别是在广 大的作战地域内,及时、准确、全面地获取目标信息,雷达的作用是不可替 代的。毫不夸张地说,在现代战争中,谁能掌握电子战的制高点,谁就掌握 了战争的主动权i l “。雷达电子战的地位越来越高,可以说雷达的效能成为 决定胜负的关键所在。 本课题来源于某空军雷达学院开发的雷达信号处理实验平台,利用d s p ( d i g i t a ls i g n a lp r o c e s s i n g ) 信号处理板、信号时序产生板、检测盒和软件 相结合,文中设计了一种雷达光栅扫描显示系统的试验平台。“基于c p c i 总线的高速雷达光栅扫描显示系统”正是专门为雷达学院而研制的雷达终端 显示系统,并且要求系统实时采集、高速传输和快速显示。在开发显示系统 过程中,若采用w i n d o w sg d i 编程,由于其执行效率低,无法实时动态的 显示雷达的信号数据。因此本系统利用d r i v e r s t u d i o 和w i n d o w s2 0 0 0d d k 组件结合v i s u a lc + + 编写驱动程序,通过d r e c t d r a w 组件修改分辨率和显卡 中显存的r g b 值,编写高速雷达显示软件的程序,可简单快速的实现驱动 程序和雷达显示软件的主要功能,完成本系统的高速显控任务。 1 2 国内外研究现状 军事雷达的发展趋势是由军事需要决定的,现代战争已以电子战为主 题,为了适应现代战争的需要,具有高计算性能数字信号处理的系统将逐步 取代中、低频甚至高频模拟器件和系统。届时的雷达系统除了微波发射与辐 射外,将全部由数字系统组成,数字信号处理的长处将得以充分发挥。微电 子技术、数字信号处理技术的飞速发展,使军用雷达装备工程的研制和战术 西南交通大学硕士研究生学位论文 第2 页 使用也发生了变化,它的发展将给雷达的研制和使用带来极大的方便。而雷 达光栅扫描显示技术又是雷达系统的一项重要技术,随着计算机信息技术的 快速发展,对雷达光栅扫描显示技术的软件化、智能化研究是十分紧迫的任 务。它将逐渐被应用于空军雷达方面,成为人机对话和相互交换信息的重要 窗口f 9 1 。 在国际上,为完成各种实时雷达信号处理任务,对雷达信号处理的研究 思路也在改变。较著名的研究由美国l o c k h e e d 公司在美国国防部( d o d ) 所属d a r p a ( 国防高级研究计划局) 支持下开展的h p s c ( h i g h tp e r f o r m a i l c e s c a l a b l ec o m p u t i n g ) 研究计划【“i ,美国南加州大学和m i t 林肯实验室合作 的项目,m i t 的r a s s p 计划等。这些研究项目较多地采用了超级计算机结 构来实现雷达信号处理,以其卓越的性能而备受青睐。九十年代,国内一些 有实力的雷达研究所、雷达整机生产厂商及少数院校,逐渐开始采用信号处 理技术研制光栅扫描显示系统,并获得一些应用。当前,无论是新型雷达的 研制,还是现行雷达的改进,都需要界面友好、性能更加完善的光栅扫描显 示系统予以配套。因此,雷达光栅扫描显示系统仍是目前国内外研究的一个 热点。 1 3 论文的主要工作及其意义 本课题的实现目标是利用高分辨率显示器实现雷达显示系统平台的交 互。该平台基于计算机运行,除了可以通过雷达终端显示界面接受计算机的 控制命令,改变工作模式和输出模式等,参数( 如工作模式、雷达信号处理 模式和雷达信号处理参数) 通过雷达显示软件设置,雷达信号时序产生板 和雷达信号处理板的工作状态通过雷达显示软件显示,还要达到实时观测目 标方位的准确与快速的目的。以高速p e n t i u m 为管理控制中心,通过c x 西南交通大学硕士研究生学位论文 第3 页 一一 检 测 盒 图1 1 系统结构图 雷达的作用是不言而喻的,但其面临的挑战也是严峻的,故对于空军雷 达学院的学生来说学好雷达的先进技术更为必要。开发雷达显控软件具备重 要的现实和历史意义。 在本课题的研究开发中,本人所担任的工作主要包括2 个方面: 1 、数据采集时w i n d o w s2 0 0 0w d m 驱动程序的研究和实现 w d m 驱动程序的总体设计,编程软件的安装; w d m 驱动程序源代码的编写、调试、安装; w d m 驱动程序的动态库封装。 2 、雷达显示软件的设计与实现 光栅扫描显示软件的需求分析; 光栅扫描显示软件的总体设计: 光栅扫描显示软件应用程序的调试、功能实现。 西南交通大学硕士研究生学位论文第4 页 第二章c p c i 总线及其接口模块 2 1p ci 总线的特点及其实现 2 1 1p c i 总线的概述 总线是支持计算机各模块日j 信息传输的公芡通道,也是与外界进行数据 交换的接口,一般包括数据、地址、控制等信号组。现代计算机系统广泛采 用总线结构,其优点是降低了系统成本、组态灵活、维修方便j 。随着微 电子技术和计算机技术的发展,总线技术也在不断地发展和完善,先后出现 了i s a 、e l s a 、v e s a 、p c i 等,而且新的标准还在不断的涌现,使得计算 机总线技术种类繁多,备具特色。 p c i ( p e r i p h e r a lc o m p o n e tl t 目c o i l n e c t ) 总线是当前最流行的总线之 一,它是由i n t e l 公司首先推出的一种局部总线定义了3 2 位数据总线, 传输速率可达1 3 2 m b ,s ;当扩展为6 4 位时,支持突发读写操作,最大传输 速率可达2 6 4 m b s ,可同时支持多组外围设各_ j “。p c i 局部总线不能兼容现 有的i s a 、e i s a 、m c a ( m i c r o c h a n n e l “c h i t e c t l l r e ) 总线,但它不受制于处 理器,是基于奔腾等新一代微处理器而发展的总线。 2 1 2p c i 总线的特点 p c i 总线是基于新一代处理器的总线标准。其 三要特点概括为以下几个 方面【9 】: 1 优越的数据传输性能:1 3 2 m b ,s 的传输速率是其他总线难以比拟的。 它大大缓解了数据i o 瓶颈,使高性能c p u 的功能得以充分发挥,适应高 速设备数据传输的需要。 2 多总线共存:采用p c i 总线可在一个系统中让多种总线共存,容纳 不同速度的设备一起工作。通过h o s t - p c i 桥接组件芯片,使c p u 总线和 p c i 总线桥接:通过p c i i s a e i s a 桥接组件芯片,将p c i 总线与i s a 厄i s a p c i 总线桥接:通过p c i 。i s a e i s a 桥接组件芯片,将p c i 总线与i s a 厄i s a 西南交通大学硕士研究生学位论文第6 页 次性编程f p g a 器件( 内含p c i 协议硬核) ,缺点是需要专门的写入工具, 该写入工具价格昂贵,并且f p g a 只能一次性写入。三是自行用f p g a 设 计实现p c i 协议及其他逻辑功能,这种方式还具有开放成本低,可以根据实 际需要只实现部分p c i 接口功能的优点,但由于p c i 协议的复杂性,其接 口的实现会比较困难,设计的周期会较长且很难在短时间内做到稳定。此外 用可编程逻辑器件实现p c i 接口还会由于厂商不同的主板电气特性的差异 导致兼容性差。 另一种是采用专用p c i 接口芯片。这样就不用考虑逻辑的时序匹配和具 体传输过程以及电气规范,在使用时只需对各引脚作相对应的连接,就能通 过软件实现p c i 的各种功能,使开发人员能将工作重心转移到本地端的外围 电路设计并缩短了开发时间。 在本次设计中,由于只涉及了很少的高频器件,为节约开发成本,降低 开发难度,选用了专用p c i 接口芯片来实现设计方案。目i i 市场上常见的专 用桥接口芯片有a m c c 的s 5 9 3 3 ,p l x 的p c l 9 0 5 4 、p c l 9 0 5 6 ,c y p r e s s 的c y 7 c 0 9 4 4 9 等。p l x 的专用p c i 接口芯片p c l 9 0 5 4 具有性价比高、通用 性、兼容性好以及实现技术成熟的优点【卜3 1 ,因此我们选用它作为本系统的 p c i 桥芯片。 2 2c p c i 总线与p c i 总线的区别及优点 2 2 1c p c i 总线的架构 c p c i ( c o m p a c t p c i ) 的意思是“坚实的p c i ”,是当今第一个采用无源 总线底版结构的p c i 系统,是p c i 总线的电气和软件标准与欧式卡的工业 组装标准的有机结合,是当今最新的一种工业计算机总线标准。在电气、逻 辑和软件功能方面,c o m p a c tp c i 与p c i 完全兼容。 c p c i 规范是由p i c m g 制定的一种新的开放的工业计算机标准,用于 工业和嵌入式应用。由机箱,总线底板,适配器卡和电源组成。总线底板是 总线信号的物理互连机构,每块适配器卡应平行地插入机箱,垂直于地,卡 与卡的中心距为2 0 3 2 m m 。总线底板上连接器的编号从左到右依次为p 1 p 8 ,插槽的编号也依次为s 1 s 8 。系统中有一个槽是系统槽,该槽内插入系 西南交通大学硕士研究生学位论文 第7 页 统适配卡,其余的槽称为外围槽,插入外围适配卡,包括简单或智能i o 、 p c i 主设备适配卡等。系统槽必须定位在系统的最左端或最右端的位置。系 统适配器卡要负责提供总线仲裁、时钟分配、中断处理和复位等功能,还要 能通过管理每块外围适配卡的i d s e l ( 初始化设备选择) 总线信号负责系统 的初始化。c p c i 定义了封装坚固的工业版p c i 总线架构,在硬件模块易于 装卸的前提下提供优秀的机械整合性。它在电气、逻辑和软件功能等方面, 与p c i 总线标准完全兼容,而在结构上则选择了更加强壮的标准欧式总线的 结构。 c p c i 总线具有严格的技术规范,符合c p c i 技术规范的扩展卡可插入任 何c p c i 系统并可靠地工作,这使得其具有良好的兼容性。其采用的p c i 总 线的一个重要特点是其具有极高的数据传输速度,且p c i 总线可以从3 2 位 升级到6 4 位。1 9 9 5 年2 月,p c i s i g 通过了p c i 总线的6 4 位、6 6 m b s 技 术规范,在这种标准下,总线传输速率可以达到5 2 8 m b s ;同时,p c i 总线 支持线性猝发( b u r s t ) 方式,在该方式下,传输过程不需要c p u 的直接 干预便能完成;另外,p c i 总线与c p u 无关,可支持多处理器和并发工作; 同时,p c i 总线还允许平滑地从5 v 供电过渡到3 3 v 供电。所有这些特点, 都使得p c i 总线成为新一代微机的标准总线。 2 2 2c p c i 总线与p c i 总线的比较 c p c i 的总线操作遵循p c i 总线操作规程,c o m p a c t p c i 总线在p c i 的基 础上做了一些改进: ( 1 ) c p c i 总线由于采用了欧式卡结构( 符合i e e e1 l 叭1 标准) ,具 有更好的机械特性,这一特点增强了p c i 总线系统在电信或条件恶劣的工业 环境中的可靠性和维护性。 ( 2 ) c p c i 可支持更多的插槽,每个c o m p a c t p c i 总线段最多可支持8 个插槽,而不是标准p c i 的4 个。 ( 3 ) 后面板采用高密度2 m m 插针式连接器( 符合i e c 1 0 7 6 国际标准) , 它具有低电感和低阻抗的特性,这对p c i 信号是至关重要的。连接器的低阻 抗将不必要的信号反射减到最少。3 u 卡( 1 6 0 m m 1 0 0 m m ) 提供了4 7 排,5 列,2 2 0 针与背板的连接,而6 u 卡( 2 3 3 3 5 m m + 1 6 0 m m ) 更是提供了3 1 5 针与背板的连接,加上前面板的扩展,非常便于用户自定义i o 以及实现 西南交通大学硕士研究生学位论文 第1 1 页 ( 4 ) 良好的抗震性能。 ( 5 ) 具有多个供应商的标准底板。 ( 6 ) 与标准的p c i 硬件和软件器件完全兼容。 ( 7 ) 分级的电源引脚,以支持热切换卡。 ( 8 ) 支持多插槽底板( 典型为8 个卡槽,而典型的p c i 平台中只有四 个卡槽) 。 西南交通大学硕士研究生学位论文 第1 3 页 采用精简指令集,满足本课题要求。硬件设计主要包括雷达信号时序产生 板、雷达信号处理板和检测盒的设计实现。 3 1 雷达信号时序产生板 雷达信号时序产生板( s s g ,s t a l l d a r ds i g n a lg e n e r a t o r ) 模板,它的主 要功能是模拟雷达接收机,产生与实际雷达类似的时序信号( 如触发脉冲、 t f 北脉冲、方位增量脉冲等) 和雷达视频信号( 可以加载模拟产生或实际采 样的数据) ,这些信号有两个去向:一组信号通过专用连接电缆输出到检测 盒,用户可用示波器等仪器检查所产生信号的正确性;另一组信号输出到雷 达信号处理板( d s p 模块) 。具体来说,s s g 应产生两路相互独立可控、幅 度可调的视频信号( 2 5 v 2 5 v ) ,它们可被用户定义为正交的i 0 信号或 普通的低频波形发生器;与雷达脉冲t r ( f p l k h z 1 0 0 h z ) 同步,输出1 路触发信号( t t l 电平) ;正北信号的周期为n t r ( n = 8 1 9 2 或其它) ,在正 北信号后的每一个t r 都输出方位增量信号,方位信号为1 3 位码;输出方位 的方式有两种:串行或并行方式。除了上面描述的并行方式外,还有串行方 式( 串行并行方式由用户选择确定) 。雷达主钟为雷达工作时钟( 1 m h z ) , 其可控速率为:5 0 0 k h z 、4 0 0 k h z 、3 3 0 k h z 、2 5 0 k h z 。与雷达主钟脉冲同 步输出3 2 b i t s 数字i q ( i 、q 各占1 6 位) ,这些数据都由用户加载,周期 产生。在具体实现上,s s g 将采用高速、大容量f p g a 和大容量r a m 实现 波形的产生和变换。s s g 板的时序要求如图3 2 所示: 西南塞癸凳挈窃萃垂奏醴醛案叁薹 薹l 蓁 需酾酲鲑鞘彗塾幺爹舞藩疆埔雍赢剩臻薪铺鲋墅i 薹孚e 。! 和# ; 蠢鹾骧l s 珂l 塾羹办鞘觐:| 季莉辩叁鍪x 函鲫暖j :5 删5 l 舳i 纠弹对 蜊。酶 粪; 雾妻i 主 ;j ;* 、i j ! j ? j 1 w 7 | rj l j 二,慧 冀 霸嚣蕈妻。 一2 一一 一一 套黼燮 誊# 。;兰卿;蠹峪鏊夏蓥s 巨馐霹: g ! 孽峪强鼬递峪理j 麓璺罕必当捌托型翌殳剁甄鏊蒂矍琴瓣雕塑x 嚣譬。 萋 m 争;i 耄警l 磊酽蓟萄凛铆皤雌萎;制参e e 囊囊;繇甜甜善鲢叽i 萋| ”羹j j ! 言z 着待福器霪| 美鞋蔷科薹坚定辎篮梨莽垡婴并,茎霎! 囊罐搿潜 筮婴薜亘瑞鬃饼霉墓萤爵剐叁:霪:霎l ;g i 奏耋誊篓霎石藿墓 订8 二羹“善囊i l l 二莲= 褰辇e ; ;藿差;| 霉l 并i 黔剀簖炭芎匀鱼囊薹符植蠢鬟 堡垒担i j f ;。掣“;措 凝裂并终誉毁燃瑟萋u 砀坦避渊藤廷黪一j 篙似蕊孚常商州薹冀錾蔫婪移 西南交通大学硕士研究生学位论文第1 7 页 3 6 ) q 7 :s s g 板输出q 支路信号d 7 位。 3 7 ) q 8 :s s g 板输出q 支路信号d 8 位。 3 8 ) q 9 :s s g 板输出q 支路信号d 9 位。 3 9 ) q 1 0 :s s g 板输出q 支路信号d l o 位。 4 0 ) q l l :s s g 板输出q 支路信号d 1 l 位。 4 1 ) q 1 2 :s s g 板输出q 支路信号d 1 2 位。 4 2 ) q 1 3 :s s g 板输出q 支路信号d 1 3 位。 4 3 ) q 1 4 :s s g 板输出q 支路信号d 1 4 位。 4 4 ) q 1 5 :s s g 板输出q 支路信号d 1 5 位 其中检测盒在工作时的指示灯工作状况如图3 4 所示 图3 4 检测盒工作状态图 西南交通大学硕士研究生学位论文第1 9 页 包括i o 操作,可访问任何程序的内存区,当然是那些没有被翻出内存而被 存到磁盘的内存区。我们的不正确的代码将危及到w i n d o w s2 0 0 0 操作系统 的安全,所以,我们必须格外小心我们代码的边界条件,以确保它们不会损 坏整个操作系统。 w i n d o w s2 0 0 0 操作系统中对驱动程序的编写不再基于以往的w i n d o w s 9 x 下的虚拟设备驱动程序( v d d ,v i r t u a id e v i c ed r i v e r ) 模型,而是基于 一种新的驱动模式一w d m ( w i n d o w sd r i v e rm o d e l ) ,即w i n d o w s3 2 模式 驱动程序模型。这种驱动程序为w i n d o w s2 0 0 0 ,x p 操作系统的设备驱动程 序提供了统一的框架。w d m 来源于w i n d o w sn t 分层3 2 位设备驱动程序 模型( l a y e r e d3 2 一b i t sd e v i c ed r i v e rm o d e l ) 。w d m 驱动程序模型,是 m i c r o s o f t 全力推出的驱动程序模式,旨在提供一种灵活的方式来简化驱动 程序开发,实现对新硬件的即插即用,减少并降低驱动程序开发的数量和复 杂程度。 图4 1w i n d o w s2 0 0 0 系统结构 上层应用程序通过w d m 驱动程序与底层硬件进行通讯的过程如图4 1 所示。应用程序对设备i o 进行w i n 3 2a p i 函数调用,这个调用由i o 系统 服务接收,i o 管理器从这个请求构造一个合适的请求包( i r p ) ,然后将其传 。西南交通大学硕士研究生学位论文 第2 0 页 递给设备驱动程序,设备驱动程序与硬件打交道,并完成i l 冲的处理,最后 i o 管理器把数据和结构返回给w i n 3 2 和用户应用程序。 w d m 驱动程序是一种p n p ( p l u ga n dp l a y ) 驱动程序,p n p 驱动程序就是 一种遵循w i n d o w s2 0 0 0 即插即用协议的内核模式驱动程序。它同时还遵循 电源管理协议,并能在w i n d o w s9 8 和w i n d o w s2 0 0 0 间实现源代码级兼容。 w d m 驱动程序还细分为类驱动程序( c i a s sd r i v e r ) 和迷你驱动程序 ( m i n i d r i v e r ) ,类驱动程序管理属于已定义类的设备,迷你驱动程序向类驱动 程序提供厂商专有的支持【j ”j 。 4 1 2w d m 驱动程序的层次结构 在w d m 驱动程序模型中,每个硬件设备至少有两个驱动程序。其中一 个驱动程序称为功能( f u n c t i o n ) 驱动程序。它了解硬件工作的所有细节,负 责初始化i o 操作,有责任处理t o 操作完成时所带来的中断事件,有责任 为用户提供一种设备适合的控制方式。另一种称为总线( b u s ) 驱动程序,它 负责管理硬件与计算机的连接。 w d m 模型使用了如图4 2 的层次结构。图中左边是一个设备对象堆栈。 设备对象是系统为帮助软件管理硬件而创建的数据结构。一个物理硬件可以 有多个这样的数据结构。处于堆栈最底层的设备对象称为物理设备对象 ( p d o ,p h y s i c a ld e v i c e0 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 d o 的上面和下面还会 有一些过滤器设备对象。位于f d o 上面的过滤器设备对象称为上层过滤器, 位于f d 0 下面( 但仍在p d o 之上) 的过滤器设备对象称为下层过滤器。 西南交通大学硕士研究生学位论文 第2 1 页 曰 田 叵 田 图4 2w d m 驱动程序的层次结构 w d m 驱动程序模式是建立在物理驱动程序对象( p d o ) 和功能的设备对 象( f d 0 ) 的分层的结构上,一般的,p d 0 是用来使每个物理硬件和一个总 线相联系和假定由硬件实现多个函数公共的低层设备控制。f d o 是用来使 每个逻辑或者抽象函数提供给高层的软件。 c p c i 总线驱动模块直接和c p c i 总线打交道,控制c p c i 总线完成设备 初始化、设备问数据传输、设备属性配置等操作。按照这些功能可以将c p c i 交换平台划分为几个小模块:平台初始化模块,c o m p a c tp c i 数据传输模块, 中断处理模块,配置管理模块。这几个子模块处于c p c i 操作的不同时期或 者行使不同功能,它们协同工作才能使c p c i 总线驱动正常运行。初始化模 块用于设备启动的时候对c p c i 总线驱动的一些基本设置,包括寄存器配 胃,中断绑定等;c p c i 数据传输模块使用适当的传输方式来满足上层应用 程序提出的数据交换要求以达到高效、正确;中断模块配合数据传输模块工 作,在数据传输过程中适时产生中断,并调用预先定好的中断服务程序进行 传输后的数据处理、通知等工作:配置管理模块提供对c p c i 总线驱动的配 置接口,满足上层程序对c p c i 参数配置的需求,同时也提供动态配置的功 能,实现热插拔。 西南交通大学硕士研究生学位论文 第2 2 页 4 2 开发工具的比较与选择 对于开发w d m 模型的驱动程序,m i c o r s o r 和不少第三方公司提供了工 具主要是:w i n d o w sd d k 、w i n d r i v e r 和d r i v e r s t u d i o 。 d d k ( d r i v e rd e v e l o p m e n tk i t s ) 是m i c r o s o r 为其各操作系统提供的驱动 开发软件包,该软件包为驱动程序开发者提供了用于驱动程序开发的编译连 接程序、开发技术文档、开发实例等。但开发人员需要阅读大量d d k 文档, 深入了解操作系统的内核工作方式,在自行编写代码时会面临电源管理、即 插即用、多处理器安全、例程运行优先级等问题,开发难度大,开发周期长。 w i n d r i v e r 是j u n g o 公司的辅助驱动开发软件,支持常见的p c i 芯片厂 商。它通过自己的v x d 和s y s 文件的交互来达到驱动硬件的目的,驱动程 序中的所有函数都是工作在用户模式下。这使得开发人员不需要熟悉操作系 统的内核知识。不用了解驱动开发的底层情况,使开发变得容易。但开发出 来的驱动程序效率不高,速度不够快。虽然w i n d r i v e r 提供的内核插件 f k e m e lp l u n i n ) 在一定程度上解决了这个问题,但如果使用了内核插件,开 发人员又必须去学习驱动开发底层方面知识。 c o p u w a r e 公司的d r i v e r s t u d i o 是一套为简化w i n d o w s 驱动程序的开发、 调试及测试的工具包。其中有:w d m 和w i n n t 的驱动程序开发软件 d f i v e r w o r k s 、w i n d o w s 操作系统内核模式调试软件s o m c e 和开发 w i n 9 x ( w i n d o w s 9 5 和、聃n d o w s 9 8 ) 的虚拟设备驱动程序( v x d ) 的v t 0 0 1 s d 。 d r i v e r w o r k s 完全支持w d m 驱动程序,这个框架结构提供可以正确执行 w d m 动态环境中的i r p 的请求,而且,它以面向对象( o o p ) 的方式,将编 写w d m 驱动程序所需的对内核及硬件的访问封装成类,这样只要在它的向 导程序指引下,根据硬件的具体情况设置必要参数,就可以很方便地完成驱 动程序的框架。最后根据具体的要求添加新的类对象和所需代码m 1 。 d r i v e r w o r k s 是基于v i s u a lc + + 6 0 或v i s u a ls t d i o n e t 的,它生成的是标准 的v c 工程,只要将所建的工程在v c 下编译,就可以生成最终的设备驱动 程序。d r i v e r w o r k s 只是将d d k 中的函数封装成类,因此,对执行的速度 影响较小,同时,封装成类并提供了程序的框架,方便了对驱动程序的编写。 因此,在开发采集卡驱动程序过程中,将采用d r i v e r w o r k s 作为开发工具。 西南交通大学硕士研究生学位论文第2 4 页 第三步:安装d r i v e r s t u d i o3 2 。 如果安装成功,编译环境如图4 - 3 : 图4 3 编译环境菜单 要注意的是,在进入v c + + 编译驱动之前,首先必须用d d kb u j l d s e t t i n 2 工具设置编译环境,即丌始一 d d k b u i l de n v i r o n m e n t 下面应该有 “c h e c k e d b u i l d ”和”f r e eb u i l d “两个菜单项,点击进去之后,在命令行输 入b u i l d 弋z 便可。在第一次使用前,还必须先类编译v d w l i b s d s w 工程以 创建自己的库文件。否则编译w d m 程序时,会出现编译错误。当环境设置 成功,就能成功编译。 4 4 2 利用d r i v e r s t u d i o 生成驱动程序框架代码 d r i v e r w i z a r d 是d r i v e r w o r k s 创建w d m 框架程序的工具,它可以生成驱 动程序的大体框架,从宏观上建立驱动程序的主题结构,给我们在编程过程 中带来了极大的方便。创建一个w d m 程序框架。d r i v e r w i z a r d 的每个步骤 选择的参数都是可选的,需要根据具体要完成的功能来选择。选择后生成最 基本的框架,能够编译出j 下确的驱动程序,并且能够安装。下面我们只介绍 几个关键步骤,有些简单步骤省略。 s t e p l :建立工程,输入项目名称和路径,本课题设计到两个驱动程序, 项目名称分别为“s d 7 5 2 0 ”和“s d 7 5 2 2 ”,项目路径为“e :l y l p m i e c t ”。 下面以“s d 7 5 2 0 ”为例介绍。 西南交通大学硕士研究生学位论文 第2 5 页 图4 4 建立工程项目 step2:选择驱动模式为wdm驱动模型; st印3:选择生成驱动程序的总线类型pci总线,设置硬件的vendori d 、d e v i c e id、subsystemi d 和r e v i s i o ni d ,这些信息设置是为安装信息文件 ( + i n f ) 的生成创建提供依据。如图4 5 此信息一定要填写f 确,否则会导 致安装驱动程序时出错。 图4 一x 鹜霾薹i ! i 麓替誊蔓萎| ;i 毳 毒;i 雩i ;号显:垂手雍状态显不;赘翳鲤錾鼙2 平台是个可编程再罐;嚣翥 掣詈嚣嘉掣f 烈翼霸筘垂一l = 西南交通大学硕士研究生学位论文 第3 0 页 d e l e t ep d e v i c e ; ) e l s e mu n i t + + : p d e v i c e r e p o r t n e w d e v i c e p o w e r s t a t e ( p o w e r d e v i c e d o ) ; ) r e n j ms t a t u s : 4 5 3 对地址空间的访问 处理器有两种独立的地址空间:内存地址和i 0 地址。在内存地址空间 的范围称为内存映射,在i 0 地址空间的范围称为i o 映射。d r i v e r w o r k s 提供了两个类来实现对映射芯片的访问:k m e m o r y r a n g e 类实现对内存映 射芯片的访问,k i o r a n g e 类实现对i o 映射芯片的访问,这两个类除了其 中的构造函数不同之外,其他成员函数完全相同。本驱动程序中用 k m e m o r y r a n g e 类和k i o r a i l g e 类申明变量如下: k m e m o r y r a n g em m e m o r y r a n g e 0 ; k m 锄o r y r a n g em m e m o r y r a n g e l ; k i o r 肌g en l i o p o n r a n g e 0 ; 接着在w d m 驱动程序的启动例程( 0 n s t a r t d e v i c e ( k i r pi ) ) 中初始化 k m e m o r y r a n g e 类和k l o 鼬吡g e 类实例,代码如下: s t a t u s = m m e m o r y r a n g e o i n i t i a l i z e ( p r _ e x 西南交通大学硕士研究生学位论文 第3 2 页 破坏、甚至系统崩溃等严重的后果。因此驱动程序必须通过某种方式对这些 操作进行串行化处理,当硬件设备处于忙状态时,将irp排队;当硬件处于 空闲状态时,将排队的irp取出处理。本文采用驱动程序来管理irp队列, 每处理一个i r p ,i 0 管理器就调用一次s t a r t i o 例程: v o i ds d 7 5 2 0 d e v i c e d r i v e r m a n a g e d q u e u e :s t a r t i o ( k i r p i ) s d 7 5 2 0d e v i c e + p d e v = ( s d 7 5 2 0 d e v i c e4 ) k d e v i c e p t r ( i d e v i c e o b j e c t ( ) ) ; i f ( ! i 1 1 e l 嚣墼薹三i i 薹姜号j l i 壅萝譬j ;莲建| 嚣i 运蒌? i 藿! 毫誊莘童一羞荸;圭鑫誊? 墓 擎三圭i t = i j 萝霎薹哥 霉主;毒 ;l 、生| ; l l 二;簧4 ) 初始化:加载默认的s s g 板和d s p 板的程序。 ( 5 ) 数据加载:用于选择待加载到雷达信号时序产生板的数据文件 ( 仿真产生的) 。通过打开文件的对话框进行数据加载。 ( 6 ) 显示达信号时序产生板的数据文件(仿真产生的)。通过打开文件的对话框进行数据加载。 (6)显示控制:用于控制模拟终端显示软件的显示方式,包括方位刻x 西南交通大学硕士研究生学位论文 第3 6 页 u l o n g r e t = m m e m o r y r a i l g e l i n d ( p c h s ) ; i i n f o r m a t i o n ( ) = s i z e o “d m a r e a d ) ; s t a t u s = s n 盯u s s u c c e s s ; 4 6 驱动程序的封装 为了驱动程序的保密性和适应应用软件开发编译器的不同,我们采用标 准动态连接库( d l l ,d y n a m i cl i n k a b l el i b r a r y ) 封装驱动程序。d l l 调用 不需要重复编译和分别连接库函数,链接器从中拷贝需要的所有库函数后, 只是把确切的函数地址传送给调用这些函数的程序。并不把d l l 文件链接 到程序上,直到程序运行并调用个d l l 中的函数时,该程序才要求应用程 序从这个d l l 函数的地址中寻找被调用函数并执行。采用动态链接库方式封 装驱动程序具有尽可能的代码复用,减轻光栅显示软件编程的工作量和节省 内存空间等优点。 当要封装驱动程序时,先生成d l l 的工程项目,再把驱动程序中的 s d 7 5 2 0 i o c t l - h 、o p e n b y i n t f i c p p 、s d 7 5 2 0 d e v i c e i n t e r f k e h 文件拷贝至0d l l 项目文件中,调用函数d e v i c e i o c o n t r o l ( ) 进行访问链接。d l l 封装好后, 当应用程序要调用d l l 的话,只需把s d 7 5 2 0 d i i 文件拷贝到应用程序的工 程目录下,调用s d 7 5 2 0 h 文件中提供的函数。需要注意的是,在编写 s d 7 5 2 0 h 文件时一定要对每个函数的功能和使用详细说明。本设计中根据 处理板功能的需要,共封装了9 个函数,它们分别是: i n i t ( h a n d l eh e v e n t )包括初始化设备和d m a 初始化 l o a d d s p c o d e ( c h a r + p f i l e n 锄e )加载d s p 程序 l o a d f p g a c o d e ( c h a r + p f i l e n a m e ) 自口载f p g aj 坚序 r e s e t d s p ( )复位设备 向设备普通方式写数据 s e t d s p d a t a ( u l o n ga d d r ,p u l o n gd a t a p o i m e r ,u l o n gl e n 昏h ) 从设备普通方式读数据 g e t d s p d a t “u l o n ga d d r ,p u l o n gd a t a p o i n t c r ,u l o n gl e n 昏h ) 从设备d m a 方式读数据 d m a r e a d ( u l o n ga d d r p u l o n g d a t a p o i m e r ,u l o n gl e n g t h ) 西南交通大学硕士研究生学位论文第3 8 页 4 8 本章小结 图4 8 安装成功 本章首先对w d m 驱动开发模型进行了简要的理论知识介绍。在比较几 种驱动开发工具的基础上,最后决定采用d r i v e r s t u d i o 中的d r i v e r w o r k s 来 开发雷达信号处理数据采集卡的驱动程序,并详细讨论了其开发过程及其驱 动程序的封装。最后,介绍了安装驱动程序方法。在编写驱动程序时发生掉 数据包情况的话是很严重的问题,在开发时一定要计数测量。开始,我们采 用消息通知的采数方式就出现了掉数据包情况,后来改用事件通知的方式并 让每数据包尽量小的话解决了此问题。 西南交通大学硕士研究生学位论文第4 0 页 开发者提供了一个比g d i 层次更高,功能更强,操作更有效,速度更快的应用 程序图象引擎。与此同时,也努力使其保持了设备无关的优良特性。 d i r e c t d r a w 允许开发者在应用程序运行期测定显示硬件的特性,然后,充分利 用主机硬件设备的加速特性为用户提供可能的最优的显示速度和效果。 d i r c c t d r a w 集成了开发二维图形的所有a p i 函数,提供了一个直接访问 显示设备的软件接口,d i r e c t d r a w 提供了对显存的设备相关访问的设备无关 途径。使用d i r e c t d r a w 你可以方便的操作显存,充分的利用不同类型的显示 设备的位转换和颜色压缩能力,而不需要依赖于某一种特定的硬件。 d i r e c t d r a w 为你提供了描述真正的显示内存的画图页面,这意味着当你使用 d i r e c t d r a w 的时候,你可以直接对显卡上的内存读写,这就极大的提高了图形 程序处理速度。同时,这些页面表现为连续的内存块,这使得你可以很容易 的进行地址操作,这是以往的w i n d o w s 程序员所不能的【45 1 。另外,我们利 用d i r e c t d r a w 还可以生成、移动、剪切、转换、合成图像数据,从而编写 出各种“炫丽多彩”图形的应用程序。 在雷达光栅扫描显示软件编程实现中,我们就充分利用了d i r e c t d r a w 组 件的这些优点。 5 1 2d i r e c t d r a w 的体系结构 d i r e c t d r a w 提供的一种机制可以绕过w i n d o w sg d i ,使开发人员可以以 一种最简洁、最合适的方法访问计算机的硬件设备,不必自己为视频寄存器 编码。d i r e c t d r a w 可以把你提供的图像非常迅速地送上屏幕。通过g d i 函 数对d i r e c t ) ( 是一种基于c o m 的系统,它既不属于驱动程序层,也不属于 应用程序层。其主要目的是在提供某种设备独立性的同时获得高速度。为此, 微软设计了如图5 】所示的体系结构。 西南交通大学硕士研究生学位论文第4 l 页 应用程序 tt w i n d o w sa p i i d i r e c t d r a w f 子系统 0t i t h e l il l 二二j 1 w i n d o w s 驱 h a l 动程序接口 f 上, , 上 应用程序 图5 一ld i r e c t d r a w 的体系结构 d i r e c t d r a w 包含两个重要部分:h a l ( h a r d w a r ea b s t r a c t i o nl a v e r ) 和 h e l ( h a r d w a r ee m u l a t i o nl a y e r ) 。h a l 是硬件抽象层,d i r e c t d r a w 通过 h a l 来提供设备无关的特性。h a l 是由设备生产商提供的指定设备的接口, d i r e c t d r a w 用来直接操作显示硬件,负责测定本机的硬件功能,并以独立于 设备的方式提供这些功能。对本机硬件不支持的功能由h e l 即硬件虚拟层 负责实现。h e l 与h a l 一样,代表了d i r e c t d r a w 的特性,并且应用程序从 来不直接与h e l 一起工作。结果是,d i r e c t d r a w 对硬件的主要特性都提供了 透明的支持,而不管这个特性是通过h a l 硬件支持的还是通过h e l 软件仿 真的。 5 1 3d i r e c t d r a w 接口 d i r e c t d r a w 提供了基于c o m 的服务接口,c o m 是接口重新利用的基于 对象的系统的基础,是c o m 编程的核心模型,它也是一种接口规范。使用 最多的是i d i r e c t d r a w 2 、i d i r e c t d r a w s u r f a c e 3 、i d i r e c t d r a w c o l o r c o n t r o l 、 i d i r e c t d 肿a l e t t e 、j d i r e c t d r a w c l i p p e r 和i d j r c c t d r a w v i d e o p o n 。除了这些 接口外,d i r e c t d r a w 继续支持以前版本的接口。 d i r e c t d r a w 对象表征了显示适配器,通过i d i r e c t d r a w 和i d i r e c t d r a w 2 接 西南交

温馨提示

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

最新文档

评论

0/150

提交评论