摘要:针对采用ADE7755作为电能计量芯片而设计的电表存在着功能简单和精度低等缺点,提出了一种新型数字式三相多功能电表的设计方案.该方案采用ADE7758芯片和PIC16C76芯片进行设计,电表不仅能计量多种电能参数以满足不同的实际需求,而且可对ADE7758片内寄存器的参数进行微调,使其达到很高的计量精度.
为了确保在缺相供电情况下能够继续正常工作,采用三相供电的方式.每一相交流电压经过一个专用的BT104型号变压器,可提供两组+12V和一组+9V的交流低电压,两组+12V输出线圈间的最大隔离电压为2400V,其中一组+12V输出线圈与+9v输出线圈间的最大隔离电压为2400V,但另一组+12V输出线圈与+9V输出线圈间的最大隔离电压只有1200V.由于在实际使用过程中RS4g5接口电路与电表内部电路间的静电电势差可能 旧当大,同时为了在三相都掉电后有几十毫秒的供电时间使PIC单片机仍能正常工作进行电量数据保存处理,所以第1组+12V电源供RS485接口电路使用,第2组+12V电源供中央控制和红外通讯电路使用,第3组+9V电源供电能计量电路使用
1.2 电能计量电路
由3个精密电流互感器提供每相的电流信号.对于不同规格的电表,采用了不同电流变换比例
的互感器,由3路电阻网络分压得到每相的电压信号.将电流信号和电压信号接人电能计量芯片ADE7758,由ADE7758将电流信号和电压信号先进行采样、A/D(模/数)转化和相位校准,再将电流
在电表的软件程序中分为主程序和中断程序2大部分.主程序用于实现电表的每一项功能,中断程序用于暂停主程序的运行,发送显示代码给数码管,同时检测电能脉冲、键盘操作和数据通讯事件是否发生.假如有事件产生则将对应的标志位置1,退出中断程序后继续执行主程序,主程序则根据标志位来确定是否需要调用相应的处理子程序.由于PIC16C76仅有8级硬件堆栈和程序跨越4个分区的特殊性,所以在编写程序时需要注意程序中嵌套子程序的层次和调用的子程序是否跨区,否则会出现程序跑飞或者芯片自动复位的现象.
2.1 主程序的设计
在主程序中按实现的功能可分为9个模块.第1个模块实现上电后对电表的初始化和设置.先对单片机的工作模式进行设置,再从E PROM 中读取ADE7758的工作参数,写入ADE7758使其能正确计量电能;从E PROM 中读取所有历史电能存放到单片机内部寄存器中;从E PROM 中读取表
号和密码等通讯参数,使得能与外部主机进行正确的数据通讯.第2个模块对电压值进行检测判
断,当连续3次检测到的电压都低于程序设定值时,则调用子程序保存所有电能,防止电路数据的丢失.第3个模块对总有功脉冲和总无功脉冲进行计数得到总有功和总无功电能.第4个模块负责更新显示缓冲区的内容,把单片机内部寄存器中的电能由十六进制转换为十进制,再转换为LED显示代码存放到显示缓冲区中.第5个模块实现与外部通讯的功能,分为发送数据和接收数据2个子程序.第6个模块对键盘操作进行响应,通过键盘操作可对ADE7758电能计量相关的参数进行微调,使电表的电能计量误差控制在很小的范围内.第7个模块从ADE7758寄存器中读取A、B、C三相的有功、无功和视在功,再乘以不同的系数(不同规格的电表系数不同)后,然后累加到单片机的内部电能寄存器中.第8个模块分别计算有功、无功和视在功的总功率,以及计算总功率的因数.第9个模块从ADE7758寄存器中读取电压、电流、温度和频率值.执行完后直接跳转到第2个程序模块的人口,开始了新一轮的循环.主程序流程如图2所示.
2.2 中断程序的设计
?1 Analog Devices Inc..Energy Metering IC with Pulse Out—put[Z].USA,2002.
[3] Microchip Technology Inc..PIC16F87X Data Sheet[z].USA.2001.
|