1 引言
随着电力事业及科学技术的高速发展,机械式电能表逐渐被电子式电能表取代。与传统机械式电能表相比,电子电能表精度高、制造成本低,并且计量参数全,易于电源管理和电力运行过程的远程监控。
该电能表具有SPI接口,单片机可通过SPI接口读取内部的电参数。STC12C5410是新一代增强型、低功耗51单片机,具有2 KB非易失性E2PROM和SPI接口,易于与计量器件SA9903B接口,存储电能累计量。
2 SA9903B的简介
SA9903B的主要特性:实时测量单相有功/无功能量;实时测量电压有效值和频率;集成内置参考电压源;具有SPI(串行外围接口)总线接口;功耗低于60 mW,具有静电保护功能;工作温度范围宽:符合IEC6103一级交流电能表要求。
SA9903B的内部结构如图1所示。它由2路模数转换器、4个24位寄存器、内部参考电压基准和SPI串行通信接口控制器等组成。其中,寄存器用于存储有功电能、无功电能、电压有效值及频率。GND为模拟地。VDD为电源正极,当采用分流电阻检测电流时,接+2.5 V;当采用电流互感器时,接+5 V。VSS为电源负极,当使用分流电阻检测电流时,接-2.5 V;当使用电流互感器时,接地。IVP为模拟电压输入端,当测量的电压为额定电压时,要保证流入到内部模数转换器电流的有效值为14μA,峰值不超过+25μA。VREF为参考电源的外接电阻端,通常需要接对地24 kΩ电阻。FMO为电压过零脉冲输出端,在输入电压的上升沿产生占空比50%的脉冲。CS为片选信号输入端,高电平有效。DI、DO为串行数据的输入、输出端。SCK为串行时钟信号输入端。OSC1、OSC2为外部晶体振荡器的输入、输出端。
3 工作原理和SPI接口通信
3.1 SA9903B的工作原理
SA9903B为混合模拟/数字信号的CMOS集成电路,内部含有两个16位二阶的∑-△模/数转换器,分别对电压和电流模拟信号进行数字化处理,将瞬时电压与瞬时电流直接相乘得到瞬时功率。瞬时功率经低通滤波处理可获得瞬时有功功率,而瞬时无功功率是通过对电流信号移相90°后得到。瞬时有功功率和瞬时无功功率经过数字/频率转换器转换成正比的脉冲信号。这个信号被有功电能和无功电能计数器随时间累加。器件内部设有电压过零检测电路。电压每过一次零点产生一个占空比为50%的脉冲,频率寄存器将其累加。电压有效值是通过累加每个瞬时电压采样值并进行数字处理后得到的,可直接测量电路的4个参数:有功电能、无功电能、电压有效值和频率值。
3.2 SPI接口通信
SA9903B具有SPI串行通信接口,易于实现与单片机的通信。SPI通信是通过DI、DO、CS和SCK等4个引脚实现的。为保证能正确读取SA9903B的24位数据寄存器,要严格按照通信命令格式及时序的要求进行。读取寄存器命令格式见表1,命令序列由9位二进制数组成,前导位是3位固定值“110”,不能更改,后6位A5~A0为寄存器的地址码,表中“X”为0或1均可,未用位。图2为9位数据的操作时序。每个寄存器可以单独读取,也可以连续读取多个寄存器,DO引脚随时钟下降沿变为低电平,此后每个时钟的下降沿,DO引脚数据有效。24位数据是以先高位后低位的顺序移出。
为了与SA9903B的SPI通信对应。STC12C5410单片机选择主模式作为主机工作,SA9903B作为从机工作。主机和从机的两个移位寄存器可以看作是一个16位循环移位寄存器。当数据从主机移位传送到从机的同时,数据以相反的方向移入。这意味着在一个移位周期中,主机和从机的数据相互交换。按照SA9903B的时序要求,STC12C5410配置为:控制位CPHA=1,前时钟沿驱动,后时钟沿采样,CPOL=0,SPICLK空闲时为低电平,前时钟沿为上升沿,后时钟沿为下降沿。SPI时钟速率选择为CPU-CLK/32。
4 硬件电路设计
单相电能表的主电路如图3所示,由电量计量器件SA9903B、输入分流器、分压电阻、光电隔离、单片机STC12C5410AD、键盘电路、显示电路及通信RS485接口电路等组成。被测电压和电流分别通过分压和分流进入SA9903B的测量通道,内部两路∑-△模/数转换器,分别对电压和电流模拟信号进行转换,然后把累积的有功电能和无功电能存入两个24位寄存器,同时把连续测量的电压有效值及频率值存入各自的24位寄存器。单片机与SA9903B通过4路光电隔离使SPI引脚对应连接,单片机设为主工作模式,完成SA9903B内部电参数的读操作。单片机对电参数处理后,进行显示,并响应远程485命令实时发送读取的电参数。通过键盘切换显示和校准电能表采样。电路设计中,为提高SPI通信的可靠性,应在时钟CLK、DI、DO各线路上加100 pF的对地电容,滤除干扰毛刺。为保证采样精度,SA9903B的引脚VDD和VSS对地各接一只820 nF的陶瓷电容,且应尽可能靠近SA9903B放置。
5 软件设计
该电能表的软件设计主要实现SPI数据读取以及处理、参数的显示、键盘的处理和485通信控制等功能。程序采用汇编语言编写,程序流程图如图4所示。
6 结束语
该系统设计采用SA9903B,大大减少了外围元件数目,提高了系统的测量精度。同时采用485总线传输实测数据,满足远程监控的需要。