(测试计量技术及仪器专业论文)基于pxi数字图形io模块软件设计.pdf_第1页
(测试计量技术及仪器专业论文)基于pxi数字图形io模块软件设计.pdf_第2页
(测试计量技术及仪器专业论文)基于pxi数字图形io模块软件设计.pdf_第3页
(测试计量技术及仪器专业论文)基于pxi数字图形io模块软件设计.pdf_第4页
(测试计量技术及仪器专业论文)基于pxi数字图形io模块软件设计.pdf_第5页
已阅读5页,还剩74页未读 继续免费阅读

(测试计量技术及仪器专业论文)基于pxi数字图形io模块软件设计.pdf.pdf 免费下载

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

文档简介

一1 1 l t 独创性声明 i i i l frrfriillr i i l l i i ir i l ijlrij l l i l i t i i h ;l l i l y 17 4 0 2 0 9 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:乏酷垄毕 日期: 抄,蕾年口1 必日 论文使用授权 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名_ 埘导师签名: 日期:舢 j r 摘要 摘要 针对数字化产品日益成熟的今天,各种系统都需要更加精密的数字测试工具, 对于仅有简单的开关功能的逻辑分析仪等都已经很难满足需求了。新的逻辑元件 系列的开发,涌现了不同的电压级、单端信号及差分信号,测量也越来越向着复 杂化的趋势发展。而数字图形i o 模块正可以满足高精度测量,单端信号,差分 信号的要求,弥补现市场上测试仪器的不足。 数字图形i o 模块是基于p x i 总线开发的。p x i 作为一种专为工业数据采集与 自动化应用度身定制的模块化仪器平台,内建有高端的定时和触发总线,再配以 各类模块化的i o 硬件和相应的测试测量开发软件,就可以建立完全自定义的测 试测量解决方案。 本文主要构建基于p x i 的数字图形i o 模块的软件结构:开发w d m 模型的p c i 设备驱动程序,选择驱动例程,并设计对i r p 数据包进行处理或者信息传递,同 时解决同i d 号多模块同时工作时的识别问题;使用v c 6 0 开发仪器模式驱动程序, 根据通信协议及数字图形i o 模块工作流程封装函数,提供动态链接库,使应用 程序可以方便的利用这些接口函数实现模拟测试的功能而不用关注模块的硬件抽 象层的协调工作;最后使用l a b v i e wc v i 开发数字图形i o 模块人机交互界面软 件,构建虚拟仪器,由此实现板卡功能的测量系统。 经过测试表明:该数字图形i o 可实现多通道数字量信号高速的输入和输出, 具有实现多通道同步复杂时序关系的输入输出;接收和发送来自被测器件的图形 数据,通过与预期的正确结果进行比较,完成被测电路的功能测试等功能。用它 组建的测试系统,具有测试速率快、可靠性高和诊断精度高等特点,能够满足不 同电子产品测试的要求,可广泛应用于数字系统的在线故障诊断、总线仿真、微 处理器仿真以及电子装备故障诊断等场合 关键词:i r p ,多卡识别,图形i o a b s t r a c t a b s t r a c t m o s tc u g i t a la u t o m a t e dt e s te q u i p m e n t ( a t e ) s y s t e m sg e n e r a t ea n d o ra c q u i r e p a t t e r n so fi sa n do st oc o m m u n i c a t e w i t had e v i c eu n d e rt e s t w i t hr e c e n ti n n o v a t i o n s i nd i 百t a lc o m p o n e n t s ,h o w e v e r , t h e s es y s t e m sr e q u i r eam o r es o p h i s t i c a t e dd i g i t a lt e s t e r w i t hc a p a b i l i t i e sb e y o n das i m p l el o g i ca n a l y z e rw i t ht w oo n o f fs t a t e s f a s t e rc h i p s p e e d sa n dt h ei n d u s t r yt r e n dt o w a r d s e r i a lv e r s u sp a r a l l e ld i g i t a lp r o t o c o l sa r e n e c e s s i t a t i n ge v e rh i g h e rs a m p l i n gr a t e s i na d d i t i o n ,t h ee m e r g e n c e o fd i f f e r e n tv o l t a g e l e v e l ss u c ha ss i n g l e e n d e ds i g n a l sa n dd i f f e r e n t i a ls i g n a l ss p r i n gf i o mn e w s e r i e so f l o g i cd e v i c e sd e v e l o p m e n tw h i c hr e q u i r em o r e a n dm o r ec o m p l e xm e a u r e m e n tt o w a r d s t h ed e v e l o p m e n t t h i sp a t t e r ni om o d u l e sc o u l dm e e th i 曲一p r e c i s i o nm e a s u r e m e n t , s i n g l e - e n d e ds i g n a l s ,d i f f e r e n t i a ls i g n a l s w h i c ni s r e q u i r e d t om a k eu pf o rt h e i n a d e q u a t eo f t e s te q u i p m e n t p a t t e r ni 0m o d u l ei sd e v e l o p e db a s e do np x ib u sw h i c hi sb u i l ti nh i 曲一e n d t i m i n ga n dt r i g g e rb u s t e s ta n dm e a s u r e m e n t s o l u t i o n sw i t ht y p e so fi om o d u l a r sa n d c o r r e s p o n d i n gs o f t w a r ec o u l d b u i l di nu s e r d e f i n e dw a y s o f t w a r es t r u c t u r eo fp x i - b a s e dp a t t e r ni om o d u l ei s d i s c u s s e di nt h i st h e s i s s e l e c t i n gd r i v e rr o u t i n e si sp r i n c i p a lj o bo fw d m m o d e ld r i v e rw h i c hr e s p o n s i b l ef o r i r p p a c k e tp r o c e s s i n ga n dt r a n s f e r r i n g t h e nd e v e l o p i n gi n s t r u m e n t - m o d ed r i v e r w h i c h e n c a p s u l a t i o nf u n c t i o n sa c c o r d i n gt oc o m m u n i c a t i o np r o t o c o l sa n dw o r kp r o c e s s e s ,a n d p r o v i d ed y n a m i cl i n kl i b r a r y ( d 1 1 ) f i n a l l yd e v e l o p t h em a i l m a c h i n ei n t e r f a c eb y l a b v i e wc v i ,t h a tm o d u l e sc o u l du s et h i si n t e r f a c ef o rs e l f - t e s t i n g t h i sp a t t e r ni oc a l la c h i e v eh i g h s p e e dm u l t i c h a n n e ld i g i t a ls i g n a li n p u ta n d o u t p u t , w i t hc o m p l e xs y n c h r o m z e dr e l a t i o n s h i p ;r e c e i v ea n dt r a n s m i t 蓼a p h i cd a t af r o m t h ed e v i c ea n dc o m p a r ew i t he x p e c t e dd a t at h a tt e s t i f yt h i se q u i p m e n ti si nn o r m a l o p e r a t i o n t e s ts y s t e mb u i l du pw i t ht h i sm o d u l e i sr e l i a b l ea n dp r e c i s ei nt e s t i n g ,a n dc a l l b ew i d e l yu s e df o ro u l i n ed i a g n o s i s ,b u ss i m u l a t i o n ,m i c r o p r o c e s s o rs i m u l a t i o na n d d e c t r o m ce q u i p m e n t k e y w o r d s :i r p , m u l t i - c a r di d e n t i f i c a t i o n ,p a t t e r ni 0 j 目录 目录 第一章引言 1 1 课题研究背景与意义1 1 2 数字图形i o 模块的发展现状。1 1 3 课题任务2 1 4 本文结构安排3 第二章数字图形i o 模块软件总体方案设计 4 2 1 系统总体结构与功能分析4 2 2 系统总体软件设计6 2 2 1设备驱动程序设计7 2 2 2 动态链接库程序设计7 2 2 3 人机交互界面设计8 第三章数字图形i o 模块设备驱动程序设计 9 3 1 设备驱动程序设计需求分析9 3 1 1p l x 9 0 3 0 接口芯片配置9 3 1 2w d m 驱动特性及图形i o 模块例程分析选择1 1 3 2 图形i o 模块设备驱动程序基本构架设计1 3 3 2 1 d r i v e r e n t r y 例程设计1 3 3 2 2u n l o a d 例程设计1 5 3 2 3a d d d e v i e e 例程设计1 5 3 3 图形i o 模块设备驱动程序功能设计与实现1 8 3 3 1p o w e r 例程设计1 8 3 3 2p n p 例程设计1 9 3 3 3d i s t r i b u t e 例程设计2 1 3 4 图形f o 模块设备驱动程序的调试安装2 4 i i i 目录 3 4 1 设备驱动程序的调试2 4 3 4 2 图形f o 模块设备驱动程序的安装2 8 3 5 本章小节3 5 第四章数字图形i o 模块动态链接库程序设计。3 6 4 1 动态链接库程序设计需求分析3 6 4 2 驱动程序与应用程序的通信设计3 6 4 2 1应用程序与驱动程序通信设计37 4 2 2 驱动程序与应用程序通信设计一3 9 4 3 图形i o 模块动态链接库程序功能设计4 0 4 3 1 设备管理功能。4 0 4 3 2l v t t l 离散数据输入输出功能4 3 4 3 3l v t t l 图形数据输出功能4 5 4 3 4 计数器计数功能4 7 4 3 5r s 4 2 2 电平分析功能4 9 4 3 6r s 4 2 2 图形数据输出功能5 0 4 。4 本章小节5 1 第五章数字图形i o 模块人机界面设计与模块功能验证5 3 5 1 人机界面需求分析5 3 5 2 人机界面软件设计5 3 5 3 数字图形i o 模块功能测试5 5 5 4 本章小结6 0 第六章总结与展望 致谢 参考文献 附勇之。 6 2 个人简历及研究生期间取得的研究成果6 9 i v 第一章引言 1 1 课题研究背景与意义 第一章引言 在数字计算机广泛应用、数字产品日益成熟的今天,不论被测对象传递的是 数字信号还是模拟信号,在与计算机的交互过程中,最终都要进行数字信号的输 入输出。多数数字化自动测试设备( a t e ) 系统通过生成采集0 、1 信号来与被测设 备( d u t ) 通信。然而,随着数字元件的不断创新,系统需要更精密的数字测试工具, 简单开关状态的逻辑分析仪已经很难能满足需求。更快的芯片速度,以及当前工 业趋势中串行与并行数字协议的对比,都要求更高的采样率。此外,来自制造商 及产品上市时间的压力,也要求在硬件级上更快速地完成测试。随着新逻辑元件 系列的开发,包括了不同电压级、单端信号或差分信号,测量应用也日趋复杂化。 而数字图形i o 模块正是为了满足高速数字化测试应用的需要而设计。目前,数 字i o 设备已经在自动化检测系统、数字化模式发生器、电子和逻辑测试、面板和 芯片校验、并行数字通信、模数和数模转换检测、电信设备检测等各个领域得到 广泛应用【1 1 。 使用数字图形i 0 模块组建的测试系统,具有测试速率快、可靠性高和诊断精 度高等特点,能够满足不同电子产品测试的要求,可广泛应用于数字系统的在线 故障诊断、总线仿真、微处理器仿真以及电子装备故障诊断等。 本课题结合了专为测试任务设计的p x i 硬件平台,p x i 仪器系统是在p c i 总线 内核技术上增加了成熟的技术规范和要求形成的。它通过增加用于多板同步的触 发总线和参考时钟、用于进行精确定时的星形触发总线、以及用于相邻模块间高 速通讯的局部总线来满足试验和测量用户的要求。p x i 硬件平台已经成为当今测 试、测量和自动化应用的标准平台,数字图形i o 模块结合p x i 总线平台具有灵 活性高的优点,且p c 技术的成本低,对构建测试系统具有极大的优势。 1 2 数字图形i 0 模块的发展现状 数字图形i 0 模块现普遍应用于离散控制、信号开关、计算机与外部设备的接 口、数字通讯设备的测试等领域。它可配合上位机软件,将输入输出的信号波形 电子科技大学硕士学位论文 显示在软面板中,方便用户观察。美国国家仪器公司提供各类数字i o 产品,它 们具有不同的传输速度、电压以及定时选项,可满足用户在测试、控制及设计应 用中的各种需求。 许多应用都需要数字输入、输出功能,如生成高级模式描述自定义电路、工 厂车间中安装自动化控制线、或是数字设计的原型建模。美国国家仪器公司提供 丰富的数字i o ( d i o ) 产品,包括不同速度、电压、及定时选项,适用于测试、控 制、及设计等各类应用【2 】。 数字i o 模型设计结合p x i 总线技术,融合了p x i 系统的强大总线性能,同 步特性,使系统拥有可靠、灵活、易用和廉价的特点,可以满足大多数的测试和 控制应用的需求。借助虚拟仪器技术,结合高效灵活的软件来完成各种测试、测 量和自动化的应用。灵活高效的软件能帮助您创建完全自定义的用户界面,模块 化的硬件能方便地提供全方位的系统集成,标准的软硬件平台能满足对同步和定 时应用的需求。只有同时拥有高效的软件、模块化i o 硬件和用于集成的软硬件平 台这三大组成部分,才能充分发挥虚拟仪器技术性能高、扩展性强、开发时间少, 以及出色的集成这四大优势。软件是虚拟仪器技术中最重要的部份。使用正确的 软件工具并通过调用特定的程序模块,工程师和科学家们可以高效地创建自己的 应用以及友好的人机交互界面。n i 公司提供的行业标准的图形化编程软件n i l a bv i e w ,不仅能轻松方便地完成与各种软硬件的连接,更能提供强大的数据处 理能力,并将分析结果有效地显示给用户。 1 3 课题任务 该数字图形i o 模块基于p x i 总线测试平台,可根据用户需要产生离散数字 i o 信号或脉冲序列信号,设计指标要求图形数据的通道存储深度为2 5 6 k ,可独立 编程为输入或输出通信,时钟频率最高可达1 0 m h z ,能够在很短的时间内完成图 形数据的装载及数字信号的输入输出。 该模块具有可靠性好、精度高、功耗小的特点,适用于要求高质量数字激励 响应测试并保持一定时序关系的应用场合。它能模拟信号图形,也可以通过编程 产生正常工作所需要的数字图形、控制等信号,可广泛应用于数字系统的在线故 障诊断、总线仿真、微处理器仿无休止以及电子装备故障诊断中。 2 第一章引言 1 4 本文结构安排 由数字图形i o 模块的软件设计任务出发,本文安排结果如下: 第一章引言 根据需求分析明确本课题的研究意义,分析国内外的研究现状以及发展态势, 有根据课题的目标和任务来安排论文的整体结构。 第二章图形i o 模块软件总体方案设计 分析p x i 数字图形i o 模块的特点,根据课题的功能需求安排软件开发的总 体软件设计方案。 第三章图形i o 模块设备驱动程序设计与实现 阐述驱动程序的设计过程。根据模块功能需求,配合硬件接口资源配置 p l x 9 0 3 0 专用接口芯片的,选择w d m 驱动模型开发设备驱动程序。 设备驱动程序设计主要由例程的设计组成,本章主要对于构成基本框架的例 程设计进行介绍,对选择的功能例程进行设计分析,共同协调实现模块的功能。 一个完善的驱动程序需要借助调试工具对驱动程序进行内核的调试,保证功能的 稳定性。最后本章对于安装驱动文件i n f 文件后操作系统的注册表的产生的变化进 行了分析。 第四章图形i o 动态链接库程序设计与实现 本章主要介绍动态链接库的设计。根据数字图形i o 模块的通信协议及工作流 程封装函数,提供a p i 接口,这样就方便了应用程序对模块的调用而不用关心与 硬件抽象层的工作协调。 第五章图形i o 模块人机界面设计与功能验证 结合应用背景,从数字图形i o 模块功能实现的角度并结合使用同类仪器的操 作经验开发应用软件。使用设计的应用软件对模块的各个部分的功能进行测试, 验证模块的功能符合要求。 第六章总结与展望 总结工作,提出目前数字图形i o 模块设计中存在问题,给出需要进一步研究 改进的建议和解决方法。 3 电子科技大学硕士学位论文 第二章图形i 0 模块软件总体方案设计 2 1系统总体结构与功能分析 数字图形i o 模块是插入到p x i 机箱中使用的,主机通过p x i 总线控制i o 模 块。通过硬件软件的结合,最终实现了图形数据模块的各种功能。图2 1 即从在操 作系统的角度分析模块总体的工作流程。 用户模式 内核模式 = 嘴君程 掣器程 i o 管理器一 图形i o 设备驱 动程序 系统服务接口 传递m p 给驱动程序派遣函数 图2 - 1 数字图形i o 模块总体工作结构 操作系统的总体设计是基于分层设计的思想的,每层由若干个组件组成。操 作系统作为一个整体,它的运行依赖于上层组件向下一层组件的调用。数字图形 i o 模块基于操作系统的工作结构由上到下可以分为软件应用程序,动态链接库程 序,设备驱动程序,硬件四个部分。用户操作数字图形i o 的应用程序( 如人机界 面) 进行功能测试操作,模块的动态链接库程序就会被调用,该p x ii o 动态链接 库程序中封装了用户模式与内核模式通信设计,动态链接库程序调用了w i n 3 2 的 a p i 接口,而w i n 3 2 子系统的a p i 是通过n a t i v ea p i 实现的,n a t i v ea p i 是从用 户模式进入内核模式的大门,它实现了内核的系统服务的调用。内核服务接口将 接到的消息传送给i o 管理器。i o 管理器是负责发起i o 请求,并管理这些请求, 4 第二章图形i o 模块软件总体方案设计 对于消息创建相应的i r p ( v or e q u e s tp a c k a g e s ) 的请求形式,该i r p 中包含了对 设备操作的重要数据。i r p 被传送到具体的驱动程序中,由驱动程序来负责完成这 些i r p ,并且把完成的状态返回到用户模式下的应用程序中。驱动程序接收到i r p 后直接操作硬件完成i r p 或者把分配到新的i r p 发送到其他驱动程序中并等待返 回。驱动程序对于i r p 的操作往往不是单独的,而是将几种操作结合在一起。 数字图形i o 模块的功能是由一个f p g a 芯片和一个c p l d 芯片来完成,c p l d 与上位机的通信通过f p g a 作为中介来完成,配合p c i 9 0 3 0 桥接芯片,可以实现 模块的高速、灵活要求。 根据用户需求数字图形i o 模块需要实现的功能主要为: 1 ) 1 6 路l v t t l 双向i o 传输功能: 2 ) 2 路l 、丌t l 图形数据输出的功能; 3 ) 2 路l 、,t t l 电平计数的功能; 4 ) 3 路r s 4 2 2 电平时序分析的功能; 5 ) r s 4 2 2 图形数据输出的功能; 这些功能通过硬件与软件的相协调完成。软件设计主要完成模块的设备驱动 程序的设计,与底层硬件进行直接通话;完成动态链接库程序的设计开发,提供 动态链接库函数,实现用户模式与内核模式的桥接工作;完成虚拟界面的开发, 利用可视化的界面可以更直观的表现模块的功能,实现功能测试。如下图2 2 所示: 虚拟界面请求 l 仪器驱动程序 j 上 设备驱动程序 l 硬件访问 用户模式 内核模式 图2 - 2 数字图形i o 模块软件工作流程 数字图形f o 模块是通过p x i 总线来控制的。p x i ( 面向仪器系统的p c i 扩展) 是一种基于p c 技术的平台,为测量和自动化提供了高性能、高坚固性、低成本的 配置方案。基于w i n d o w s 的p x i 系统开发与操作与标准的基于w i n d o w s 的p c i 系统的开发与操作差异性很小,故对p x i 数字图形i o 模块的软件编程与对p c i 板卡操作一样。 一 驱动一程序 一一一一 电子科技大学硕士学位论文 2 2 系统总体软件设计 软件总体构架由p x ii o 设备驱动程序,p x ii 0 动态链接库程序以及应用程 序三个部分组成。总体的结构如下图2 - 3 。 用户层 内核层 应用程序 j p i o 仪器驱动程序 设备 l v t t ll v t t l计数r s 4 2 2 r s 4 2 2 数据 图形器 电平 图形 管理 数据 输入数据计数分析 输出 输出输出功能功能 功能 n nn nnn w i n d o w sa p i 函数库 nc 一 w i n d o , m 管理程序 p n p 管理器 l o 管理器i 电源管理器i p c i 设备驱动程序 i 入口例程 p i i p 例程 分发例程l 一一 1f 儿 硬件抽象层 图2 3 软件总体构架 每一个具体功能的实现过程都是由上层应用程序发起,上层应用程序通过调 用p x ii 0 动态链接库程序中的a p i 函数库来完成各个具体功能,并根据相应的 函数返回值来判断功能是否完成。上层应用程序与w i n d o w s 内核层之间的信息传 递是由w i n d o w s 操作系统的i 0 管理器来管理,以i r p 数据包形式进行数据交换。 内核层的p c i 设备驱动程序根据i r p 数据包中信息内容来调用相应的内核函数, 再由w i n d o w s 操作系统来完成硬件操作。 下面从软件开发的角度来分析软件总体的设计,分别从设备驱动程序设计、 动态链接库程序设计及人机交互界面设计的角度展开。 6 第二章图形i o 模块软件总体方案设计 2 2 1 设备驱动程序设计 内核模式的驱动设计采用w d m 驱动模型,在d r i v e r s t u d i 0 3 2 环境下开发, 它是数据通信的软件“桥梁”。该图形数据i o 模块的总线驱动程序由操作系统提 供,完成了管理硬件与计算机的连接,检测并枚举总线上的设备,并为每个设备 创建一个物理设备对象。还能控制设备所在p c i 槽的电流开关。设备的功能驱动 程序负责初始化i o 操作,处理i o 操作完成所带来的中断事件,为用户提供一种 设备适合的控制方式,w d m 驱动程序模型中有很多的例程用于处理这些请求。数 字图形i o 设备驱动程序设计主要是功能驱动程序的设计。 数字图形i o 模块的功能驱动程序是3 2 位驱动程序,它的实现包含了许多例 程,当用户层发送一个操作命令即产生一个i r p ( i o 请求包) 时,它就调用这个 该驱动程序中的例程来执行该i r p 的各种操作。w d m 驱动程序开发的一个主要任 务就是选择所需要的例程,并对它进行设计完善。图2 4 中就列举了数字图形i o 中用到的例程。 一p n p r o u t i n e 卜 i 跏v e r e n t r yh a d d d e v i e e f -。l d t 蛐u t c r o u 血c 卜 一u n l 。a dl b i i t i i i e 一p 。w 嚣r 0 砸卜_ 图2 - 4p x ii o 用到的例程框架 i r p 数据包就会在这些例程间传递,每个驱动程序的例程仅执行i r p 指定的一 部分工作,然后回到i o 管理器,驱动程序例程完成该i r p ,则i o 管理器删除该 i r p 并向原始请求者报告结束状态,等待它完成的应用程序就可以继续执行。 2 2 2 动态链接库程序设计 数字图形i o 的动态链接库程序就是模块的动态链接库( d l l ) 设计。使用 d l l 实现程序与p x i 数字i o 模块间进行的每一步联系和操作。p x ii o 动态链接 库程序主要工作是将应用程序与驱动程序之间的通信协议以及接口模块的硬件控 7 电子科技大学硕士学位论文 制进行再次封装,并为应用程序提供接口,即a p i 函数。本文采用v c 州0 开发 数字图形i 0 动态链接库程序。w i n d o w sa p i ( a p p l i c a t i o np r o g r a m m i n gi n t e r f a c e ) 函 数即应用程序编程接口。程序员可以在它的基础上搭建出各种界面丰富、功能灵 活的应用程序。 动态链接库程序的设计考虑到了功能的模块划分,对于函数的封装可以分为 六部分: 设备管理功能; l v t t l 数据双向传输功能; l v t t l 图形数据输出的功能; l v t t l 电平计数器计数的功能; r s 4 2 2 电平时序分析的功能; r s 4 2 2 图形数据输出功能 2 2 3 人机交互界面设计 w i n d o w s 下应用程序开发环境为l a bw i n d o w c v i8 0 ,它是由美国国家仪器 有限公司推出的作为业界领先、用于测试和自动化、仪器控制、自动检测、数据 处理的a n s ic 虚拟仪器开发平台。利用c v i 提供给用户一个直观而又方便操作 的人机交互界面,使用户可以直观的根据需要选择功能,简单的进行参数设置, 实现数字图形i o 模块的多功能控制、测试。 对数字图形i o 模块界面的设计,首先需要根据模块方案中所能提供的各种功 能,结合数字图形i o 模块的动态链接库程序导出函数,规划界面设计,整个数字 图形i o 模块的人机交互界面软件设计必须遵循7 个原则:以用户为中心的原则、 一致性原则、简单可用原则、让用户记忆负担最小化、用户的语言、具有较强的 容错功能。界面设计应是结构化的,以减少复杂度,要用最少的支持用户所必须 步骤来实现一个操作。 利用所设计的人机交互界面进行模块的功能测试验证,通过可视化的面板直 观的表示出模块的功能测试结果,验证了模块功能正常。 第三章图形i o 模块设备驱动程序设计 第三章图形i o 模块设备驱动程序设计 3 1设备驱动程序设计需求分析 数字图形i o 模块的设备驱动程序是整体模块软件结构的通信“桥梁”,使上 位机与底层硬件之间的通信成为可能。 对于没有实际硬件设备驱动程序开发经验的设计人员而言,在接触硬件驱动 程序编程时,设计人员从直觉上会误认为驱动程序是与底层硬件资源交互操作, 包括i o 端口、中断、存储器地址和d m a ( 直接存储器访问) 。其实,这是一种误 解,因为有很多驱动程序不需要直接调用任何低层硬件资源,比如u s b 客户端驱 动程序就不需要任何硬件资源,所有与硬件相关的琐细工作都有u s b 总线驱动程 序完成,u s b 客户端驱动程序只是对总线驱动程序发出请求。 数字图形i o 模块是通过p x i 接口同嵌入式主机背板相连,p x i 总线和p c i 总线是兼容的,故p x i 接口采用的是p l x 公司的p c i 9 0 3 0 ,它能实现p x i 规范所 要求的所有硬件接口信号和配置空间寄存器。所以在开始设备驱动程序开发之前, 要根据模块的需求对接口芯片p l x 9 0 3 0 进行配置。 3 1 1p l x 9 0 3 0 接口芯片配置 由于p x i 总线协议自身的复杂性,要想在短期内做到操作稳定,难度很大。 综合项目需求、成本、开发难易及后续开发等几个问题考虑,而p x i 总线和p c i 总线是兼容的,因此,这里我们选用p c i 9 0 3 0 作为数字图形i o 模块的专用接口芯 片。选择了p l x 9 0 3 0 芯片作为设计基于p x i 总线的接口芯片就将复杂的总线接口 转换为相对简单的用户接口,用户只需要设计转换后的总线接口即可,不需要考 虑复杂的总线的协议就能实现p x i 规范所要求的所有硬件接口信号和配置空间寄 存器的访问和操作。 p l x 9 0 3 0 的引脚信号主要分为3 组。第一组为p c i 系统总线接口信号,这组 信号与标准p c i 信号对应,可直接与p c i 总线信号连接。p l x9 0 3 0 只是一个p c i 从设备接口芯片,它不提供p c i 主控设备所需要的r e q # 和g n t # 信号。第二组为 本地总线接口信号。p l x9 0 3 0 作为本地总线的主控设备,采用这组信号对本地总 9 电子科技大学硕士学位论文 线进行管理,其中包括控制、地址和数据信号。第三组为e e p r o m 接口信号。 p l x 9 0 3 0 能通过该接口与标准的3 线串行e e p r o m 连接。芯片在上电复位或软件 复位时,从e e p r o m 中读取数据进行初始化。我们要做的工作就是配置e e p r o m , 使接口能够正常工作。 p l x 9 0 3 0 内部有一个8 4 字节长度的p c i 配置空间和一个1 2 0 字节长度的本地 配置寄存器组。配置空间用于设置和反映数字图形i o 模块对p c i 总线操作以及 对系统有关硬件的支持和状态。配置空间的每一项称为配置寄存器,配置寄存器是 p c i 设备硬件与p c i 设备软件之间的信息交换区,软件对p c i 设备进行识别和控制, 硬件向软件反映状态和要求。2 5 6 字节的配置空间分为6 4 字节的头标区和1 9 2 字 节的设备关联区。p l x 9 0 3 0p c i 配置寄存器结构如表3 1 所示。 表3 - 1p l x 9 0 3 0 配置寄存器结构 0 0 h 设备标识寄存器厂商寄存器 0 4 h 状态寄存器命令寄存器 0 8 h 分类代码寄存器修订版本标识 o c h没有实现 头标类型没有实现 c a c h e 长度 1 0 h p c i 基地址寄存器0 1 4 h p c i 基地址寄存器l 1 8 h p c i 基地址寄存器2 1 c h p c i 基地址寄存器3 p c i 基地址寄存器4 2 0 h 2 4 t - i p c i 基地址寄存器5 没有实现 2 8 h 2 c h 子系统标识寄存器 子系统供应商标识寄存器 3 0 h 扩充r o m 基地址寄存器 3 4 h 保留 3 8 h 保留 3 c h 没有实现没有实现中断引脚中断线 _ 4 0 h 电源管理能力 电源管理指针电源管理标识 “t - i电源管理数据p w c s r 桥 电源管理控制状态 保留热插拔控制热插拔指针热插拔标识 4 8 h 4 c h v p d 地址 下一个v p dv p d 标识 5 0 h v p d 数据 其中厂商识别和设备识别用于确定该设备的厂商及设备编号。这两个寄存器 是可读写的,设置为1 0 8 5 和1 4 3 2 。操作系统可以通过这两个i d 号找到对应的数 1 0 第三章图形i o 模块设备驱动程序设计 字图形i o 模块的驱动程序。 p c i 9 0 3 0 配置寄存器总共提供了6 个基地址寄存器:b a s e 0 b a s e 5 ,这些基 地址寄存器是用来存放p c i 设备映射的存储器地址或者使用的i o 空间的首地址。 如果某一基地址寄存器的位o 为1 ,则该寄存器映射为i o 地址空间;如果一基地 址寄存器的位0 为o ,则该寄存器映射为存储器地址空间。b a s e 0 和b a s e l 的值 是p c i 9 0 3 0 局部配置寄存器组映射到p c i 端内存所分得的基地址,这两个基地址 可固定用于p c i 9 0 3 0 芯片的内部寄存器操作。b a s e 2 b a s e 5 用于访问本地端所 接的四个芯片,在数字图形i o 模块中本地端只外接了一个( f p g a ) 芯片,所以 只用到了b a s e 2 基地址寄存器对本地端芯片的访问,b a s e 2 的值即为本地端 ( f p g a ) 芯片l o c a l 端地址值翻译成p c i 的地址映射为系统内存或i o 口的值, 这样驱动程序对这一段内存( 或i 0 ) 的操作等效为对本地端( f p g a ) 芯片的操 作。p c i 的m e m o r y 空间和i o 空间是独立寻址的,它们使用不同的总线操作命 令进行访问。m e m o r y 空间适用于设备功能寄存器较多或数据流量较大的场合, i o 空间适用于设备功能寄存器较少或数据流量较小的场合,因为数字图形i o 模 块数据流量比较大,故将b a s e 2 空间映射为存储空间,分配1 k 空间,驱动程序 只要对该空间操作就能与数字图形i o 模块的通信。 子系统供应商标识和子系统标识用于进一步标识p c i 设备,在本项目中分配 为0 1 和1 4 3 2 1 0 8 5 。中断线寄存器来控制p l x 9 0 3 0 是否存在i n t a # 中断,因为本 项目中未采用中断方式,故该寄存器值设置为0 。 按照模块工作方式配置了e e p r o m 的信息后使用烧写器将信息写入9 6 l c 6 6 芯片。这样模块上电后配置信息就会通过e e p r o m 装载。 3 1 2w d m 驱动特性及图形i 0 模块例程分析选择 数字图形 0 模块采用w i n d o w s 驱动模型( w d m ) 来实现程序的开发设计, 因为所有的w d m 驱动程序都是p n p 驱动程序,并支持电源管理。数字图形i o 模块内核模式驱动程序要求可以在不同的平台的使用。而w d m 驱动程序对 m i c r o s o f tw i n d o w s9 8 和w i n d o w s2 0 0 0 操作系统来说,是源代码兼容的。对于w d m 驱动程序,d d k 提供了一组包含文件。d d k 是操作系统的操作软件包( d e v i c e d f i v e rk i t s ) ,该软件包为驱动程序开发者提供了用于驱动开发的资源文件、编译 连接程序、开发技术文档掣3 1 。他们输出d o w s2 0 0 0 内核模式支持例程、宏、 常数以及类型的一个子集。w d m 驱动程序使用主d d k 包含文件w d m h 而不是 电子科技大学硕士学位论文 n t d d k h 。包含w d m h 以及只使用它所输出的支持例程、宏、常数及类型,使得 w d m 驱动程序可以像在w i n d o w s2 0 0 0 上一样在w i n d o w s9 8 上编译运行【4 1 。 数字图形i o 模块的w d m 驱动程序的层次结构如图3 1 所见。 f i d o f d o f f i d o i f f d o 图3 - 1p x if o 的设备对象和驱动程序的层次结构 处于堆栈最底层的设备对象称为物理设备对象( p d o ) 。而在设备对象堆栈的中 间有一个功能设备对象( f d o ) 。在f d o 的上面和下面还会有一些过滤器设备对象 ( f i d o ) 。我们把位于f d o 上面的过滤器设备对象称为上层过滤器,位于f d o 下 面而在p d o 之上的过滤器设备对象称为下层过滤器。 操作系统的p n p 管理器按照设备驱动程序的要求构造了设备对象堆栈,总线 驱动程序用于是枚举总线上的设备,当总线检测到数字图形v o 模块时就为该设备 创建一个p d o ,创建完p d o 后,p n p 管理器参照注册表中的信息查找与该数字图 形i 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 e 把p d o 连接到f i d o 上,这就是设备对象之间连线的由来。p l l p 管理器继续向上执行,装 入并调用每个低层过滤器、功能驱动程序、每个高层过滤器,直到完成整个堆栈。 由图可见,每个操作都会涉及到i o 请求包。通常i r p 先被送到设备堆栈的最 上层驱动程序,然后逐渐过滤到下面的驱动程序。每一层驱动程序都可以决定如 何处理i r p 。有时,驱动程序不做任何事,仅仅是向下层传递该i r p ;有时,驱动 程序直接处理完该i r p ,不再向下传递;还有时,驱动程序既处理了i r p ,又把i r p 1 2 第三章图形i o 模块设备驱动程序设计 传递下去。这取决于设备以及i r p 所携带的内容。 数字图形i o 模块的驱动程序是基于对象的。驱动程序中的例程会使用这些对 象,而这些例程是由i o 管理器和其他系统组件输出的。i o 管理器的主要工作是 接收应用程序发送的y o 请求、创建冲描述他们、发送口肿到p x ii o

温馨提示

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

评论

0/150

提交评论