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 结 语
电压是电子系统中最基本的测量值之一,也是诸多非电子传感器转换为电子测量时最常用的物理量。其快速准确测量无论是对于电子系统设计,还是对各种物理信号的测量,都有极其重要的意义。本文实现了一种基于单片机的自动量程切换的电压测量系统,能在较宽电平范围内准确地测量其电压值。此外采用基准电压测量,最大限度地减小信道对测量结果带来的误差。