趙翊杰,董增壽,楊 勇
(太原科技大學(xué) 電子信息工程學(xué)院,太原 030024)
塔式起重機(jī)(簡(jiǎn)稱塔機(jī))是建筑工地中必不可少的設(shè)備,憑借其巨大的優(yōu)越性,極大的推動(dòng)了基礎(chǔ)設(shè)施的建設(shè)以及社會(huì)的發(fā)展。然而塔機(jī)屬于高空作業(yè)機(jī)械,監(jiān)控不當(dāng)或者操作不規(guī)范都將造成嚴(yán)重的后果。據(jù)不完全統(tǒng)計(jì),在所有機(jī)械設(shè)備故障中,起重機(jī)械故障占比高達(dá)20%[1],是特種設(shè)備中事故發(fā)生率最高的一種,每年因塔機(jī)事故造成了巨大的財(cái)產(chǎn)損失以及人員傷亡[2],因此,加強(qiáng)對(duì)塔機(jī)工況數(shù)據(jù)的實(shí)時(shí)采集,對(duì)實(shí)現(xiàn)安全監(jiān)控,減少事故的發(fā)生有著重大的意義。
目前,有多種方法可以實(shí)現(xiàn)對(duì)塔機(jī)起重高度的采集,包括采用數(shù)據(jù)總線的方式進(jìn)行數(shù)據(jù)傳輸[3],但布線復(fù)雜;采用GPRS進(jìn)行通信[4],但功耗和成本高;利用單片機(jī)進(jìn)行數(shù)據(jù)處理[5],當(dāng)數(shù)據(jù)量很大時(shí)會(huì)出現(xiàn)延時(shí);本文在已有研究的基礎(chǔ)上,結(jié)合ARM-STM32平臺(tái),設(shè)計(jì)了基于Zigbee無線傳感器網(wǎng)絡(luò)的監(jiān)控方案,即由安裝在塔機(jī)起重部位的BMP085傳感器對(duì)起升高度進(jìn)行實(shí)時(shí)的采集,然后由單片機(jī)進(jìn)行數(shù)據(jù)處理,最后通過Zigbee網(wǎng)絡(luò)將數(shù)據(jù)發(fā)送至協(xié)調(diào)器端,在ARM終端進(jìn)行存儲(chǔ)和顯示。該系統(tǒng)具有實(shí)時(shí)監(jiān)控、數(shù)據(jù)存儲(chǔ)、人機(jī)界面交互等功能,能及時(shí)有效的監(jiān)控塔機(jī)的起重高度變化情況。
基于Zigbee無線傳感器網(wǎng)絡(luò)的塔機(jī)高度采集系統(tǒng)由三個(gè)主要部分構(gòu)成,分別為采集端節(jié)點(diǎn)、協(xié)調(diào)器節(jié)點(diǎn)和ARM監(jiān)控端,其系統(tǒng)總體結(jié)構(gòu)如圖1所示。系統(tǒng)中各傳感器節(jié)點(diǎn)負(fù)責(zé)高度的采集,經(jīng)過數(shù)據(jù)采集模塊處理后由Zigbee模塊的射頻發(fā)送器發(fā)送出去。協(xié)調(diào)器負(fù)責(zé)網(wǎng)絡(luò)的組建、管理以及維護(hù),同時(shí)協(xié)調(diào)器也是各個(gè)終端節(jié)點(diǎn)采集信息的匯聚點(diǎn)[6],負(fù)責(zé)將各節(jié)點(diǎn)采集到的信息通過UART口傳送給ARM端,ARM監(jiān)控端負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)以及通過界面將起升高度的變化顯示出來。
為了實(shí)現(xiàn)設(shè)計(jì)目標(biāo),系統(tǒng)應(yīng)滿足參數(shù)采集、信息匯總發(fā)送、數(shù)據(jù)存儲(chǔ)分析、人機(jī)界面等功能,因此,本部分內(nèi)容主要介紹了數(shù)據(jù)采集模塊、協(xié)調(diào)器模塊以及ARM監(jiān)控模塊的設(shè)計(jì)。
圖1 數(shù)據(jù)采集系統(tǒng)整體結(jié)構(gòu)圖
Fig.1 Overall structure of data acquisition system
數(shù)據(jù)采集模塊由數(shù)據(jù)采集單元、信號(hào)處理單元以及數(shù)據(jù)發(fā)送單元組成,其硬件結(jié)構(gòu)圖如圖2所示。數(shù)據(jù)采集單元主要指采集塔機(jī)起重高度的氣壓傳感器;信號(hào)處理單元主要是將采集到的信號(hào)進(jìn)行A/D轉(zhuǎn)換,數(shù)據(jù)臨時(shí)存儲(chǔ)和任務(wù)調(diào)度[7];數(shù)據(jù)發(fā)送單元主要負(fù)責(zé)加入Zigbee網(wǎng)絡(luò),將數(shù)據(jù)緩沖、加密然后發(fā)送給協(xié)調(diào)器。數(shù)據(jù)處理單元采用宏晶科技生產(chǎn)的STC12C5A60S2單片機(jī),該型號(hào)單片機(jī)是新一代的單時(shí)鐘單片機(jī),和傳統(tǒng)的51系列相比,新一代單片機(jī)不僅兼容了指令代碼,而且還有著更高的運(yùn)算速度、更低的功耗以及超強(qiáng)的抗干擾能力。非常適合在低功耗的ZigBee網(wǎng)絡(luò)中工作,本設(shè)計(jì)中單片機(jī)負(fù)責(zé)采集端的數(shù)據(jù)處理、數(shù)據(jù)發(fā)送、任務(wù)調(diào)度等工作。
圖2 數(shù)據(jù)采集終端結(jié)構(gòu)圖
Fig.2 The terminal structure of data
本研究中高度的采集采用的是德國(guó)BOSCH公司生產(chǎn)的BMP085氣壓傳感器,該模塊是一款超高精度、超低功耗的大氣壓力傳感模塊,廣泛應(yīng)用于各種氣壓、高度的測(cè)量中。它的性能卓越,絕對(duì)精度最低可以達(dá)到0.03hPa(0.25m),并且耗電極低,只有3μA.BMP085可以通過I2C總線與單片機(jī)相連:傳感器的SDA、SCL引腳分別連到單片機(jī)的P1.1/T2EX和P1.0/T2引腳,連接圖如圖3所示。
隨著物聯(lián)網(wǎng)的發(fā)展,ZigBee技術(shù)獲得了越來越廣泛的應(yīng)用,該技術(shù)主要用于短距離、低功耗且對(duì)傳輸速率和反應(yīng)時(shí)間要求不是特別高的電子設(shè)備之間[8]。本系統(tǒng)的ZigBee節(jié)點(diǎn)采用的芯片是TI公司生產(chǎn)的CC2530F256芯片,該芯片采用工業(yè)級(jí)小巧高效的8051控制器作為內(nèi)核,能夠滿足Zigbee在2.4 GHz ISM波段應(yīng)用,同時(shí)CC2530F256具有256 kB的編程閃存和8kB的RAM,除此之外,它還有豐富的外設(shè)電路,其中有ADC、定時(shí)器、看門狗、上電復(fù)位電路、睡眠模式定時(shí)器和21個(gè)可編程I/O引腳,使得該芯片可以提供多種工作模式,能夠以非常低的成本建立強(qiáng)大的網(wǎng)絡(luò)節(jié)點(diǎn)[9],完全滿足本系統(tǒng)設(shè)計(jì)對(duì)于ZigBee的要求。本系統(tǒng)中的ZigBee采集端原理圖如圖4所示,ZigBee模塊的RXD、TXD引腳分別對(duì)應(yīng)連接到單片機(jī)的P3_0/RXD、P3_1/TXD引腳,實(shí)現(xiàn)數(shù)據(jù)的發(fā)送。
圖3 BMP085與單片機(jī)連接示意圖
Fig.3 BMP085 with single-chip microcomp uter connection diagram
圖4 ZigBee終端原理圖
Fig.4 The principle diagram of the ZigBee terminal
在本系統(tǒng)中,選用意法半導(dǎo)體公司生產(chǎn)的STM32F103芯片作為主控制器,STM32系列微控制器是ARM公司專門為嵌入式領(lǐng)域的應(yīng)用而研發(fā)的,其采用的Cortex-M3內(nèi)核高于ARM7內(nèi)核的處理速度,能夠很好的滿足嵌入式領(lǐng)域?qū)Ω咝阅?、低功耗、?shí)時(shí)性的要求。除此之外,內(nèi)部的 falsh 容量有 512 字節(jié),同時(shí)支持外部存儲(chǔ)設(shè)備[10]。本系統(tǒng)中,數(shù)據(jù)通過ZigBee協(xié)調(diào)器進(jìn)行接收,協(xié)調(diào)器通過UART串口與ARM板進(jìn)行連接,ARM上的LCD顯示屏?xí)?shí)時(shí)顯示采集的工況參數(shù),同時(shí)將數(shù)據(jù)存儲(chǔ)到SD卡中。監(jiān)控終端的總體結(jié)構(gòu)如圖5所示。
ZigBee與ARM板連接的時(shí)候,協(xié)調(diào)器上的CC2530的P0口配置為外設(shè)I/O模式,P0口的2、3、4、5引腳分別映射為UART模式下的RX、TX腳,并分別連接ARM板子上UART1口的TXD、RXD引腳[11]。ZigBee 協(xié)調(diào)器與 ARM 處理器之間的 UART 接口定義和連接如圖6所示,UART 通信參數(shù)設(shè)定如下:
圖5 終端總體結(jié)構(gòu)圖
Fig.5 The whole structure of terminal
圖6 UART接口定義與連接
Fig.6 UART interface definition and connection
比特率:115 200 b/s;
數(shù)據(jù)位:8bit;
停止位:1bit;
校驗(yàn)位:無;
硬件流控制:無。
3.1.1 BMP085發(fā)送指令方式
STC12C5A60S2單片機(jī)對(duì)BMP085發(fā)送控制指令時(shí)序圖如圖7所示。
圖7 BMP085控制指令時(shí)序圖
Fig.7 BMP085 control instruction sequence diagram
單片機(jī)向模塊發(fā)送指令的流程如下:
(1)發(fā)送模塊地址+W(寫操作),如圖中的0xEE;
(2)發(fā)送寄存器地址(Register address),如圖中的第一個(gè)0xF4;
(3)發(fā)送寄存器的值(Control register data),如圖中的第二個(gè)0xF4.寄存器的值表示BMP085要采用的測(cè)量模式以及所需要的轉(zhuǎn)換時(shí)間,其對(duì)應(yīng)關(guān)系如表1 所示。
表1 BMP085測(cè)量模式表
Tab.1 The Table of BMP085 measurement mode
寄存器取值(寄存器地址0xF4)測(cè)量模式最長(zhǎng)轉(zhuǎn)換時(shí)間/ms0x2E溫度測(cè)量4.50x34普通壓力測(cè)量4.50x74低精度壓力測(cè)量7.50xB4中精度壓力測(cè)量13.50xF4高精度壓力測(cè)量25.5
3.1.2 BMP085讀取數(shù)據(jù)流程
從BMP085讀取數(shù)據(jù)的時(shí)序圖如圖8所示。
圖8 BMP085讀取數(shù)據(jù)時(shí)序圖
Fig.8 BMP085 read data sequence diagram
具體步驟如下:
(1)發(fā)送模塊地址+W(寫操作),如圖中的0xEE;
(2)發(fā)送寄存器地址(Register address),如圖中的0xF6;
(3)重新進(jìn)行IIC傳輸(Restart);
(4)發(fā)送模塊地址并進(jìn)行讀操作,如圖中的0xEF;
(5)讀取測(cè)量值得高8位(MSB);
(6)讀取測(cè)量值的低8位(LSB).
3.1.3 傳感器工作流程
模塊上電后首先進(jìn)行系統(tǒng)初始化,讀取E2PROM中的校準(zhǔn)參數(shù),開始進(jìn)行溫度采集,由表1 可知,系統(tǒng)會(huì)先等待4.5 ms,溫度采集結(jié)束后進(jìn)行氣壓值采集,本系統(tǒng)中采用的是高精度測(cè)量模式,所以系統(tǒng)會(huì)有25.5 ms的延時(shí),最后根據(jù)采集的溫度值和壓力值計(jì)算出實(shí)際的大氣壓力值,如見流程如圖9所示。
圖9 傳感器工作流程圖
Fig.9 Sensors work flow chart
協(xié)調(diào)器作為整個(gè)網(wǎng)絡(luò)的核心,負(fù)責(zé)網(wǎng)絡(luò)的組建,判斷是否允許終端節(jié)點(diǎn)加入以及給新加入的節(jié)點(diǎn)分配網(wǎng)絡(luò)地址等。本系統(tǒng)中,ZigBee網(wǎng)絡(luò)采用的是星型拓補(bǔ)結(jié)構(gòu),設(shè)備通電之后首先進(jìn)行硬件和協(xié)議棧的初始化,然后開始組建網(wǎng)絡(luò),組網(wǎng)成功后開始偵聽是否收到入網(wǎng)請(qǐng)求,有的話則允許加入并且分配給終端節(jié)點(diǎn)網(wǎng)絡(luò)ID,開始監(jiān)聽節(jié)點(diǎn)是否有數(shù)據(jù)發(fā)送過來,最后通過UART串口將接收到的數(shù)據(jù)傳遞給ARM端。其工作流程如圖10所示。
圖10 ZigBee協(xié)調(diào)器軟件流程圖
Fig.10 The software flow chart of ZigBee coordinator
3.3.1 氣壓值與高度的轉(zhuǎn)換
氣壓值與高度轉(zhuǎn)換公式如公式(1)所示:
H=44330*[1-(PP0)15.255]
(1)
其中,P為測(cè)得的氣壓值,P0為標(biāo)準(zhǔn)氣壓:1013.25 hPa,通過測(cè)量可知,太原地區(qū)平均海拔約為800 m,得出二者對(duì)應(yīng)的關(guān)系如圖11所示。
圖11 氣壓與高度關(guān)系圖
Fig.11 The relationship betweenair pressure and altitude diagram
由圖11可以得出,在采用高精度測(cè)量模式下,每當(dāng)氣壓值變化0.1 hPa時(shí),對(duì)應(yīng)的高度變化約為0.9 m,由于塔機(jī)通常起重高度都在幾十米到幾百米,因此,該方法誤差在允許范圍內(nèi)。
3.3.2 監(jiān)控終端軟件流程
監(jiān)控終端主要負(fù)責(zé)將ZigBee協(xié)調(diào)器發(fā)送的數(shù)據(jù)通過串口接收過來,開機(jī)啟動(dòng)后,系統(tǒng)會(huì)自動(dòng)進(jìn)行初始化操作,包括串口通信、報(bào)警參數(shù)、看門狗[12]等等,然后,系統(tǒng)會(huì)進(jìn)入偵聽狀態(tài),查看UART串口是否有數(shù)據(jù)發(fā)送過來,當(dāng)數(shù)據(jù)發(fā)送過來時(shí),終端會(huì)一方面將數(shù)據(jù)進(jìn)行存儲(chǔ),同時(shí)將各參數(shù)進(jìn)行轉(zhuǎn)化并且在界面上顯示出來。其工作流程圖如圖12所示。
系統(tǒng)的實(shí)物圖如圖13(a)所示,本系統(tǒng)采用5 V電壓模塊供電,上電后,首先協(xié)調(diào)器指示燈正常,說明組網(wǎng)成功,然后各終端Zigbee模塊指示燈閃爍,說明入網(wǎng)成功,最后在ARM界面上工作燈閃爍,隨后顯示出采集的數(shù)據(jù),并且隨著傳感器高度調(diào)整,數(shù)據(jù)會(huì)有相應(yīng)變化。系統(tǒng)采集的數(shù)據(jù)發(fā)送到協(xié)調(diào)器端,通過串口可以在PC端顯示出來,圖13(b)中顯示的是傳感器在變化過程中定時(shí)發(fā)送的一些數(shù)據(jù)。
圖12 監(jiān)控終端工作流程圖
Fig.12 The flow chart monitoring terminal
(a)
(b)
圖13 系統(tǒng)工作圖
Fig.13 The working interface of system
實(shí)際測(cè)試中,選取太原科技大學(xué)綜合實(shí)驗(yàn)樓進(jìn)行實(shí)地測(cè)量,實(shí)驗(yàn)中測(cè)量了樓層與地面的相對(duì)距離、對(duì)應(yīng)樓層的室外氣壓、測(cè)量高度以及相對(duì)誤差,測(cè)量結(jié)果如表所示。
表2 實(shí)驗(yàn)數(shù)據(jù)結(jié)果
Tab.2 The experimental results
樓層室外氣壓值/hPa測(cè)量相對(duì)高度/m樓層實(shí)際高度/m誤差絕對(duì)值/m2樓1 007.755.105.280.183樓1 007.338.648.900.264樓1 006.9812.6812.350.335樓1 006.5015.6515.900.256樓1 006.0419.8519.550.30
由表2數(shù)據(jù)可知,系統(tǒng)的測(cè)量值與實(shí)際高度的平均誤差為0.264,測(cè)量結(jié)果在誤差允許范圍內(nèi),系統(tǒng)基本滿足設(shè)計(jì)要求。
根據(jù)塔機(jī)安全監(jiān)控的需要,設(shè)計(jì)了一種基于ZigBee無線傳感網(wǎng)絡(luò)的塔機(jī)起重高度采集系統(tǒng),采用ST公司最新設(shè)計(jì)的STM32系列處理器作為主控單元,對(duì)傳感器、STC12C5A60S2單片機(jī)數(shù)據(jù)采集處理模塊、ZigBee協(xié)調(diào)器組網(wǎng)模塊以及STM32 嵌入式模塊進(jìn)行了硬件和軟件的設(shè)計(jì)。該系統(tǒng)具有組網(wǎng)方便、可擴(kuò)展性高、成本低、功耗小的特點(diǎn),能夠解決塔機(jī)起重高度采集時(shí)布線復(fù)雜、監(jiān)控成本高的問題,具有重要的實(shí)際意義和一定的運(yùn)用推廣價(jià)值。