远程电网电流数据采集系统的设计
2015-03-31楼嘉宇马琪
楼嘉宇 马琪
摘 要: 介绍一个由数据采集终端和数据处理主机组成的远程电网电流数据采集系统设计,采集终端对电网电流进行实时数据采集,通过GPRS/互联网发送至云端的数据处理主机,数据处理主机对数据接收及处理。数据采集终端由STM32完成对A/D采集和GPRS数据发送的控制。
关键词: 电网电流数据采集; 互联网; 数据处理; 数据采集
中图分类号: TN99?34 文献标识码: A 文章编号: 1004?373X(2015)05?0017?02
Design of remote current data acquisition system for power grid
LOU Jia?yu, MA Qi
(Microelectronics CAD Institute, Hangzhou Dianzi University, Hangzhou 310018, China)
Abstract: The design of a power?grid′s remote current data acquisition system consisting of data acquisition terminal and data processing host is introduced in this paper. The data acquisition terminal executes real?time data acquisition of power?grid current and transmits the data to the data processing host through GPRS/ Internet. The data processing host receives and processes the data. The chip STM32 is used in the data acquisition terminal to control A/D acquisition and GPRS transmission.
Keyword: current data acquisition of power grid; Internet; data processing; data acquisition
0 引 言
随着计算机与集成电路的发展,远程数据采集向着远距离与智能化的方向发展,远程采集数据技术在国内外得到了很多应用,尤其在国外有着很多的研究成果,但由于工业需求不同,导致数据采集技术与形式有着众多的方向,许多技术相对单一[1]。针对电网信号更精确的监控需求,需要对电网波形进行实时的采集,并传输到云端的数据处理主机上进行数据储存和分析。基于这种需求,本文设计了一个由数据采集终端和数据处理主机组成的远程电网电流采集系统,数据采集终端以STM32芯片控制A/D芯片进行电网电流数据采集,通过GPRS发送数据。数据处理主机接收数据,也可以对数据采集终端进行时间校准、重启以及改变触发条件等操作[2]。
1 系统结构
如图1所示,远程采集系统在功能上包括数据采集、数据传输和数据处理,在结构上则由数据采集终端来完成数据采集和数据传输,由数据处理主机完成数据处理。数据采集终端由STM32控制芯片、ADC、时钟芯片、GPRS模块、电流互感器等组成,将市电通过电流互感器接入电路中,经ADC采集后将数据储存在控制芯片的内存中,时钟芯片用于获取数据采集时间,最后由GPRS模块通过互联网把数据传输到数据处理主机。数据的内容包括数据采集触发时间、市电电压初相位以及经过A/D转换后的市电电流采样数据。数据处理主机用于数据的接收、储存以及电流电压相位差的计算。
2 硬件设计
数据采集终端的硬件电路如图2所示,STM32控制芯片选用STM32F103,ADC芯片选用MAX1110,时钟芯片选用RX8025,GPRS模块选用M590。市电电流通过电流互感器接入,经过信号放大电路放大后接入ADC芯片采样,并将采样数据传输至主控芯片储存。电压处理电路将接入的正弦波电压转换成方波信号输入至主控芯片。供电电路分别给主控芯片、ADC模块、RTC时钟模块、GPRS通信模块、SD卡储存模块供以不同的直流电压。
STM32控制芯片通过对GPIO口的PB6、PB7引脚设置高低电平完成对时钟芯片的初始化以及采样触发时间的读取,通过对GPIO口PA4、PA5引脚设置高低电平以及发送控制量实现对ADC芯片的采样控制,通过PB11、PA3、PA2控制GPRS模块的开关机和数据收发,通过PB5、PD2、PC8~PC12引脚控制SD卡的初始化和数据储存[3]。
3 软件设计
3.1 数据采集终端软件设计
数据采集终端的软件流程如图3所示。程序的整体采用循环机制,程序进行相关的初始化设置后进入循环程序,同时开启中断服务以及看门狗程序。程序在循环内运行时,如果有A/D定时器中断、DMA中断及SD卡拔出中断产生时,优先处理中断服务,同时程序循环运行过程不停进行“喂狗”(即初始化看门狗程序的定时时间),当发生意外,程序不在循环内运行时,看门狗程序可以使STM32重新启动,从而保证了系统的可靠性[4]。
(1) 电流数据采样
程序初始化时通过设定定时器中断时间设置了采样率。STM3通过定时器T3中断服务函数启动ADC芯片采样电流信号,采样数据通过SPI接口采用DMA传输方式传输给STM32。DMA半满中断服务函数则将数据写入STM32内存中的取名为AD_Buffer的数组中。AD_Buffer数组可存放5×20个周波的电流数据,每个周波包括有128个电流采样点数据(采样点数为[2N,]便于FFT变换)。
(2) 电压初相位数据获得
市电电压经过电路转换输入到STM32的信号为矩形波,对应STM32输入端口的外部中断模式设置为下降沿中断,根据从开始采样到下降沿中断之间的时间,可计算出电压的初相位。
(3) SD卡初始化与数据存储
程序循环中首先进行SD卡初始化,初始化完成后其状态为“TRUE”,当程序运行过程中若SD卡被拔出时,其中断服务函数会将其状态改为“FALSE”。当其状态为TRUE时,说明初始化完成,自动跳过初始化程序段;若被改为“FALSE”状态,程序运行到这个地方时将不再跳过,将重新检测和初始化。当数据发送成功后,程序将发送成功的数据储存到SD卡,包括触发时间,电压初相位和电流采样数据,用于进行数据备份。
(4) GPRS上线及数据发送
数据在发送之前需要保证GPRS的在线状态。在系统初始化中启动GPRS模块,在循环中则完成GPRS在线注册,采用TCP协议,先建立PPP连接,后建立TCP连接,并保持GPRS的在线状态。因为长时间没有数据发送或接收GPRS模块连接会自动断开,因此如果2 min内没有数据的传输则发送一个“心跳包”即一个字符“1”,以保证GPRS模块不会自动断开;当采样数据的数量满足发送条件时,STM32将数据以AT指令格式通过UART传输至GPRS模块,一个AT指令发送的数据为一个包,GPRS模块M590每包不超过1 024 B,每包数据包括“采集终端ID+采集触发时间+电压初相位+电流采样数据”[5]。
发送数据过程中,GPRS模块不断通过UART返回“返回值”至STM32内开辟的串口缓冲区,而STM32通过缓冲区的“返回值”判断是否发送成功,是否需要重发。
3.2 数据处理主机软件设计
数据处理主机软件主要实现以下功能:
(1) 配置通信端口号:端口号必须与数据采集终端发送链接请求的 ID号一致。
(2) 对数据采集终端进行时间校正:通过TCP通道把当前时间信息发送至数据采集终端,从而使数据采集终端获得当前的时间信息(年月日时分秒)。
(3) 数据的接收与处理:因为有心跳包的存在,需要对收到的数据进行判断,心跳包不写入数据文件,只将有效数据写入数据文件。
(4) 电流电压相位差的计算,对采样电流数据进行快速傅里叶变换,通过基波分量可求得电流初相位,而数据采集终端传来的数据中已包含了电压初相位,电流初相位与电压初相位之差得出相位差。
接收数据过程中,必须开辟足够大的缓存区,否则容易出现丢包的现象。
4 结 语
本文设计了一个基于GPRS的远程电网电流数据采集系统,系统包括数据采集终端和数据处理主机两部分。数据采集终端通过互感器实时采样供电电网电流,将其转换成数字信号,经过适当的数据处理形成传输数据包格式,然后将数据包通过GPRS传送给网络端的数据处理主机,并将数据处理主机发送的控制命令传输给数据采集模块。数据处理主机将收集到的数据信息存储于数据文件中以便用户进行波形显示、数据查询和分析。
参考文献
[1] 刘博.基于GPRS的远程数据采集传输系统设计[D].大连:大连海事大学,2008.
[2] 张晓刚.仿真驾驶模拟器数据采集系统设计[J].科技信息,2010,14(3):221?222.
[3] 李宁.基于MDK的STM32处理器开发应用[M].北京:北京航天航空大学出版社,2008.
[4] 王永虹,徐炜,郝立平.STM32系列ARM Cortex?M3微控制器原理与实践[M].北京:北京航空航天大学出版社,2008.
[5] BENTHAM Jeremy. TCP/IP lean web servers for embedded systems [J]. CMP Books, 2003, 20(4): 134?140.
[6] 李秋双,原明亭.基于STM32芯片的电能质量在线检测装置的设计与实现[J].现代电子技术,2012,35(20):180?182.