王文慶, 姚 曦
(1.西安郵電大學 自動化學院,陜西 西安 710061;2.西安郵電大學 通信與信息工程學院,陜西 西安 710061)
?
基于ARM+WiFi的能耗數(shù)據(jù)采集器設計*
王文慶1, 姚曦2
(1.西安郵電大學 自動化學院,陜西 西安 710061;2.西安郵電大學 通信與信息工程學院,陜西 西安 710061)
針對大型公共建筑能耗實時監(jiān)控的需求,設計了一種基于LINUX操作系統(tǒng)的能耗數(shù)據(jù)采集器。該采集器以S5PV210微處理器為核心,通過RS—485串口自動采集智能電表終端數(shù)據(jù),將采集到的數(shù)據(jù)通過WiFi傳送給上位機。重點設計了采集器的硬件電路,開發(fā)了數(shù)據(jù)采集與傳輸驅動程序,實現(xiàn)數(shù)據(jù)的采集、存儲和傳輸功能,設計了Qt圖形用戶界面應用程序,實現(xiàn)人機交互。在實驗室條件下,對XY194E系列智能電表的電壓、電流等電能參數(shù)進行測試,測試結果表明,該采集器能夠實時可靠地完成電量的采集。
ARM; 數(shù)據(jù)采集; 串口通信; WiFi; Qt
隨著我國經(jīng)濟快速發(fā)展,建筑高能耗問題日益嚴重,要求在全國范圍內逐步建立各級能耗監(jiān)測平臺,最終建立起全國聯(lián)網(wǎng)的能耗監(jiān)測平臺[1]。只有準確提供我國建筑物能耗的具體數(shù)據(jù),才能有效地控制建筑能耗。穩(wěn)定可靠的能耗數(shù)據(jù)采集器是獲得準確數(shù)據(jù)的保證,而解決能耗數(shù)據(jù)的采集和傳輸問題是構建能耗數(shù)據(jù)采集器的關鍵技術[2]。文獻[3~5]提出的數(shù)據(jù)采集器是以單片機作為主控制器,其缺點在于數(shù)據(jù)采集器的處理數(shù)據(jù)速率低,穩(wěn)定性和精度不高,只能應用在小數(shù)據(jù)量的數(shù)據(jù)采集,裸機開發(fā),功能擴展性不好,不具備可視化的窗口,不支持操作系統(tǒng)。文獻[6,7]提出的數(shù)據(jù)采集器數(shù)據(jù)上傳是采用有線方式,有線通信布線復雜、組網(wǎng)不便、傳輸距離短等。
本文設計了一種基于ARM技術和WiFi技術的能耗數(shù)據(jù)采集器,通過RS—485串口通信自動采集智能電表終端電量數(shù)據(jù),然后通過WiFi將采集到的數(shù)據(jù)傳送給上位機,完成電量實時采集和可靠傳輸。
1.1數(shù)據(jù)采集原理
本文以分項能耗電量數(shù)據(jù)采集為例進行設計。智能電表和數(shù)據(jù)采集器之間均有標準的串行異步半雙工RS—485接口,采用標準MODBUS—RTU通信協(xié)議進行采集。MODBUS通信協(xié)議信息幀結構由地址碼、功能碼、數(shù)據(jù)區(qū)、錯誤校驗構成,主從查詢回應方式如圖1所示。
圖1 主從查詢回應方式Fig 1 Master slave query response mode
智能電表為從機,采集器為主機,主機發(fā)送請求,從機應答,從而實現(xiàn)電量數(shù)據(jù)的采集[8]。MODBUS-RTU傳輸模式的格式為8位二進制編碼系統(tǒng),一個數(shù)據(jù)幀格式包含1個起始位,8個數(shù)據(jù)位,1個停止位,MODBUS-RTU消息幀格式如表1所示。
表1 MODBUS—RTU數(shù)據(jù)幀格式
1.2系統(tǒng)總體結構
系統(tǒng)總體結構主要包括基表通信單元、數(shù)據(jù)存儲單元、數(shù)據(jù)遠傳單元和LCD液晶顯示人機交互單元。其中,基表通信單元通過RS—485完成對智能電表電量采集,采集到的電表數(shù)據(jù)傳輸給控制核心S5PV210;數(shù)據(jù)存儲單元通過FLASH對采集來的電量數(shù)據(jù)進行存儲;數(shù)據(jù)傳輸單元將采集到的電量數(shù)據(jù)通過WiFi模塊發(fā)送出去;人機交互單元利用QT—CREATOR軟件進行界面開發(fā),并通過LCD液晶觸屏實現(xiàn)底層數(shù)據(jù)的界面顯示。系統(tǒng)總體結構框圖如圖2所示。
圖2 系統(tǒng)總體設計Fig 2 Overall design of system
2.1主控制器選擇
ARM控制器底板選用兩路USB接口,一路USB_OTG下載接口,用于下載燒寫啟動程序,另一路USB_HOST接口,用于驅動WiFi無線網(wǎng)卡與上位機通信。兩路串口,一路用于下載燒寫LINUX操作系統(tǒng)內核和映像文件,另一路通過MAX3485復用成RS—485串口,用于數(shù)據(jù)采集器采集智能電表電量數(shù)據(jù)。
2.2串口通信電路設計
數(shù)據(jù)采集器通過RS—485串口進行采集智能電表數(shù)據(jù)。本系統(tǒng)中采用復用串口2以半雙工方式進行數(shù)據(jù)傳輸,通過MAX3485芯片來做為電平轉接,利用MAX3485作為RS—485接口的低功率差分信號收發(fā)器,將TTL電平轉換為差分接口信號形式。RS—485串口通信硬件電路圖如圖3所示。
圖3 RS—485串口通信電路Fig 3 RS—485 serial communication circuit
2.3WiFi模塊電路設計
數(shù)據(jù)采集器采集的電量數(shù)據(jù)通過WiFi無線模塊傳輸至上位機。本系統(tǒng)無線接入模塊選用的是TP-LINK公司生產(chǎn)的TL—WN725N微型無線USB網(wǎng)卡,傳輸速度可達150 Mbps,使用11N無線接入技術,支持多種加密方式。此處需要對USB接口進行設計,USB接口電路采用FE1.1S作為控制芯片,通過ARM控制引腳XnhDP和引腳XnhDN進行數(shù)據(jù)讀寫。
3.1嵌入式平臺搭建
開發(fā)軟件的LINUX系統(tǒng)為UBUNTU 14.04,而軟件最終是要在嵌入式目標機上運行,因此,就要求搭建一個適合系統(tǒng)運行的交叉編譯環(huán)境,使編譯好的程序能夠在ARM平臺上運行,嵌入式平臺的搭建主要包括交叉編譯環(huán)境、UBOOT、嵌入式內核以及文件系統(tǒng)的裁剪和移植等。交叉編輯器的版本為arm-linux-gcc4.4.6,嵌入式內核版本選擇的是linux-3.0.8,內核根據(jù)S5PV210硬件配置在現(xiàn)成的內核基礎上做增減和修改。根文件系統(tǒng)用來存放系統(tǒng)運行時需要的各種配置文件、庫文件以及相關工具軟件,文件系統(tǒng)選擇的是busybox-1.20.0,通過NFS掛載測試。
3.2WiFi無線網(wǎng)卡驅動移植
LINUX內核本身支持無線網(wǎng)絡通信,但需要配置之后才能使用。配置內核使其支持USB 2.0協(xié)議、IEEE 802.11協(xié)議、TCP/IP協(xié)議等。移植無線網(wǎng)卡驅動分為安裝驅動、設置WiFi做路由器以及動態(tài)分配IP。
1)安裝驅動。在官方網(wǎng)站下載源碼驅動并解壓,編譯驅動程序,修改Makefile:
CONFIG_PLATFORM_I386_PC = y
ARCH:=arm
CROSS_COMPILE := arm-linux-
KVER:= 3.0.8
KSRC:=/opt/kernel
編譯執(zhí)行make,得到8188eu.ko,把8188eu.ko復制到開發(fā)板目錄,加載到內核,執(zhí)行cat /proc/net/wireless 查看對應網(wǎng)絡設置出現(xiàn):wlan0
2)設置WiFi做路由器。hostapd是一個開源軟件,它能夠使無線網(wǎng)卡切換到master模式模擬路由器功能,修改Makefile,make,得到可執(zhí)行程序:hostapd。配置2G網(wǎng)絡:熱點名稱、密碼、加密方式、頻段、使用協(xié)議等。設置主網(wǎng)卡ip:ifconfig wlan0 192.168.137.1,將可執(zhí)行程序和配置文件復制到開發(fā)板目錄,根據(jù)配置文件產(chǎn)生WiFi熱點。3)動態(tài)分配ip。修改Makefile,make,得到可執(zhí)行程序:dnsmasq,配置網(wǎng)卡的接口、域名、續(xù)訂時間等,將可執(zhí)行程序和配置文件復制到開發(fā)板目錄,根據(jù)配置文件給鏈接的客戶端自動分配IP。
3.3串口數(shù)據(jù)采集軟件設計
電量采集是通過RS—485串口與智能電表連接進行通信的,本文采用的是MODBUS-RTU通信協(xié)議。串口通信通過配置波特率為、數(shù)據(jù)位長度和奇偶校驗初始化串口,然后進行CRC校驗。串口數(shù)據(jù)采集流程如圖4所示。
圖4 串口數(shù)據(jù)采集流程圖Fig 4 Flow chart of serial data acquisition
部分程序如下:
char *dev = "/dev/ttySAC1";∥選擇需要打開的串口
fd = OpenDev(dev);∥打開串口
init_ttyS(fd,9600,8,1,’N’);∥串口初始化
rcv_lenth=RTU_ReadModbus(fd,0x01,0x0014,0x0003,rcv_buf);∥讀電表數(shù)據(jù)
3.4WiFi數(shù)據(jù)傳輸軟件設計
采集的電量數(shù)據(jù)通過WiFi模塊上傳給上位機,WiFi數(shù)據(jù)傳輸流程如圖5所示。
圖5 數(shù)據(jù)傳輸流程圖Fig 5 Flow chart of data transmission
部分程序如下:
fd=socket(AF_INET,SOCK_DGRAM,0)∥ 創(chuàng)建udp套接字socket
sendto(fd,send_buf,t,0,(struct sockaddr*)&serv_addr,sizeof(serv_addr))∥發(fā)送數(shù)據(jù)
3.5QT人機交互界面軟件設計
設計包括Qt開發(fā)環(huán)境搭建和Qt應用程序設計。
1)Qt開發(fā)環(huán)境搭建:移植QT需要tslib 觸摸屏校正程序的支持,移植tslib,把tslib安裝好的內容build-tslib拷貝到/opt/rootfs/home/build-tslib下,修改ts.conf的內容,設置環(huán)境變量profile,添加tslib的環(huán)境變量。解壓QT源碼,進行configure配置,編譯、安裝到/home/tarena/QT/build-qt下。
2)Qt應用程序設計:Qt采用信號與槽機制,信號和槽通過connect()函數(shù)連接。一個應用程序對應一個工程文件,工程文件為caijiqi.pro,程序的整體設計流程如圖6所示。
圖6 Qt應用界面流程圖Fig 6 Flow chart of Qt application interface
Qt應用界面如圖7所示。
圖7 Qt應用界面Fig 7 Application interface of Qt
登錄界面keyboard實現(xiàn)觸屏鍵盤,username輸入用戶名,password輸入密碼,點擊login登錄,點擊cancel取消登錄。主功能界面主要的信號為按鍵的click()信號,對應的槽函數(shù)實現(xiàn)電量數(shù)據(jù)實時查詢功能,中間空白窗口顯示數(shù)據(jù),實現(xiàn)人機交互。Qt應用程序在運行時調用QApplication構函數(shù)進行管理,主函數(shù)部分程序如下:
QApplication CaiJiQi(argc,argv);
CaiJiQi *caijiqi = new CaiJiQi();
caijiqi ->show();
return CaiJiQi.exec();
系統(tǒng)測試前需要把ubuntu系統(tǒng)的tftp服務器和nfs服務器搭建好,用來加載新內核和掛接網(wǎng)絡文件系統(tǒng)。系統(tǒng)測試借助于串口調試工具SecureCRT和網(wǎng)絡調試助手NetAssist。打開網(wǎng)絡調試助手,建立UDP連接,選擇十六進制接收,通過串口線把數(shù)據(jù)采集器與PC機連接,通過SecureCRT工具對系統(tǒng)的串口進行調試,將LCD 型數(shù)顯多功能智能電表通過RS485接口的A,B口分別與采集器的RS—485的A、B口相連,采集的電量數(shù)據(jù)通過無線WiFi的UDP通信在網(wǎng)絡調試助手中進行顯示。連接示意圖如圖8所示。
圖8 數(shù)據(jù)采集器與智能電表連接示意圖Fig 8 Connection between data acquisition device and intelligent electric meter
讀電壓發(fā)送指令:0x01 0x04 0x00 0x14 0x00 0x03 0xF0 0x0F,上位機實時顯示電壓測試結果如表2所示。
表2 上位機顯示讀電壓結果
讀電流發(fā)送指令:0x01 0x04 0x00 0x1A 0x00 0x03 0x91 0xCC,測試方法同電壓。
經(jīng)過多次實驗,上位機接收到的電量數(shù)據(jù)完全正確。其中每組數(shù)據(jù)的第1個字節(jié)是電表的地址0x01,第2個字節(jié)是返回的功能代碼0x04,第3個字節(jié)是返回的數(shù)據(jù)長度0x06,第4~9個字節(jié)是接收到的數(shù)據(jù),最后兩個字節(jié)是CRC校驗碼。測試結果表明,能耗數(shù)據(jù)采集器能夠實現(xiàn)對智能電表電量進行采集,并將數(shù)據(jù)存入存儲器,控制WiFi建立無線鏈路傳送到上位機進行顯示。
以S5PV210為主控制器,設計并實現(xiàn)了能耗數(shù)據(jù)采集器,該采集器能夠實現(xiàn)對電表電量的采集、存儲以及傳輸功能,并通過LCD觸屏顯示實現(xiàn)人機交互。與傳統(tǒng)的能耗數(shù)據(jù)采集器相比較,充分利用了嵌入式LINUX系統(tǒng)的開源特性以及無線網(wǎng)絡組網(wǎng)方便,低成本,實時性強,并且方便后續(xù)的功能擴展。隨著嵌入式技術的發(fā)展和WiFi的不斷普及,這種基于嵌入式和RS—485總線加WiFi的能耗數(shù)據(jù)采集器在工業(yè)中也有重要的意義,具有廣闊的應用前景。
[1]中華人民共和國建設部,中華人民共和國財政部.關于加強國家機關辦公建筑和大型公共建筑節(jié)能管理工作的實施意見[J].上海建材,2007(6):3-4.
[2]王文慶,景明智,亢紅波.礦井監(jiān)控系統(tǒng)串網(wǎng)接口轉換器設計[J].西安郵電大學學報,2014(4):57-62.
[3]馬青,童子權.基于單片機的數(shù)據(jù)采集與近距離無線傳輸系統(tǒng)[J].中國科技信息,2009(4):178-179.
[4]劉倩,沈曉東,吳剛,等.一種基于單片機的電網(wǎng)數(shù)據(jù)自動采集器[J].電工技術,2001(10):8.
[5]杜偉略.基于AVR單片機的數(shù)據(jù)采集器設計[J].無錫職業(yè)技術學院學報,2011,10(2):53-56.
[6]談宏華,陳康,涂坦,等.基于AT89C51的數(shù)據(jù)采集系統(tǒng)設計[J].機電一體化,2005,11(6):55-57.
[7]盧進軍.基于AT89C51的數(shù)據(jù)采集系統(tǒng)設計[J].河南科學,2014(8):1474-1477.
[8]劉暢,張永堅,李然然.公共建筑用電能耗的數(shù)據(jù)采集技術研究[J].單片機與嵌入式系統(tǒng)應用,2011,11(10):9-11.
[9]成潔,盧紫毅.Linux 窗口程序設計——Qt4精彩實例分析[M].北京:清華大學出版社,2008.
王文慶( 1964-) ,男,北京人,博士,教授,碩士生導師,主要從事智能信息處理等方面研究。
姚曦,通訊作者,E—mail:815799091@qq.com。
Design of data collecting device of energy consumption based on ARM and WiFi*
WANG Wen-qing1, YAO Xi2
(1.School of Automation,Xi’an University of Posts and Telecommunications,Xi’an 710061,China;2.School of Communication and Information Engineering,Xi’an University of Posts and Telecommunications,Xi’an 710061,China)
To meet requirements of energy consumption real-time monitoring in large-scale public buildings,a kind of data collecting system of energy consumption based on the Linux environment is designed.The system uses S5PV210 micro processor as core.Data of smart meter terminal are automatically collected by RS—485 serial and transmitted to upper PC via WiFi.Hardware circuit of collector is designed and data acquisition and transmission drive program is developed data acquisition,storage and transmission are realized.Qt application program is designed and human-computer interaction is realized.Take XY194E for example,several parameters such as voltage,current are tested.Test results show that the system can complete electricity data acquisition reliably and real-time.
ARM,data collection;serial communication;WiFi;Qt
2015—11—11
陜西省科技廳工業(yè)攻關計劃資助項目(2014K05—29);陜西省教育廳專項計劃資助項目(14JF028)
TP 274
A
1000—9787(2016)08—0115—04
DOI:10.13873/J.1000—9787(2016)08—0115—04