基于ATT7022E多功能电力数据采集系统的设计

2018-07-03 00:45上海电机学院资产与实验室管理处上海201306
实验室研究与探索 2018年5期
关键词:寄存器三相计量

祝 海 宁(上海电机学院 资产与实验室管理处, 上海 201306)

0 引 言

能源互联网时代的到来推动了我国电力行业的发展,使我国电力行业迈开了新的发展步伐,进入了新的篇章。我国正处于经济建设和社会主义发展的重要时期,快速发展的国民经济对电力需求越来越大,国家也在投入越来越多的人力和财力来发展电力行业。近几年,国家提出建设坚强智能电网,来完善电力产业,支撑国民经济的快速发展。坚强智能电网的建设对电力数据采集系统的实时性、准确性、高效性提出了更高的要求。

传统的电力数据采集装置存在芯片功能单一、存储空间小、软件程序算法复杂、实时性差、精度不够、效率低等缺点。本文设计了一种基于ATT7022E和STM32为主要芯片的新型的电力数据采集装置。ATT7022E是多功能高精度三相电能专用计量芯片,其强大的测量功能完全满足国家电网对智能电表实时性、准确性、存储容量等各方面要求,再加上ARM处理器高速的数据处理速度、超低的功耗和丰富的片上资源,大大节约了硬件投资,非常有利于推广应用[1-2]。

1 系统总体设计

如图1所示。本系统采用专用电能计量芯片ATT7022E和STM32F103ZE主控单元完成多功能智能电表数据采集和处理。其中ATT7022E采集模块进行数据采集,采集到的数据通过SPI接口与外部MCU连接进行计量与校表参数,STM32F103ZE主要完成数据的处理、存储和通信,通信模块可通过CAN、GPRS通信完成与上位机或其他装置的通信功能,最终将所得数据通过液晶显示器显示[3-5]。

图1 系统总体框图

2 系统硬件设计

2.1 电源模块

本系统电源模块采用LM2576稳压器芯片,24 V直流电压经稳压芯LM2576后能够输出3.3、5、12 V等固定电压和电压可调节的可调节电压,分别给专用计量芯片ATT7022E和控制单元STM32F103ZE供电。同时,输出的5 V电源经稳压芯片CS5230A后得到3.8 V输出电压,为GPRS模块的GTM900C芯片供电[6-7]。输入24 V电源由电网电压经整流电路后得到。LM2576工作原理如图2所示。

图2 LM2576工作原理

2.2 电力数据采集模块

电力数据采集模块采用钜泉光电科技(上海)股份有限公司的专用计量芯片ATT7022E作为电网电力数据采集装置的核心芯片。ATT7022E芯片内集成了7路19位的ADC,包含一套电源监控电路,此外含有SPI串行通信接口,数据传输速率可达10 Mb/s,可实现与MCU高速数据传输。

电源监控特性如图3所示,可对输入的模拟电源进行不间断监测,当电源电压低于(2.5±5%)V时芯片将被复位,可以保证芯片上电和断电时正常工作,此外为保证芯片正常工作,对电源去耦,使模拟电源的波动不超过(3.3±5%)V。

图3 电源监控特性

正常工作时,芯片内7路模拟量输入被分为电压输入通道和电流输入通道。电力数据采集电路如图4所示,电路中仅画出了A相电压、电流,B相和C相同理。其中电压采样电路有电压互感器采样电路和电阻分压采样电路,本文采用电阻分压采样,1 kΩ电阻和0.1 μF电容并联组成抗混叠滤波器,抑制杂波对数据采集的影响。电流采样电路采用电流互感器,R7的作用分别是把需要采集的电流信号转换成ATT7022E专用计量芯片要求的电压信号。多功能高精度三相电能专用计量芯片ATT7022E含有SPI串行通信接口,可以实现ATT7022E芯片与外部MCU之间进行计量数据的传输。

图4 ATT7022E电压、电流采集电路

根据ATT7022E芯片的功能特点,采用多功能高精度三相电能专用计量芯片ATT7022E作为三相电网电力数据采集装置的核心芯片,芯片的电源监控电路有利于保障上电和断电时芯片的正常启动和正常工作电源。把电源监控电路安排在延时和过滤环节中可以最大程度减少由电源噪声引起的误差。系统自带两个独立的硬件复位和软件复位功能。最主要的是ATT7022E芯片可以完成三相三线或者三相四线模式下的电能质量测量、有效值测量、有功计算、无功计算、视在计算、硬件端口检测、片上温度检测、能量脉冲输出、ADC采样数据缓冲以及同步采样数据缓冲等功能。以功能高精度三相电能专用计量芯片ATT7022E作为电力数据采集单元,可以简化传统的电力监测仪的复杂的硬件系统,同时可以极大地提高运行速率,因此基于ATT7022E专用计量芯片的多功能电力数据采集系统具有实时性高、准确性高、存储容量大等特点。

