基于STM32的新型電力數(shù)據(jù)采集系統(tǒng)的設(shè)計與實現(xiàn)
引言
傳統(tǒng)的電力數(shù)據(jù)采集系統(tǒng)受限于有限的存儲空間和通信接口,存在精度不高、實時性差、采集信息量小等缺點,已無法滿足實際的電力系統(tǒng)調(diào)度與管理需要,本文提出的基于STM32的新型電力數(shù)據(jù)采集器充分利用了STM32豐富的片上資源,大大節(jié)約了硬件投資,利用STM32具有快速采樣的高性能ADC、先進(jìn)的電源及時鐘管理、雙看門狗等功能,從而大大增強了系統(tǒng)的實時性與可靠性,精度顯著提高,同時功耗大為降低。
1、總體設(shè)計方案本系統(tǒng)由模擬量與開關(guān)量采集模塊、通訊模塊以及上位機人機交互模塊組成,系統(tǒng)框圖如圖1所示。首先電壓、電流等模擬信號經(jīng)信號調(diào)理電路調(diào)理后,經(jīng)模數(shù)轉(zhuǎn)換器ADC轉(zhuǎn)換為數(shù)字信號,再由STM32進(jìn)行數(shù)據(jù)處理;開關(guān)量信號則通過I/O口輸入,STM32通過中斷或查詢方式進(jìn)行讀取。電力數(shù)據(jù)經(jīng)采集處理后,由液晶屏進(jìn)行顯示,同時進(jìn)行儲存以便對歷史數(shù)據(jù)進(jìn)行查詢。為了使數(shù)據(jù)顯示更加直觀以及遠(yuǎn)程監(jiān)控,通過RS485與上位機通信。
圖1 系統(tǒng)原理
2、系統(tǒng)硬件設(shè)計2.1、STM32片上資源STM32F103ZE12位ADC為逐次逼近型模數(shù)轉(zhuǎn)換器,各通道的轉(zhuǎn)換可以單次、連續(xù)、掃描或間斷模式執(zhí)行,轉(zhuǎn)換結(jié)果以左對齊或右對齊方式存儲在16位數(shù)據(jù)寄存器中。通道采樣時間可編程,總轉(zhuǎn)化時間可縮減到1μs,此外,多種轉(zhuǎn)換模式供選擇,支持DMA數(shù)據(jù)傳輸。本系統(tǒng)采用定時器觸發(fā)的同步注入模式,能夠?qū)Χ嗦沸盘栠M(jìn)行同步采樣。
STM32F103ZE具有5個USART串行通信接口,內(nèi)置分?jǐn)?shù)波特率發(fā)生器,發(fā)送與接收共用可編程波特率,最高達(dá)4.5Mbit/s,數(shù)據(jù)字的長度、停止位均可設(shè)置。
此外,靈活的靜態(tài)存儲器控制器FSMC能夠通過同步或異步存儲器與16位PC卡接口相連,便于外擴存儲器和液晶顯示屏。
2.2、數(shù)據(jù)采集模塊設(shè)計數(shù)據(jù)采集包括對于模擬量與開關(guān)量的采集兩部分。
小編推薦:
1)模擬量數(shù)據(jù)采集
由于電力數(shù)據(jù)采集信號為高電壓信號和大電流信號,因此,首先要將其調(diào)理為滿足STM32F103ZEADC輸入范圍的電壓信號,以便進(jìn)入ADC轉(zhuǎn)換為數(shù)字量。各相電流信號經(jīng)電流互感器和電流變送器,各相電壓信號則通過電壓互感器和電壓變送器變換為低電壓信號,輸入到STM32的ADC模擬輸入通道,其幅值范圍為0~3.3V
2)開關(guān)量數(shù)據(jù)采集
STM32F103ZE的I/O口都可以配置為開關(guān)量輸入端口,并且通用的I/O可以配置到16個外部中斷線上。開關(guān)量輸入電路如圖2所示。開關(guān)量信號由IN端口輸入,電容C與電阻R構(gòu)成一階低通濾波器濾除高頻噪聲,減小信號的毛刺,采用光耦合器TLP521實現(xiàn)現(xiàn)場開關(guān)量與STM32間的電氣隔離,提高電絕緣和抗干擾能力。
圖2 開關(guān)量輸入電路
2.3、數(shù)據(jù)存儲與顯示模塊設(shè)計為了實現(xiàn)電力數(shù)據(jù)采集歷史數(shù)據(jù)的查詢,系統(tǒng)擴展了512MBit的NANDFLASH,選用了ST公司的NAND512-A芯片,每頁有512+16個字節(jié),每塊有16K+512個字節(jié),順序存取時間為50ns,頁編程時間為200μs。STM32的靜態(tài)存儲器控制器FSMC可以把外部存儲器劃分為固定大小為256M字節(jié)的4個存儲塊,其中存儲塊2和3可用于訪問NANDFLASH設(shè)備,本電力數(shù)據(jù)采集系統(tǒng)利用FSMC的存儲塊2連接芯片NAND512-A。
系統(tǒng)采用5.6英寸的彩色液晶顯示器實現(xiàn)本地實時監(jiān)控,并提供良好的人機交互功能。利用STM32F103ZE的FSMC模塊控制液晶顯示器,即將液晶作為外部存儲設(shè)備來使用,配置好讀寫及控制信號的時序,指定指針即可實現(xiàn)對液晶的讀寫訪問。利用這種方式,不僅簡化了對液晶的操作,只需指定讀寫數(shù)據(jù)指針方可完成操作,而且提高了訪問速度,同時,有效避免了用端口模擬時序訪問液晶產(chǎn)生的“拉幕”現(xiàn)象。
2.4、RS485通信模塊設(shè)計系統(tǒng)采用MODBUS協(xié)議采用RS485通信方式,進(jìn)行電力采集數(shù)據(jù)的遠(yuǎn)距離、高速傳輸。本系統(tǒng)選用了最高傳輸速率可達(dá)500Kbps的隔離型RS485通信芯片ADM2483,設(shè)計電路如圖3所示。該芯片采用限擺率驅(qū)動器,較低擺率降低了不恰當(dāng)?shù)慕K端匹配和接頭產(chǎn)生的誤碼。ADM2483接收輸入具有真正的失效保護(hù)功能,驅(qū)動器還具有短路電流限制,并可以通過熱關(guān)斷電路將驅(qū)動器輸出置為高阻狀態(tài),防止過度的功率損耗。
圖3 RS485通信電路
3、系統(tǒng)軟件設(shè)計本系統(tǒng)設(shè)計中,采用英蓓特公司和ARM公司最近聯(lián)合推出的高效ARM開發(fā)環(huán)境RealviewMDK[10]為開發(fā)平臺。應(yīng)用程序包括主程序、數(shù)據(jù)采集及處理程序、串行通信程序3個主要部分。主程序主要負(fù)責(zé)對于系統(tǒng)時鐘、GPIO口、嵌套中斷的配置以及定時器、ADC和串行通訊模塊的初始化。
電壓有效值計算式如下:
式中:U為電壓有效值,n為每周期采樣點數(shù),uk為第k點采樣電壓值。
電流有效值計算式為:
式中:I為電流有效值,n為每周期采樣點數(shù),ik為電流采樣值。
當(dāng)A/D轉(zhuǎn)換的數(shù)據(jù)數(shù)據(jù)量達(dá)到512個字節(jié)后,進(jìn)行一次存儲,將數(shù)據(jù)存入NANDFLASH中,以便實現(xiàn)歷史數(shù)據(jù)查詢。同時,通過RS485通信STM32將存儲的數(shù)據(jù)發(fā)送到上外機,通信流程圖如圖4所示。
圖4 通信流程
4、實驗結(jié)果與分析A、B、C三相分別接到市電220V,利用25W、40W、50W的燈泡作為三相負(fù)載,由本電力數(shù)據(jù)采集系統(tǒng)測得數(shù)據(jù)如表1所示。
表1實驗結(jié)果
實驗數(shù)據(jù)表明,本系統(tǒng)設(shè)計合理,運行可靠,數(shù)據(jù)測量準(zhǔn)確、精度高且實時性較好,與傳統(tǒng)電力數(shù)據(jù)采集器相比具有顯著優(yōu)點。
5、結(jié)論本文介紹的電力數(shù)據(jù)采集系統(tǒng)采用ST公司的ARM芯片STM32F103ZE,芯片包含豐富的功能模塊,系統(tǒng)無需外擴芯片即可實現(xiàn)A/D轉(zhuǎn)換、數(shù)據(jù)通信等功能,大大簡化了硬件設(shè)計,節(jié)約了投資。靈活的靜態(tài)存儲器控制器FSMC便于系統(tǒng)擴展存儲器以及連接液晶顯示屏。本系統(tǒng)具有功耗低、可靠性高等優(yōu)點,采用MODBUS協(xié)議通過RS485與上位機實時通信,傳輸數(shù)據(jù)的實時性與可靠性顯著提高。隨著電力系統(tǒng)的發(fā)展,這種基于STM32的電力數(shù)據(jù)采集系統(tǒng)將有更高的應(yīng)用價值和廣闊的市場前景。