




已阅读5页,还剩68页未读, 继续免费阅读
(信号与信息处理专业论文)基于labwindowscvi的虚拟仪器系统的设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-q、0, a 王 6 u 卜 哈尔滨工程大学 学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导师的指导下,由 作者本人独立完成的。有关观点、方法、数据和文献的引用已在 文中指出,并与参考文献相对应。除文中己注明引用的内容外, 本论文不包含任何其他个人或集体己经公开发表的作品成果。对 本文的研究做出重要贡献的个人和集体,均已在文中以明确方式 标明。本人完全意识到本声明的法律结果由本人承担。 作者( 签字) : 枞中 日期:珈2 年弓月堋 , 哈尔滨工程大学 学位论文受权使用声明 本人完全了解学校保护知识产权的有关规定,即研究生在校 攻读学位期间论文工作的知识产权属于哈尔滨工程大学。哈尔滨 工程大学有权保留并向国家有关部门或机构送交论文的复印件。 本人允许哈尔滨工程大学将论文的部分或全部内容编入有关数据 库进行检索,可采用影印、缩印或扫描等复制手段保存和汇编本 学位论文,可以公布论文的全部内容。同时本人保证毕业后结合 学位论文研究课题再撰写的论文一律注明作者第一署名单位为 哈尔滨工程大学户涉密学位论文待解密后适用本声明。 本论文( 口在授予学位后即可口在授予学位1 2 个月后 口 解密后) 由晗尔滨工程大学送交有关部门进行保存、汇编等。 作者( 签字) : 日期: 加i 。年 导师( 签字)了 、刍彳d u p b 护 二 哈尔滨 _ 程大学硕十学位论文 摘要 虚拟仪器是当今测控领域的技术热点,是计算机技术、仪器仪表技术和 其它技术完美结合的产物。它利用计算机系统的强大功能,结合通用化和标 准化的硬件模块,以软件为核心实现系统功能,大大突破了传统仪器以硬件 为主题的模式。虚拟仪器最大的特点在于:“软件即是仪器,仪器即是软件”。 本论文深入研究了数据采集系统以及模拟数据输出系统的设计方案,完 成了基于l a b w i n d o w s c v i 的数据采集软件以及模拟数据输出软件的设计, 并应用美国n i 公司的p c i 6 1 3 3 数据采集卡以及p c i 一6 7 3 3 多功能数据采集卡 作为硬件平台加以实现,使得用户可以通过人性化的软件界面进行各种数据 采集方式的设定以及模拟数据的输出设置。设计完成的数据采集系统可以实 现连续数据采集、外触发数据采集、延时触发数据采集、数据分析处理以及 数据回放等多种功能,并可以实现8 路数据的实时波形显示及实时数据存盘。 模拟数据输出系统则可以实现8 路模拟数据的输出。 关键词:虚拟仪器;l a b w i n d o w s c v i ;数据采集;模拟数据输出;数据处理 哈尔滨- 丁稃大学硕士学位论文 a b s t r a c t a tp r e s e n t ,v i r t u a li n s t r u m e n ti sah o tt e c h n o l o g yi nt h ef i e l do fm e a s u r e m e n t a n dc o n t r o l ,w h i c hi st h ep r e f e c tc o m b i n a t i o no fc o m p u t e rt e c h n o l o g y , i n s t r u m e n t ,t e c h n o l o g ya n d o t h e rt e c h n o l o g i e s i tu s e s p o w e r f u lf u n c t i o no fc o m p u t e r , u n i v e r s a l i z e da n ds t a n d a r d i z e dh a r d w a r em o d u l e sa n ds o f t w a r et op e r f o r mt h e f u n c t i o n so fs y s t e m v i r t u a li n s t r u m e n tr e p r e s e n t saf u n d a m e n t a lc h a n g ef r o m t r a d i t i o n a lh a r d w a r e - c e n t e r e di n s t r u m e n t a t i o n s y s t e m s t os o f t w a r e c e n t e r e d s y s t e m s v i r t u a li n s t r u m e n t sl a r g e s tf e a t u r ei s :”s o f t w a r et h a ti se q u i p m e n t , e q u i p m e n t t h a ti ss o f t w a r e ” i nt h i sp a p e r , t h ed e s i g np r o g r a mo ft h ed a t aa c q u i s i t i o ns y s t e ma n da n a l o g d a t ao u t p u ts y s t e ma r er e s e a r c h e d t h ed a t aa c q u i s i t i o ns o f t w a r ea n da n a l o gd a t a o u t p u ts o f t w a r ea r ed e s i g n e db a s e do nl a b w i n d o w s c v i n ip c i 6 13 3d a t a a c q u i s i t i o nc a r da n dn ip c i - 6 7 3 3m u l t i f u n c t i o n a ld a t aa c q u i s i t i o nc a r da r eu s e d a sh a r d w a r ep l a t f o r m si nt h ee n t i r es y s t e m u s e rc a ns e tt h ed a t aa c q u i s i t i o nm o d e a n dt h ea n a l o gd a t ao u t p u tm o d et h r o u g haf r i e n d l yi n t e r f a c e t h r o u g ht h i sd a t a a c q u i s i t i o ns y s t e m ,c o n t i n u o u sw a v e d a t a a c q u i s i t i o n 、o u t t r i g g e r d a t a a c q u i s i t i o n 、o u t - t r i g g e rd a t aa c q u i s i t i o nw i t hd e l a y 、d a t aa n a l y s i sa n dd a t a p l a y b a c ks u c hav a r i e t yo ff u n c t i o n sc a nb ea c h i e v e d a l s o8 - c h a n n e lw a v e f o r m d a t ac a nb es h o w na n ds t o r e di nr e a l t i m e t h es y s t e mo fa n a l o gd a t ao u t p u tc a n a l s oo u t p u t8 - c h a n n e la n a l o gd a t a k e yw o r d s :v i r t u a li n s t r u m e n t ;l a b w i n d o w s c v i ;d a t aa c q u i s i t i o n ;a n a l o gd a t a o u t p u t ;d a t ap r o c e s s i n g 哈尔滨t 程大学硕十学1 1 7 = 论文 目录 第1 章绪论1 1 1 课题研究背景和目的”l 1 2 虚拟仪器的发展现状及发展趋势1 1 3 虚拟仪器系统简介及特点”2 1 4 虚拟仪器的特点”3 1 5 论文主要研究内容4 第2 章虚拟仪器系统开发平台及系统总体设计5 2 1 虚拟仪器开发平台l a b w i n d o w s c v i 5 2 1 1l a b w i n d o w s c v i 简介及面向对象编程5 2 1 2 应用l a b w i n d o w s c v i 平台开发虚拟仪器的步骤6 2 2 虚拟仪器系统开发思想及设计技术“7 2 2 1 模块化编程思想“7 2 2 2 多线程编程技术“8 2 3 系统的总体设计及整体功能介绍一9 2 3 1 系统的整体模块的架构设计一9 2 3 2 系统的多线程设计1 0 2 3 3 系统的整体功能介绍1 1 2 3 4 系统的软面板设计1 2 2 4 本章介绍13 第3 章基于p c i 6 1 3 3 采集卡的数据采集系统设计1 4 3 1 数据采集的相关知识1 4 3 2 数据采集系统硬件管理和配置1 6 3 2 1p c i 6 1 3 3 采集卡介绍1 6 3 2 2p c i 6 1 3 3 采集卡设备配置_ 1 7 3 3 基于p c i 6 1 3 3 采集卡的数据采集系统的软件编程与实现1 8 3 3 1 连续数据采集程序设计1 9 3 3 2 外触发数据采集程序设计2 2 哈尔滨t 程大学硕士学伊论文 3 - 3 3 延迟触发数据采集程序设计2 4 3 4 数据实时存储功能设计与实现2 5 3 4 1 循环缓冲技术:2 5 3 4 2 存储文件的格式设计及文件头设计2 6 3 4 3 数据实时存储的编程实现及测试2 7 3 5 数据回放功能设计与实现3 2 3 6 数据采集系统运行界面3 2 3 7 本章小结3 4 第4 章基于p c i 6 7 3 3 采集卡的模拟数据输出系统设计3 5 4 1p c i 6 7 3 3 采集卡的简介3 5 4 2 模拟数据输出系统的程序设计与实现3 6 4 2 1w r i t e t h r e a d 0 线程函数的设计“3 7 4 2 2r e a d f i l e d a t a a n d f i l l b u f f e r 0 子函数的设计3 8 4 2 3r e a d t h r e a d 0 线程函数的设计3 9 4 2 4r e a d f i l e h e a d e r 0 子函数的设计3 9 4 3 显示线程的设计4 0 4 4 模拟数据输出系统功能实现与测试4 1 4 5 本章小结4 6 第5 章数据分析处理功能模块设计4 7 5 1 数据分析处理基本知识简介4 7 5 1 1 信号时域分析4 8 5 1 2 信号频域分析4 9 5 1 3 数字滤波器5 0 5 2 数据分析处理功能模块的设计与实现5 1 5 2 1 基本测量功能的设计与实现5 l 5 2 2 频域分析功能的设计与实现5 3 5 2 3 相关分析功能的设计与实现5 4 5 2 4 滤波器功能的设计与实现5 4 5 3 本章小结”5 9 结论6 0 哈尔滨工程大学硕士学位论文 ii i 一 i i 宣i i i i i i 参考文献6 l 攻读硕士学位期间发表的论文和取得的科研成果6 4 致谢6 5 附录6 6 哈尔滨- 丁程大学硕士学位论文 第1 章绪论 1 1 课题研究背景和目的 在对规模化、自动化、智能化的测控系统的需求日益迫切下,计算机技 术、仪器技术与通信技术的结合开创了仪器仪表新的时代虚拟仪器技术 时代。美国国家仪器公司( n a t i o n a li n s t r u m e n t sc o r p 简称n i 公司) 于2 0 世 纪8 0 年代中期首先提出基于计算机技术的虚拟仪器的概念,将虚拟测试技术 引进了新的发展阶段,接着设计和推出了基于多种总线系统的多种功能的虚 拟仪器系统u 1 。虚拟仪器技术是通过将各功能化模块与用户软件结合,利用 友好的人机交互界面来对仪器进行控制,完成数据采集、分析和显示等任务, 虚拟仪器技术的优势就在于可由用户自己定义符合自己要求的仪器系统,且 构建容易,所以应用范围极为广泛,尤其在军事、科研、开发测量、检测、 计量、测控领域更是不可多得的帮手和工具2 那4 1 。 虚拟仪器系统在科学研究中应用极为广泛,在现代的声纳信号采集与分 析处理中,同样起着非常重要的作用,尤其是对试验数据的获取有非常重要 的意义。一套声纳系统从设计到定型,中间需要大量的试验,为了分析系统 设计的合理性、检验算法的有效性及测量系统的性能指标等等都需要将大量 的试验数据保存下来,而且在进行试验时需要为测试设备提供模拟信号激励 源,因此有针对性地开发一套集数据采集、分析处理、模拟数据输出与数据 回放功能于一身的虚拟仪器系统是很有必要的睁1 。 1 2 虚拟仪器的发展现状及发展趋势 虚拟技术的开发和应用源于1 9 8 6 年美国n i 公司设计的l a b v i e w 。n i 公司在软件开发平台以及虚拟仪器产品上均处于领先水平,在软件体系结构 的各个层次上,形成了完整的设备驱动程序、系统开发平台、应用支持软件 等相互支撑的格局;在产品方面,能够提供丰富的g p i b 产品、插卡式数据 采集产品、信号调理产品、p x i 总线产品、v x i 总线产品、图像采集产品等。 目前,世界上如惠普公司( h p ) 等数百家公司相继推出了多种总线系统多达 数百个品种的虚拟仪器1 。虚拟仪器的研究、开发在国内已经过了起步阶段。 哈尔滨工程大学硕十学位论文 国内哈尔滨工业大学等高校在研究开发虚拟仪器产品和引进、消化美国n i 等公司产品方面作了有益的工作,取得了瞩目的成梨1 1 眦7 1 。 随着计算机技术、仪器技术与网络技术的飞速发展,虚拟仪器将向三个 方向发展p u 1 : 1 外挂式虚拟仪器。由于基于p c i 总线的虚拟仪器在插入数据采集卡时 都需打开计算机主机箱,比较麻烦,且主机的p c i 插槽有限,再者在进行测 试时各种被测信号直接输入计算机,对计算机的安全存在潜在的威胁,同时, 计算机内部的强电磁干扰对被测信号的测试也会造成较大的干扰,故u s b 接 口的外挂式虚拟仪器系统将成为未来廉价型虚拟仪器测试系统的主流n 删。 2 p x i 型高精度集成虚拟仪器测试系统。p x i 系统高度的扩展性、良好的 兼容性以及较高的性价比,将使它成为未来大型高精度集成测试系统的虚拟 仪器平台的主流。 3 网络化虚拟仪器。网络技术的日新月异,为虚拟仪器网络化奠定了基 础。虚拟仪器网络化可让硬件、软件等资源通过网络得以共享,联合完成测 试任务,提高了资源的利用率。使用网络化虚拟仪器,可以不受时间与空间 的限制,随时随地都能获取所需信息。与以计算机为核心的虚拟仪器相比, 网络化虚拟仪器是仪器发展史上的又一次革命3 1 嘲训4 5 1 。 1 3 虚拟仪器系统简介及特点 虚拟仪器技术的核心思想是以计算机作为仪器硬件统一的平台,充分利 用计算机的运算、存储、显示等智能化功能,同时将传统仪器的专业化功能 以及人机交互面板软件化,使之与计算机结合起来,便构成了从外观到功能 与传统仪器不同的全新的仪器系统,由于仪器的专业化功能和友好面板均由 软件形成,因此被称为“虚拟仪器”。从虚拟仪器系统的组成上分析,系统由 硬件及软件组成。图1 1 为一般虚拟仪器系统构成示意图。 虚拟仪器的硬件系统( 即图1 1 中的通用硬件平台) 一般分为计算机平 台和测试硬件设备。计算机平台主要用来完成被测信号的采集和测试信号的 产生;测试硬件设备的功能是根据不同的标准接口总线转换输入或输出信号 供其他系统使用。 在虚拟仪器中“软件就是仪器”,这是指按照测量原理采用科学的信号分 2 哈尔滨工程大学硕士学位论文 析处理技术编制的实现某种测量功能的软件即可构成该种功能的测试仪器。 由此可以知道软件是虚拟仪器系统的关键。虚拟仪器的软件系统框架由v i s a 一 库、i o 接口仪器驱动程序和应用软件三个层次组成。虚拟仪器系统软件系 统框架如图1 2 所示。 应用软件仪器功应用软件虚拟面 一用户 , 能板 软件系统i o 接口仪器驱动软件 被测系统卜一 计算机操作系统 通用计算机 通用硬件平台 测试硬件设备 图1 1 虚拟仪器系统构成 广 佛 i应用软件 i o 接口仪器驱动程序f v l s a 库 s e r i a lv x ig p i b 等| 图1 2 虚拟仪器系统软件系统框架 1 4 虚拟仪器的特点 虚拟仪器是使用计算机应用程序实现传统仪器的功能,而非用硬件实现, 这是与传统仪器的最大区别。虚拟仪器在以下几方面具有传统仪器所不可比 拟的特点m 删1 1 聊5 伽: 1 虚拟仪器由用户自己定义,即用户可以通过修改源代码,对仪器的功 能、性能、指标进行修改或增删,给用户一个充分发挥自己能力和想象力的 空间。 2 可扩展性好,便于构成复杂的测试系统。可以作为独立的仪器使用, 也可以与其它仪器组合成功能强大的测试系统,通过调用不同模块组合以及 与各种类型的硬件接口搭配,使得用户可以实现不同的任务需求,极大地拓 展了仪器功能的任务范围,可以进行比较复杂的测试工作。也可以通过网络 进行数据交换,实现资源共享,进行远程操作,提高资源的利用率。 3 丰富了传统仪器的功能。虚拟仪器将信号显示、存储以及数据分析交 哈尔滨r 丁程大学硕+ 学位论文 给计算机处理,因此虚拟仪器的操作简单直观,符合传统设备的使用习惯。 数据分析处理、图形曲线以及结果的显示功能也非常强大1 。 4 数据测量精度比较高,测量范围广且性能比较稳定,可靠性比较高。 5 更新周期短、开发成本低、使用维护方便,易于应用新技术以及新理 论来进行更新升级。 1 5 论文主要研究内容 本文主要以l a b w i n d o w s c v l 8 1 软件为编程环境,结合n i d a q m x 8 8 驱动程序编程实现了基于p c i 6 1 3 3 采集卡的不同采集方式下的数据采集功能 与数据实时存储功能、数据回放功能、基于数据采集的数据分析处理功能, 实现了基于p c i 6 7 3 3 采集卡的模拟数据输出功能。作者在阅读大量技术资料 和文献的基础上,在导师的耐心指导下独立完成以下工作: 1 通过查阅相关文献和资料,结合任务要求,确定软件的结构,完成了 人机交互界面的开发设计。 2 完成了基于p c i 613 3 数据采集卡的连续数据采集、外触发数据采集以 及延迟触发采集模式下的数据采集系统的软件开发及调试。 3 完成了基于p c i 6 7 3 3 多功能采集卡的模拟数据输出系统的软件开发及 调试。 4 实现了基于p c i 6 1 3 3 数据采集卡的数据回放功能以及数据实时存储功 能并完成了相关的测试工作。 5 完成了基于数据采集的数据分析处理系统的软件开发及调试。 4 哈尔滨工稃大学硕七学位论文 第2 章虚拟仪器系统开发平台及系统总体设计 设计开发虚拟仪器系统须有合适的开发平台。目前能够用于虚拟仪器系 统开发、比较成熟的软件开发平台主要有两类:一类是文本式编程语言,如 v i s u a lc h 、v i s u a lb a s i c 、l a b w i n d o w s c v i 等;另一类是图形化编程语言, 如l a b v i e w 、h p v e e 等m 删2 5 1 嗍蜘。本设计采用的是l a b w i n d o w s v i8 1 开发平台。 2 1 虚拟仪器开发平台l a b w i n d o w s c v i 2 1 1l a b 晰n d o w s c v i 简介及面向对象编程 本虚拟仪器系统采用的l a b w i n d o w s c v i 开发平台是供用户开发多平台 数据采集、仪器控制及过程监测等功能的平台,是以c 语言构建的可视化软 件开发环境。l a b w i n d o w s c v i 能够为开发人员建立仪器控制、数据采集、 数据分析等提供了理想的软件开发环境,用户可以用来设计比较复杂的、友 好的人机交互面板,缩短开发时间u 1 。 1 l a b w i n d o w s c v i 函数库简介 l a b w i n d o w s c v i 为开发数据采集和仪器控制系统的各个阶段提供函数 库支持邮删1 : ( 1 ) 基本函数库。主要包括用户界面库、格式化与i o 库以及实用函数 库。 ( 2 ) 高级分析函数库。主要包括信号产生、信号处理以及其他数学计算 等函数。 ( 3 ) 数据采集与总线控制函数库。主要包括数据采集函数库、仪器控制 函数库、r s 2 3 2 库、v i s a 库以及v x i 库。 2 l a b w i n d o w s c v i 开发环境简介 l a b w i n d o w s c v i 开发环境主要由工程窗、源文件窗、用户界面以及函 数面板窗组成,分别完成对工程文件、各类源文件窗、用户界面文件及函数 库的管理m 删。 ( 1 ) 工程窗的功能主要是:完成软件开发环境参数设置,文件装载、保 5 哈尔滨工程大学硕士学位论文 存、工程文件创建、文件编译等功能。 ( 2 ) 源文件窗的功能主要是:完成头文件、回调函数等源程序的编辑与 修改、调试、执行等工作。 ( 3 ) 用户界面窗的功能主要是:提供图形化的人机交互界面生成环境。 ( 4 ) 函数面板窗的功能主要是:提供各类函数生成环境。 3 面向对象编程 l a b w i n d o w s c v i 编程中用到有对象、面板、控件、回调函数及控件属 性。对象编程是l a b w i n d o w s c v i 的核心概念,面板及控件都是对象哪! 。 对象是数据和代码的组合。在l a b w i n d o w s c v i 虚拟仪器的设计中,可 将对象中的代码和数据当作一个整体来对待u 1 。属性和事件是对象的基本元 素u 1 。在l a b w i n d o w s c v i 中可以通过这两个元素来操纵和控制对象”1 。对象 的属性是反映对象特征的参数,可以通过控件属性对话框来设置属性n 】。对 象的事件是控件对象产生的行动,当事件发生时,对应的回调函数被激活, 由回调函数来完成控件对应的功能1 。整个过程如图2 1 所示。 图2 1 事件的过程框图 2 1 2 应用l a b w i n d o w s c v i 平台开发虚拟仪器的步骤 使用l a b w i n d o w s c v i 进行虚拟仪器设计与使用c 语言程序设计的过程 大致一致。工程文件( 幸p r j ) 是程序文件的主体框架,它包含了源程序文件 ( 奉c ) 、头文件( 牵h ) 、用户界面文件( 掌u i r ) 等三部分 4 1 3 1 3 6 1 0 在l a b w i i l d o w s c v i 软件平台上设计的虚拟仪器软件组成框图如图2 2 所示。 图2 2 使用l a b w i n d o w s c v i 设计的虚拟仪器软件组成框图 利用l a b w i n d o w s c v i 丰富的函数库和强大的接口功能,可以比较方便 地编制出满足用户任务要求的应用软件系统。应用l a b w i n d o w s c v i 编程的 6 哈尔滨工程大学硕七学位论文 基本步骤如图2 3 所示。 制定程序设计的基本方案 根据任务确定程序的基本框架、虚拟仪器软面板 及程序所需的函数 工程项目的完成 编译、调试程序,将用户界面文件、头文件、源 程序文件添加到项目文件,完成软件的开发 创建用户图形界面 根据第一步制定的方案创建用户图形界面及回调 函数名 程序源代码的编制 由计算机生成基本框架,后手动添加函数代码, 完成源代码的编制工作 图2 3l a b w i n d o w s c v i 编程设计步骤 在工程项目完成这一步,可以说整个系统设计基本完成,但是我们得到 的应用程序是在l a b w i n d o w s c v i 环境下生成的可执行文件,只能在安装 l a b w l i l d o w s c v i 软件的计算机上运行,如若计算机没有安装该软件,可执 行文件就无法执行“ 1 。因此,为了使开发的软件系统能够通用,在软件开发 完毕之后要将其打包生成一个独立的虚拟仪器软件包,这样就可在w i n d o w s 操作系统系统下运行了。通过选择菜单b u i l d c r e a t es t a n d a l o n ee x e c u t a b l e 生 成应用程序的可执行文件u “ 1 。然后通过选择菜单b u i l d c r e a t ed i s t r i b u t ek i t 弹出生成软件包对话框,按照对应的提示即可生成软件包m 5 删。 2 2 虚拟仪器系统开发思想及设计技术 由于l a b w i n d o w s c v i 是基于模块化程序设计思想,而本课题的主要任 务是基于l a b w i n d o w s c v i 平台开发出应用于数据采集以及模拟数据输出的 虚拟仪器系统,因此本系统在开发过程中也是遵循这一基本思想,在总体方 案确定后,根据不同功能分别组建各种功能模块,采用多线程设计技术,实 现多任务实时执行,最后再集成和调试。 2 2 1 模块化编程思想 所谓的模块化设计,简单地说就是程序的编写不是开始就逐条录入计算 机语句和指令,而是首先用主程序、子程序、子过程等框架把软件的主要结 构和流程描述出来,并定义和调试好各个框架之间的输入、输出链接关系。 最终结果是得到一系列以功能块为单位的算法描述。以功能块为单位进行程 序设计,实现其求解算法的方法称为模块化。模块化的目的是为了降低程序 复杂度,使程序设计、调试和维护等操作简单化。 7 哈尔滨t 程大学硕士学1 1 :) = 论文 2 2 1 1 采用模块化编程的优点 采用模块化设计思想开发软件,可以集中精力开发其中的一部分模块, 最后根据接口将不同的功能模块组合到一起,使程序结构清晰,易于理解, 便于调试,提高了编程效率,增强了软件的可维护性和扩展性。而对于开发 大型程序或者是多人协作开发的软件,具有更明显的优越性,因为其他人不 需要知道你这个工作组是怎样写的,只是需要知道你这部分所实现的功能, 知道他所拥有的接口就可以了,这样程序设计就会更加简便。 2 2 1 2 采用模块化编程的原则 对于采用模块化思想开发软件,模块的划分一般不要太大,也不宜过小, 主要根据其功能而定。每个模块的功能要明确、单一。模块的独立性要强, 即模块的功能由该模块自身完成,不依赖于其他模块。模块间的关系要明确, 即上层模块可调用下层模块,下层模块可返回上层模块,反之不可以。程序 中已变化的部分与不易变化的部分分开,形成不同的模块。 2 2 2 多线程编程技术 为了实现本虚拟仪器系统的功能,软件编程必须实现数据的采集、分析 处理、实时存储以及数据实时显示等功能。在程序设计中,为了最大限度提 高系统运行速度和响应速度,完成诸如数据采集、处理、存储、显示等任务, 必须采用并行处理的方式,即当其中一个任务在前台工作时,其它多个任务 在后台同步进行。所以把数据采集、数据的分析处理、数据显示、数据存储 放在不同的线程中,利用w i n d o w s 操作系统的多线程机制,使得各个功能模 块能够有条不紊的运行。 2 2 2 1 多线程基本概念1 刀口5 1 首先来了解一下多线程中的基本概念,如进程、线程以及多线程程序。 进程通常是指运行中的程序。 线程是指进程内部的可独立执行的单元,是操作系统对系统资源的基本 调度单位。每个进程至少拥有一个线程,这个线程被称为主线程。一个进程 也可以拥有多个线程,同属于一个进程的所有线程都共享进程的虚拟地址空 8 哈尔滨t 程大学硕士学位论文 间,线程之间可以共享进程的全部数据和资源。 多线程程序就是在同一时间段内至少有两个线程在执行程序代码的程 序。单线程程序只有一个线程,指的就是主线程。在多线程程序中,程序自 己让操作系统创建主线程之外的其他线程,这些线程被称为次线程。 2 2 2 2 多线程的优点 使用多线程技术有很大的裨益,特别在数据采集应用方面。在一些任务 比其他任务需要更长的时间运行或者一些任务比其他任务需要更高的确定性 结果时,使用多线程编程,可以使总体性能获得极大的提高。使用多线程编 程的优点主要有: 1 避免阻塞。例如,如果设置一块数据采集卡以1 0 0 点秒的速率采集 1 0 0 0 0 个点的数据,这需要一段时间才能完成。在一个单线程的程序内,这 个任务阻止程序执行其他内部任务,其他任务只有在数据采集完成之后才能 执行。在同步采集调用的过程中,操作系统使处理器在多个线程之间切换, 在等待一个任务完成的同时可以执行其他任务2 1 。 2 最大程度利用多处理器的性能。一个多线程程序可以有效地使用可用 的全部处理器,而单线程程序必须顺序执行,即必须等待每一个任务的完成 才能执行程序的其他部分。单线程程序不能在系统的多个处理器上运行h 2 1 。 多线程程序可以帮助操作系统在需要完成的多个任务中分配处理器时 间,使所有任务都可以尽快完成。使用多线程,可以最有效地利用操作系统 和计算机处理器获得更快的响应、最小的阻塞和更全面的性能2 1 。 2 3 系统的总体设计及整体功能介绍 2 3 1 系统的整体模块的架构设计 本系统开发在架构上主要由数据采集模块、数据显示模块、模拟数据输 出模块、数据存储模块以及数据分析处理模块等五个大模块组成。在数据采 集模块中包含连续数据采集子模块、外触发数据采集子模块、延迟触发数据 采集子模块。数据采集模块负责各种信号的采集,按通道传送给数据显示、 数据存储、数据处理模块。数据显示模块则是根据不同的需要接收数据采集 模块传送的数据并实时显示数据的波形、轨迹以及各种处理后波形。数据存 9 哈尔滨t 程大学硕十学位论文 储模块将数据采集模块采集到的数据按照规定的格式存入计算机。模拟数据 输出模块是将数据用模拟量形式输出。数据分析处理模块则采用相关分析、 频谱分析、时域分析等方法对数据采集模块采集到的数据进行后续处理和分 析。具体各模块之间的关联如图2 4 所示。 图2 4 本软件的系统开发模块结构图 2 3 2 系统的多线程设计 在进行数据采集时,经常会遇到多任务处理的情况,如数据采集、显示、 存储、处理等。如若采用单线程,一般按照数据采集、显示、存储以及处理 的顺序执行,而我们有时需要数据采集与显示、存储以及处理同时进行,采 用单线程由于计算机执行效率的问题就会出现数据流失的现象,而采用多线 程技术则不会出现类似的情况。我们可以分别建立采集线程、显示线程、存 储线程以及处理线程,四个线程同时运行,这样就可以进行连续数据采集的 同时,执行其他任务,而不用担心出现数据大量流失的现象丌。 多线程对本系统的开发起到了非常重要的作用,提高了本系统的任务执 行效率。在本系统的开发中,主要的线程有采样线程、数据处理线程、实时 显示线程、数据存储线程以及模拟数据输出线程。而在采样线程中,根据采 l o 哈尔滨工稃大学硕十学位论文 样方式的不同,又分为次级线程:连续采集线程、外触发采集线程、延迟触 发采集线程。在数据处理线程中,根据处理任务不同,分为的次级线程有: 自相关分析线程、互相关分析线程、频谱分析线程以及实时测量线程等。在 模拟数据输出线程中,次级线程主要有:读线程、写线程等等。具体的实现 分别见下面各章。本设计的整个虚拟仪器系统的流程图见图2 5 。 图2 5 基于l a b w i n d o w s c v i 的虚拟仪器系统流程图 2 3 3 系统的整体功能介绍 本系统开发和设计主要是用来进行数据采集、数据分析、数据实时存储、 数据回放以及为测试设备提供模拟信号。结合p c i 6 1 3 3 数据采集卡及p c i 6 7 3 3 多功能采集卡,本系统可以为试验数据的采集提供连续、外触发以及延迟触 发模式下的数据采集功能,同时可以将数据实时地存储下来,也可以有针对 性地对所采集到的数据进行实时或后置分析处理以及在需要的情况下进行数 据回放,也可以充当信号激励源,为测试设备提供模拟信号。具体的开发实 现过程见下面各章。经过总体的把握和具体设计开发,最后本系统形成的人 哈尔滨t 程大学硕七学位论文 机交互界面如图2 6 以及图2 7 所示。图2 6 是主界面,主要是进行数据采集、 数据分析、数据存储以及数据回放的界面。如图2 7 即为子界面,主要用来 进行输出模拟信号。这是由于主界面安排的控件比较多,再者从功能上说, 模拟数据输出比较独立,因此将此部分安排在子界面,在按下主界面上的“模 拟数据输出 按钮时,子界面自动弹出。 ;,圆昏嘲瓤拗瞰婀确懋德帑舔勰 旧篓吲1 口哩图嘞l : l 口哩蛆_ l : ;a 嘎嗵c 勇口 : a 型匪习1 1 1f: o 哩谨e 马圆l q o l 口世查二弓- i ;口圆望e 萤: _ 聂矗一商:赢i 。? ? l : 1 “;一一磁 1 ; ;“o :j ! ”1 ”,;: 慝夏1 嚣 篙毋s 氨牟磐叶; l i 囹l ”“| i := :釜:;乏:一。:三二二二:一卜,; l :! :| | ! :竺l 二! 二? 冀_ 霉霉l 烈巴; 渡彤尔# l , i s l j 竺:| :5 |i1ml 墓| 医: 船赴j l 璺j 万t = | 1+ l h f t _ * ,;“ l 咿 棚墨 1 蓼i ; 篆二l 霉i y jr 纛了l 蠢l 善兰? | i 。:誓二,i l 赋_ 鼻第# 取l 霹”一i 摩蒜j 限| 三垦垦墓基曩曼虽| ,霍蜜重量謇蹩量霪 三蜃i i 霍雾雾i i 一,。,。,。l ! :二二一: :l :二二二。三l l 嚣昙l谚铀黧嚣,;i 图2 7 模拟数据输出子界面 2 3 4 系统的软面板设计 虚拟仪器的软面板是用户与仪器之间交流信息的纽带。为了提高虚拟仪 1 2 哈尔滨工程大学硕十学位论文 器的使用性能,构造逼真的虚拟仪器环境,就必须从用户使用角度出发,充 分考虑用户对信号感知、分析、决策和操作等各个环节的需求,采用面向对 象的设计思想来设计虚拟仪器面板。 虚拟仪器系统软面板遵循以下设计原则p 1 : 1 直接操作原则。使用控件应可以直接使用键盘或鼠标操作,显示元件 与控制元件合二为一。本系统设计完成之后进行调试,符合这一设计原则的。 2 重要性原则。重要的元素应放在显著的位置。本系统开发的主界面如 图2 6 及图2 7 所示,主要的显示控件放在了显著的位置。 3 相关性原则。尽量按功能或关系进行逻辑分组,可以使用框架控件加 强控件间联系。由于软件要实现的功能比较多,界面控件比较多,本系统是 用了框架控件将相关的控件进行了逻辑分组,放在一个框架内。如图2 6 及 图2 7 所示。 4 控件一致性原则。控件类型、尺寸、分组标准应保持视觉上一致性。 5 帮助原则。帮助系统是任何应用程序的重要部分。本系统为了方便用 户使用,使用了比较流行的菜单帮助文件,当打开帮助菜单时,弹出帮助面 板。如图2 8 所示。 图2 8 帮助面板示意图 当然,虚拟仪器软面板设计要以“为操作人员提供一个虚拟的仪器操作 环境”为标准,友好的人机界面是虚拟仪器设计成功的重要标志之一。 2 4 本章介绍 本章首先简单介绍虚拟仪器软件开发平台l a b w i n d o w s c v i 以及应用该 平台的开发步骤,其次介绍了模块化编程思想与多线程编程技术,重点介绍 了模块化编程思想与多线程编程技术在本课题中的应用体现,最后介绍了系 统整体功能以及虚拟仪器的软面板设计技术。 哈尔滨1 = = 程大学硕士学位论文 第3 章基于p c i613 3 采集卡的数据采集系统设计 在实践中,经常要测量一些数据,或者将其采集下来进行处理。数据采 集就是将被测对象的各种参量( 如压力等) 通过传感器( 如压力传感器等) 转换成电信号,再经信号调理、采样、量化、编码和传输等步骤,最后送到 计算机中进行处理、存储、分析和显示的过程。数据采集( d a q ) 不仅是计 算机与外部世界之间联系的桥梁,也是获取数据的主要手段。 3 1 数据采集的相关知识 数据采集系统采用计算机作为处理机。众所周知,计算机内部参与运算 的信号是二进制的离散数字信号,而被采集的各种物理量一般都是连续模拟 信号。因此,在数据采集系统中同时存在两种不同形式的信号:离散数字信 号和连续模拟信号。在研究开发数据采集系统时,首先遇到的问题是将传感 器所测量到的连续模拟信号如何转化为离散的数字信号口7 冽。 1 数据采集过程 数据采集过程就是将连续的模拟信号按一定间隔t s 采样得到离散的时 间信号,再经过量化,最后经过编码转换为数字信号的过程。采样就是将时 间上连续变化的信号转换为时间上离散的信号,用来表达原信号的部分或全 部特性。整个数据采集过程如图3 1 所示。 2 采样定理 对于模拟信号的采集,一个重要的问题是采样频率的确定,也即每秒钟 的采集点数。采样频率决定模拟量到数字量转换的频率。在给定的时间内, 图3 1 数据采集过程 越大的采样频率采到的点越多,比小采样频率的采集结果要好。图3 2 与图 1 4 niiiiiii-t ijiiiih:l:=”hr“”“=_l 引 niiii二iii-r碍 niii”iri二iiil“鼎l育 她 哈尔滨1 = 程大学硕十学位论文 3 3 显示了充分采样与不充分采样之间的对比,这种不充分采样得到的信号频 率不同于实际信号频率。图3 4 和图3 5 分别为每周期采样2 0 个点以及采样 1 0 0 个点的示意图,通过比较我们可以看出采样2 0 个点时,波形有所失真。 图3 2 充分采样 图3 3 不充分采样 0 oc :l0 l5202s 3 0 3 5 404 55 ;555 3 8 5 7 07 5a 6 0 593 js 1 0o 1 i 匿巫习处骺技瓣垂垂殂 l ! ! ! 墅塑:竺 l i 棱形显示 图3 4 每周期采集2 0 个点图3 5 每周期采集1 0 0 个点 但是如果采样频率过大并且采样时间过长的话,会使得采样数量大增,需要 很大的内存或硬盘来存储数据,而采样频率小的话,又可能丢失信号中的重 要信息,在将采样后的信号恢复为原始信号时,就会出现失真现象,影响数 据处理的精度。我们确定采样频率大小的依据就是耐奎斯特采样定理坤“明。 耐奎斯特采样定理的主要内容是:为使采样输出信号能完全恢复为连续 信号,包含任何干扰在内的信号最高有效频率( 耐奎斯特频率) 必须小于采 样频率的一半;或者说采样频率至少是信号频率的两倍哪删啪1 。 3 采样方式 采样定理为确定采样频率提供了理论依据,但在具体实现由连续信号到 离散信号得转换时,又涉及到采样方式的问题。设计采样方式的总的原则是: 以保证精度的前提下,以被测信号的具体特性为依据,尽量以较低的速率实 现采样,从而减少数据量,提高数据处理效率。主要有两种数字化采样
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论