2.3 MCU模块

MCU模块采用意法半导体公司ARM Cortex-M3内核STM32F103ZE。STM32F103ZE是32位微处理器,其片上资源丰富,工作频率最高可达72 MHz,带512 Kbyte的FLASH,内部功耗较低,电源调节器有睡眠、停机和待机3种工作模式,含有3个12位ADC、11个定时器和13个通信接口,包括2个I2C接口、5个UART接口、3个SPI接口、CAN接口、USB2.0全速接口和SDIO接口,通用I/O口达到112个,具有高性能、低能耗、强大处理能力的优点。

2.4 时钟模块设计

时钟电路模块主要由DS1307时钟芯片来完成。DS1307是一种低功耗的时钟芯片,可提供秒、分、小时、星期、日期、月和年等时钟日历数据。它的接口采用I2C两线制串行接口,因此可通过SCL和SDA引脚与MCU单元连接。另外,DS1307时钟芯片具有2.5~5.5 V的宽电压供电范围,同时还具有32.768 kHz 的外部晶振[8]。它的3号引脚接有备用电池,当芯片供电输入引脚出现故障时,可自动切换到电池供电模式。时钟电路原理图如图5所示。

图5 时钟电路原理图

2.5 通信模块

2.5.1CAN通信

控制器局域网(Controller Area Network,CAN)包含OSI中的物理层、数据链路层、传输层。STM32F103ZE中包含两个CAN通信接口CAN1和CAN2。它的通信是通过帧格式,包括数据帧、遥控帧、错误帧、过载帧、帧间隔,其中数据帧和遥控帧有标准格式的11位标识符和扩展格式的29位标识符。CAN通过报文的形式发送和接收数据,每组报文开头的11位字符为标识符,它是站与站直接收发数据的标志,同时当有多个数据同时发送时,也可通过标识符判断发送数据的优先级。

图6所示为CAN通信电路原理图。其中CTM1050 为带隔离的高速CAN收发器芯片,该芯片通过CANRXB和CANTXB引脚与MCU相连,将CAN控制器的逻辑电平转换为CAN总线的差分电平,通过CANH、CANL两根总线的电位差判断总电平的显、隐性。另外该芯片还具有 2.5 kV直流隔离功能及ESD保护作用。

图6 CAN通信原理图

2.5.2GPRS通信

通用无线分组业务(General Packet Radio Service,GPRS)一种在GSM网络上增加了SGSN(GPRS业务支持节点)及GGSN(GPRS网关支持节点)的无线分组交换技术,支持点到点和点到多点数据服务。相较于其他无线传输技术,GPRS无线通信技术采用按流量计费,减低用户费用,同时,GPRS无线通信技术支持SMS业务,可作为备用通信方式,当GPRS通信故障时,启动短信通道通信。

本系统采用华为的GTM900C作为GPRS通信模块,该模块支持3种频率通信,内部嵌有TCP/IP协议、异步串行接口、SIM卡接口,支持多种串口速率,同时可通过AT命令控制GPRS无线模块,GTM900C引脚连接图如图7所示。GTM900C模块输入电压为3.8 V,可通过稳压芯片CS5203A获得。GPRS模块和MCU之间通过UART串口进行通信,端口UART_RXD和UART_TXD用于MCU模块接收和发送数据,同时,该模块支持外接SIM卡,SIM卡接口分别于外置SIM卡上对应接口CCVCC、CCGND、CCRST、CCCLK、CCIO连接。

图7 GTM900C模块

GPRS远程电力计量系统实时性强,集抄范围广,数据传输速率高,传输容量大,建设成本低,通信费用低,充分利用当前先进的计算机网络通信技术和控制技术,克服了传统运行的局限性,实现了对各个系统的自动采集、传输、存储、计算、分析和WEB的发布。用户可以通过平台访问到每块表的数据,了解每时每刻的用电情况和电气运行状态。

3 软件部分设计

本系统主要有以下模块组成:主程序、数据采集模块、数据存储模块、通信模块、显示模块等。软件运行中还包含:定时器中断、外部中断以及通信中断程序等[9-10]。

