用PIC16C73实现高精度数字电度表
扫描二维码
随时随地手机看文章
1 数字式家用电度表的设计思想
近几年数字式家用电度表在我国得到了较快的推广应用,并且有着很大的市场前景。从家用电度表的要求来看,主要包括以下几个方面:(1)精度要高于原模拟电度表2%的指标;(2)成本不能太高,家用电度表作为普通民用电器,其成本将直接影响到它的推广应用;(3)可靠性要高。本文根据作者几年来的实践经验,主要介绍采用PIC16C73系列 单片机 实现普通家用高精度数字式电度表的基本设计思想。选取PIC16C73系列单片机的主要理由是它含有片内模数转换(A/D)通道,从而可以省去专门的A/D芯片,并且每个输入、输出引脚都可以进行可编程位操作,输出引脚驱动能力强,可以直接推动数码显示器。这样包括其它IC卡数据读取电路、E2PROM等外围电路在内,20A(10A)数字电度表的总体批量生产成本(1000块)可以控制在较低水平;PIC16C73单片机比较适宜于工业环境工作,与51系列等单片机相比,其抗干扰能力要强得多;PIC16C73单片机片内还设有软件看门狗,在电度表受到强干扰或其它影响程序“走飞”时,看门狗可以及时将单片机复位并重新恢复正常工作,从而确保了电度表的高可靠性。实现时单片机A/D通道对电网电压和用户的用电电流进行连续采样,经过单片机CPU 的实时计算、累加,最后求得用户耗电量,并从用户已购买的电量(记录在E2PROM芯片中)中扣除掉。采用PIC16C73单片机构成的数字家用电度表的组成框图如图1所示。
由于PIC16C73 单片机 片内A/D通道的精度为八位,其采样误差理论值约为1/(28-1),即其满刻度时的精度约为0.4%,电度表满量程(指电流)工作时是可以保证数字电度表的精度的。但是,通
图1 数字电度表组成框图
常情况下,一般家用电负荷大部分时间都不可能达到电度表所允许的最大值,如果不采取专门措施,电度表的误差将明显增大。例如对于20A的电度表,其满负荷值为4.4kW,此时电度表的误差大约为0.4%左右,可以满足普通电度表2%的要求;若用户用电负荷为100W(此时工作电流为0.5A 左右),此时电度表仅由A/D采样误差引起的误差就将达16%左右。因此,为了确保全负荷范围内电度表的精度均能达到指标要求,在设计电路时需采取按用户用电电流分段管理或其它类似方法,来减小A/D 采样误差,达到提高精度的目的。同时为了确保电度表精度不受使用环境(温度、湿度等)差别的影响,电度表中还需设计自校准电路,实时修正因环境变化带来的电路参数偏移所引起的误差。另外用于实际生产组装电度表的各种元器件都存在离散性,会造成按原理电路装配的成品电度表在精度等指标方面存在一定的不一致性,为了简化生产过程中的调试工序,在电度表中还专门设有软件在线调试电路,用软件参数调节取代以往的硬件参数调节(如用电位器调节放大器放大量等),从而极大地提高了成品调试效率和产品合格率。采用上述措施后,成品电度表的实际全程精度优于0.5%(即误差小于0.5%)。
图1中过流、过压控制保护电路的主要作用是在用户负荷过大(即过流)或电网电压过高(瞬时过程,如持续10秒或半分钟等,具体由程序设定)情况下,按软件设计要求控制继电器切断用户的供电电路,等待一定时间(如5分钟)后自动供电并再进行监测,若连续2次或3次(具体次数由软件编程决定)出现过流、过压故障,电度表不再自动供电,并在数码显示器(正常工作时主要用来显示电量数据)上显示出过流或过压信息。
电度表显示器共有5位数码管,按程序设定(如-2度、-10度)可允许用户适当借电使用,此时,数码管显示出特殊的符号和数值,警告用户及时购电。显示器显示精度为0.1度,电度表内部累计计算精度选为10-4度,从而将因电网停电带来的影响降到完全可以忽略的程度(由E2PROM来实现)。
2 核心电路原理
2.1 PIC16C73 单片机
PIC16C73是低功耗、高性能、CMOS、全静态、8位EPROM型 单片机 ,寻址空间为4K×14,采用先进的RISC指令结构,8级堆栈,多个内部及外部中断源。内部设有192个字节的RAM和22个I/O口,3个定时/计数器,2个串行口,5通道8位A/D。同步串行口可设定为3线SPI或2线I2C方式,串行通信口(SCI)可设置为同步或异步方式。PIC16C7′ 系列单片机主要有两种类型,一种是低成本的一次性用户可编程型器件(OTP),适用于批量产品;另一种是紫外线可擦除双列直插式芯片,可用于产品开发或小批量的生产应用,其引脚排列如图2所示。
图2 PIC16C73(双列直插式)引脚排列图
各引脚的详细功能可参见文献[1]。
2.2 数码管显示器接口电路
PIC16C73 单片机 中设有专门的串行数据发送端口(引脚RC5/SDO)和相应的时钟信号发送端口(引脚RC3/SCK)。这样,显示数据主要可以由这两个端口来完成,电路如图3所示。
图3 数码管显示器接口电路
在图3中,74LS164芯片的复位引脚(MR)与PIC16C73 单片机 的复位引脚MCLR相连,单片机的RC3/SCK引脚用于产生串行口同步时钟信号,RC5/SDO串行数据输出至74LS164芯片串行输入端,经串/并变换后输出并行码,经限流电阻R1~R8送至数码管显示器,5个共阴极数码管接成扫描方式,扫描时间间隔与A/D采样周期相同,为2ms。其阴极L1~L5分别接至单片机RB0~RB4引脚(这些引脚具有直接推动数码管的能力)。发光二极管D主要用作小数点(另外还可用于程序调试)。该电路的特点是充分利用了PIC16C73单片机各引脚可单独编程的性能,效率比较高。
2.3 电网电压取样与处理电路
我国居民家用电网的电压理论值为220V 50Hz,由于各种因素的影响,电网供电电压的波动范围较大(用电高峰期有时会低于150V)。这样,为了提高电度表的精度,需要对电网电压进行实时采样,以计及电网电压变化对用户耗电功率和电量的影响,其信号取样与处理电路如图4所示。
在图4中,选用精度为千分之五的金属膜电阻RJ1、RJ2为取样电阻,主要出发点是提高电度表的电压取样的稳定性和批量生产的产品一致性,减轻调试工作量;电阻R1主要起隔离作用,电阻R2起稳定作用(也可省去);运算放大器(1/2MC1458S)用作跟随器。
图4 电压信号取样与处理电路
2.4 电流取样与处理电路
居民用电负荷反映在电流的大小上,因而用户用电电流的变化范围比起电网电压波动来说要大得多,其范围一般从0到满刻度,对用户电流信号进行实时取样与处理的电路如图5所示。
图5 电流信号取样与处理电路
图5中电流取样电阻RJ3选用精度为千分之二的锰铜合金电阻丝,阻值为0.01Ω,考虑到家用电表负荷不大(通常为10A或20A等),采用串联取样方式,电路简单有效。跟随器与图4中的电压取样电路合用一片MC1458S运算放大器。
2.5 电流换档与通道自校准电路
电流换档与通道自校准电路是所设计的数字电度表中最关键的部分,其原理电路如图6所示。
整个电路设计较巧妙,效率高,非常经济,一共只用了3个芯片,一片LM324和两片模拟开关CD4051。LM324中含有4个运算放大器,采用±5V供电。U1CD4051的3个通道控制线为KZ1~KZ3,与 单片机 的引脚RB4~RB7相连;U2CD4051的3个通道控制线为KZ4~KZ6,分别与单片机的引脚RC0~RC2相连。
通常,即使电网电压不稳定(如在150~240V),相对于电流来说,其相对变化仍较小(小于50%),因而在电路中不需要对电压取样信号换档放大处理,电路对电压取样信号的总放大系数为1。
由于电流取样信号变化范围较大,所以需要进行换档放大处理。图6中共设计了三个放大系数为6的级联放大器A1~A3。如以10A电度表为例,A1放大输出对应的电流范围是2~10A,A2放大输出对应的电流范围是0.5~2A,而A3放大输出对应
图6 电流换档与通道自校准原理电路
的电流范围是0~0.5A。电路中电流、电压信号的采样间隔为2ms,即每个50Hz正弦周期采样10次。刚上电时,电流信号通道选择为最大档位,根据一个正弦周期的采样值(共10个)计算出其采样的有效值,然后按程序设定的档位进行比较确定是否换档(如果采样有效值较小,则需增大放大量,转到下一档);正常工作时,则根据前一个周期采样得到的有效值来确定向上或向下换档。 单片机 根据档位的不同,以不同计算方法来计算用电量。
考虑到电路中采用的芯片和其它元器件都是相对比较便宜的普通器件,工作中难免有一定的离散性,所以从保证电度表的精度出发,需要对每个通道进行实时的校准。首先产生四个相对比较稳定的基准电压信号(即Vref和Vref1~Vref3),Vref1~Vref3分别送至两片模拟开关芯片U1、U2,而Vref(-2.5V)则送至模拟开关U2输出级求和放大器(放大系数为1)。其具体实现方法如下:
A/D线性检测。 单片机 控制模拟开关U2分别选择第4~6通道(X4~X6),经单片机A/D采样后,便可以实时地掌握A/D通道(含输出级放大器,即A4)的线性情况(如1分钟监测一次),从而实现对实际采样值的修正。
电压通道