示波器是科学研究和电子开发中广泛使用的一种通用仪器,但其不菲的价格是普通入难以接受的。本文将向读者介绍一种基于LabVIEW和PIC单片机的虚拟数字存储示波器。
20世纪80年代,美国国家仪器公司(NationalInstruments,简称NI)提出“软件即是仪器”的虚拟仪器(VirtualInstrul:nent,简称VI)概念,引发了传统仪器领域的一场重大变革,使得计算机和网络技术得以进入仪器领域,并和仪器技术紧密结合。虚拟仪器通过软件将计算机硬件与仪器硬件有机地融合为一体,从而把计算机强大的计算处理能力和仪器的测量、控制能力结合在一起,大大缩小了仪器硬件的成本和体积,并通过软件实现数据的显示、存储和分析处理。
LabVIEW是目前使用最为广泛的虚拟仪器软件,它采用图形化编程语言,编程就像设计电路图一样,不用编写程序代码,取而代之的是程序框图的形式,可以在很短的时间内掌握并应用到实践中去。关于虚拟仪器和LabVIEW更加详细的内容,读者可以登陆NI公司网站www.ni.com查看,并可下载LabVIEW评估版软件。
本文介绍的虚拟数字存储示波器是虚拟仪器技术的一种具体应用。该虚拟示波器基于计算机平台,将LabVIEW软件与单片机紧密结合,简单快捷地实现传统数字存储示波器的基本功能。它由数据采集、数据分析和输出显示三个主要功能部分组成。
其中,数据分析和输出显示由LabVIEW软件来完成,只有数据采集是在LabVIEW软件的控制下由单片机硬件来完成。虚拟示波器工作原理如下:LabVIEW通过计算机串口向单片机发送指令,单片机收到上位机的指令后,按照指令的要求确定A/D采样的方式、采样间隔和采样次数,然后开始对信号进行A/D采样,并将采样值通过串口发送给上位机,LabVIEW再将接收到的数据还原为波形并进行显示,见右图。
一、下位机的组成下位机以MicroChip 公司的PICl6F73 单片机为核心,利用PICl6F73的片上ADC模块来进行A/D采样,并利用USART通信模块以异步方式与上位机进行串行通信。
1.硬件设计
PICl6F73单片机的片上ADC模块为8位分辨率,有5个模拟信号输入通道,A/D转换采用“逐次逼近法”,一次A/D转换所需的时间最短为十几微秒。如下图所示,利用PICl6F73的RAO口即模拟输入通道0进行A/D采样。
USART(通用1司步异步收发器)是PIC单片机上一个常用的串行通信接口,利用全双工的异步通信模式可以非常方便地实现单片机和计算机的串行通信。电路中MAX232芯片的作用是完成ITL电平到RS232电平的转换。
设计中还使用了两个LED来进行单片机工作状态的指示,绿色LED为单片机运行状态指示,红色LED为A/D采样状态指示。
在面包板上搭的电路如左图所示。
2.软件设计
下位机软件采用C语言编写,主要由串行通信、A/D转换、中断和延时等几部分组成,软件流程图如图4所示。
二、上位机的组成
-上位机软件主要由串行通信、数据转换、数据存储和读取、波形显示和分析等模块组成,将这些模块在LabVIEW的程序框图中按其逻辑关系组合起来,就形成了完整的虚拟示波器上位机程序。
1.示波器面板示波器面板下见图,它用来模拟真实示波器的操作面板,是用户与虚拟示波器交互的接口。设计时,主要考虑界面美观、操作简洁,用户可以通过鼠标来控制面板中的开关和旋钮以模拟传统示波器的操作,前面板上还设有各个功能模块按钮,当接下相应按钮时,即可调用该子程序。
2.通信程序
LabVIEW与单片机的串口通信程序使用LabVIEW中的串行VI来完成,串行VI包括下表所示节点。
VI名称 | V1功能 |
VISAConfigueScrialPort | 初始化VTSA resource name指定的串口通信多数 |
VIS Write | 将输出缓冲区中的数据发送到VISA rcsource name指定的串口 |
VISARead | 将VISA resour name指定的串口接收缓冲区中的数据读取指定字节数的数据到计算机内存中 |
VISA Serial Break | 向VISA resource 指定的串口送一个暂停信号 |
VISA Bytes at Serial Port | 查询VISA resource name指定的串口接收缓冲区中 的数据字节数 |
VISA Close | 结束与VISA resource name指定的串口资源之间的会话 |
VISA Set I/O Buffer Size | 设置VISA resource name 指定的串口的输入输出缓冲区大小 |
VISA Flush I/O Buffer | 清空VISA resource name指定的串口的输入输出缓冲区 |
在LabVIEW环境中使用串口和在其他开发环境中的开发过程类似,首先需要调用VISAConfigureSe一rialPort完成串口参数的设置,包括串口资源分配、波特率、数据位、停止位、校验位等1初始化完成后,就可以使用这个串口进行数据收发,发送数据使用VISAWrite,接收数据使用VISARead;在串口使用结束后,要用VISAClose来关闭串口。基本的串口操作程序框图如下图所示。
3.设计步骤
首先运行NationalInstrumentsLabVIEW8.2,如下图所示,在启动界面里选择“新建VI”;
然后在“前面板”上单击鼠标右键,在弹出的“控件”菜单中见下图找到虚拟示波器面板所需的控件并分别拖放到前面板里)接下来在“程序框图而板”上单击鼠标右键,
在弹出的“函数”菜单中见下图找到“while循环”、“条件结构”、“事件结构”和“VISA。
分别拖放到程序框图面板里;最后按照下图所示,将各个节点接其逻辑关系连接起来,虚拟示波器的上位机程序就完成了。
三、使用方法
虚拟示波器的使用方法非常简单,只需将0~+5V范围内的被测信号连接到下位机的模拟输入通道0,单片机上电后绿色LED点亮,接下来就可以在上位机用LabVIEW进行数据采集和波形分析等操作了。