基于ZigBee煤礦井下無線傳感器節(jié)點設(shè)計
摘要:針對目前煤礦井下有線監(jiān)控系統(tǒng)存在的問題,在此設(shè)計了一種無線傳感器節(jié)點,其特點是無線的、移動性強、可靠性高、低功耗、實時性強等,能夠?qū)崟r監(jiān)測煤礦井下的環(huán)境參數(shù),包括溫度、濕度和瓦斯?jié)舛?,并將采集到的信息通過ZigBee無線傳輸方式進行發(fā)送。以CC24 30作為無線網(wǎng)絡(luò)處理器,負責建立網(wǎng)絡(luò)和傳輸數(shù)據(jù),采用SHT11溫濕度傳感器和MJC4/3.0L瓦斯?jié)舛葌鞲衅鞑杉旱V井下數(shù)據(jù),用CC2591芯片作為無線發(fā)送前端,增強無線發(fā)送功率;軟件架構(gòu)采用Z-Stack協(xié)議棧,它是基于一個輪轉(zhuǎn)查詢式操作系統(tǒng)。最后通過實驗測試表明,該無線傳感器節(jié)點能實時準確地采集環(huán)境參數(shù),有效地實現(xiàn)實時監(jiān)測煤礦井下的環(huán)境情況。
0 引言
隨著國家對煤礦安全生產(chǎn)工作的日益重視,煤礦現(xiàn)代化管理的需求,煤礦安全監(jiān)測系統(tǒng)越來越體現(xiàn)出其重要性。目前,我國很多礦山生產(chǎn)現(xiàn)場還處于有線傳感器接到一個終端進行監(jiān)測和控制,不僅增加了成本而且不利于整體的檢測和控制,有些地方由于環(huán)境因素無法鋪設(shè)有線傳感器和控制終端,因此容易出現(xiàn)監(jiān)控盲點。所以大多的礦山生產(chǎn)現(xiàn)場需要一個無線的、移動性強、可靠性高、低功耗、實時性強的監(jiān)控裝置。因此,本文設(shè)計了一種基于ZigBee無線傳感器節(jié)點,能實時監(jiān)測煤礦井下的環(huán)境參數(shù),主要監(jiān)測井下的溫度、濕度和瓦斯?jié)舛?,并通過ZigBee無線傳輸方式進行發(fā)送。
1 傳感器節(jié)點的硬件設(shè)計
無線傳感器節(jié)點的硬件總體框圖如圖1所示,該系統(tǒng)由數(shù)據(jù)采集模塊、CC2430處理器模塊和CC2591無線模塊及其電源模塊組成。
其中采集模塊由溫濕度傳感器SHT11、瓦斯?jié)舛葌鞲衅鱉JC4/3.0L和功率放大器組成。溫濕度傳感器SHT11將濕度傳感器、A/D轉(zhuǎn)換電路、信號放大電路、I2C總線接口全部集成于一個芯片,可以給出全校準相對濕度和溫度值輸出,帶有工業(yè)標準的I2C總線數(shù)字輸出接口,具有可靠的CRC數(shù)據(jù)傳輸校驗功能,監(jiān)測得到溫濕度信息,并轉(zhuǎn)化為數(shù)字信號,傳輸?shù)紺C2430 I/O口。MJC4/3.0L屬于熱效式瓦斯傳感器,精度高,抗干擾能力強,適合用于煤礦井下特殊環(huán)境。MJC4/3.0L是經(jīng)過橋路后輸出模擬電壓信號,并且為毫伏級的電壓信號,因此必須經(jīng)過放大電路放大后再進行A/D轉(zhuǎn)換。為了提高系統(tǒng)的精度,放大器應該選擇具有差動輸入,且性能比較穩(wěn)定的器件。這里選用ANALOG DEVICES公司生產(chǎn)的AD623放大芯片。本設(shè)計選用P0.0口作為A/D轉(zhuǎn)換的接口。
CC2430處理器模塊由CC2430處理器和相關(guān)外圍電路組成。該模塊主要包括3.3 V和1.8 V電源電路、晶振電路、復位電路。電源電路采用TP63001直流降壓芯片,把鋰電池的電源轉(zhuǎn)換為3.3 V電壓給系統(tǒng)供電。
晶振電路的本振時鐘信號選擇內(nèi)部電路提供,外圍電路由晶體振蕩器和2個負載電容組成。系統(tǒng)由2個時鐘信號,分別為32 MHz和32.768 kHz。32 MHz的晶振電路由1個32 MHz的石英諧振器XTAL1和2只電容構(gòu)成,32.768 kHz的晶振電路由1個32.768 kHz的石英諧振器XTAL2和2個電容構(gòu)成。
雖然CC2430內(nèi)部集成無線收發(fā)器和8051內(nèi)核,但容易受到干擾,而且通信距離有限。因此在CC2430器件與天線之間加一級接口電路即CC 2591無線模塊,用來放大接收和發(fā)送信息的功率,確保數(shù)據(jù)傳送的距離。
2 傳感器節(jié)點的軟件設(shè)計
2.1 Z-Stack協(xié)議棧
系統(tǒng)的軟件結(jié)構(gòu)采用TI的Z-Stack協(xié)議棧Z-Stack在硬件上支持CC2430芯片,并采用了操作系統(tǒng)的概念,包含了信息管理、任務同步、定時器管理、中斷管理、任務管理等功能,無線模塊上電后,Z-Stack執(zhí)行對應的初始化操作,根據(jù)節(jié)點的角色組建/加入ZigBee網(wǎng)絡(luò),并進入OSAL事件輪詢,根據(jù)消息響應轉(zhuǎn)到對應的結(jié)構(gòu)層執(zhí)行具體操作,具體過程如圖2所示。
2.2 協(xié)調(diào)器的設(shè)計
協(xié)調(diào)器主要負責無線網(wǎng)絡(luò)的創(chuàng)建,數(shù)據(jù)的接收、處理以及發(fā)送控制指令。協(xié)調(diào)器最初發(fā)動并創(chuàng)建ZigBee無線網(wǎng)絡(luò)。首先由協(xié)調(diào)器的API層通過NIME-NET-WORK-FORMATION.request原語啟動新的網(wǎng)絡(luò);NWK層向MAC層請求進行信道能量掃描,具體通過原語MLME-SCAN.request進行,在獲得信道干擾情況后MAC層通過MLME-SCAN.request原語返回;NWK層根據(jù)信道能量檢測值的大小對信道進行排序,通過修改MLME-SCA N.request原語參數(shù),再次對信道進行掃描,記錄可利用的信道列表,掃描結(jié)果由MAC層通過MLME-SCAN.request原語返回;NMK層在選擇一個合適的信道后,根據(jù)掃描結(jié)果選擇PANID,并且將自己的短地址設(shè)為0x0000,并通過MLME-SET.Request原語完成MAC層中的相關(guān)設(shè)置,完成后通過MLME-SET.confirm原語返回;設(shè)置好相關(guān)網(wǎng)絡(luò)參數(shù)后,NWK層向MAC層發(fā)送原語MLME-START.request正式啟動運行ZigBee網(wǎng)絡(luò),MAC層通過MLME-START.confirm原語反饋網(wǎng)絡(luò)的啟動狀況;NWK層將獲得的網(wǎng)絡(luò)啟動狀況向API層報告,通過原語NIME-NETWORK-FORMATION.con firm完成,最后完成網(wǎng)絡(luò)的建立。
協(xié)調(diào)器節(jié)點在創(chuàng)建ZigBee無線網(wǎng)絡(luò)后,開始收發(fā)數(shù)據(jù)及發(fā)送各種操作指令。首先協(xié)調(diào)器判斷當前是否有新的節(jié)點加入自己建立的網(wǎng)絡(luò),如果有則主動分配一個短地址給新加入的節(jié)點;然后接收節(jié)點發(fā)送過來的數(shù)據(jù)信號,并通過串口傳給上位機顯示和處理。其程序流程如圖3所示。
2.3 傳感器的設(shè)計
傳感器節(jié)點的主要任務是采集溫濕度、瓦斯?jié)舛鹊葦?shù)據(jù)且發(fā)送給協(xié)調(diào)器,同時接收執(zhí)行控制指令。首先傳感器節(jié)點開啟初始化,接著主動掃描有效的網(wǎng)絡(luò)信道,尋址最佳的的父節(jié)點,NWK層向MAC層發(fā)送MLME-ASSOCIATION.request,由MAC層實現(xiàn)網(wǎng)絡(luò)的物理連接,MAC層將返回MLME-ASSOCIATION.confirm原語,報告連接狀態(tài),若連接成功,NWK層將記錄父節(jié)點分配的16位短地址,設(shè)置鄰接表信息,并向API層發(fā)送確認原語NLME-JOIN.confirm。
設(shè)備在加入網(wǎng)絡(luò)后,調(diào)用osal_start_timerEx()函數(shù)啟動定時器,周期觸發(fā)APP_SEND_PERIODIC_MSG_EVT事件的發(fā)生,相當于周期采集煤礦井下的環(huán)境參數(shù),如果定時器沒溢出,事件沒有被觸發(fā),則節(jié)點進入休眠狀態(tài),以便節(jié)省能源。如果節(jié)點在休眠期間,外部中斷或定時器中斷發(fā)生,節(jié)點會恢復到工作狀態(tài),開始執(zhí)行任務。其程序流程如圖4所示。
2.4 節(jié)點的通信
Z-Statck協(xié)議棧中,都是通過調(diào)用ProcessEvent()函數(shù)來處理每一個應用層的任務事件,在ProcessEvent()函數(shù)中有一個定時器事件處理循環(huán)檢測事件的發(fā)生。其中傳感器節(jié)點(發(fā)送端)直接調(diào)用AF_DataRequest()函數(shù)來發(fā)送數(shù)據(jù),而接收端(協(xié)調(diào)器)則是通過調(diào)用AF_INCOMING _MSG_CMD消息事件來判斷是否收到傳感器發(fā)送過來的數(shù)據(jù)。
傳感器節(jié)點首先將測量的溫濕度、瓦斯?jié)舛鹊葦?shù)據(jù)轉(zhuǎn)化為ZigBee協(xié)議包,然后通過多跳方式將數(shù)據(jù)包傳送給協(xié)調(diào)器。當協(xié)調(diào)器接收到傳感器發(fā)送過來的數(shù)據(jù)包之后,解析出數(shù)據(jù)源的短地址,將溫濕度、瓦斯?jié)舛鹊刃盘栔瞪蟼鹘o上位機,上位機實時顯示當前節(jié)點的采集到的數(shù)據(jù),同時協(xié)調(diào)器按原路徑返回確認信息給傳感器節(jié)點。具體的數(shù)據(jù)通信流程如圖5所示。
2.5 數(shù)據(jù)傳輸協(xié)議
本系統(tǒng)涉及數(shù)據(jù)在井下無線傳感器網(wǎng)絡(luò)中的傳輸,以及井下數(shù)據(jù)到地面監(jiān)控系統(tǒng)的傳輸。需要傳輸?shù)臄?shù)據(jù)包括有通過ZigBee網(wǎng)絡(luò)計算的環(huán)境參數(shù)監(jiān)控數(shù)據(jù)(如溫度、濕度、瓦斯?jié)舛鹊?。
數(shù)據(jù)以字節(jié)為單位,根據(jù)不同節(jié)點承擔的具體任務覺得實際數(shù)據(jù)包的內(nèi)容和長度,用表1所示格式表示。
其中數(shù)據(jù)類型以及其對應數(shù)據(jù)長度如表2所定義。
Z-Stack協(xié)議棧采用分層的結(jié)構(gòu),以事件為驅(qū)動,符合操作系統(tǒng)的消息機制,ZigBee節(jié)點間的數(shù)據(jù)傳輸,首先需要確定接收數(shù)據(jù)所處的結(jié)構(gòu)層以及所屬的事件ID,OSAL才能將數(shù)據(jù)傳送到正確的位置。
本系統(tǒng)ZigBee節(jié)點的嵌入式代碼在Z-Stack的基礎(chǔ)上進行編寫,每一結(jié)構(gòu)層的操作中看作一個任務,定義任務ID;每一層中分為不同的事件,定義事件ID,系統(tǒng)任務ID的定義以及應用層中的事件ID如表3和表4所示。
3 實驗研究與分析
在實驗中,將設(shè)計的節(jié)點組成測試網(wǎng)絡(luò),在實驗室的不同位置放置了協(xié)調(diào)器節(jié)點和傳感器節(jié)點,協(xié)調(diào)器通過串口與PC機相連,將接收到的數(shù)據(jù)在串口中顯示出來。首先打開協(xié)調(diào)器的開關(guān),幾秒鐘后,綠色LED燈點亮,表明協(xié)調(diào)器建立無線網(wǎng)絡(luò)成功。然后打開傳感器節(jié)點的開關(guān),幾秒鐘后,綠色LED燈點亮,表明協(xié)調(diào)器節(jié)點加入網(wǎng)絡(luò)成功,傳感器節(jié)點加入網(wǎng)絡(luò)后將自己的短地址和采集到的數(shù)據(jù)發(fā)送給協(xié)調(diào)器,協(xié)調(diào)器通過串口上傳到上位機。圖7是通過串口調(diào)試工具查看采集數(shù)據(jù)。
通過以上實驗測試分析,得到無線傳感器節(jié)點的性能指標如表5所示。
4 結(jié)語
本文設(shè)計了一種煤礦井下無線傳感器節(jié)點,采用CC2430芯片為核心處理器,采集模塊采用高集成度的溫濕度傳感器SHT11和瓦斯傳感器MJC4/3.0L,能實時監(jiān)測煤礦井下的環(huán)境參數(shù)。ZigBee網(wǎng)絡(luò)具有組網(wǎng)簡單、開銷小、自組織能力強,非常適合于煤礦井下特殊的環(huán)境。因此煤礦井下無線傳感器節(jié)點的應用將使得煤礦井下的安全監(jiān)控更加的自動化、網(wǎng)絡(luò)化和智能化,進一步有效地保障井下工作人員的安全。