基于简易多通道虚拟示波器的技术研究

原创 2011年01月11日 15:26:00

  一    虚拟仪器是基于PC技术发展起来的,所以完全“继承”了以现成即用的PC技术为主导的最新商业技术的优点,包括功能超卓的处理器和文件I/O,使在数据导入磁盘的同时就能实时地进行复杂的分析。为了实时、准确地测量输入波形的参数,本文采用自带8路lO位ADC的单片机ATmegal6,结合简单的外围电路,即可将输入波形实时传送给PC机进行处理。通过PC机上虚拟仪器平台LabVIEW开发的上位机软件对波形进行显示和处理,从而达到简易虚拟示波器的效果。
  1 简易多通道虚拟示波器系统的设计
  简易多通道虚拟示波器系统的原理方框图如图1所示,数据采集由主控芯片ATmegal6进行,采集后的数据通过RS232串口通信芯片Max232将 TTL电平转换为RS232电平,提供与PC机的接口,将数据量传送给PC机的LabVIEW开发平台,平台内上位机软件接收来自串口的数据,经校验等处理后通过波形显示控件将采集到的波形显示出来。同时单片机能接收上位机传送来的数据,从而控制数据采集的速度和精度以及采集的通道。
  1.1 数据采集电路
  ATmegal6单片机是美国Atmel公司生产的基于增强的AVR RISC结构的低功耗8位CMOS微控制器。ATmegal6有如下特点:16k字节的系统内可编程Flash(具有同时读写的能力,即RWW),512 字节EEPROM,1k字节SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路1O位具有可选差分输入级可编程增益 (TQFP封装)的ADC,具有片内振荡器的可编程看门狗定时器。一个SPI串行端口,以及六个可以通过软件进行选择的省电模式。
  本设计正是利用ATmegal6的8路1O位可编程增益的逐次比较型ADC及可编程异步串行接口的内部资源,从而简化了电路设计的难度及编程难度。采样电路的电路图如图2所示,ATmegal6只需结合简单的晶振电路和复位电路就可以完成本设计的需求。模拟信号通过8路模拟输入的任意端口输入即可,通过单片机内部程序控制,很容易就将输入模拟量转化为数字量。单片机再通过串行接口传输给PC机,串行通信通过串行发送引脚TXD(PD1)和串行接收引脚 RXD(PD0)连接串行通信接口电路实现数据的串行传送与接收。
  .2 串口通信接口电路
  本系统设计中通过Max232连接单片机和PC机。ATmegal6具有异步串行通讯接口(UART),UART是为能与计算机通讯的全双工异步系统。本系统采用RS232接口方式,由于RS232信号电平与AVR单片机信号电平(TTL电平)不一致,因此在采用RS232标准时必须进行信号电平转换。在串行通信的接口电路中选用MAX232芯片作为信号电平转换芯片,实现TTL电平和RS232接口电平之间的转换。从而把 ATmegal6内部需要传送的数字信号准确无误地传输给PC机,供上位机软件读取并进行信号处理。
  串行接口电路原理图如图3所示,TTL电平引脚输入引脚9、10,连接ATmegal6的串行发送接口TXD和串行接收接口RXD,通过电平转换为 RS232电平,通过7脚和8脚连接串行接口的2脚和3脚,串行接口通过串行通信线连接采样模块的串行接口和PC机的串行接口。ATmegal6通过内部编程很方便地把数据传送给PC机。
  1.3 多通道采样原理
  由于ATmegal6内部ADC为8选1数据通道,在具体实现某路数据采集时就必须更改多工选择寄存器ADMUX的数值。为能随时更改通道,本设计采用主从方式,通过上位机发送给ATmegal6的数值来改变通道。在ATmegal6的串行中断的接收中断中,通过判断接收的数值更改 ADMUX的数值。同时,在串行接口接收中断中,通过接收的数值的编码也可用来改变ADC相邻两次转换之间的延时值,从而达到改变转换速率的效果。
  当需要采集双通道数值时,单片机内部ADC可采用分时复用的原则,同时将获得的八位数据加一个最高标志位,扩展为九位数据位。上位机通过对数据的最高位的校验,可以很方便地区分数据,在显示界面上将双通道波形实时显示更新。
  2 系统软件设计
  2.1 下位机软件设计
  下位机软件设计的关键是能使程序正确响应中断服务程序,从而准确地完成ADC的转换和数据的准确传送。图4即为下位机程序的程序流程图。主函数运行随即进行串口和ADC寄存器的初始化,然后启动ADC的第一次转换,随即进入等待中断状态,若接收到停止信号,系统马上停止。在串口接收中断中,进入中断随即读取中断接收值,通过判断接收值的大小,改变系统采样通道值和ADC转换速率值。改变完成后中断返回。此时,系统根据新的参数值运行。ADC转换完成中断产生后,读取当前转换值,读取完成后进行数字均值滤波,降低输入信号的干扰。滤波完成后将结果通过串行通信传送给PC机。然后进行延时后启动下一次的转换后中断返回。整个过程中,系统通过中断方式完成,具有响应及时、提高单片机处理内部和外部事件能力的特点。
  2.2 上位机软件设计
  LabVIEW是美国国家仪器(NI)公司研发的,类似于C和BASIC开发环境。它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用 TCP/IP、AetiveX等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。
  本设计采用LaLbVIEW开发平台制作上位机软件,软件界面如图5所示。该上位机调用底层RS232通信模块,结合通用的波形显示、按钮开关等通用模块设计出如图5所示的具有串口参数选择、实时波形显示、采样通道选择、波形参数计算、存储波形数据和采样速率可调的虚拟示波器上位机软件。软件中首先通过串口参数调整复选框选择PC机串口数据,然后打开软件开关,当串口接收数据后将实时波形以及周期和幅值等显示在软件界面上。同时软件设有通道选择旋钮和采样速率选择滑动杆用于改变波形输入通道和采样速率。软件还设有波形数据存储按钮,当按钮打开时,软件会将接收到的数据按照波形数据文件以数组形式存储在PC 的磁盘内。Matlab和Exel等数据处理软件可方便的调用该文件进行分析,方便对其进行更加复杂的数据处理和数据的再现。
  3 结论
  本文设计的虚拟示波器系统由单片机ATmegal6和Max232构成的下位机系统及由LabVIEW开发的上位机软件构成。系统充分利用ATmegal6单片机软硬件资源,方便快捷地实现数据采集。并且通过RS232接口实现与上位PC机的连接,PC机通过LabVIEW开发平台方便地实现进行数据的分析、处理、存储和打印输出的简易虚拟示波器。本系统具有电路简单、使用灵活方便等特点。因此能广泛应用于工业、农业、水文系统、环境监测等领域,实现现场勘测和数据采集。

