采用单片机技术的高精度电压表
2004-03-14刘安军
刘安军
用高精度、高稳定性的元器件和放大电路设计成的高精度区间式电压表,其优点、详细工作原理和应用实例详见本刊2003年第12期《高精度区间式电压表》一文。
这里介绍一种高精度电压表。运用区间式电压表的基本原理,用单片机制作成高精度电压表,它可自动变换测量范围、计算测量值和显示测量结果。实现对被测电压大范围、全量程的高精度测量。
图1是分挡区间式电压表的原理图。分挡式区间电压表是把全量程根据需要分成数个区间段,例如,把2~10V的量程分成2~3V、3~4V……9~10V八个区间,波段开关的八个挡对应各区间,通过分别调定每一个区间的调零电位器W1、增益调整电位器W2实现各区间段的覆盖。分挡式区间式电压表实现了全量程测量,应用更加方便,可以实现一表多用,例如在计量时对多个电压点的测量、对已知电压的高精度测量等。缺点是需要手动换挡,对未知电压的测量不太方便。
高精度电压表原理
1.工作原理 在图1分挡式区间电压表的基础上,采用单片机自动控制,通过自动换挡、自动测量、自动修正误差、计算和输出测量结果,成为一种实用的全量程、高精度电压表,见图2所示。图中,增加了带有A/D模数转换电路的单片机IC4,将测量的模拟量用单片机进行处理;调零电位器W1和增益调整电位器W2换成可程控的线性数字电位器,其阻值的大小由单片机进行调整,实现自动换挡,测量结果用LCD数字显示。
2.制作过程中区间的标定和划分标定是用标准电压对起始值和终止值进行调整,区间划分是把全量程划分成若干个部分。假如全量程为0~100V,进入标定子程序完成标定,得到一对W1 、W2 阻值的控制数据;电压表的全量程假设每10V一个区间,划分为0~10V、10~20V、……90~100V十个区间,假如测量是线性的,程序就可以计算出十对W1 、W2 阻值的控制数据,连同标定时的一对控制数据,全部存储在数据存储器E2PROM中以备调用。
3.测量过程 测量过程是自动进行的。测量时,对一个未知的被测电压首先进行粗测。区间电压表的测量区间取0~100V,单片机取出E2PROM中对应0~100V区间一组数据,设定程控数字电位器W1 、W2 阻值,被测电压经放大器、A/D转换,进行一次粗测量。粗测的目的是为了确定被测电压所在的区间,假如被测电压为19.96V,在10~20V这个区间,单片机取出对应10~20V区间的一组控制数据再次设定W1、W2的阻值,进行这一10V范围区间的精测。这里,如果用10位A/D模数转换电路,分辨率为10V/210=0.01V,测量结果是9.96V,再加上起始值10V,就得到19.96V的最后测量结果,输出到显示电路进行显示。对于本例,采用区间表原理测量,用同样的A/D电路,比普通全量程0~100V电压表分辨率提高了十倍,区间分的越小分辨率也越高。
应用电路
高精度区间表可以用多种电路实现,在《高精度区间式电压表》一文中,已经介绍了区间表几种基本应用电路以及元器件的选用,在这里不再重复,有兴趣的读者可以查阅原文。这里主要对后续电路和设计时应注意的问题进行介绍。
电压基准源IC1用LM385B-1.2,温度系数±20 ppm/℃,静态电流为20μA。IC2采用集成仪表放大器AD623,可以通过一只电阻调整放大器增益,增益范围为1~1000;电源经LM7805L稳压给各器件供电。单片机IC4采用PIC16FB872,2K的FLASH,6个12位A/D转换器,简化了外围电路,低功耗,睡眠时电流仅几微安。数据寄存器IC5为24C02,调零电位器W1用1/2MAX5453,W3用1/2MAX5453,另一个调零电位器W1′和增益调整电位器W2各用1/2MAX5451。主要参数:每一个器件中有两个相互独立的电位器,256个抽头,工作电压为+2.7~5.5V,耗电0.1μA,温度系数35ppm/℃,总电阻MAX5453为50kΩ,MAX5451为10kΩ。所有电阻精度优于1%,R1、R2、R3温度系数小于50ppm/℃。
区间表设计测量范围为0~50V,测量区间共分为51个,0~50V一个粗测区间,12位A/D转换,分辨率为50V/212=0.012V; 0~50V范围每1V±0.1V分一个区间,共50个区间,全量程分辨率为1V/212 =0.00024V。
设计中应注意的问题
1.最小测量电压区间式电压表测量的最小电压不能从零伏开始。由于运放的负输入端基准电压不为零,分压后的正输入端电压不能低于负输入端,最小也要从基准值开始。解决的办法是在负输入端增加一个数字电位器W3,测量从零起始的电压时,W3置为零,使负输入端基准电压为零,测量值大于基准值的电压时W3 置为最大值。
2.区间的划分和标定
①、对于具体应用电路,不能像前边举例那样区间与区间之间没有交叉。实际应用电路图2中,各区间取±0.1V的交叉范围为0~1.1V,0.9V~2.1V……49.9V~50V。其原因是由于粗测时,电路有比较大的误差,对于处在区间临界的被测电压,粗测时有可能错误判断其所在区间。上边在介绍测量过程的举例中,被测电压为19.96V,应该在10~20V的区间,对于10位A/D的分辨率,粗测时的分辨率为100V/210=0.1V,有0.1V的误差,19.96V有可能被判断在20~30V的区间,精测时就会出现测量错误。所以,区间与区间要有一定的交叉,交叉范围的大小由粗测的误差决定,适当留有一定余量。
②、标定区间可能不止一个。上面原理中提到,测量是按线性处理的,如果实际上非线性误差较大又没有用软件修正,用平均的方法计算各区间W1 、W2 阻值是不行的。用逐段逼近法标定多个区间是解决非线性问题的一种方法。另外,在W3转换点的两个区间,由于斜率不同,也要分别标定。
3.数字电位器对分辨率的影响 对于调零电位器W1 ,如果分区比较小、全量程范围又比较大,就要求W1阻值既要大范围变化,又要每一次变化的步长小,分辨率为256的数字电位器有可能达不到要求。采用再串联一个数字电位器W1′的办法,用W1粗调,选用阻值大一些,例如100kΩ,解决阻值大范围变化的问题;W1′阻值小一些,例如选用10kΩ, W1′的变化占总阻值中比值很小,整个调零电阻变化率减小,解决分辨率的问题。对于增益调整电位器W2 ,分辨率不够出现增益误差时,一般不用上述办法,而用软件的办法来解决。当W2有误差时,在测量过程中,把测量结果乘上一个修正系数。仍以举例为例,假如标定时标准电压是20.50V,由于误差,标定时测量结果为20.20V,为负误差,满刻度修正系数 =1+(标准电压-测量值)/标准电压=1+(20.50-20.20)/20.50=1.0146341。
实际值=测量值×修正系数=20.20×1.0146341=20.495608(V)。
采用软件通过计算修正测量结果的误差,满刻度有0.0043V的误差。
4.测量精度由实例可以看出,电路元器件的分辨率没有变,但区间分得越小,测量结果的分辨率越高,精度也越高。要达到需要的精度,首先通过计算确定区间的大小;其次,测量精度同时与整个系统有关,包括A/D的分辨率、线性数字电位器的分辨率、基准电压源和其它元器件的线性、精度、温漂、噪声等;另外,如果用做专用仪表,对特定信号源的非线性误差的影响也要考虑,进行综合选择和分析计算,达到要求的精度。对于非线性误差、温度漂移以及失调电压使放大器输入时输出不为零,用软件补偿和修正也是提高精度一种较好的方法。
5.采样速度由测量过程可知,对数字电位器的设定、粗测和精测、A/D转换、数据处理、显示,都需要耗费一定时间,一般在需要显示测量结果的应用中,采样速度每秒几次是能够满足的。实时处理系统的运用就要考虑采样速度的影响。通过提高CPU工作频率、用高速A/D转换器、用可编程数字电位器等以及改进软件来提高采样速度。
6.标定方法要编一段标定子程序以便标定时调用,程序框图见图3。标定时有两个控制键K1、K2。K1为进入设置和确认键,K2为置数键。K1按下时间大于3秒,进入标定子程序进行标定。标定过程需要手动输入一些参数以及输入高一个精度的标准电压,按照约定的提示显示,依次进行起始值、终止值的输入,从低位到高位逐位进行,用K2进行加计数置数,每完成一位按K1键确认,进入下一位到置数全部完成。按照提示,给定起始和终止标准电压,完成一个区间标定。如果标定不止一个区间,按照提示,输入一个不等于零的数,继续下一区间标定或退出,直至标定全部完成。程序框图中,计算W1 、W1′、W2 、W3 ,是为了给数字电位器一个接近真实值的初始值,按照输入的起始值和终止值、基准电压值,计算出放大器正输入端分压值和放大器的增益,确定各数字电位器的初始值,虽然有一定的误差,但不影响标定,在标定中自动进行最后修正。
7.数字电位器数字电位器的主要参数有分辨率、功耗、速度、精度、阻值等。用可编程非易失性或串行口编程置位方式,要快于用脉冲置位方式。数字电位器的生产厂家、型号种类很多,具体请查阅有关资料和网站。
8.A/D模、数转换电路 转换电路的精度和功耗根据设计要求确定,如果对速度有要求,要选择高速类型。选用带有A/D电路的单片机可以简化电路。
9.供电电源整个电路的电源应采用稳压电源,以保证电路稳定工作,电路的功耗较小,尤其是选用低功耗元器件时,整个表的耗电比较低,完全能用电池经稳压供电,或用电池经DC-DC电路稳压供电。
运用以上原理,在嵌入系统对各种电量测量中变通应用,同样能够极大地提高测量精度。