软件系统首先初始化,设置各个子系统参数,再通过ATT7022E模块完成模拟量、开关量的采集。采集完信息后,检测通信标志,完成数据发送,并判别数据是否发送错误。经MCU接收数据完成数据处理,最后传送数据到显示系统。主程序流程图如8所示。

图8 主程序流程图

3.1 ATT7022E接口程序设计

ATT7022E和MCU之间通过SPI通信接口连接,SPI通信接口包含4条接口线。CS为片选,下降沿有效;DIN、DOUT分别为串行数据输入和输出,分别用于将数据传输到ATT7022E和从ATT7022E中读出数据;SCLK为串行时钟,在下升沿时将DIN数据采样到ATT7022E中,上降沿时将ATT7022E中数据放到DOUT输出。数据传输格式为8位命令和24位数据,其读写操作时序图如图9所示。

图9 ATT7022E操作时序图

在程序设计时,首先初始化ATT7022E的SPI引脚功能配置,然后调用读写数据函数,在ATT7022E指定地址的寄存器中实现读写操作,当CS引脚下降沿时,进入读写操作,依次完成4个字节的读写后,将CS引脚拉高,完成一次数据传输。

3.2 中断子程序设计

STM32F103ZE外部中断寄存器由中断屏蔽寄存器、事件屏蔽寄存器、上升沿触发选择寄存器、下降沿触发选择寄存器、软件中断事件寄存器、挂起寄存器。其中每个输入线可以独立配置输入类型和对应的出发事件,也可以被独立屏蔽。挂起寄存器保持着状态线的终端要求。

EXTI寄存器部分中断程序代码:

Void EXTI0-IRQHandler(void)

{

OS-CPU-SR cpu-sr

INT32U temp;

OS-ENTER-CRITICAL();

OSIntNesting++;

OS-EXIT-CRITICAL();

if(EXTI-GetITStatus(KEY-DOWN-INTRUPT)!=RESET)

{ temp=EXTI->IMR;

temp &=~DISPLAY-TURN-DOWN-INTERUPT-EXTI-LINE;

EXTI->IMR=temp;

EXTI-ClearITPendingBit(KEY DOWN INTRUPT)

if(GPIO-ReadInputDataBit(DISPLAY-TURN-DOWN-PORT, DISPLAY-TURN-DOWN-PIN)==0)

{ Power-ctr.count=0;

OSSemPost(1cd-sem);

}

}

OSIntExit();

}

3.3 CAN通信程序设计

在使用CAN通信时,首先调用CAN_Int()初始化函数,完成对CAN的模式选择、IO口配置和CAN参数的初始化,然后调用CAN_Transmit()函数来发送数据,其发送数据流程为:选择空置的发送邮箱;设置标识符、数据长度和待发送数据;然后对CAN_TIxR寄存器的TXRQ位置‘1’,请求发送。CAN数据的接收需要知道ID,因此设置了CAN的过滤器,屏蔽掉不想要的ID,STM32F103ZE中有14组过滤器,每组过滤器有两个32位的寄存器,CAN过滤器可通过CAN_FilterInit()函数来设置。CAN发送和接收部分程序如下[11]:

(1) CAN发送函数。

Void CAN_SendMesg(uint32_t id,uint8_t len,uint8_t*dat)

