E甲多功能电气参数测试仪.docx
《E甲多功能电气参数测试仪.docx》由会员分享,可在线阅读,更多相关《E甲多功能电气参数测试仪.docx(14页珍藏版)》请在冰豆网上搜索。
E甲多功能电气参数测试仪
多功能电气参数测试仪
摘要:
本三相多功能电表采用凌阳SPCE061A板控制器,以高精度的三相电能专用测量芯片ATT7022A为核心测量芯片,实现对三相工频交流电三相电压、三相电流、三相有功功率、三相无功功率、总有功功率、总无功功率、功率因数、电网频率、有功电能和无功电能的测量与显示,测量精度高,且具有电压和电流相序检测、掉电存储、密码保护等功能。
本设计还通过RS-485通讯实现远程测量、红外通信实现向掌上PDA手抄表的信息传送,并通过按键菜单和LCD显示提供人机交互界面。
关键字:
ATT7022A、SPCE061A、标准RS-485通讯、红外数据通信、LCD显示模块
Abstract:
Thethree-phasemulti-functionmeterwithSunplusSPCE061Aboardcontroller,dedicatedtohigh-precisionmeasurementofthree-phaseelectricalenergymeasurementchipATT7022Acorechiptorealizethemeasurementanddisplayoftheparamentsconcerningthree-phaseACfrequency,includingthree-phasecurrent,three-phaseactivepower,three-phasereactivepower,totalactivepower,totalreactivepower,powerfactor,powerfrequency,activeenergyandreactiveenergy,withhighaccuracy.Besides,ithasphasesequencevoltageandcurrentdetection,power-downstorage,passwordprotectionandmorefeatures.Aswell,itsdesignofcommunicationthroughRS-485remotemeasurementsandIrCOMMIrCommunicationsmakestheinformationofPalmPDAhandmeterreadingconveniently,andthroughthebuttonmenuandLCD,thethree-phasemulti-functionmeterasloprovidesman-machineinterface.
Keywords:
ATT7022A,SPCE061A,StandardRS485communication,infrareddatacommunication,LCDdisplaymodule.
一、系统方案设计与比较
在采样系统中,通常的做法是将采集到的数据读取到MCU中,由MCU对大量的采样数据进行处理,得到电压、电流、相位、功率因数等参数。
由于大量的采样和数据运算给MCU带来很大的负担,大大影响MCU处理其他问题的速度。
ATT7022是一款国产的电能计量专用芯片,比进口电路价格低廉。
除了A/D转换部分,在芯片内还集成了数据运算电路,可以大大节省测量系统主控MCU的工作负荷。
该芯片通过软件校正可将误差校正到0.5级以内,有效值测量误差小于0.1%,数据采集及处理时间大约为1/3s。
为了保证测量精度他的采样频率为3.2kHz。
此芯片的接口简单,使用方便。
本系统主要由ATT7022A电压电流测量模块、MCU数据采集处理模块、通信模块、显示模块、按键模块、电源模块组成。
1、对参数的测量计算的论证与选择:
方案一:
采用两点采样法。
对正弦电压电流值相隔π/2采两组数据,并计算得各参数值,此方案增加了MCU的运算负担,影响了测量的速度与精度,且可能会限制其他功能的可靠实现。
方案二:
采用高精度的三相电能专用测量芯片ATT7022A作为主控芯片,该芯片适用于三相三线和三线四相制,可由内部DSP模块自动处理数据,内部寄存器直接提供各参数值且具有电压电流相序检测等功能,测量精度高,价格便宜,简单易行且可靠性高。
综合以上论述,选择方案二。
2、处理器的论证与选择:
方案一:
采用16位单片机SPCE061A为控制核心,其内置存储可以满足本系统所需的全部要求,适用频率范围较大且同样具有较强的处理功能,稳定性强经济实惠。
方案二:
采用89c51处理器,但运行速度较SPCE061A慢些,在实现功能的方面,可靠性不好,且外围扩展较麻烦。
综合以上论述,选择方案一。
3、显示模块的论证与选择:
方案一:
采用LED数码管显示,采用74LS74驱动数码管动态显示,控制比较简单但占用较多I/O口,不能实现资源的有效利用,而且只能显示一些简单的字符,显示信息量有限。
方案二:
采用LCD12864液晶显示,LCD微功耗、超薄轻小,有强大的中文字库显示的信息量大、字迹清晰,因此具有友好的人机交流显示界面,特别适合智能仪表的可编程人性化显示。
综合以上论述,选择方案二。
4、红外模块的论证与选择:
方案一:
采用TSOP138红外接收头,编码译码方式简单且易于实现,性能稳定,可以实现高速的传输,能实现本系统的红外数据通信的要求。
方案二:
采用HS0038能实现本系统的基本要求,但编码译码方式较麻烦不易实现。
综合以上论述,选择方案一。
二、基本测量原理
1、对ATT7022的分析:
本系统采用高精度的三相电能专用测量芯片ATT7022A作为主控芯片,其有功测量满足0.5S/0.2S,支持IEC687/1036,GB/T17883-1999,无功测量满足2级、3级,ATT7022三相电能专用计量精度非常高,适用于三相三线和三相四线应用。
ATT7022集成了六路二阶sigma-deltaADC、参考电压电路以及所有功率、能量、有效值、功率因数以及频率测量的数字信号处理等电路。
ATT7022能够测量各相以及合相的有功功率、无功功率、视在功率、有功能量以及无功能量,同时还能测量各相电流、电压有效值、功率因数、相角、频率等参数,充分满足三相复费率多功能电能表的需求。
2、各电路参数的计算
三、基本硬件设计
1、系统总体框图:
图1系统总体框图
2、RS485通信:
图2MAX485电路设计
RS-485是一个电气接口规范,它只规定了平衡驱动器和接收器的电特性,而没有规定接插件、传输电缆和通信协议。
RS-485接口的主要特点如下:
·传输方式:
差分
·传输介质:
双绞线
·差分输入范围:
-7V~+7V
·接收器输入灵敏度:
±200mV
·接收器输入阻抗:
≥12kΩ
·最大传输速率:
10Mbps
·最大电缆长度:
4000英尺
3、红外发送与接收:
本系统采用TSOP138红外接收头来接收红外信号,红外遥控是利用红外线进行传递信息的一种控制系统,红外遥控具有抗干扰,电路简单,编码及解码容易,功耗小,成本低的优点,目前几乎所有的视频和音频设备都支持这种控制方式。
图3红外发送接收原理图
4、12864显示和键盘模块:
1)本系统采用12864LCD液晶显示模块来显示所测得、计算出的三相电各参数。
由按键通过SPCE061A来控制12864显示用户所需的各测量参数。
12864液晶显示,功耗低且能实现本设计中的所有要求,有很好的人际交互显示页面。
2)本系统利用键盘控制12864的显示内容,并且通过键盘实现电表的密码保护功能,保证了一定的安全性和现实的灵活性。
使用键盘时应注意键盘对应MCU的引脚编号来对应进行对应的软件设计,并且注意键盘的消抖一定要对应确定的内容。
5、电源:
电源由变压部分、整流部分、滤波部分、稳压部分组成。
采用7805,7812,7905,7912稳压芯片为整个系统提供±5V或者±12V电压,确保电路的正常稳定工作。
由于rs485通信采用光电耦合进行防干扰,因此需分开供电,这部分采用电池。
四、基本软件设计
1、程序功能描述与设计思路:
根据题目要求软件部分主要实现键盘的设置和显示。
1)键盘实现功能:
输入密码以及选择所要显示的电路参数;
2)显示部分:
显示电压值、频率等参数;
3)控制485及红外可将现场的电路参数传输到控制台;
4)若发生掉电,可通过设置flash进行掉电保护操作。
2、主程序流程图:
图4软件设计总体框图
五、硬件与软件测试
1)用数字万用表分别测试每条导线,看是否导通,有无断路和短路情况,看整个系统的地线是否都接在一起,看焊接点有没有虚焊等。
2)三相高精度电压电流信号源提供电源,通过高精度多功能电能表测量各个参数与本系统测量参数进行比较,从而对系统硬件和软件等参数方面进行校正,使精度提高。
3)通过信号发生器和示波器调试RS485、红外通信的精度和速度。
六、测试结果及分析
标号
相
1
2
3
4
5
6
A
相
实际值(V)
57.5
57.81
127.0
126.89
219.45
219.10
测量值(V)
57.70
57.59
127.20
126.70
220.00
219.60
误差(%)
0.31
0.42
0.16
0.15
0.25
0.22
B
相
实际值(V)
58.33
57.01
126.16
127.27
219.93
218.76
测量值(V)
58.01
56.61
125.45
126.69
219.54
216.80
误差(%)
0.55
0.70
0.56
0.46
0.18
0.90
C
相
实际值(V)
57.4
57.39
127.19
127.28
219.59
219.20
测量值(V)
57.30
57.50
127.00
126.8
219.00
218.40
误差(%)
0.23
0.24
0.11
0.37
0.31
0.36
表1电压测试表
时间:
1h
次数
参数
1
2
3
4
5
6
实际值(kW.h)
0.191
0.268
0.3452
0.4778
0.548
0.654
测量值(kW.h)
0.190
0.267
0.3458
0.477
0.543
0.650
误差(%)
0.34
0.5
0.2
0.15
0.88
0.62
表2有功电能测试表
测试分析与结论:
根据上述测试数据,经分析可以得出以下结论:
1)能对三相工频交流电(频率波动范围为45-65Hz)的三相电压、三相电流、三相有功功率、三相无功功率、总有功功率、总无功功率、功率因数、电网频率、有功电能和无功电能在误差允许范围内进行测量。
2)实现电压和电流相序检测功能,有掉电存储功能。
3)发挥部分的密码保护、标准RS-485通讯来实现远程测量、红外通信都可以满足要求。
综上所述,本设计达到设计要求。
七、参考文献
[1]《单片机原理及使用技术---凌阳16位单片机原理及应用》,西安电子科技大学出版社
[2]ATT7022A用户手册
[3]《模拟电子技术基础》(第四版),高等教育出版社
[4]《数字电子技术》(第五版)高等教育出版社
[5]《电路》(第五版)高等教育出版社
附录
1、系统电路图:
2、ATT7022控制部分源程序:
#include"SPCE061A.h"
longintatt7028_rCmd(intcom)
{
intn;
longintdata;
CS=1;
SCLK=0;
CS=0;
for(n=7;n>=0;n--)
{delay
(1);
SCLK=1;
if(com&0x80)
DIN=1;
else
DIN=0;
delay
(1);
SCLK=0;
com=com<<1;
}
delay(10);
for(n=23,data=0;n>=0;n--)
{delay
(1);
SCLK=1;
data=data|DOUT;
delay
(1);
data=data<<1;
SCLK=0;
}
CS=1;
return(data);
}
voidatt7028_wCmd(intcom,longintdata)
{intn;
CS=1;
SCLK=0;
CS=0;
for(n=7;n>=0;n--)
{delay
(1);
SCLK=1;
if(com&0x80)
DIN=1;
else
DIN=0;
delay
(1);
SCLK=0;
com=com<<1;
}
for(n=23,data=0;n>=0;n--)
{SCLK=1;
if(data&0x0800)
DIN=1;
else
DIN=0;
delay
(1);
SCLK=0;
delay
(1);
}
CS=1;
}
intmain()
{intm;
longinti_a,i_b,i_c,u_a,u_b,u_c;
longintp_a,p_b,p_c,p_t,s_a,s_b,s_c,s_t;
longintpf_a,pf_b,pf_c,pf_t,pg_a,pg_b,pg_c,pg_t;
longintfreq,ep_a,ep_b,ep_c,ep_t;
*P_IOA_Dir=0xffff;//A口初始化
*P_IOA_Attrib=0xffff;
*P_IOA_Data=0x008f;
*P_IOB_Dir=0xfff0;//B口初始化
*P_IOB_Attrib=0xffff;
*P_IOB_Data=0xfff0;
RESET=0;
delay(600);
RESET=1;
delay(500);
att7028_wCmd(0x80,0x000000);
*P_Watchdog_Clear=0x0001;
delay(500);
att7028_wCmd(0xA0,0xAB);
*P_Watchdog_Clear=0x0001;
delay(500);
att7028_wCmd(0xA6,0x812735);
*P_Watchdog_Clear=0x0001;
delay(500);
k=att7028_rCmd(0x2D);
while
(1)
{delay(500);
*P_Watchdog_Clear=0x0001;
i_a=att7028_rCmd(0x10);//A/B/C相电流有效值
I_A=i_a>>13;
delay(10);
i_b=att7028_rCmd(0x11);
I_B=i_b>>13;
delay(10);
i_c=att7028_rCmd(0x12);
I_C=i_c>>13;
delay(10);
u_a=att7028_rCmd(0x0D);//A/B/C相电压有效值
U_A=u_a>>13;
delay(10);
u_b=att7028_rCmd(0x0E);
U_B=u_b>>13;
delay(10);
}