微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于单片机的简易多通道虚拟示波器的设计

基于单片机的简易多通道虚拟示波器的设计

时间:11-30 来源:互联网 点击:
  0 引言

虚拟仪器是基于PC技术发展起来的,所以完全"继承"了以现成即用的PC技术为主导的最新商业技术的优点,包括功能超卓的处理器和文件I/O,使在数据导入磁盘的同时就能实时地进行复杂的分析。为了实时、准确地测量输入波形的参数,本文采用自带8路10位ADC的单片机ATmega16,结合简单的外围电路,即可将输入波形实时传送给PC机进行处理。通过PC机上虚拟仪器平台LabVIEW开发的上位机软件对波形进行显示和处理,从而达到简易虚拟示波器的效果。

1 简易多通道虚拟示波器系统的设计

简易多通道虚拟示波器系统的原理方框图如图1所示,数据采集由主控芯片ATmega16进行,采集后的数据通过RS232串口通信芯片Max232将TTL电平转换为RS232电平,提供与PC机的接口,将数据量传送给PC机的LabVIEW开发平台,平台内上位机软件接收来自串口的数据,经校验等处理后通过波形显示控件将采集到的波形显示出来。同时单片机能接收上位机传送来的数据,从而控制数据采集的速度和精度以及采集的通道。

图1 虚拟示波器原理方框图。

1.1 数据采集电路

ATmega16单片机是美国Atmel公司生产的基于增强的AVR RISC结构的低功耗8 位CMOS微控制器。ATmega16有如下特点:16k字节的系统内可编程Flash(具有同时读写的能力,即RWW),512字节EEPROM,1k字节SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP封装)的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI 串行端口,以及六个可以通过软件进行选择的省电模式。

 图2 采样电路原理图。

本设计正是利用ATmega16的8路10位可编程增益的逐次比较型ADC及可编程异步串行接口的内部资源,从而简化了电路设计的难度及编程难度。采样电路的电路图如图2所示,ATmega16只需结合简单的晶振电路和复位电路就可以完成本设计的需求。模拟信号通过8路模拟输入的任意端口输入即可,通过单片机内部程序控制,很容易就将输入模拟量转化为数字量。单片机再通过串行接口传输给PC机, 串行通信通过串行发送引脚TXD(PD1)和串行接收引脚RXD(PD0)连接串行通信接口电路实现数据的串行传送与接收。

1.2 串口通信接口电路

本系统设计中通过Max232连接单片机和PC机。

ATmega16 具有异步串行通讯接口(UART),UART是为能与计算机通讯的全双工异步系统。本系统采用RS232接口方式, 由于RS232信号电平与AVR单片机信号电平(TTL 电平)不一致,因此在采用RS232标准时必须进行信号电平转换。在串行通信的接口电路中选用MAX232芯片作为信号电平转换芯片,实现TTL电平和RS232接口电平之间的转换。从而把ATmega16内部需要传送的数字信号准确无误地传输给PC机,供上位机软件读取并进行信号处理。

串行接口电路原理图如图3所示,TTL电平引脚输入引脚9、10,连接ATmega16的串行发送接口TXD和串行接收接口RXD,通过电平转换为RS232电平,通过7脚和8脚连接串行接口的2脚和3脚,串行接口通过串行通信线连接采样模块的串行接口和PC机的串行接口。ATmega16通过内部编程很方便地把数据传送给PC机。

图3 串口通信接口电路图。

1.3 多通道采样原理

由于ATmega16内部ADC为8选1数据通道,在具体实现某路数据采集时就必须更改多工选择寄存器ADMUX的数值。为能随时更改通道,本设计采用主从方式,通过上位机发送给ATmega16的数值来改变通道。在ATmega16的串行中断的接收中断中, 通过判断接收的数值更改ADMUX的数值。同时,在串行接口接收中断中,通过接收的数值的编码也可用来改变ADC相邻两次转换之间的延时值,从而达到改变转换速率的效果。

当需要采集双通道数值时,单片机内部ADC可采用分时复用的原则,同时将获得的八位数据加一个最高标志位,扩展为九位数据位。上位机通过对数据的最高位的校验,可以很方便地区分数据,在显示界面上将双通道波形实时显示更新。

2 系统软件设计

2.1 下位机软件设计

下位机软件设计的关键是能使程序正确响应中断服务程序,从而准确地完成ADC的转换和数据的准确传送。

图4即为下位机程序的程序流程图。主函数运行随即进行串口和ADC寄存器的初始化,然后启动ADC的第一次转换,随即进入等待中断状态,若接收到停止信号,系统马上停止。在串口接收中断中,进入中断随即读取中断接收值,通过判断接收值的大小,改变系统采样通道值和ADC转换速率值。改变完成后中断返回。此时,系统根据新的

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top