(电力系统及其自动化专业论文)基于labview的多路信号发生器软件开发.pdf_第1页
(电力系统及其自动化专业论文)基于labview的多路信号发生器软件开发.pdf_第2页
(电力系统及其自动化专业论文)基于labview的多路信号发生器软件开发.pdf_第3页
(电力系统及其自动化专业论文)基于labview的多路信号发生器软件开发.pdf_第4页
(电力系统及其自动化专业论文)基于labview的多路信号发生器软件开发.pdf_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

华北电力大学硕士学位论文 摘要 针对电力系统仿真实验、电力电子装置实验等多种用途的需要,本文提出了一 种多路信号发生器的设计思路:应用数字信号处理( d s p ) 技术,以s e e d - d e c 2 8 1 2 开发板为核心构建硬件系统;在p c 端用软件对硬件系统进行控制:采用通用串行 总线( u s b ) 技术解决通讯问题。从而达到多种和多路常用信号输出,信号的幅度、 频率、相位在一定范围内任意可调的要求。 文中详细分析了在l a b v i e w 环境下开发软件的方法和过程,解决了在l a b v i e w 环境下调用l a b v l e w 不直接支持的u s b 硬件驱动程序的问题,对多路信号发生器 的通讯和数据传输的问题进行了实验并达到预期效果。最后对经过滤波后的p w m 输出波形失真进行了讨论,提出了一种波形补偿方法,并通过实验验证了这种补偿 方法的可行性。 关键词:多路信号发生器,l a b v i e w ,u s b ,波形补偿 a b s i r a c i a c c o r d i n gt ot h er e q u i r e m e n to fp o w e rs y s t e ms i m u l a t i o ne x p e r i m e n t ,t h i sp a p e r p u t sf o r w a r dan e wi d e ao fd e s i g n i n gam u l t i c h a n n e ls i g n a lg e n e r a t o rw h i c hs p e c i a l l y u s e di nl a b o r a t o r y :b a s e d0 1 1t h es e e d d e c 2 812d e v e l o pb o a r d ,a d o p t i n gd i g i t a ls i g n a l p r o c e s s i n g ( d s p ) t e c h n i q u et oc o n s t r u c th a r d w a r es y s t e m ,w h i c hc o n t r o l l e dt h eh a r d w a r e s y s t e mb yt h ea p p l i c a t i o no nt h ep c ;a d o p t i n gu n i v e r s a ls e r i a lb u s ( u s b ) t e c h n i q u et o c o m m u n i c a t et h e m t h e r e b yi tc a np r o d u c em u l t i w a v e f o m aa n dm u l t i c h a n n e lo u t p u t s i g n a ! w h o s ef r e q u e n c ya n da m p l i t u d e 、p h a s ec a nb ec h a n g e df r e e l yi ns o m er a n g e t h ep a p e rd i s s e c t st h em e t h o da n d p r o c e s s o fd e v e l o p i n ga p p l i c a t i o nw i t h l a b v i e wi nd e t a i l a n ds o l v e st h ep r o b l e mo fc a l l i n gau s bd r i v e rw h i c hi sn o t s u p p o r t e dd i r e c t l yb yl a b v i e 彤t h r o u g he x p e r i m e n t st o s o l v et h em u l t i - c h a n n e ls i g n a l g e n e r a t o r sc o m m u n i c a t i o na n dd a t at r a n s m i s s i o n f i n a l l y ,t h i sp a p e rd i s c u s s e st h e p r o b l e mo fw a v ed i s t o r t i o na f t e rt h ep w mo u t p u tp r o c e s s e db yf i l t e rc i r c u i t ,a n dp u t s f o r w a r dam e t h o dt oe q u a l i z ew a v e f o r m ,a n dt h e np r o v e st h ef e a s i b i l i t yo ft h em e t h o db y s i m u l a t i o ne x p e r i m e n t l iy i n g ( e l e c t r i cp o w e rs y s t e ma n di t sa u t o m a t i o n ) d i r e c t e db yp r o f , z h a n gy i g o n g k e yw o r d s :m u l t i c h a n n e ls i g n a lg e n e r a t o r ,l a b v i e w ,u s b ,w a v e f o r me q u a l i z e r 声明 本人郑重声明:此处所提交的硕士学位论文基于l a b v i e w 的多路信号发生 器软件开发,是本人在华北电力大学攻读硕士学位期间,在导师指导下进行的研 究工作和取得的研究成果。据本人所知,除了文中特别加以标注和致谢之处外,论 文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得华北电力大学或 其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的 任何贡献均已在论文中作了明确的说明并表示了谢意。 学位论文作者签名 日期:坦墨兰兰 关于学位论文使用授权的说明 本人完全了解华北电力大学有关保留、使用学位论文的规定,即:学校有权 保管、并向有关部门送交学位论文的原件与复印件;学校可以采用影印、缩印或 其它复制手段复制并保存学位论文;学校可允许学位论文被查阅或借阅;学校 可以学术交流为目的,复制赠送和交换学位论文:同意学校可以用不同方式在不 同媒体上发表、传播学位论文的全部或部分内容。 ( 涉密的学位论文在解密后遵守此规定) 作者签名 曰期:妒誓叫 导师签名: 日期 华北电力大学硕士学位论文 1 1 课题的研究背景 第一章绪论 进行电力系统仿真实验、电力电子装置实验以及其他很多场合,经常会需要输入三 相电压或电流信号。通常在这种情况下,对于信号源的要求是:信号同步且相位之间有 配合、可以提供电压信号或电流信号输出、提供多种波形信号。对于以上要求,普通实 验室的信号发生器是很难满足的。首先单个信号发生器只能输出单路信号,难以满足多 路的需要;而用多个普通的信号发生器实现多路,信号之间很难做到同步,相位又很难 以配合,很不方便;而且普通信号发生器产生的信号波形种类有限,如作电力系统仿真 实验中,为模拟真实波形,常需在基波上叠加多次谐波或加入白噪声干扰等,这时普通 的信号发生器就很难做到了。而市场上大部分的多路信号发生器存在体积庞大、接口不 灵活、系统封闭、功能固定、价格昂贵等缺点。因此,我们考虑设计一种满足电力系统 仿真试验输入信号要求的多路信号发生器。该信号发生器能产生多路包括正弦、方波、 三角波、脉冲等各种波形的电压和电流信号,信号相位可调,信号的幅值、频率在硬件 允许的范围内任意可调。 测量仪器从宏观上可分为两大类,即激励和检测【lj 。激励仪器主要是信号发生器, 信号发生器是一种常用的信号源,它是一种为电子测量和计量工作提供电信号的设备, 它和示波器、电压表、计数器等仪器一样是应用最广泛的电子仪器之一,几乎所有的电 参量的测量都需要信号发生器。在各种实验应用和实验测试处理中,它不是测量仪器, 而是根据使用者的要求,作为激励源,仿真各种测试信号,提供给被测电路,以满足测 量或各种实际需要。 信号源有很多种,包括正弦波信号源、函数发生器、脉冲发生器、扫描发生器、任 意波形发生器、合成信号源等。随着电子技术的迅速发展和科研、生产对信号源的广 泛需求,信号发生器发展迅速,性能日益提高,功能也越来越丰富。 早期的信号发生器主要是由模拟振荡电路构成,这种信号发生器输出的信号稳定度 不高,用电位器调节给定的参数误差较大,不能担当复杂系统的调试与测试工作。1 9 8 0 年代出现了单片机,信号发生器逐渐向数字化发展,发展趋势是以单片机、d s p 、c p l d 、 f p g a 等可编程器件为平台,结合直接数字合成( d o s ) 技术,将合成后的信号通过 d a 转换为模拟信号,再加上滤波电路而形成的数字信号发生器,它具有高精度、稳定 性好、输出灵活的特点。 信号发生器是一种最悠久的测量仪器,早在1 9 2 0 年代电子设备刚出现时它就产生 了。随着通讯和雷达技术的发展1 9 4 0 年代出现了主要用于测试各种接收机的标准信号 发生器,使信号发生器从定性分析的测试仪器发展成定量分析的测量仪器。同时还出现 华北电力大学硕士学位论文 了可用来测量脉冲电路或用作脉冲调制器的脉冲信号发生器。由于早期的信号发生器机 械结构比较复杂,功率比较大,电路比较简单,因此发展速度比较慢。直到1 9 6 4 年才 出现第一台全晶体管的信号发生器【2 j 。 自1 9 6 0 年代以来信号发生器有了迅速的发展,出现了函数发生器,这个时期的波 形发生器多采用模拟电子技术,由分立元件或模拟集成电路构成,其电路结构复杂,且 仅能产生正弦波、方波、锯齿波和三角波等几种简单波形,由于模拟电路的漂移较大, 使其输出的波形的幅度稳定性差,而且模拟器件构成的电路存在着尺寸大、价格贵、功 耗大等缺点,并且要产生较为复杂的信号波形则电路结构非常复杂。 自从1 9 7 0 年代微处理器的出现以后,利用微处理器、模数转换器和数模转换器、 硬件和软件使信号发生器的功能扩大,产生比较复杂的波形。这时期的信号发生器多以 软件为主,实质是采用微处理器对d a c 的程序控制,就可以得到各种简单的波形。软 件控制波形的一个最大缺点就是输出波形的频率低,这主要是由c p u 的工作速度决定 的,如果想提高频率可以改进软件程序减少其执行周期时间或提高c p u 的时钟周期, 但这些办法是有限度的,根本的办法还是要改进硬件电路。 随着现代电子、计算机和信号处理等技术的发展,极大促进了数字化技术在电子测 量仪器中的应用,使原有的模拟信号处理逐步被数字信号处理所代替,从而扩充了仪器 信号的处理能力,提高了信号测量的准确度、精度和变换速度,克服了模拟信号处理的 诸多缺点,数字信号发生器随之发展起来。目前信号发生器的基础就是直接数字合成技 术,用高速存储器做查询表,通过数字形式存入的波形,由高速数模转换器产生所需要 的波形。 1 2 课题的解决方案 考虑到经济性和实用性相结合的原则,既充分利用实验室现有的资源,又能满足上 述要求,提出如下解决方案: 1 采用p c 作为上位机,控制软件采用n i 公司的l a b v i e w 语言编写。控制软 件可以选择性地产生正弦波( 可叠加任意次谐波) 、方波、三角波、锯齿波信号的 波形点数组,并将信号波形的特征( 幅值、频率) 与波形点数组一起传递给下位机 进行数据处理,同时在前面板上显示波形供用户参考。 2 多路信号发生器的硬件设计以合众达公司的s e e d d e c 2 8 1 2 开发板为核心, 辅以滤波和放大电路。开发板上集成了t i 公司的t m s 3 2 0 f 2 8 1 2 d s p 芯片,做为下 位机的处理核心,其软件用c 语言在t i 公司的c c s 开发环境进行编写。上位机发 送过来信号特征和波形点在事件发生器( e v ) 的p w m 模块中进行处理,产生相应 的波形输出。d s p 的2 个e v 各有5 路输出,共1 0 路,其中6 路独立,可以满足信 号发生器的多路输出要求。 华北电力大学硕士学位论文 3 上位机与下位机之间通过u s b 总线进行通讯和数据传输。s e e d d e c 2 8 1 2 开发板上集成了c y p r e s s 公司的c y 7 c 6 8 0 0 1 u s b 接口芯片,可用u s b 延长线直接 连接到p c 机的h u b 上,该芯片支持u s b 2 0 协议,最高传输速率可达4 8 0 m b i t s ; 即使在1 1 的工作标准下也可以达到1 5 m b i t s s ,完全可以满足课题中数据传输速率 的需求。由于合众达公司提供的s e e d d e c 2 8 1 2 开发板u s b 驱动程序 ( u s b f o r d e c s y s ) 为内核模式,在l a b v i e w 环境下无法直接进行调用,而且n i 公 司不提供对非n i 公司的u s b 硬件的软件支持,无法用l a b v i e w 中的u s b 函数进 行读写操作,因此采用动态链接库调用开发板的u s b 驱动程序,然后用l a b v i e w 提供的c a l ll i b r a r yf u n c t i o n 节点调用动态链接库的方式实现通讯。动态链接库用 m i c r o s o f t 公司的v c + + 6 ,0 进行编写。 系统结构如图1 1 所示。 图1 1 多路信号发生器的系统结构图 1 3 课题所完成的工作 多路信号发生器的课题分为两大部分,一部分是设计上位机软件和解决通讯问 题;另一部分是硬件设计和操作系统移植。本课题是针对第一部分,即完成上位机 软件设计和解决通讯问题,所要完成的工作和研究内容包括: 1 在l a b v l e w 环境下编写界面: 2 在c c s 环境下编写下位机的u s b 驱动模块: 3 在v c + + 环境下编写动态链接库; 4 完成各部分的连接调试程序并实现仿真成功; 5 经过滤波后的波形失真进行分析,提出补偿方法,并通过实验验证。 华北电力大学硕士学位论文 第二章多路信号发生器上位机控制软件设计 2 1l a b v i e w 开发平台 l a b v i e w ( 1 a b o r a t o r yv i r t u a li n s t r u m e n te n g i n e e r i n gw o r k b e n c h ) 是一种图形化的 编程语言和开发环境,被公认为是标准的数据采集和仪器控制软件。它为设计者提 供了一个便捷、轻松韵设计环境,利用它设计者可以象搭积木一样,轻松组建一个 测量系统或数据采集系统,并任意构造自己的仪器面板,而无需进行任何繁琐的计 算机程序代码的编写,从而可以大大简化程序的设计。l a b v i e w 与v c + + 、v i s u a l b a s i c 、l a b w i n d o w s c v i 等编程语言不同,后者采用的是基于文本语言的程序代码, 而l a b v i e w 则是使用图形化程序设计语言g ,用方框图代替了传统的程序代码。 l a b v i e w 所运用的设备图标与科学家、工程师们习惯的大部分图标基本一致,这使 得编程过程和思维过程非常相似“3 。用l a b v i e w 设计的虚拟仪器可以脱离l a b v i e w 开发环境,最终用户看见的是和实际的硬件仪器相似的操作面板。 l a b v i e w 包含有专门用于设计数据采集程序和仪器控制程序的功能库和开发 工具库。l a b v i e w 的程序设计实质上就是设计一个个的“虚拟仪器”,即“v i s ( v i r t u a l i n s t r u m e n t s ) ”。在计算机显示屏幕上利用功能库和开发工具库产生一个前面板( f r o n t p a n e l ) :在后台则利用图形化编程语言编制用于控制前面板的程序。程序的前面板 具有与传统仪器类似的界面,可接受用户的鼠标指令。一般来说,每个v i 都可 以作为其它v i 的调用对象,其功能类似于文本语言的子程序。 l a b v i e w 是带有可扩展功能库和子程序库的通用程序设计系统。它提供了用于 g p i b 设备控制、v x 总线控制、串行口设备控制、以及数据分析、显示和存储的 应用程序模块“3 。l a b v i e w 可调用w i n d o w s 动态链接库和用户自定义的动态链接库 中的函数。l a b v i e w 的c i n 节点使用户可以使用由其它语言,如a n s i c ,编译的 程序模块,使l a b v i e w 成为一个开放的开发平台。l a b v i e w 还直接支持动态数据 交换( d d e ) 、结构化查询语言( s q l ) 、t c p 和u d p 网络协议等。此外,l a b v i e w 还提供了专门用于程序开发的工具箱,使得用户能够设置断点,动态执行程序来观 察数据的传输过程,以及进行方便的调试。 l a b v i e w 的运行机制就宏观上讲已经不再是传统上的冯诺依曼计算机体系结 构的执行方式。传统的计算机语言( 如c ) 中的顺序执行结构在l a b v i e w 中被并行 机制所代替:从本质上讲,它是种带有图形控制流结构的数据流模式,这种方式 确保程序中的节点只有在获得它的全部数据后才能执行。也就是说,在这种数据流 程序的概念中,程序的执行是数据驱动的,它不受操作系统、计算机等因素的影响 靶 d 华北电力大学硕士学位论文 l a b v i e w 程序是数据流驱动的。数据流程序设计规定,一个目标只有当它的所 有输入有效时才能执行;而目标的输出,只有当它的功能完全时才是有效的。这样, l a b v i e w 中被连接的方框图之间的数据流控制着程序的执行次序,而不象文本程序 受到行顺序执行的约束。从而可以通过相互连接功能方框图快速简洁地开发应用程 序,甚至还可以有多个数据通道同步运行。 l a b v i e w 的核心是v i 。v i 有一个人机对话的用户界面一前面板( f r o n tp a n e l ) 以及类似于源代码功能的方框图( d i a g r a m ) 。前面板接受来自方框图的指令。在v i 的前面板中,控制器( c o n t r o l s ) 模拟了仪器的输入装置并把数据提供给v i 的方框图; 而指示器( i n d i c a t o r s ) 则模拟了仪器的输出装置并显示由方框图获得或产生的数据。 当把一个控件或指示器放置到前面板上时,l a b v i e w 在方框图中相应地放置了一个 端口( t e r m i n a l s ) ,这个从属于控件或指示器的端口不能随意删除,只有删除它对应 的控件或指示器时它才随之一起被删除。 用l a b v i e w 编制方框图程序时,不必受常规程序设计语法细节的限制。首先, 从功能菜单中选择需要的功能方框,将之置于面板上适当的位置;然后用导线( w i r e s ) 连接各功能方框在方框图中的端口,用来在功能方框之间传输数据。这些方框包括 了简单的算术功能,高级的采集和分析v i 以及用来存储和检索数据的文件输入输 出功能和网络功能。 用l a b v i e w 编制出的图形化v i 是分层次和模块化的“1 。我们可以将之用于顶 层( t o pl e v e l ) 程序,也可用作其它程序或子程序的子程序。一个v i 用在其它v i 中, 称之为s u b v i ,s u b v i 在调用它的程序中同样是以一个图标的形式出现的。l a b v i e w 依附并发展了模块化程序设计的概念。用户可以把一个应用题目分解为一系列的子 任务,每个子任务还可以进一步分解成许多更低一级的子任务,直到把一个复杂的 题目分解为许多子任务的组合。首先设计s u b v i 完成每个子任务,然后将之逐步组 合成能够解决最终问题的v i 。 归纳起来l a b v i e w 软件开发平台具有以下优点: 图形化的编程方式,设计者无需写任何文本格式的代码,是真正的工程师的 语言。 提供了丰富的数据采集、分析及存储的库函数。 既提供了传统的程序调试手段,如设置断点、单步运行,同时提供有独到的 高亮执行工具,使程序动画式运行,利于设计者观察程序运行的细节,使程序的调 试和开发更为便捷。 3 2 b i t 的编译器编译生成3 2 b i t 的编译程序,保证用户数据采集、测试和测量 方案的高速执行。 囊括了d a q 、g p i b 、p x i 、v x i 、r s 2 3 2 4 8 5 在内的各种仪器通信总线标准 华北电力大学硕士学位论文 的所有功能函数,使得不懂总线标准的开发者也能够驱动不同总线标准接口设备与 仪器。 提供大量与外部代码或软件进行连接的机制,诸如d l l ( 动态连接库) 、 d d e ( 共享库) 、a c t i v e x 等 强大的i n t e r n e t 功能,支持常用网络协议,方便网络、远程测控仪器的开发“1 。 图形化程序设计编程简单、直观、开发效率高。随着虚拟仪器技术的不断发展, 图形化的编程语言必将成为测试和控制领域内最流行的发展趋势。 2 2 控制软件的主要功能和模块 2 2 1 多路信号发生器控制软件的主要功能 控制软件的功能包括: 1 对每路信号的波形进行选择,并输入波形特征( 包括幅值、频率、相位以 及谐波次数、频率、幅值) ; 2 根据相应的波形以及所输入的特征,生成原始的波形数据; 3 将原始的波形数据用波形显示出来,供用户进行参考; 4 根据d s p 进行p w m 控制所需的数据格式,对原始的波形数据进行处理; 5 将处理后的数据传输给a p i ( 调用驱动的动态链接库) 。 2 2 2 控制软件的模块划分 波形选择和特征 输入模块 i 波形显示 飘模块 一,i 一一 f 、j 波形数据产匕 - 7 生模块、 、。1 数据处理一j 数据传输 模块 “ 模块 图2 1 多路信号发生器控制软件各模块之问的关系 按照软件的功能,可将程序划分成几大模块: 1 波形选择和特征输入模块; 2 波形数据产生模块; 3 数据处理模块; 4 显示模块: 5 数据传输模块。 各模块之间的关系如图2 1 所示。 华北电力大学硕士学位论文 2 3 程序设计 2 3 1 波形数据产生和处理模块设计 作为实例,本文中的多路信号发生器产生4 种常用的波形:正弦波( 带任意次 谐波) 、方波、三角波、锯齿波,下面将分别阐述这几种波形数据产生模块的设计 方法。 2 3 1 1 正弦波形数据产生模块 正弦波形是电力系统最常见的、仿真和实验中最常用到的波形,针对实际系统 中可能存在的多次谐波,设计中添加了产生任意次谐波,以便实验及仿真中使用。 1 单一波形数据的产生 在l a b v i e w 环境下,产生正弦波的方法有很多,包括使用s i m u l a t es i g n a l e x p r e s sv i 、s i n ev i 、公式节点等,考虑到数据的精确性和控制方便,设计中使用 了公式节点。 l a b v i e w 的程序描述能力虽然足够强大,但对于一些复杂算法完全依赖图形代 码来实现会过于繁琐,而公式节点( f o r m u l an o d e ) 正好可以补充这个缺点。公 式节点是一种结构,允许用户使用类似于多数文本编程语言的句法,所使用的语句 类似于c 语言代码。1 ,提供参数的输入和输出接口,输入或者输出的参数必须是数 值型数据。 在l a b v i e w 的对话框中,放置公式节点,在节点中间的代码输入框中输入如 下代码: y 。s i n ( a + t + b ) + e 4 s i n ( d + a + t + f ) ; 其中参数a 代表角频率,由频率乘以2n 得来;参数b 代表相位,由用户输入 的相位( 0 - 3 6 0 ) 除以1 8 0 并乘以得来;参数d 代表谐波次数;参数e 代表谐波分 量;参数f 代表谐波相位,采用与相位相同的处理方法;参数t 代表时间参量,由 频率的倒数除以循环总次数并乘以循环因子。 这样产生的波形数据幅值为1 ,这样做是为了方便数据进行进一步处理。 2 波形点数组的产生 首先要初始化一个一维包含3 6 0 个元素的数组,数组所有元素为0 ,将数组引 入到循环次数为3 6 0 次的f o r 循环中。f o r 循环有种特殊的功能,称为自动索引 ( a u t o i n d e x i n g ) 功能。当数组连接到循环结构的边框时,将默认打开自动索引功能, 数组将在每次循环中顺序输入一个值,该值在原数组中索引与当次循环的重复端子 值相同,也就是说数组在循环内部将变为标量元素“1 。将标量元素与上面生成的y 值相加,所得的值将按照索引值顺序保存在自动索引中,当循环结束,即可生成新 华北电力大学硕士学位论文 的、幅值为l 的波形数据数组,从自动索引的输出端子引出。 图2 - 2s i n e 子v i 后面板部分1 图2 3s i n e 子v i 后面板部分2 所得到的数组,根据d s p 处理数据的需要,将数组元素控制在0 - 7 5 0 0 之间。 首先采用a r r a ym a x & m i n 函数,提取数组元素中的最大值,引入一个新的3 6 0 次 的循环,用数组元素逐一除以最大值后,乘以3 7 5 0 再加上3 7 5 0 并取整,输出循环 后就生成新的波形数值数组。 华北电力大学硕士学位论文 用i n s e r t i n t o a r r a y 函数分别将幅值和频率分别添加到数组的前两个位置,数组 元素变成3 6 2 个。 由于频率需要进行除法运算,如果为0 ,将会产生程序错误。同时,由于在产 生单一波形数据时没有引入幅值,这样即使幅值为0 同样会产生相应的数据。为确 保数组元素产生的可靠性,避免误输入引起的错误数据,程序中使用了选择结构 ( c a s es t r u c t u r e ) ,对幅值和频率是否等于0 做出判断,只有当幅值和频率同时不为 0 时,数组将被按照上述方法进行处理:如果幅值或频率为0 时,数组将不被处理。 从而有效地保证了数据的准确性。 3 创建子v i 图2 - 4 正弦子v i 前面板 图2 5 编辑s i n e 子v i 图标 由于产生正弦波形的v i 在主程序中将被做为子v i 使用,因此有必要创建相应 华北电力大学硕士学位论文 的接口。l a b v i e w 提供了连接器来帮助创建子v i ,将前面板控制器和指示器都配 置好,将对话框按照上面所述连接好,保存为s i n e v i 。右键点击前面板右上角的小 图标,在下拉菜单中选择s h o wc o n n e c t o r ,如图2 4 ,分别按照输入和输出端子,用 鼠标对控制器和指示器与c o n n e c t o r 的端子进行连接。然后右键点击图标,再下拉菜 单中选择e d i ti c o n ,在图框中编辑图标,如图2 - 5 ,然后保存文件。这样在主程序中 就可以调用了s i n e 子v i 了。 2 3 1 ,2 其他三种波形数据产生模块 方波、三角波、锯齿波的波形数据处理方式与正弦波相同,所不同的正弦波是 用公式计算而来,而这三种波形采用是在公式节点内采用编程语言描述波形特征。 1 方波 公式节点中的程序代码如下: f l o a td : d = t + c ; i f ( d = a 、 d = d - a : i f ( d a 2 ) y 。一l : 参数t 为输入时间因子,c 为输入偏移量,参数a 为周期,y 为输出波形点数值, d 为定义的浮点变量。考虑到时间因子t 加上偏移量c ,可能会大于a ,因此如果大 于a ,将用d 减去a ,保证d 小于a 。 2 三角波 公式节点中的程序代码: f l o a td ; d = t + c ; i f ( d = a ) d = d - a ; i f ( d a 2 ) y 2 ( 1 一( 4 4 ( d a a ) ) a ) ; 参数与方波参数相同,不再赘述。 3 锯齿波 华北电力大学硕士学位论文 公式节点中的程序代码: f l o a td ; d = t + c : i f ( d = a 、 d = d a : y = ( ( 2 + d ) a 一1 ) ; 参数与方波参数相同,不再赘述。 2 3 2 波形显示模块设计 波形显示模块,是按照所输入的波形特征将波形按照时间t 和波形点y 值显示 出来,供用户参考。 课题中采用x yg r a p he x p r e s sv i 来显示完整的曲线数据。x yg r a p h 不要求水 平坐标等间隔分布,并且可以描述一对多的映射关系。 在绘制单曲线时,可以接受两种数据组织格式: ( 1 ) 由x 数组和y 数组打包生成的簇( l a b v i e w 中一种数据格式,和c + + 的 结构类似) 。绘制曲线时把相同索引的x 和y 数组元素值作为一个点,按索引顺序 连接所有的点,生成波形图。 ( 2 ) 由簇组成的数组,每个数组元素都是由一个x 坐标值和一个y 坐标值打 包生成。绘制曲线时,按照数组索引顺序连接数组元素解包后组合而成的数据坐标 点。 图2 - 6 显示模块的对话框设计 设计中将采用第一种方案。在循环中波形点数据y 将乘以幅值,然后从循环中 引出,将在自动索引那里生成一个波形点数组;同时将时间因子t 也将从循环中引 出,生成一个时间点数组。把t 数组和y 数组用c o n v e r tt od y n a m i cd a t a 将数组打 包成簇,引入到x yg r a p he x p r e s sv i ,绘制波形。对话框设计如图2 - 6 ,前面板显 示如图2 7 。 华北电力大学硕士学位论文 图2 7 显示模块的前面板设计 2 3 3 波形选择和数据输入模块设计 这两部分模块是控制程序中重要部分,用户在使用多路信号发生器的控制程序 时,首先需要前面板中控制按钮中,选择相应的波形,然后点击输入参数,在弹出 的对话框中输入相应的参数,程序将按照参数产生相应的波形数据数组,并在x y g r a p h 的前面板指示器中绘制出对应的波形。 2 3 3 1 数据输入模块 在数据输入模块中,我们采用了p r o m p tu s e rf o ri n p u te x p r e s sv i ,p r o m p tu s e r f o ri n p u te x p r e s sv i 的功能是当输入的b o o l 型变量为t u r e 时,弹出对话框。在对框 中输入参数,参数的输出端子通过连线连接到相应子v i 的输入端子上。 图2 8p r o m p tu s e rf o ri n p u te x p r e s sv i 的设置对话框 在主程序的对话框中双击p r o m p tu s e rf o ri n p u te x p r e s sv i ,弹出设置对话框 华北电力大学硕士学位论文 如图2 8 所不。 m e s s a g et od i s p l a y 可供用户添加提示信息;i n p u t s 用于指定需要用户输入参数 的名称和数据类型;b u t t o n st od i s p l a y 指定对话框中的第一按钮的名称及第二按钮 是否被显示和它的名称。以锯齿波的设置为例,如上图所示,三个输入参数的名称 分别为幅值、频率、相位,将数据类型都选择为n u m b e r ,在f i r s tb u a o n n a m e 的图 框中填写确定,将d i s p l a ys e c o n db u t t o n 前边的图框用鼠标选中,在s e c o n db u t t o n n a n l e 的图框中填写取消,在w i n d o wt i t i e 中填入输入波形特征,然后点击确定,完 成设置,在程序运行的时候就可以显示如图2 - 9 的对话框。 图2 - 9 锯齿波输入参数对话框 程序中,采用p u s hb u t t o n 作为前面板上的触发按钮,命名为“参数输入”, 该按钮为b o o l 型,默认值为f a l s e ,当程序运行时,按下该按钮,输入值改变为t u r e , 放开后输入值再次变为f a l s e 。在对话框中,将它与p r o m p t u s e r f o r i n p u t e x p r e s s v i 的输入用连线连接,当程序进入循环后,点击参数输入按钮就可触发p r o m p tu s e rf o r i n p u te x p r e s sv i ,弹出对话框。 p r o m p t u s e r f o r i n p u t e x p r e s s v i 的输出端口中“确定”输出为b o o l 型数值,当 输入完参数,点击确定时,该值变为t u r e 。将该输出端口与c a s es t r u c t u r e 的c a s e s e l e c t o r 端子相连接,将对应的波形子v i 放置在c a s es t r u c t u r e 中,在t u r e 的框图 中,引入的参数与波形子v i 的输入相连接;在f a l s e 的框图中,引入的参数和子 v i 的输入不相连。这样,当按下参数输入按钮,输入完参数,点击确定之后,参数 就被送入到相应的子v i 中,完成参数输入的过程。 以上过程需要程序在循环中实现,为此,我们采用定时循环( t i m e dl o o p ) 来实 现,右键点击定时循环的边框,在菜单中选择c o n f i g u r et i m e dl o o p ,在弹出的对 话框中将定时源( t i m e ds o u r c e ) 、循环周期( p e r i o d ) 、循环启动偏移( o f f s e t ) 、优 先级( p r i o r i t y ) 、循环名称( l o o pn a m e ) 和延迟循环处理模式( m o d e ) 按照需要 进行设置,然后将上面所述的全部的框图放置到定时循环内,就可以实现参数输入 华北电力大学硕士学位论文 了。 为了保证程序可以跳出循环,程序中设置了s t o p 按钮,在程序进入无限循环时 点击该按钮即可退出循环。 图2 1 0 正弦波形参数输入子v i 的对话框 2 3 3 2 波形选择模块 图2 1 1 波形选择和参数输入模块的对话框 首先在前面板上放置一个m e n ur i n g 按钮,命名为波形选择,右键点击按钮, 在菜单中选择p r o p e r t i e s ,弹出对话框,在e d i ti t e m 选项卡中,分别填入正弦波、 方波、三角波、锯齿波,对应的值分别为0 、1 、2 、3 ,完成配置后,在对话框中用 连线将波形选择与c a s es t r u c t u r e 的c a s es e l e c t o r 相连接,这样c a s es t r u c t u r e 中就 会有4 种c a s e ,分别将相对应波形产生子v i 放置到对应的c a s e 中。比如:正弦波 华北电力大学硕士学位论文 的值为0 ,在c a s e 0 中放置产生正弦波的子v i 。 波形选择模块不能独立作为一个子v i ,需要配合参数输入模块一起完成任务。 首先在对话框中放置定时循环,将c a s es t r u c t u r e 放置在循环中,然后在前面板放置 m e n ur i n g 按钮,命名为a 相波形选择,将对话框中对应的端子与c a s es t r u c t u r e 的c a s es e l e c t o r 连接。完成前面板按钮的编辑后,在对应的c a s e 下放置对应的波形 参数输入模块,同时将参数输入引出到波形选择之外,这样就完成了两个模块之间 的连接。 2 3 4 数据传输模块设计 产生的波形数据数组需要传递给下位机进行处理,由合众达公司提供的d s p 开 发板的u s b 驱动为s y s 内核模式,而l a b v i e w 无法直接调用内核模式的驱动,因 此必须使用a p i ,连接驱动和l a b v i e w ,关于如何编写以及使用a p i 将在后面章节 中阐述。这里我们选择用动态链接库( d l l ) 作为a p i ,在l a b v i e w 中用c a l l l i b r a r y f u n c t i o n 节点调用d l l 文件。 图2 1 2c a l ll i b r a r yf u n c t i o n 节点的设置对话框 l a b v i e w 是通过生成的c 语言的函数与d l l 的输出接口函数进行数据传递, 两者必须同名,参数个数、类型均相同。首先,在对话框中放置一个c a l ll i b r a r y f u n c t i o n 节点,右键点击,在菜单里选择c o n f i g u r e ,弹出对话框,对节点进行配置, 如图2 1 2 。在l i b r a r y n a m eo r p a t h 中添加d l l 文件的路径和名称:在f u n c t i o n n a m e 中填入p a s s d a t a ,命名传递函数;在c a l l i n gc o n v e n t i o n s 的下拉菜单中选择c ;在 p a r a m e t e r 中分别命名e r r o r ( 类型为v o i d ) 和w a v e p o i n t ( 类型为一维整型数组) , 点击o k 完成配置。右键点击节点,选择c r e a t e cf i l e ,保存文件后可以生成函数 原型,为编写d l l 的导出函数提供函数原型。 最后将通道号添加到数组的首元素中,这样d s p 处理数据的时候就可以判断是 华北电力大学硕士学位论文 那相的波形数据了。对话框如图2 1 3 。 图2 1 3 数据传递模块的对话框设计 2 3 5 程序的集成与调试 图2 1 4 多路信号发生器的前面板 将组建好的各功能模块按照逻辑关系集成,为相应的控制器和指示器命名,就 形成了一个功能完善的信号发生器控制界面。将对话框循环内的框图分别复制两份 并放入循环中,为新的控制器和指示器命名,分成a 、b 、c 三相,就形成了可以 输出3 相信号的多路信号发生器的控制界面,如图2 1 4 ,根据需要还可以扩充输出。 运行界面主程序,a 相选择正弦波,幅值2 2 0 ,频率5 0 ,相位6 0 ;b 相选择方 波,幅值2 2 0 ,频率5 0 ,相位6 0 ;c 相选择三角波,幅值2 2 0 ,频率5 0 ,相位6 0 ; 观察波形,如图2 1 4 。波形符合要求,表明界面程序中除数据传输模块外均正常运 华北电力大学硕士学位论文 行,数据传送模块部分的调试则在后面章节说明。 在程序集成时需要注意的问题有: 1 数据流向问题 在上文中已经提到过,由于l a b v i e w 是数据流驱动式编程语言,因此在将各 个功能模块集成时,更应注意数据流向的问题。尤其是使用到弹出式对话框的模块, 很容易引起数据流的混乱,造成错误。在必要时,应使用s e q u e n c e 结构控制数据流 向,使它按照设计者的意愿传递数据。 2 数据的内聚与祸合问题 同其它模块化编程语言一样,l a b v i e w 同样存在着模块的内聚与耦合问题。高 内聚、低耦合是模块化编程遵循的一个基本原则,只有如此程序才可能有较好的可 维护性。在使用循环结构时,要特别注意在何种情况下循环内部的变量才可以被外 部引用,而不影响内部的参量,不改变内部结构。尤其为增加仪器功能而添加功能 函数或子v i s 时,因慎重考虑模块的内聚与耦合问题。 任何较大型的程序的调试都是一件烦琐的事情。l a b v i e w 虽然为我们提供了功 能完善的调试工具,但仍然存在着许多隐含在程序内部的错误无法发现。这就要求 我们在开发程序的过程中一定要仔细地把好每一关,在模块内部将错误清除,才能 减轻最终程序调试的难度。 华北电力大学硕士学位论文 第三章多路信号发生器通讯问题的解决方案 多路信号发生器的上位机为p c 机,下位机的核心部件是t i 公司的d s p 芯片 t m s 3 2 0 f 2 8 1 2 ,为实现上位机对下位机的控制并保证波形数据的传输,必须有效地 解决通讯问题。 s e e d d e c 2 8 1 2 开发板提供了串口和u s b 接口,与串口相比,u s b 接口具有 如下优势: 使用方便:即插即用,支持热插拔; 传输速度快:u s b l 1 支持1 5 m b p s 和1 2 m b p s 两种传输速率,u s b 2 0 最高速 率可达4 8 0 m b p s ”3 。 因此选用u s b 接口来解决通讯问题。 3 1 下位机的u s b 驱动程序 下位机以s e e d d e c 2 8 1 2 开发板为核心,处理器为t m s 3 2 0 f 2 8 1 2 ,由它进行 数据处理,并调用在开发板上集成的u s b 接口芯片c y 7 c 6 8 0 0 1 。这一部分将分别 介绍两种芯片,并说明如何在c c s 的环境下开发u s b 驱动程序。 3 1 1t m s 3 2 0 f 2 8 1 2 芯片简介 t m s 3 2 0 f 2 8 1 2 数字信号处理器是t i 公司推出的3 2 位定点d s p 控制器,其频 率为1 5 0 m h z 。它集中了数字信号处理的诸多优点特性,具有精简指令集( r i s c

温馨提示

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

评论

0/150

提交评论