{

Uint16_t i=0;

canTxMsg TxMessage;

if(len>8)

{

Return;

}

TxMessage.StdId=(id&0x7FF);//标准帧ID11位

TxMessage.ExtId=(id>>11);设置扩展标示符

TxMessage.RTR=CAN_RTR_DATA;

if((id&0x7FF)== 0x7FF)//检测是标准帧还是拓展帧

{

TxMessage.IDE=CAN_ID_STD;//标准ID

}

else

{

TxMessage.IDE=CAN_ID_EXT;//拓展ID

}

TxMessage.DLC=len;//发送的数据长度

/*将数据放入到邮箱中*/

for(i=0;i

{

TxMessage.Data[i]=*dat;

Dat++;

}

/*开始传数据*/

CAN_Transmit(CAN,&TxMessage);

}

(2) CAN接收函数。

Void CAN_ReceiveMesg(uint8_t*receiveBuff)

{

Uint8_t i=0;

canRxMsg RxMessage;//设置接收邮箱

if((CAN_Messpagepending(CAN,CAN_FIFO0)!=0))

//检查FIFO0里面是否有数据

{

CAN_Receive (CAN,CAN_FIFO0,&RxMessage);

//读取FIFO0里面的数据

for(i=0;i

{

*receiveBUFF=RxMessage.Data[i];

receiveBuff++;

}

}

}

4 实验数据分析

本采集系统采用STM32加专用计量芯片ATT7022E的设计方案,能精确测量各相电压、电流、有功功率、无功功率、功率因数以及CF脉冲输出等,有功测量满足0.1 s、0.2 s,无功测量满足1级、2级。已知电表基准值为各相电压有效值为220 V,各相电流为2.5 A,各相有功功率为550 W,功率因数为1,无功功率为0 var。表1为电能表实际测量值[12-15]。

表1 电能表测量值

由表中实验数据可知,各相电压有效值均为220 V,各相测量误差接近于0%,A相、C相电流值为2.49A,误差为0.4%,各相有功功率相对误差为0.18%,无功功率为0 var,功率因数为0.999,基本接近于基准值,误差很小。因此电能表测量数据都在精度允许误差范围之内,满足国网公司对智能电表技术标准的要求。

5 结 语

本文设计了一款基于ATT7022E的多功能电力数据采集系统,多功能高精度三相电能专用计量芯片ATT7022E可以完成三相三线或者三相四线模式下的电能质量测量、有效值测量、有功计算、无功计算、视在计算、硬件端口检测、片上温度检测、能量脉冲输出、ADC采样数据缓冲以及同步采样数据缓冲等功能。MCU模块采用STM32F103ZE芯片具有丰富的片上资源,可实现电力数据的大规模传输、处理与存储。系统采用GPRS通信,实现了造价低、传输效率快、准确性高的优点。系统软件流程设计简单、操作简便、易于推广。

系统设计克服传统电力数据采集的实时性差、传输效率低、存储受限、软件算法复杂的缺点,展示了一款实时性高、采集容量大、传输效率高、体积小、造价低的多功能电力数据采集系统,具有广阔的发展前景。

参考文献(References):

[1] 姚国珍,康 怡.基于DSP的电力数据采集平台的设计与研究[J].电子工程师,2004,30(4):72-74.

[2] 郑一维,李长俊.基于STM32电力数据采集系统的设计[J].国外电子测量技术,2011,30(6):72-74.

[3] 倪健华,谈恩民,姚普粮.基于ATT7022E与STM32多功能电力监测仪设计[J].国外电子测量技术,2015,34(5):48-51.

[4] 王克祥 ,李 悠, 王晓雪.基于ATT7022E的新型多功能网络电力仪表设计[J].数字通信世界2016(7):205.

[5] 段双明.基于ATT7022E的高精度三相电能计量仪软件设计[J].中小企业管理与科技(上旬刊),2015(12):278.

[6] 张倚侨, 李 宏.基于ATT7022E的无功补偿控制器电参数测量模块设计[J].工业控制计算机 , 2015 (1) :137-138.

[7] 王晓愚.基于ATT7022D和DSP的电力谐波分析系统设计[J].山东科技大学学报, 2013 (11) :11-13.

[8] 贺静丹,滕召胜.单相多功能电能表设计[J].电子测量与仪器学报,2011,25(1):89-95.

[9] 舒华英,胡一闻.移动互联网技术及应用[M].北京:人民邮电出版社,2001.

[10] 韩斌杰.GPRS原理及其网络优化[M].北京,机械工业出版社,2003.

[11] 意法半导体(中国)投资有限公.STM32F10×××参考手册_V10_CN[OB/OL]. 10版.(2010-01-10)[2017-03-20].http://www.doc88.com/p-67949134973.html

[12] 杜运福.基于STM32与ATT7022E的用电智能采集模块设计[D].苏州:苏州大学,2012.

[13] 李梦婷.基于ATT7022C的三相智能电表的设计[D].青岛:青岛理工大学,2011.

[14] 陈文荣.基于GPRS的仪表数据采集与监控系统[D].杭州:浙江大学,2005.

[15] 韦正丛.基于GPRS通信的三相智能电表的设计[D].南宁:广西师范大学,2012.

猜你喜欢
寄存器三相计量
STM32和51单片机寄存器映射原理异同分析
三相异步电动机保护电路在停车器控制系统中的应用
《化学分析计量》2020年第6期目次
Lite寄存器模型的设计与实现
关注日常 计量幸福
计量自动化在线损异常中的应用
三相PWM整流器解耦与非解耦控制的对比
基于因子分析的人力资本计量研究
基于DSP和FFT的三相无功功率测量
基于新型开关表的DPC在三相光伏并网中的研究