基于单片机的高精度智能交直流电压数据采集系统设计
扫描二维码
随时随地手机看文章
电压是电子与电力系统中最基本的测量元素之一,快速准确地获取电压值一直是数据采集与电子测量仪器研究的重要内容之一。传统的指针式电压表具有精度低、可视距离近、功能单一等缺陷,已不适应高速信息化的发展需要。目前市场上广泛使用的数字电压表智能化程度低,测量电压时需手动切换量程,当量程选择不当时会出现测量精度下降、乃至烧坏电压表的极端情况;而高精度的全量程无档数字电压表一般都采用了DSP、FPGA或CPLD等复杂电路系统,硬件和软件实现成本较高。为此,笔者设计研制出了一种以单片机为控制主体的智能交流直流电压数据采集系统,具有体积小、精度高、结构简单、使用与读数方便、性价比高、适应范围宽等优点,有效地弥补了上述各种电压表系统的缺点和弊端。
1系统总体方案
该电压数据采集系统主要由电压衰减器、量程转换及放大电路、AC/DC转换电路、A/D转换电路、主控单片机STC89C52以及LCD显示电路等5个部分组成,其原理框图如图1所示。电压衰减器和放大器将待测模拟信号电压值转换到AC/DC变换器的输入电压范围内,直流电压经衰减放大后不需作AC/DC转换;量程转换电路根据输入到A/D转换器的模拟直流电压大小,由单片机判断后控制继电器对衰减放大电路作相应的调整,确保选择出最佳量程;A/D转换由单片机启动,在软件中对采集到的数据作数字滤波、标度变换和系统误差校准等处理后,根据电压类型标志位在LCD上显示测量值和电压类型。
图1电压数据采集系统原理框图
2系统硬件设计
2.1电压衰减、放大和量程转换电路
电压衰减放大和量程转换电路如图2所示。电阻R1~R5构成衰减系数分别为1、10、100、1 000、10 000的分压器,将被测输入电压Uin衰减至0~200 mV范围内并送至后端电路放大、AC/DC转换(直流电压不需转换)、A/D转换以及由单片机进行采集、处理与显示。为了降低测量误差,分压电阻R1~R5均选用误差为±0.5%的精密金属膜电阻。量程的选择由单片机的P1.0~P1.4口线经反相器74HC04反相后控制SPRAGUE公司的高耐压、大电流达林顿晶体管集成电路ULN2003的输入端1 B~5 B,从而驱动电磁继电器K1~K5的触点开关吸合或断开来实现。交流电压与直流电压共用同一转换量程,K1~K5被独立吸合时对应的量程依次为200 mV、2V、20 V、200 V、1 000 V(AC 750 V)。若被测电压高于单片机设定的量程,单片机控制相应的继电器线圈接通对信号进行衰减,反之则放大,以保证输入至AC/DC转换器和A/D转换器的信号不超过它们的工作电压范围。因被测电压未知,为避免电路被烧坏,初始量程应设定为最高量程。
图2电压衰减放大和量程转换电路
ULN2003芯片内部二极管负极公共端COM接至负载电源+5 V,对各继电器线圈起反向续流作用。加入反相器74HC04的目的是防止单片机系统通电或复位时,输入高压不经分压直接进入后级弱电系统导致烧毁电路的情况。运放U3接成电压跟随器形式,起隔离前后通道的作用,并降低输出阻抗、提高带负载能力。其中,R6、R7为限流电阻,防止因量程切换至各量程时造成过大的电流;D1、D2为双向限幅二极管,起过压保护作用。运放A4和电阻R8、R9、R10连接成同相比例电路,将衰减成0~200mV范围内的信号放大1O倍送给后面的AC/DC转换器AD637J(标称满量程为2V)进行交流/直流转换f直流不需转换)。
2.2 AC/DC转换电路
AC/DC转换电路如图3所示,由两片单通道单刀双掷(SPDT)模拟开关MAX14763完成交流/直流电压通道的切换功能,一片高性能真有效值TRMS(True Root MeanSquare)转换器AD637K完成交直流电压转换功能。
图3 AC/DC转换电路图
MAX14763是+3.0 V~+5.5 V单电源供电器件,允许通过超出其电源电压摆幅的±25V范围内的双极性信号。导通电阻和导通漏电流最大值分别为2Q、±100 nA,较低的导通电阻和较宽频带(一3 dB带宽为1O0MHz)使得其非常适合于数字和模拟信号切换场合的应用。当拨动开关S1闭合时,MAX14763的SEL端为低电平、C0M端连接至A1,接通交流电压通道,对输入交流电压进行AC/DC转换;反之则接通直流电压通道,让直流输入电压直接进入后级电路。
AD637K是一款完整的高精度、单芯片均方根直流(RMS-DC)转换器,可计算任何复杂输入波形的真有效值TRMS而不必考虑波形参数及失真度的大小,并提供等效直流输出电压。即:
T为测量时间,V IN(t)为输入信号波形。可见,波形的真均方根值与信号功率直接相关,因此比平均整流信号更为有用。AD637K的准确度为±(0.25 mV+0.05%RDG)。允许测量有效值200 mV、频率最高达600 kHz的输入信号以及有效值1 V以上、频率最高达8 MHz的输入信号。AD637K的最高满量程范围是有效值7 V,由于有效值2V满量程范围能够为峰值输入(高波峰因素信号)提供更大的动态余量,所以衰减放大电路输出信号U1应控制在此范围内。电路中平均电容C1用来设置均值时间,同时决定低频精度、输出纹波大小和稳定时间。电位器RW1和RW2分别用来对输出调零和调幅,以使输出更准确。
2.3 A/D转换电路
A/D转换电路如图4所示,其中运放U8和电阻R14~R16构成同相放大电路,对前端输出的直流电压U2f≤2 v)2倍放大,将输入电压Uin的测量分辨率提高了一倍。MAX187是串行12位逐次逼近式A/D转换芯片,采用单+5 V电源工作,内部含有片内时钟和采样/保持器,采样速率达75 kHz.其通过高速3线串行接口与单片机的I/O口线P2.0~P2.2进行连接,接口与SPI、QSPI和Microwire总线协议兼容。SHDN接高电平,REF端对地接4.7 F的电容,这是其使用内部4.096 V基准电压方式,AIN端输入模拟信号的电压在0~4.096 V范围内。
图4 A/D转换电路图
2.4 LCD显示电路
本系统采用NOKIA公司生产的5ll0液晶显示器(LCD)模块作为显示单元,完成显示当前电压值与电压类型(交流或直流)的功能,电路如图5所示。NOKIA 5110与单片机只有5根信号线连接,接口电路简单。它的通信协议是一个没有MISO只有MOSI的SPI协议,传输速率高达4 Mb/s,可全速写入显示数据而无等待时间,可以采用单片机软件程序模拟。SPI接15写数据/命令时序(传送1 B)如图6所示。[!--empirenews.page--]
图5 LCD显示电路图
图6 NOKIA5110串行总线协议
3系统软件设计
3.1系统软件总体流程
系统软件总体流程图如图7所示,为便于程序的移植、调用和调试,采用了模块化程序设计思想对不同特定功能的模块分别进行编程。单片机上电先进行程序初始化,完成对K1~K5继电器、MAX187和NOKIA5110的硬件设置,以及单片机内部系统中断和系统变量的初始化。接着选择最高量程(将PI.4~P1.0口线状态置为011l1),启动A/D转换对待测信号进行采样和作数据处理计算,并判断量程是否合适。超量程阈值和欠量程阈值分别取为4000和400,对应ADC输入电压分别为4V和0.4V.若当前量程合适,则对处理后的数字量作标度变换和误差校准后得到被测电压值,并在LCD上显示电压类型、有效值和单位等信息。反之,则进行量程切换,找到一个新的最佳量程,下次测量就在新选择的量程下进行。在判决时,若量程为最低档时仍为欠量程,则维持原量程不变化;若量程为最高档时仍为超量程,则必须采取相应的过载处置措施。
图7系玩软件总体流程图
3.2采样数据的数字滤波
对A/D采样后数据进行处理时,先后运用了程序判断滤波法和滑动平均滤波法,前者用来剔除掉因随机干扰、误检测或系统不稳定等偶然因素引起的尖脉冲干扰信号,后者用以抑制数据中可能出现的周期性干扰成分如无线电波引起的高频干扰。程序判断滤波算法是根据实践经验判断,确定出相邻采样允许的最大偏差值DT(这里取值为8),当每次检测到新值时判断:如果本次值与前次值之差的绝对值小于或等于DT,则本次采样值有效;相反则放弃本次值,取前次值代替本次值。如下式所示:
在排除脉冲干扰后,利用滑动平均滤波算法对数据作进一步处理。其把连续N个采样值(这里,N=10)看成一个长度为N的队列,每采样到一个新值放入队尾,并扔掉原来队首的一个数据,然后对队列中的N个数据作算术平均运算,获得新的滤波结果,此数据用来阈值甄别和作标度变换。
3.3系统误差的校准算法
由于系统电路的基准误差、放大器的零点漂移与偏移、增益误差和非线性等非理想特性会引起系统误差,为了提高测量精度,采取了以下算法进行误差校准和补偿。设等精度测量得到组电压样本数据(Xi,Yi),其中:i = l,…,M,Xi和Yi分别为标度变换后电压值(测量值)和实际值(由高精度电压基准源产生)。利用最小二乘法把测j导数据作Y=aX+b线性拟合,根据样本数据偏差的加权平方和最小原则,得系数a、b的数学表达式如下:
将各校正点数据(Xi,Yi)(这里M取值为6)代入上两式得到系数a、b的值,并存人单片机的内存单元中。在正式测量时,根据测量值和误差校正方程Y=aX+b求出校正值Y,从而消除系统误差。由于量程不同时系统误差也不一样,因此需要在各量程分别进行上面的处理,以获得不同量程的最佳校准效果。
4主要技术指标
系统主要技术指标如下:(1)量程:200 mV、2 V、20 V、200 V、1 000 V(AC750V);(2)分辨率:50 txV、0.5 mV、5 mV、50mV、0.5V(对应各量程);(3)准确度:200 mV档:0.005%×读数+0.0025%×满度(DC)、0.05%×读数+0.05%×满度(AC);其他档:0.005%×读数+0.001%×满度(DC)、0.05%X读数+0.025%X满度(AC);(4)工作电源:DC±5V.
本文设计实现了一种基于单片机的具有量程自动转换功能的交直流电压数据采集系统,测量电压动态范围宽,为高精度电压数据采集和智能电压表的研究提供了一种性价比较高的解决方案。实际运行结果表明:该系统精度高、误差小、灵敏度高、工作稳定、性能可靠,可以广泛应用于电力系统、计量检测、国防工业、家用电器、科技与工业生产、铁路设备等需要电压测量与获取的各个领域。此外,设计时采用的一些硬件和软件设计方法和思路,也为同类数据采集系统和智能仪器仪表的设计与研制提供了参考。