在电子系统设计调试过程中,电压测量往往是一个测控或测量系统中不可缺的项目。对于电压测量,若其在一个小动态范围内变化,则无论电平高低,要做到精确测量并不困难。但当被测量在宽动态范围内变化时,例如从mV级甚至μV级到V级,做到测量误差均匀的控制在一定范围之内,常用的方式是切换量程,即指定测量范围,例如常用的数字电压表等仪器。然而在许多情况下为了保证测量的实时性,测量时不可能变换测量通道的量程,因此要在整个电压变化范围内做到精确测量就凸显出其重要性。本文基于MCU AT89C51控制,实现了一种自动量程切换的电压测试系统。
1 电压测量原理及系统组成
为了对不同量级的电压信号进行测量,对输入信号进行放大时就不能采用相同的增益倍数。系统要求能根据不同信号幅值,自动选择相适应的增益倍数。在本方案中采用单片机判断输入电平的量级,通过通道选择开关,控制前级放大器的增益系数,使其输出符合后级ADC的输入电平要求。再通过MCU对采样结果计算分析,将得到的结果显示在LED显示器上,可以通过按键控制测量的起始状态,默认状态下为一直处于测量状态。为消除信道在不同温度、湿度等状态下对测量的影响,增加了基准电压自校准功能,其测量系统框图如图1所示。
2 系统硬件电路
2.1 前级程控放大电路
由于输入信号最小为μV级,对于前级放大器的要求很高,需要有合适的温度系数、噪声系数等。目前一些方案中多数采用斩波放大器。本文采用ADI公司的具有超低失调、超低漂移和偏置电流特性的宽带自稳零放大器AD8628,可提供自稳零或斩波稳定放大器才具有的特性优势,将低成本与高精度、低噪声特性融于一体。AD8628的失调电压仅为1μV,失调电压漂移小于0.005μV/℃,噪声仅为0.5μV峰峰值,因而适合不容许存在误差源的应用。其在工作温度范围内的漂移接近零,对位置和压力传感器、医疗设备以及应变计放大器应用极为有利,可以利用AD8628提供的轨到轨输入和输出摆幅能力,以降低输入偏置复杂度,并使信噪比达到最大。具体电路如图2所示。
该部分中,实现增益控制主要依靠通道选择,本方案中采用四通道选择器ADG804,该器件导通电阻小于0.8 Ω,单电源供电,封装小,温度适应性强,通过地址线A0和A1选择导通路。单片机I/O口送数至ADG804的地址输入端,选择不同的反馈电阻值RF,通过式(1)得到不同的放大增益系数G,进而确定事先定义的不同档位的切换。
G=Vo/Vi=Rf/Ri (1)
2.2 ADC变换电路
选择使用AD775作为本方案中的A/D变换器。AD775是一款CMOS、低功耗、8位、20 MSPS采样模数转换器(ADC),内置采样功能和片内基准电压偏置电阻,可提供完整8位ADC解决方案。它采用流水线式或乒乓两步式FLASH架构,可提供最高35 MHz的采样速率,同时保持极低的功耗(60 mW)。该器件融合了出色的微分非线性(DNL)、高采样速率、低差分增益与相位误差、极低功耗以及+5 V单电源工作等特性,其参考电阻可采用多种配置方式进行连接,以处理不同的输入范围。与传统的FLASH型转换器相比,低输入电容提供易于驱动的输入负载。图3给出ADC的外围电路以及和MCU数据传输的连接关系。
2.3 MCU系统电路
方案中采用Atmel公司的AT89S52,带8 KB闪速可编程可擦除制存储器(PEROM)及低电压,高性能CMOS微控制器。由于将多功能8位CPU和闪速存储器组合在单个芯片中,AT89S52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。采用单片机P0口直接驱动红色LED,5 V供电,采用共阳数码管,上拉电阻取1 kΩ。共采用三个数码管,动态扫描式显示。单片机系统图省略。
3 系统软件设计
3.1 数据采集及量程切换
软件设计采用模块化设计思想,每个模块实现特定的功能。系统软件包括主程序、定时中断程序和一系列功能子程序。上电后程序初始化,进入监控状态,显示待机界面等待测量。测量时启动A/D后,首先选择最大量程对外部数据进行采样计算并判断,确定合适的量程。切换量程后再次采样,记录得到的数据,通过相应对相应量程的计算,得到测量的电压。如果需要,MCU可与微型打印机通过并口连接,将存储于RAM中的电压历史数据和当前数据打印出来,作为资料存档保留,系统流程图如图4所示。
3.2 通道自校准
为了消除信道给测量带来的误差,在电路和程序中增加了自校准部分。其主要原理是通过比对基准电压和待测电压在相同信道中的测量值,进一步消除系统信道带来的误差。基准电压通过稳压器件和一系列分压电阻得到一组不同量级且高精度的电压基准源,设置为1 mV,10 mV,50 mV,100 mV,500 mV,1 V等。设某通道的输入信号为VX,经过测量得到的结果为V'X;选择合适的量程范围,选择距离此范围最接近的基准电压VS1和VS2,经过同样的信道测量的结果为V'S1和V'S2,那么根据相似性原理可以得到:
由此推算得到真实的测量值为:
通过在线基准电压校准从根本上消除了放大、滤波等环节由于器件参数分散性所引入的单向偏差问题,使测量系统的精度得到进一步的提升。
4 结 语
电压是电子系统中最基本的测量值之一,也是诸多非电子传感器转换为电子测量时最常用的物理量。其快速准确测量无论是对于电子系统设计,还是对各种物理信号的测量,都有极其重要的意义。本文实现了一种基于单片机的自动量程切换的电压测量系统,能在较宽电平范围内准确地测量其电压值。此外采用基准电压测量,最大限度地减小信道对测量结果带来的误差。
关键字:程控放大器 单片机 自动量程切换 基准电压
编辑:金海 引用地址:基于单片机的自动量程切换电压测量系统设计
推荐阅读最新更新时间:2023-10-12 20:16
MSP430单片机的PWM操作
//******************************************************************************* // 描述:MSP430实现PWM。反映在LED灯上,可以看到LED灯的亮度不断变化 // // ACLK= n/a, MCLK= SMCLK= default DCO ~ 800k // // MSP430F13x // ------------------- // /|\| XIN|- // | | | 32kHz // --|RST XOUT|- // | | // | P1.2|-- LED // // // 硬件电路:MSP430F135核心实验板-I型 //
[单片机]
单片机中断响应时间的计算
中断 响应时间:从外部 中断 请求有效(外部中断请求标志置1)到转向中断入口地址所需要的响应时间。每个机器周期的S5P2时刻,INTx引脚的电平被锁存到内部寄存器中,待下一个周期查询。 1.最短时间:中断请求有效,查询后在下一个周期便开始执行一条硬件的子程序的调用(时间是两个周期),然后开始执行服务程序的第一条指令。这样从锁存电平的周期到执行中断服务程序,中间相隔3个机器周期。 2.最长时间:如果中断信号发生在前面所说的3种情况时,响应时间就要变长: (1)响应时间取决于正在执行的同级或高级中断的执行时间; (2)指当前CPU执行的指令是多周期指令,如乘除法指令(4个 周期),最坏情况,还要等3个周期。这样响应周期变为3+3
[单片机]
51单片机(AT89C52)外部中断程序
#include reg52.h #define uchar unsigned char #define uint unsigned int #define DELAY 1000 void delay(uint z) //1ms { uint x,y; for(x=z;x 0;x--) for(y=111;y 0;y--); } void main() { uchar i,dt; EA=1; //开总中断 EX1=1; //开外部中断1 // IT1=0; //设置外部中断1为低电平触发 IT1=1; //设置外部中断1为下降沿触发 while(1)
[单片机]
基于STC单片机的智能灯控系统设计 2013-07-24
当今社会经济飞速发展,各类能源浪费问题日趋严峻,尤为显著的如,大型地下停车场、公共卫生间、楼道等场所照明用电。虽然白炽灯拥有许多优点,但是由于其能效过低,已被世界各国相继宣布淘汰。自从澳大利亚2007年率先立法淘汰白炽灯以来,中国于2011年也发布了逐步淘汰白炽灯的路线图。 随着普通白炽灯被淘汰,荧光灯、LED和节能卤钨灯成为目前照明灯具市场的三大主流。荧光灯是当前替代普通白炽灯最主要也是数量最多的照明灯,虽然和普通白炽灯相比能节约80%的电能,但其价格昂贵,体积较大,发光面积较大,不是点光源,光谱不连续,不能做到100%的显色性。同时荧光灯含有汞、荧光粉以及大量的电子元器件,废弃后给环境带来的负担是不可估量的。近年来LE
[单片机]
基于单片机和半导体的单相远程费控智能电表设计
本文给出了基于RENESAS半导体公司的R5F212B8SNFP为MCU的一款新型单相远程费控智能电表的设计。
1系统功能设计
1.1总体结构
基于RENESAS半导体的单片机R5F212B8SNFP(以下简称2B8)完成单相远程费控智能电表设计,其功能:648k字节Flash闪速存储器,3k字节内部RAM,45个可编程CMOS I/O口,可选择上拉电阻,2个专用输入口,6个位定时/计数器,5个外部中断,23个内部中断,4个软件中断,7级中断结构,3个全双工串行通信口,16位硬件乘法器,片内高低速振荡器及时钟电路,2种低功耗电工作方式。是一个比较适合于国网智能电表开发的高性价比单片机。
[工业控制]
什么是51单片机寻址
让我们先来复习一下我们学过的一些指令:MOV P1,#0FFH,MOV R7,#0FFH这些指令都是将一些数据送到相应的位置中去,为什么要送数据呢?第一个因为送入的数可以让灯全灭掉,第二个是为了要实现延时,从这里我们可以看出来,在用单片机的编程语言编程时,经常要用到数据的传递,事实上数据传递是单片机编程时的一项重要工作,一共有28条指令(单片机共111条指令)。下面我们就从数据传递类指令开始吧。
分析一下MOV P1,#0FFH这条指令,我们不难得出结论,第一个词MOV是命令动词,也就是决定做什么事情的,MOV是MOVE少写了一个E,所以就是“传递”,这就是指令,规定做什么事情,后面还有一些参数,分析一下,数据传递必须要有一
[单片机]
开发工程师的创意变戏法:8位MCU变身32位MCU?! 2013-05-31
目前的MCU市场分为三个部分, 8位、16位和32位内核(4位内核MCU现在已相当少用,故在本次比较中将其忽略)。对于这三个部分中的每一个,其规模大体相同。传统上8位内核占最大的市场份额。根据一些分析人士报告,可能32位内核市场占有率已经超过了8位内核。即使目前尚未超过,时间也不会太长。32位内核市场份额是迄今为止增长最快的。8位内核和16位内核仍在增长,但在速度方面远不如32位内核(8位内核的增长速度仍快于16位内核)
在很长的一段时间内, 很多人相信16位MCU可能会被8位MCU和32位MCU取代。目前的32位MCU器件采用最新技术制造(与8位内核和16为内核相比)。
MCU制造商能够使用这些最新的技术,使得32位
[单片机]
如何实现STM32F407单片机的ADC转换
用到的引脚是PA3也就是ADC1的通道3 1、ADC的主要参数 a、分辨率----stm32f407的分辨率有6位、8位、10位、12位,参考电压如果是3.3 那么最小分辨率就是3.3/4095。 b、转换时间----stm32f407的最高允许频率是36M,最快转换时间 = 3+12个周期 =0.71us。 c、参考电压----2.4至3.3v。 2、工作过程分析 ADC转换是把外面输入到引脚的电压值转换成数字信号,单片机里面有一个模拟至数字的转换模块,我们可以控制它采集引脚的电压,stm32F407可以利用void ADC_SoftwareStartConv(ADC_TypeDef* ADCx)这个函数来控制转换。 3、详细的
[单片机]