基于STM32的简单数字示波器

1. 平台说明     基于STM32F103ZET6芯片最小系统 + TFT液晶屏。     用到了:STM32内部ADC,DAC,DMA,FSMC等等。。     2. 基本原理 (1...
  • u013771867
  • u013771867
  • 2016年06月13日 23:28
  • 2687

神器!声卡虚拟示波器

      之前做关于音频部分的设计的时候一直在郁闷没有实验仪器,特别是没有最需要的示波器。今天本来想上淘宝搜索一下示波器,主要是二手手持示波器的价格,不想被我发现一种神器!声卡虚拟示波器。理论上,声...
  • buptodzy
  • buptodzy
  • 2011年02月12日 13:51
  • 6043

在单片机上运行USB Audio实现MATLAB简单虚拟示波器

利用mbed平台在单片机上编程,快速实现USB声卡设备;并在计算机上用MATLAB调用DirectSound连续接收USB音频数据,实现简单的虚拟示波器示波器及数据存储与计算功能。...
  • K_O_Carnivist
  • K_O_Carnivist
  • 2015年12月01日 23:00
  • 1384

基于LabVIEW的虚拟示波器

基于LabVIEW的多通道虚拟示波器 一、虚拟示波器概况 虚拟示波器是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用。虚拟仪器技术(VI)就是利用高性能的模块化硬件,...
  • c11556913
  • c11556913
  • 2018年01月07日 20:46
  • 100

用STM32内置的高速ADC实现简易示波器

原文地址::http://www.360doc.com/content/10/0912/09/1188581_53024390.shtml 做一个数字采样示波器一直是我长久以来的愿望,不...
  • xqhrs232
  • xqhrs232
  • 2013年04月14日 11:13
  • 1768

推荐一款调试法宝--虚拟示波器

顾名思义,虚拟示波器并不是真实的示波器,简单地说而是一款PC端开发的监控数据变化曲线的软件,与下位机进行通信。这种类型软件网上有很多,我现在推荐的是我前几年用的一款虚拟示波Data_Scope,在调试...
  • ludaoyi88
  • ludaoyi88
  • 2017年06月12日 09:42
  • 713

VS简易示波器(二):自制子属性窗

我们通常在设计中会用到一些控件,但有时控件太多,就会影响界面的美观、简洁,因此,会使用一些属性窗,较多做法是使用基于CPropertyPage和CPropertySheet属性页来创建,再通过DoMo...
  • yja000
  • yja000
  • 2017年07月25日 19:31
  • 159

VS简易示波器(三):子属性窗的参数传递

有了子属性窗,接下来就是解决子属性窗的参数如何传递到主对话框。若参数较少,可以通过在子属性窗中添加GetXX之类的函数并由主对话框调用实现,但若参数较多时, GetXX之类的函数和调用也会增加,因此,...
  • yja000
  • yja000
  • 2017年07月25日 20:23
  • 65

虚拟示波器开源!!!高性能四通道,方便远程调试

开发的高性能四通道虚拟示波器开源在了github,https://github.com/CodeIsWorld/visual_scope/ 希望大家多多star!!!,欢迎大家一起开发! 性能非常...
  • wojiushiwo552
  • wojiushiwo552
  • 2017年12月28日 13:10
  • 719

用C#编写的串口示波器

自己编写了一个串口示波器 这个是主界面 使用方法 在面板名称中 输入你要创建的面板名称 在参数最大值中 输入你要传输参数的最大值 如果你不确定 可以先输入的大一些 后面的面板可以实时更...
  • u010918541
  • u010918541
  • 2016年02月09日 22:43
  • 2740
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:基于简易多通道虚拟示波器的技术研究
举报原因:
原因补充:

(最多只允许输入30个字)