基于SA9904B新型电能采集系统的设计之我见
2011-12-31郑休宁
郑休宁
摘要:文章采用SA9904B高集成度的采样芯片,取代传统的数模采样电路。并基于廉价的AT89C51微控制器,设计新型电能采集系统。该系统可以提供及时、可靠的电能信息,满足电网调度自动化的需要。
关键词:电能采集系统 ;SA9904B ;SPI
1.引言
电能采集系统是电网调度自动化不可或缺的部分,它所采集的信息,是调度中心了解和掌握电力系统实时运行状态及设备情况,并对其控制做出决策的基础。电力工业的发展,对电能采集系统的功能要求越来越多,如正反向记量、分时计费、最大需量记录、欠压断相记录、电压、电流、功率以及功率因数测量、负荷曲线记录、窃电状态记录和电量追补等等。各种功能的实现离不开对电压、电流及频率的准确测量。
随着技术的发展,电子式电能采集系统逐渐取代传统的机械电能表。由于模数转换电路采样精度,及微处理器的价格,软件的开发难度,电能采集系统的开发存在不少问题和难度。而且电力参量的采样是一个十分重要的问题,其实现方式决定了系统的测量精度及相应软件开发的难易程度,产品的整体开发成本的高低。
SAMES的SA9904B一种双向电表集成电路芯片,可三相独立测量有功、无功功率以及电压和频率。其数据通信采用SPI接口总线,具有速度快、占用口线少等优点。因而特别适合用于电能采集系统。本文采用SA9904B高集成度的采样芯片,取代传统的数模采样电路。并基于廉价的AT89C51微控制器,设计新型电能采集系统。该系统可以提供及时、可靠的电能信息,满足电网调度自动化的需要。
2.SA9904B简介
2.1 SA9904B的工作原理
SA9904B采用DIP20与SOIC20两种封装形式,其外部引脚与内部结构框图如图1所示,表1为其引脚描述。它含有两个16位二阶的∑-Δ模/数转换器,分别对电压和电流模拟信号进行数字化处理。其所采用的∑-Δ调制技术,可提高基带内输入信号的信噪比,以提高输入信号的测量精度。模/数转换器得到的瞬时电压与瞬时电流直接相乘即得到瞬时功率。瞬时功率低通滤波处理后得到瞬时有功功率,而瞬时无功功率通过对电流信号进行移相90°处理后得到。瞬时有功功率和瞬时无功功率经过数字-频率转换器转换成正比的脉冲信号,这个信号被有功电能和无功电能计数器随着时间进行累加。芯片内部设有电压过零检测电路,电压每过零点产生一个宽度是1ms的脉冲,被频率寄存器累加起来。电压有效值是通过累加每个瞬时电压采样值并进行数字处理后得到的。
SA9904B直接测量每相电路的四个参数:有功电能、无功电能、电压有效值和频率值。其余电力参数,如电流、功率等,需要通过微控制器根据相应的公式计算才能得到。SA9904B所测量参数的数字量值存储在24位寄存器中,最大值为十六进制的FFFF,对应于芯片的DO端口,其中对各路的寄存器的读取,由各路地址存储器的值确定,对应与芯片的 DI端口。这些都通过芯片的SPI接口以串行数据方式与微控制器(MCU) 端口进行数据通讯。MCU通过对地址的选择来完成对芯片的数据读取。
2.2 SPI接口总线
数据传送有串行传送和并行传送两种方式。并行传送以其高速度占领了数据传送领域很长一段时间,而串行传送仅在远距离数据传输领域占有一席之地。随着半导体集成电路制造工艺的发展,半导体器件串行传输速度有了很大的提高。许多半导体器件公司相继开发了带有串行外围接口(SPI)的集成芯片,这些集成电路与并行接口集成电路相比,具有引出线少(最少为8引线),芯片体积小,接口线少(3根-4根)等特点,而这些特点在许多工程应用场合是必需的。因而,其应用必将越来越广泛。
SPI(Serial Peripheral Interface)接口是一种高速、高效率的同步串行通讯接口技术,主要用于扩展外设和进行数据交换,作为许多高档单片机中的一种配置标准,如AVR系列单片机、MC68HC08系列等等。SPI接口技术的使用,使工程技术人员在组建系统时具有更大的灵活性,因而大受欢迎。
SA9904B集成了SPI接口,微控制器通过SPI端口实现对其内部数据的访问。SPI接口由四根信号线组成:串行时钟输出端SCK、片选信号输入端SC、串行数据输入端DI、串行数据输出端DO,SPI波形及时序如图2与图3所示。
当CS为高电平时,DI引脚在SCK时钟的上升沿输入9位地址信号。其中高三位为写入地址的标志位;A5、A4为保留位,可选0或1;有效地址为低4位。在SCK的上升沿检测到地址的最低有效位A0输出后,DO引脚在SCK的下降沿输出相应寄存器地址里的24位数据,高位在前,低位在后。当24位数据输出后,如果CS信号仍然有效,则DO引脚将继续输出下一个地址的寄存器数据,直到所有的数据输出为止。
2.3 电参数测量模块典型电路
图4为一种电参数测量模块典型电路,它使用电流互感器进行电流检测。这个四线电表可以测量3×230V/80A,比1级电表还要精确。SA9904B集成电路的外捷元件是电流检测电阻、电压检测电阻和偏压电阻器。它们可以按如下方法计算:
R1和R2、R3和R4、R5和R6用于决定各相电流的输入,因为输入电流值为16μA,所以R1=R2=R3=R4=R5=R6=(IL/16μA)×RSh/2=80A/2500/16μA×2.7Ω/2=2.7kΩ
现令:RA=R16+ R19+ R22 、RB=R8/ (R13+ R1)
因为 (RA+ RB)/230V=RB/14V,并且,R11、R12和R13为24 kΩ,R8、R9和R10为1MΩ,因此:
RB=23.44 kΩ
RA=RB ×(230V / 14 V-1)=361.6 kΩ
取R16、R19和R22为等值电阻,其值应为120 kΩ。由于三个电压通道是一样的,所以有R14=R15=R16=R17=R18=R19=R20=R21=R22。
此外,R23和R24为1 kΩ,R25、R26和R27为2.7 kΩ,C1和C2为220nF的电容,C3、C4、C5和C6为820nF的电容。
3.系统设计
3.1 硬件设计
电能采集系统以2.3所述的电参数测量模块为核心,外扩人机界面和远程通信接口,硬件结构如图5所示。待测的三相四线线路各相电压、电流经过电压分压网络和电流互感器,转化成符合SA9904B芯片要求的输入信号,再经过芯片内部对电压和电流进行A/D转换、数字运算和能量累加,从而得到各相的有功功率、无功功率、电压有效值和频率值的原始寄存器值。这些值通过SPI接口传送到微控制器。微控制器选用廉价的AT89C51,完成各种电力参数的计算、通信处理和控制功能。系统通过RS485总线通信,芯片75LBC184实现TTL与RS485之间的电平转换。人机界面以8279为接口,8位LED显示器用于显示所测量的有功与无功功率、电压与电流有效值、频率15个量中的某个量,4×4键盘用于清屏以及指令显示哪一个量。
3.2 软件设计
系统软件包括系统初始化、参数采样测量、电力参数计算、通信处理、键盘输入处理、显示处理等模块。系统初始化模块完成对各寄存器、变量的清零和显示器的初始化工作。键
盘输入处理模块采用外部中断0形式,它对按下的键值进行判断记录,并强行产生定时器T0中断。参数采样测量模块为软件的核心,系统根据键值,实时读取SA9904B芯片内部存储器相应的量。如必要,调用电力参数计算模块另外计算出各相电流值。通信处理模块完成与RS485总线通信,处理远程数据的传送与接收。显示处理模块则首先把数据的每一位分离出来,以便直观地显示在显示器上。另外,8位LED显示器前两位用于显示数据表示的量,如IA、QC等,其余位显示数据。
系统初始化后,默认对A相的电压进行测量并显示。之后通过定时器T0中断,每0.65536秒测量一次,并对数据进行处理。该时间间隔既能保证系统响应的实时性,又保证每个测量周期内,其它模块有足够的时间运行。定时器T0中断程序流程如图6所示。
SPI总线数据通信正确与否是本系统成败的关键。为节约成本,我们采用廉价的AT89C51作为系统的控制器,并采用软件模拟的方法完成SPI通信。事实证明软件模拟的方法对系统速度不构成影响,而且比较适合SA9904B的时序。SPI软件模拟程序如下:
unsigned char data spidata[3]={0,0,0};/*用于存储接收的spi数据*/
void spinready()
{ sack=1;//等待器件接收命令后响应
sack=0; //此处从机送0,但主机不接收
sado=1;//准双向口,作读的准备
}
unsigned char spin()/*从SPI总线上读数据*/
{
char data i;unsigned char sadoint;unsigned char spdata=0;
for (i=1;i<=8;i++)
{
sack=0;sadoint=(unsigned char)sado;
sack=0;sack=1;
spdata=(spdata<<1)|sadoint;
sack=1;
}
return (spdata);
}
void spout(unsigned char out)/*向SPI总线写数据*/
{
char data i;
for (i=1;i<=8;i++)
{
sack=0;sadi=out&0x80;
out=out<<1;
sack=1;
}
}
void measure(unsigned char bitadd)/*测量某一个量*/
{
sacs=1;
spout(1);spout(bitadd);/*位的地址*/
spinready();
spidata[0]=spin();spidata[1]=spin();spidata[2]=spin();
sacs=0;
}
4.结束语
本系统采用了SA9904B高集成度电表芯片,大大减少了软件中的计算工作,提高了系统的测量精度。系统软件设计的核心与难点在于SPI总线的数据通信,可以看出对于SA9904B的操作主要集中在数据的输入和输出,同时正确控制数据传输时序。
5.参考文献
SAMES. Three Phase Power/Energy IC with SPI Interface. SPEC-0447(REV.1)
徐爱钧,彭秀华等. 单片机高级语言C51 Windows环境编程与应用. 电子工业出版社,北京,2001.
注:文章内所有公式及图表请以PDF形式查看。