樓嘉宇 馬琪
摘 要: 介紹一個由數(shù)據(jù)采集終端和數(shù)據(jù)處理主機組成的遠(yuǎn)程電網(wǎng)電流數(shù)據(jù)采集系統(tǒng)設(shè)計,采集終端對電網(wǎng)電流進(jìn)行實時數(shù)據(jù)采集,通過GPRS/互聯(lián)網(wǎng)發(fā)送至云端的數(shù)據(jù)處理主機,數(shù)據(jù)處理主機對數(shù)據(jù)接收及處理。數(shù)據(jù)采集終端由STM32完成對A/D采集和GPRS數(shù)據(jù)發(fā)送的控制。
關(guān)鍵詞: 電網(wǎng)電流數(shù)據(jù)采集; 互聯(lián)網(wǎng); 數(shù)據(jù)處理; 數(shù)據(jù)采集
中圖分類號: TN99?34 文獻(xiàn)標(biāo)識碼: 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 引 言
隨著計算機與集成電路的發(fā)展,遠(yuǎn)程數(shù)據(jù)采集向著遠(yuǎn)距離與智能化的方向發(fā)展,遠(yuǎn)程采集數(shù)據(jù)技術(shù)在國內(nèi)外得到了很多應(yīng)用,尤其在國外有著很多的研究成果,但由于工業(yè)需求不同,導(dǎo)致數(shù)據(jù)采集技術(shù)與形式有著眾多的方向,許多技術(shù)相對單一[1]。針對電網(wǎng)信號更精確的監(jiān)控需求,需要對電網(wǎng)波形進(jìn)行實時的采集,并傳輸?shù)皆贫说臄?shù)據(jù)處理主機上進(jìn)行數(shù)據(jù)儲存和分析?;谶@種需求,本文設(shè)計了一個由數(shù)據(jù)采集終端和數(shù)據(jù)處理主機組成的遠(yuǎn)程電網(wǎng)電流采集系統(tǒng),數(shù)據(jù)采集終端以STM32芯片控制A/D芯片進(jìn)行電網(wǎng)電流數(shù)據(jù)采集,通過GPRS發(fā)送數(shù)據(jù)。數(shù)據(jù)處理主機接收數(shù)據(jù),也可以對數(shù)據(jù)采集終端進(jìn)行時間校準(zhǔn)、重啟以及改變觸發(fā)條件等操作[2]。
1 系統(tǒng)結(jié)構(gòu)
如圖1所示,遠(yuǎn)程采集系統(tǒng)在功能上包括數(shù)據(jù)采集、數(shù)據(jù)傳輸和數(shù)據(jù)處理,在結(jié)構(gòu)上則由數(shù)據(jù)采集終端來完成數(shù)據(jù)采集和數(shù)據(jù)傳輸,由數(shù)據(jù)處理主機完成數(shù)據(jù)處理。數(shù)據(jù)采集終端由STM32控制芯片、ADC、時鐘芯片、GPRS模塊、電流互感器等組成,將市電通過電流互感器接入電路中,經(jīng)ADC采集后將數(shù)據(jù)儲存在控制芯片的內(nèi)存中,時鐘芯片用于獲取數(shù)據(jù)采集時間,最后由GPRS模塊通過互聯(lián)網(wǎng)把數(shù)據(jù)傳輸?shù)綌?shù)據(jù)處理主機。數(shù)據(jù)的內(nèi)容包括數(shù)據(jù)采集觸發(fā)時間、市電電壓初相位以及經(jīng)過A/D轉(zhuǎn)換后的市電電流采樣數(shù)據(jù)。數(shù)據(jù)處理主機用于數(shù)據(jù)的接收、儲存以及電流電壓相位差的計算。
2 硬件設(shè)計
數(shù)據(jù)采集終端的硬件電路如圖2所示,STM32控制芯片選用STM32F103,ADC芯片選用MAX1110,時鐘芯片選用RX8025,GPRS模塊選用M590。市電電流通過電流互感器接入,經(jīng)過信號放大電路放大后接入ADC芯片采樣,并將采樣數(shù)據(jù)傳輸至主控芯片儲存。電壓處理電路將接入的正弦波電壓轉(zhuǎn)換成方波信號輸入至主控芯片。供電電路分別給主控芯片、ADC模塊、RTC時鐘模塊、GPRS通信模塊、SD卡儲存模塊供以不同的直流電壓。
STM32控制芯片通過對GPIO口的PB6、PB7引腳設(shè)置高低電平完成對時鐘芯片的初始化以及采樣觸發(fā)時間的讀取,通過對GPIO口PA4、PA5引腳設(shè)置高低電平以及發(fā)送控制量實現(xiàn)對ADC芯片的采樣控制,通過PB11、PA3、PA2控制GPRS模塊的開關(guān)機和數(shù)據(jù)收發(fā),通過PB5、PD2、PC8~PC12引腳控制SD卡的初始化和數(shù)據(jù)儲存[3]。
3 軟件設(shè)計
3.1 數(shù)據(jù)采集終端軟件設(shè)計
數(shù)據(jù)采集終端的軟件流程如圖3所示。程序的整體采用循環(huán)機制,程序進(jìn)行相關(guān)的初始化設(shè)置后進(jìn)入循環(huán)程序,同時開啟中斷服務(wù)以及看門狗程序。程序在循環(huán)內(nèi)運行時,如果有A/D定時器中斷、DMA中斷及SD卡拔出中斷產(chǎn)生時,優(yōu)先處理中斷服務(wù),同時程序循環(huán)運行過程不停進(jìn)行“喂狗”(即初始化看門狗程序的定時時間),當(dāng)發(fā)生意外,程序不在循環(huán)內(nèi)運行時,看門狗程序可以使STM32重新啟動,從而保證了系統(tǒng)的可靠性[4]。
(1) 電流數(shù)據(jù)采樣
程序初始化時通過設(shè)定定時器中斷時間設(shè)置了采樣率。STM3通過定時器T3中斷服務(wù)函數(shù)啟動ADC芯片采樣電流信號,采樣數(shù)據(jù)通過SPI接口采用DMA傳輸方式傳輸給STM32。DMA半滿中斷服務(wù)函數(shù)則將數(shù)據(jù)寫入STM32內(nèi)存中的取名為AD_Buffer的數(shù)組中。AD_Buffer數(shù)組可存放5×20個周波的電流數(shù)據(jù),每個周波包括有128個電流采樣點數(shù)據(jù)(采樣點數(shù)為[2N,]便于FFT變換)。
(2) 電壓初相位數(shù)據(jù)獲得
市電電壓經(jīng)過電路轉(zhuǎn)換輸入到STM32的信號為矩形波,對應(yīng)STM32輸入端口的外部中斷模式設(shè)置為下降沿中斷,根據(jù)從開始采樣到下降沿中斷之間的時間,可計算出電壓的初相位。
(3) SD卡初始化與數(shù)據(jù)存儲
程序循環(huán)中首先進(jìn)行SD卡初始化,初始化完成后其狀態(tài)為“TRUE”,當(dāng)程序運行過程中若SD卡被拔出時,其中斷服務(wù)函數(shù)會將其狀態(tài)改為“FALSE”。當(dāng)其狀態(tài)為TRUE時,說明初始化完成,自動跳過初始化程序段;若被改為“FALSE”狀態(tài),程序運行到這個地方時將不再跳過,將重新檢測和初始化。當(dāng)數(shù)據(jù)發(fā)送成功后,程序?qū)l(fā)送成功的數(shù)據(jù)儲存到SD卡,包括觸發(fā)時間,電壓初相位和電流采樣數(shù)據(jù),用于進(jìn)行數(shù)據(jù)備份。
(4) GPRS上線及數(shù)據(jù)發(fā)送
數(shù)據(jù)在發(fā)送之前需要保證GPRS的在線狀態(tài)。在系統(tǒng)初始化中啟動GPRS模塊,在循環(huán)中則完成GPRS在線注冊,采用TCP協(xié)議,先建立PPP連接,后建立TCP連接,并保持GPRS的在線狀態(tài)。因為長時間沒有數(shù)據(jù)發(fā)送或接收GPRS模塊連接會自動斷開,因此如果2 min內(nèi)沒有數(shù)據(jù)的傳輸則發(fā)送一個“心跳包”即一個字符“1”,以保證GPRS模塊不會自動斷開;當(dāng)采樣數(shù)據(jù)的數(shù)量滿足發(fā)送條件時,STM32將數(shù)據(jù)以AT指令格式通過UART傳輸至GPRS模塊,一個AT指令發(fā)送的數(shù)據(jù)為一個包,GPRS模塊M590每包不超過1 024 B,每包數(shù)據(jù)包括“采集終端ID+采集觸發(fā)時間+電壓初相位+電流采樣數(shù)據(jù)”[5]。
發(fā)送數(shù)據(jù)過程中,GPRS模塊不斷通過UART返回“返回值”至STM32內(nèi)開辟的串口緩沖區(qū),而STM32通過緩沖區(qū)的“返回值”判斷是否發(fā)送成功,是否需要重發(fā)。
3.2 數(shù)據(jù)處理主機軟件設(shè)計
數(shù)據(jù)處理主機軟件主要實現(xiàn)以下功能:
(1) 配置通信端口號:端口號必須與數(shù)據(jù)采集終端發(fā)送鏈接請求的 ID號一致。
(2) 對數(shù)據(jù)采集終端進(jìn)行時間校正:通過TCP通道把當(dāng)前時間信息發(fā)送至數(shù)據(jù)采集終端,從而使數(shù)據(jù)采集終端獲得當(dāng)前的時間信息(年月日時分秒)。
(3) 數(shù)據(jù)的接收與處理:因為有心跳包的存在,需要對收到的數(shù)據(jù)進(jìn)行判斷,心跳包不寫入數(shù)據(jù)文件,只將有效數(shù)據(jù)寫入數(shù)據(jù)文件。
(4) 電流電壓相位差的計算,對采樣電流數(shù)據(jù)進(jìn)行快速傅里葉變換,通過基波分量可求得電流初相位,而數(shù)據(jù)采集終端傳來的數(shù)據(jù)中已包含了電壓初相位,電流初相位與電壓初相位之差得出相位差。
接收數(shù)據(jù)過程中,必須開辟足夠大的緩存區(qū),否則容易出現(xiàn)丟包的現(xiàn)象。
4 結(jié) 語
本文設(shè)計了一個基于GPRS的遠(yuǎn)程電網(wǎng)電流數(shù)據(jù)采集系統(tǒng),系統(tǒng)包括數(shù)據(jù)采集終端和數(shù)據(jù)處理主機兩部分。數(shù)據(jù)采集終端通過互感器實時采樣供電電網(wǎng)電流,將其轉(zhuǎn)換成數(shù)字信號,經(jīng)過適當(dāng)?shù)臄?shù)據(jù)處理形成傳輸數(shù)據(jù)包格式,然后將數(shù)據(jù)包通過GPRS傳送給網(wǎng)絡(luò)端的數(shù)據(jù)處理主機,并將數(shù)據(jù)處理主機發(fā)送的控制命令傳輸給數(shù)據(jù)采集模塊。數(shù)據(jù)處理主機將收集到的數(shù)據(jù)信息存儲于數(shù)據(jù)文件中以便用戶進(jìn)行波形顯示、數(shù)據(jù)查詢和分析。
參考文獻(xiàn)
[1] 劉博.基于GPRS的遠(yuǎn)程數(shù)據(jù)采集傳輸系統(tǒng)設(shè)計[D].大連:大連海事大學(xué),2008.
[2] 張曉剛.仿真駕駛模擬器數(shù)據(jù)采集系統(tǒng)設(shè)計[J].科技信息,2010,14(3):221?222.
[3] 李寧.基于MDK的STM32處理器開發(fā)應(yīng)用[M].北京:北京航天航空大學(xué)出版社,2008.
[4] 王永虹,徐煒,郝立平.STM32系列ARM Cortex?M3微控制器原理與實踐[M].北京:北京航空航天大學(xué)出版社,2008.
[5] BENTHAM Jeremy. TCP/IP lean web servers for embedded systems [J]. CMP Books, 2003, 20(4): 134?140.
[6] 李秋雙,原明亭.基于STM32芯片的電能質(zhì)量在線檢測裝置的設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2012,35(20):180?182.