1 引言
在嵌入式仪器应用越来越广泛的今天,编写嵌入式应用程序的工具软件也更加的多样化,C/C++、EVC、.NET、JAVA等文本编辑语言的使用已经很成熟,但是在国内图形化编程语言使用的还比较少。文本编程语言在编写设备驱动程序、动态库函数等底层程序方面比较方便,但是编写交互界面与后续的信号处理程序难度较大,对编程人员的要求较高;LabVIEW软件是目前最流行的图形化编程工具,操作界面简便直观.主要优势是图形化编程、高级开发工具、内置测量和控制函数、多平台嵌入式设备、将信号分析功能模块化等特点,对编写界面程序与信号处理程序有很大的优势,为了能够实现对底层硬件的操作,LabVIEW软件也提供了强大的外部程序接口能力,可以方便的调用C/C++、VC、VB等编程语言编写的程序以及Windows自带的大量API函数。文章结合了图形化编程语言与文本编程语言的诸多优点,既实现了对底层硬件的操作,又方便快捷的编写了友好的人机交互界面。
2 系统结构的设计
系统的硬件结构示意图如图1所示,本文CPU采用200MHz的ARM920T,具有64MB系统内存、32MB FLASH,配合使用精简ISA总线组成系统的主控部分。系统具有两个采集通道,每个通道的电荷传感器将测得的瞬态物理量转化为电荷量,再传递给电荷放大器将电荷量转化为范围是-1 - +1V电压值;经过程控放大与程控滤波对信号进行调理,放大倍数最高可达32倍,程控滤波有直通、2KHz、10KHz、30KHz与100KHz五个选择,本文所选择的高速A/D转换器最高采样频率为20MHz,转化后的数据存储到高速SDRAM中,用FPGA芯片作为逻辑控制单元,将数据从SDRAM中提取出来传递给应用程序,通过人机交互界面在LCD上进行显示。考虑到经常性的室外作业,本文使用电池对仪器供电,充电接口接9V变压器,由充电管理模块控制电池的充放电,经过电源程控开关实现对LCD与高速采集硬件的供电控制。
图1系统硬件结构示意图
LabVIEW本身包含的一些接口设备的驱动程序都是针对该公司生产的接口板,由于本文的高速数据采集硬件不是NI公司的产品,所以驱动程序使用EVC4.0进行编写,将流式接口驱动程序提供的接口函数与部分WINCE API函数进行封装,方便应用程序的调用。通过使用LabVIEW软件的Call Library Function Node节点渊用动态库函数实现对底层硬件的访问与驱动。软件结构示意图如图2,主要由三部分组成:系统硬件的流式接口驱动程序、动态库函数以及人机交互界面程序。
图2 软件结构示意图
3 人机交互界面的设计
程序开始运行后首先显示欢迎画面然后进入主界面,主界面可以完成对各个子界面的调用,也可以从任何子界面中跳转回主界面。人机交互界面的结构如图3所示。工程信息显示子界面实现了对测试单位、测试人员、当前日期与当前温度等信息的显示功能;采集参数设置子界面可以显示、修改最近一次设置的通道号、采样率、采样时长、硬件滤波、放大倍数、零漂采集及是否扣除零漂等参数;在采集显示子界面,实现对瞬态信号的采集,同时通过下面的状态栏可以了解采集状态。当采集过程出现问题时,用户可以及时的停止采集,采集结束后通过图表、数字等形式显示采集来的数据,并可以对数据进行保存;在数据分析子界面,用户可以对采集到的数据进行波形操作、FFT及功率谱分析、光标操作,用以检测瞬态数据是否能够达到标准;系统信息子界面能够显示、修改系统时间与待机时间,实现校对系统时间、控制显示器与采集硬件供电的功能。
图3 人机交互界面结构图
4 程序框图代码的设计
程序框图代码的主体设计借鉴了状态机的编程思想,使程序简单易读、易于维护,主要由—个主循环与—个Case结构组成,利用移位寄存器来实现状态的跳转。本程序的流程图如图4所示。
程序运行后.首先对各个控制变量进行初始化,读取指定路径的文本文档,完成对最近一次保存的采集参数的读取,并作为参数设置子界面显示量的默认值;然后进入欢迎画面同时对采集硬件进行初始化。进行采集之前,进入参数设置子界面,对最近一次保存的采集参数与系统时间、待机时间进行修改并重新保存为文本文档。设置好参数后,开始对瞬态信号进行采集。首先将保存好的采集参数赋值给采集硬件进行采集.并循环检查动态库函数返回的状态控制字,采集结束时返同值为FF,同时数据波形通过图表进行显示。用户通过对波形的操作与分析来判断所测数据是否达到标准,如果没达到标准,可以重新设置参数进行采集,达到标准后可以将数据存成文件,方便离线到PC机上,进行更深入的分析。
图4 人机界面软件流程图
4.1 波形数据分析功能的设计
检测捕获的数据是否达到标准主要是通过对波形数据的FFT分析、功率谱分析与光标操作来实现。本文对波形数据的FFT分析与功率谱分析,直接调用了FFT spectum(MagPhase).vi模块与FFT Power Spectrum.vi模块,输入波形数据类型就可以很方便的实现对波形数据的FFT分析、功率谱分析,经过FFT与功率谱分析模块的计算,输出的是FFT频谱与功率谱数据有效值组成的数组,只需对数组中各个元素进行处理就可以显示数据的峰值波形:
在对波形分析的操作中,光标显示是必不可少的,在LabVIEW环境下编写光标操作代码比文本编程环境快的多.只需要在显示控件的属性选项中,添加两根不同颜色的光标,再调用图表控件中Cursor的属性节点,将光标所在位置的纵坐标进行输出,就可以实现对光标的控制。节省了很多的编程时间。对波形的显示及分析结果如图5、6所示。
图5 波形显示
图6 波形分析
1 引言
在嵌入式仪器应用越来越广泛的今天,编写嵌入式应用程序的工具软件也更加的多样化,C/C++、EVC、.NET、JAVA等文本编辑语言的使用已经很成熟,但是在国内图形化编程语言使用的还比较少。文本编程语言在编写设备驱动程序、动态库函数等底层程序方面比较方便,但是编写交互界面与后续的信号处理程序难度较大,对编程人员的要求较高;LabVIEW软件是目前最流行的图形化编程工具,操作界面简便直观.主要优势是图形化编程、高级开发工具、内置测量和控制函数、多平台嵌入式设备、将信号分析功能模块化等特点,对编写界面程序与信号处理程序有很大的优势,为了能够实现对底层硬件的操作,LabVIEW软件也提供了强大的外部程序接口能力,可以方便的调用C/C++、VC、VB等编程语言编写的程序以及Windows自带的大量API函数。文章结合了图形化编程语言与文本编程语言的诸多优点,既实现了对底层硬件的操作,又方便快捷的编写了友好的人机交互界面。
2 系统结构的设计
系统的硬件结构示意图如图1所示,本文CPU采用200MHz的ARM920T,具有64MB系统内存、32MB FLASH,配合使用精简ISA总线组成系统的主控部分。系统具有两个采集通道,每个通道的电荷传感器将测得的瞬态物理量转化为电荷量,再传递给电荷放大器将电荷量转化为范围是-1 - +1V电压值;经过程控放大与程控滤波对信号进行调理,放大倍数最高可达32倍,程控滤波有直通、2KHz、10KHz、30KHz与100KHz五个选择,本文所选择的高速A/D转换器最高采样频率为20MHz,转化后的数据存储到高速SDRAM中,用FPGA芯片作为逻辑控制单元,将数据从SDRAM中提取出来传递给应用程序,通过人机交互界面在LCD上进行显示。考虑到经常性的室外作业,本文使用电池对仪器供电,充电接口接9V变压器,由充电管理模块控制电池的充放电,经过电源程控开关实现对LCD与高速采集硬件的供电控制。
图1系统硬件结构示意图
LabVIEW本身包含的一些接口设备的驱动程序都是针对该公司生产的接口板,由于本文的高速数据采集硬件不是NI公司的产品,所以驱动程序使用EVC4.0进行编写,将流式接口驱动程序提供的接口函数与部分WINCE API函数进行封装,方便应用程序的调用。通过使用LabVIEW软件的Call Library Function Node节点渊用动态库函数实现对底层硬件的访问与驱动。软件结构示意图如图2,主要由三部分组成:系统硬件的流式接口驱动程序、动态库函数以及人机交互界面程序。
图2 软件结构示意图
3 人机交互界面的设计
程序开始运行后首先显示欢迎画面然后进入主界面,主界面可以完成对各个子界面的调用,也可以从任何子界面中跳转回主界面。人机交互界面的结构如图3所示。工程信息显示子界面实现了对测试单位、测试人员、当前日期与当前温度等信息的显示功能;采集参数设置子界面可以显示、修改最近一次设置的通道号、采样率、采样时长、硬件滤波、放大倍数、零漂采集及是否扣除零漂等参数;在采集显示子界面,实现对瞬态信号的采集,同时通过下面的状态栏可以了解采集状态。当采集过程出现问题时,用户可以及时的停止采集,采集结束后通过图表、数字等形式显示采集来的数据,并可以对数据进行保存;在数据分析子界面,用户可以对采集到的数据进行波形操作、FFT及功率谱分析、光标操作,用以检测瞬态数据是否能够达到标准;系统信息子界面能够显示、修改系统时间与待机时间,实现校对系统时间、控制显示器与采集硬件供电的功能。
图3 人机交互界面结构图
4 程序框图代码的设计
程序框图代码的主体设计借鉴了状态机的编程思想,使程序简单易读、易于维护,主要由—个主循环与—个Case结构组成,利用移位寄存器来实现状态的跳转。本程序的流程图如图4所示。
程序运行后.首先对各个控制变量进行初始化,读取指定路径的文本文档,完成对最近一次保存的采集参数的读取,并作为参数设置子界面显示量的默认值;然后进入欢迎画面同时对采集硬件进行初始化。进行采集之前,进入参数设置子界面,对最近一次保存的采集参数与系统时间、待机时间进行修改并重新保存为文本文档。设置好参数后,开始对瞬态信号进行采集。首先将保存好的采集参数赋值给采集硬件进行采集.并循环检查动态库函数返回的状态控制字,采集结束时返同值为FF,同时数据波形通过图表进行显示。用户通过对波形的操作与分析来判断所测数据是否达到标准,如果没达到标准,可以重新设置参数进行采集,达到标准后可以将数据存成文件,方便离线到PC机上,进行更深入的分析。
图4 人机界面软件流程图
4.1 波形数据分析功能的设计
检测捕获的数据是否达到标准主要是通过对波形数据的FFT分析、功率谱分析与光标操作来实现。本文对波形数据的FFT分析与功率谱分析,直接调用了FFT spectum(MagPhase).vi模块与FFT Power Spectrum.vi模块,输入波形数据类型就可以很方便的实现对波形数据的FFT分析、功率谱分析,经过FFT与功率谱分析模块的计算,输出的是FFT频谱与功率谱数据有效值组成的数组,只需对数组中各个元素进行处理就可以显示数据的峰值波形:
在对波形分析的操作中,光标显示是必不可少的,在LabVIEW环境下编写光标操作代码比文本编程环境快的多.只需要在显示控件的属性选项中,添加两根不同颜色的光标,再调用图表控件中Cursor的属性节点,将光标所在位置的纵坐标进行输出,就可以实现对光标的控制。节省了很多的编程时间。对波形的显示及分析结果如图5、6所示。
图5 波形显示
图6 波形分析
举报