我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 919|回复: 0

基于LabVIEW的嵌入式瞬态记录分析仪的软件设计 - 软件编程/

[复制链接]

该用户从未签到

1万

主题

1292

回帖

2万

积分

管理员

积分
29577

社区居民最爱沙发原创达人社区明星终身成就奖优秀斑竹奖宣传大使奖特殊贡献奖

QQ
发表于 2013-3-30 00:43:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
<strong>1 引言</strong>

在嵌入式仪器应用越来越广泛的今天,编写嵌入式应用程序的工具软件也更加的多样化,C/C++、EVC、.NET、JAVA等文本编辑语言的使用已经很成熟,但是在国内图形化编程语言使用的还比较少。文本编程语言在编写设备驱动程序、动态库函数等底层程序方面比较方便,但是编写交互界面与后续的信号处理程序难度较大,对编程人员的要求较高;LabVIEW软件是目前最流行的图形化编程工具,操作界面简便直观.主要优势是图形化编程、高级开发工具、内置测量和控制函数、多平台嵌入式设备、将信号分析功能模块化等特点,对编写界面程序与信号处理程序有很大的优势,为了能够实现对底层硬件的操作,LabVIEW软件也提供了强大的外部程序接口能力,可以方便的调用C/C++、VC、VB等编程语言编写的程序以及Windows自带的大量API函数。文章结合了图形化编程语言与文本编程语言的诸多优点,既实现了对底层硬件的操作,又方便快捷的编写了友好的人机交互界面。

<strong>2 系统结构的设计</strong>

系统的硬件结构示意图如图1所示,本文CPU采用200MHz的ARM920T,具有64MB系统内存、32MB FLASH,配合使用精简ISA总线组成系统的主控部分。系统具有两个采集通道,每个通道的电荷传感器将测得的瞬态物理量转化为电荷量,再传递给电荷放大器将电荷量转化为范围是-1 - +1V电压值;经过程控放大与程控滤波对信号进行调理,放大倍数最高可达32倍,程控滤波有直通、2KHz、10KHz、30KHz与100KHz五个选择,本文所选择的高速A/D转换器最高采样频率为20MHz,转化后的数据存储到高速SDRAM中,用FPGA芯片作为逻辑控制单元,将数据从SDRAM中提取出来传递给应用程序,通过人机交互界面在LCD上进行显示。考虑到经常性的室外作业,本文使用电池对仪器供电,充电接口接9V变压器,由充电管理模块控制电池的充放电,经过电源程控开关实现对LCD与高速采集硬件的供电控制。


<ignore_js_op>





2010-4-14 12:02:27 上传
<strong>下载附件</strong> (8.21 KB)




</ignore_js_op>

图1系统硬件结构示意图

LabVIEW本身包含的一些接口设备的驱动程序都是针对该公司生产的接口板,由于本文的高速数据采集硬件不是NI公司的产品,所以驱动程序使用EVC4.0进行编写,将流式接口驱动程序提供的接口函数与部分WINCE API函数进行封装,方便应用程序的调用。通过使用LabVIEW软件的Call Library Function Node节点渊用动态库函数实现对底层硬件的访问与驱动。软件结构示意图如图2,主要由三部分组成:系统硬件的流式接口驱动程序、动态库函数以及人机交互界面程序。


<ignore_js_op>





2010-4-14 12:02:28 上传
<strong>下载附件</strong> (2.63 KB)




</ignore_js_op>

图2 软件结构示意图

<strong>3 人机交互界面的设计</strong>

程序开始运行后首先显示欢迎画面然后进入主界面,主界面可以完成对各个子界面的调用,也可以从任何子界面中跳转回主界面。人机交互界面的结构如图3所示。工程信息显示子界面实现了对测试单位、测试人员、当前日期与当前温度等信息的显示功能;采集参数设置子界面可以显示、修改最近一次设置的通道号、采样率、采样时长、硬件滤波、放大倍数、零漂采集及是否扣除零漂等参数;在采集显示子界面,实现对瞬态信号的采集,同时通过下面的状态栏可以了解采集状态。当采集过程出现问题时,用户可以及时的停止采集,采集结束后通过图表、数字等形式显示采集来的数据,并可以对数据进行保存;在数据分析子界面,用户可以对采集到的数据进行波形操作、FFT及功率谱分析、光标操作,用以检测瞬态数据是否能够达到标准;系统信息子界面能够显示、修改系统时间与待机时间,实现校对系统时间、控制显示器与采集硬件供电的功能。


<ignore_js_op>





2010-4-14 12:02:28 上传
<strong>下载附件</strong> (9.16 KB)




</ignore_js_op>

图3 人机交互界面结构图

<strong>4 程序框图代码的设计</strong>

程序框图代码的主体设计借鉴了状态机的编程思想,使程序简单易读、易于维护,主要由—个主循环与—个Case结构组成,利用移位寄存器来实现状态的跳转。本程序的流程图如图4所示。

程序运行后.首先对各个控制变量进行初始化,读取指定路径的文本文档,完成对最近一次保存的采集参数的读取,并作为参数设置子界面显示量的默认值;然后进入欢迎画面同时对采集硬件进行初始化。进行采集之前,进入参数设置子界面,对最近一次保存的采集参数与系统时间、待机时间进行修改并重新保存为文本文档。设置好参数后,开始对瞬态信号进行采集。首先将保存好的采集参数赋值给采集硬件进行采集.并循环检查动态库函数返回的状态控制字,采集结束时返同值为FF,同时数据波形通过图表进行显示。用户通过对波形的操作与分析来判断所测数据是否达到标准,如果没达到标准,可以重新设置参数进行采集,达到标准后可以将数据存成文件,方便离线到PC机上,进行更深入的分析。


<ignore_js_op>





2010-4-14 12:02:28 上传
<strong>下载附件</strong> (10.75 KB)




</ignore_js_op>

图4 人机界面软件流程图

4.1 波形数据分析功能的设计

检测捕获的数据是否达到标准主要是通过对波形数据的FFT分析、功率谱分析与光标操作来实现。本文对波形数据的FFT分析与功率谱分析,直接调用了FFT spectum(MagPhase).vi模块与FFT Power Spectrum.vi模块,输入波形数据类型就可以很方便的实现对波形数据的FFT分析、功率谱分析,经过FFT与功率谱分析模块的计算,输出的是FFT频谱与功率谱数据有效值组成的数组,只需对数组中各个元素进行处理就可以显示数据的峰值波形:

在对波形分析的操作中,光标显示是必不可少的,在LabVIEW环境下编写光标操作代码比文本编程环境快的多.只需要在显示控件的属性选项中,添加两根不同颜色的光标,再调用图表控件中Cursor的属性节点,将光标所在位置的纵坐标进行输出,就可以实现对光标的控制。节省了很多的编程时间。对波形的显示及分析结果如图5、6所示。


<ignore_js_op>





2010-4-14 12:02:28 上传
<strong>下载附件</strong> (9.65 KB)




</ignore_js_op>

图5 波形显示


<ignore_js_op>





2010-4-14 12:02:28 上传
<strong>下载附件</strong> (7.76 KB)




</ignore_js_op>

图6 波形分析


作者:章广志  来源:《微计算机信息》(嵌入式与SOC)2009年第6-2期
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

公告:服务器刚移机,
大家请不要下载东西。
会下载失败


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

平平安安
TOP
快速回复 返回顶部 返回列表