胡 昱,黃小華,陶啟友,郭根喜,薛家祥
(1.中國水產(chǎn)科學(xué)研究院南海水產(chǎn)研究所 農(nóng)業(yè)部南海漁業(yè)資源開發(fā)利用重點實驗室 ,廣東 廣州510300;2.華南理工大學(xué) 廣東 廣州510640)
基于ZigBee的深水網(wǎng)箱養(yǎng)殖無線傳感網(wǎng)絡(luò)節(jié)點設(shè)計
胡 昱1,2,黃小華1,陶啟友1,郭根喜1,薛家祥2
(1.中國水產(chǎn)科學(xué)研究院南海水產(chǎn)研究所 農(nóng)業(yè)部南海漁業(yè)資源開發(fā)利用重點實驗室 ,廣東 廣州510300;2.華南理工大學(xué) 廣東 廣州510640)
利用ZigBee技術(shù)提出了一種深水網(wǎng)箱養(yǎng)殖環(huán)境監(jiān)測方法,對監(jiān)測網(wǎng)絡(luò)中的傳感器節(jié)點進行了軟硬件設(shè)計。根據(jù)無線傳感器網(wǎng)絡(luò)系統(tǒng)的總體結(jié)構(gòu)與硬件設(shè)計方案選擇合適的器件,完成了節(jié)點的硬件電路設(shè)計,包括ZigBee節(jié)點RF模塊電路、ZigBee父節(jié)點通訊功能模塊電路、ZigBee子節(jié)點通訊功能模塊電路的設(shè)計。進行了ZigBee節(jié)點的軟件設(shè)計,包括協(xié)調(diào)器設(shè)備ZigBee通訊軟件、終端設(shè)備ZigBee通訊軟件、終端設(shè)備控制軟件。無線傳感網(wǎng)絡(luò)能可靠的采集、處理、傳輸深水網(wǎng)箱養(yǎng)殖環(huán)境信息數(shù)據(jù),這為利用傳感器技術(shù)和ZigBee無線網(wǎng)絡(luò)技術(shù)進行遠程實時監(jiān)測與控制應(yīng)用打下了堅實的技術(shù)支持。
深水網(wǎng)箱;ZigBee;監(jiān)控;無線傳感網(wǎng)絡(luò)節(jié)點
隨著無線傳輸技術(shù)的發(fā)展,無線傳感器網(wǎng)絡(luò)技術(shù)以其低成本、低功耗、分布式和自組網(wǎng)的特點,可以較好地解決以上問題。因此,針對深水網(wǎng)箱養(yǎng)殖環(huán)境建立監(jiān)測監(jiān)控系統(tǒng),對養(yǎng)殖所需的溫度、鹽度、溶解氧含量、pH等影響魚類生長的環(huán)境因素進行實時的監(jiān)測,為提高現(xiàn)代水產(chǎn)養(yǎng)殖監(jiān)管水平的一個重要措施[1-4]。
針對深水網(wǎng)箱養(yǎng)殖場環(huán)境建立在線監(jiān)測系統(tǒng),在養(yǎng)殖過程中對養(yǎng)殖對象、網(wǎng)衣、養(yǎng)殖環(huán)境等進行全面地監(jiān)測,采用基于ZigBee技術(shù)組成無線傳感器網(wǎng)絡(luò),采集和傳輸各種網(wǎng)箱養(yǎng)殖需要的溫度、鹽度、溶解氧含量、PH值等參數(shù)。一方面可以進行遠端參數(shù)的采集,另一方面減少線纜的布置,同時又能保證數(shù)據(jù)的可靠傳輸。
深水網(wǎng)箱養(yǎng)殖無線傳感網(wǎng)絡(luò)主要由3部分所組成,分別是:網(wǎng)箱監(jiān)測各類傳感器節(jié)點、服務(wù)器端、手機移動客戶端。圖1所示的整個深水網(wǎng)箱監(jiān)控監(jiān)測系統(tǒng)的總體設(shè)計方案。
圖1 深水網(wǎng)箱養(yǎng)殖監(jiān)控管理系統(tǒng)的總體設(shè)計方案框圖
網(wǎng)箱監(jiān)控傳感器ZigBee從節(jié)點將通過CAN總線采集到的養(yǎng)殖環(huán)境信息數(shù)據(jù)通過ZigBee無線網(wǎng)絡(luò)傳送給上位機服務(wù)器端ZigBee主節(jié)點。服務(wù)器端監(jiān)控平臺通過ZigBee無線網(wǎng)絡(luò)與網(wǎng)箱監(jiān)控傳感器進行數(shù)據(jù)通信,手機客戶端監(jiān)控則通過登錄服務(wù)器端來獲取網(wǎng)箱養(yǎng)殖環(huán)境信息數(shù)據(jù)同時還可通過服務(wù)器端對網(wǎng)箱監(jiān)控傳感器設(shè)備進行控制。
系統(tǒng)硬件由ZigBee節(jié)點RF模塊、父節(jié)點通訊功能模塊、子節(jié)點通訊功能模塊3部分組成。該系統(tǒng)中涉及到的硬件部分僅為ZigBee父節(jié)點硬件部分和ZigBee子節(jié)點硬件部分??紤]到ZigBee節(jié)點RF模塊電路的通用性,故將RF模塊電路單獨設(shè)計。
2.1 ZigBee節(jié)點RF模塊電路
ZigBee節(jié)點的RF模塊電路由CC2530芯片、CC2591芯片、晶振電路、RF收發(fā)電路所構(gòu)成。為調(diào)試和擴展的方便,將RF模塊電路與其他電路分別單獨設(shè)計,RF模塊電路獨立設(shè)計在一塊PCB板上,并引出所有的I/O引腳,與通訊功能模塊電路可以實現(xiàn)靈活對接。
采用TI公司的CC2530F128 ZigBee芯片,此芯片 是 基 于 2.4 GHz IEEE802.15.4、ZigBee以 及RF4CE上的一種完整的片上系統(tǒng)解決方案;集成了行業(yè)領(lǐng)先的RF收發(fā)器、標準的增強型8051 CPU、128 kB可編程閃存以及8 kB RAM;其輸出功率高達4.5 dB,并可以通過相應(yīng)軟件進行設(shè)置;具有強大的外設(shè)功能,有串口,SPI等強大的通信接口[5-7]。
考慮到海上無線信號衰減較快,因此需要選用發(fā)射功率放大功能的芯片。功率放大芯片的選擇主要考慮到芯片放大能力,采用TI的高度集成2.4 GHz RF的CC2591芯片當(dāng)作CC2530的射頻前端芯片。CC2591集成的功率放大器可將輸入功率增加+22dBm,低噪聲放大器則可將接收機的靈敏度增加+6 dB,這在很大程度上增強了通信的質(zhì)量和距離。
2.2 ZigBee父節(jié)點通訊功能模塊電路
ZigBee父節(jié)點所需要的功能就是實現(xiàn)與ZigBee子節(jié)點的無線通訊,同時通過串口將通訊結(jié)果在上位機的友好界面上體現(xiàn)出來。需要有供電電路、RS232轉(zhuǎn)USB接口轉(zhuǎn)換電路、仿真調(diào)試接口電路、ZigBee節(jié)點RF模塊接口電路即可。
如圖2所示為ZigBee父節(jié)點的通訊功能模塊電路原理圖。圖2(a)為父節(jié)點的串口通信電路;圖2(b)為父節(jié)點的RF模塊接口電路。
2.3 ZigBee子節(jié)點通訊功能模塊電路
ZigBee子節(jié)點所需要的功能就是實現(xiàn)與ZigBee父節(jié)點的無線通訊,而網(wǎng)箱養(yǎng)殖終端設(shè)備具備CAN數(shù)據(jù)總線采集網(wǎng)箱養(yǎng)殖環(huán)境信息數(shù)據(jù)。終端設(shè)備的功能均需要MCU的控制才能實現(xiàn),考慮到子節(jié)點通訊功能模塊底板的通用性和擴展性以及編程的方便性,采用意法半導(dǎo)體公司推出的Cortex-M3內(nèi)核的STM32F103RCT6芯片,并將CAN總線和液晶顯示接口綜合在同一塊功能板。
ZigBee子節(jié)點所需要的通訊功能模塊電路結(jié)構(gòu)需要有供電電路、MCU外圍電路、CAN數(shù)據(jù)總線接口電路、電平轉(zhuǎn)換電路及液晶顯示接口電路、ZigBee芯片和MCU控制芯片仿真調(diào)試接口電路、ZigBee節(jié)點RF模塊接口電路等。
圖2 ZigBee父節(jié)點的通訊功能模塊電路原理圖
3.1 協(xié)調(diào)器設(shè)備ZigBee通訊軟件
在整個ZigBee無線通訊網(wǎng)絡(luò)系統(tǒng)中,協(xié)調(diào)器設(shè)備在整個監(jiān)控管理系統(tǒng)中是上位機與ZigBee終端設(shè)備的紐帶,它將從ZigBee終端設(shè)備接收到的控制或生產(chǎn)信息數(shù)據(jù)解析成透明的數(shù)據(jù),通過串口傳給上位機,或?qū)纳衔粰C得到的控制或生產(chǎn)信息數(shù)據(jù),封裝成ZigBee網(wǎng)絡(luò)協(xié)議數(shù)據(jù)發(fā)送到ZigBee網(wǎng)絡(luò)的終端設(shè)備。
ZigBee設(shè)備上電后首先會進行一系列的初始化過程,包括硬件層的初始化,MAC層的初始化,NWK層的初始化,ZDO層的初始化和OSAL的初始化等過程。ZigBee協(xié)調(diào)器設(shè)備初始化完成后,便自動構(gòu)建一個PAN網(wǎng)絡(luò)。當(dāng)網(wǎng)絡(luò)有終端設(shè)備申請加入網(wǎng)絡(luò)時,就會觸發(fā)終端設(shè)備入網(wǎng)事件,同時也會等待其他終端設(shè)備加入PAN網(wǎng)絡(luò),終端設(shè)備成功加入PAN網(wǎng)絡(luò),協(xié)調(diào)器設(shè)備進入數(shù)據(jù)接收和發(fā)送事件觸發(fā)狀態(tài)。
ZigBee協(xié)調(diào)器設(shè)備的數(shù)據(jù)接收和發(fā)送包括兩個方面:一方面通過串口口接收來自上位機的控制數(shù)據(jù),即觸發(fā)串口接收事件,由OSAL進行處理,把自定義的串口數(shù)據(jù)格式解析成有效數(shù)據(jù)。解析成有效數(shù)據(jù)完成后,APL層則調(diào)用 afStatus_tAF_Data Request(afAddrType_t*dstAddr,endPointDesc_t*srcEP,uint16 Cid,uint16 len,uint8 *buf,uint8 *transID,uint8 options,uint8 radius),在此函數(shù)內(nèi)調(diào)用APS層發(fā)送函數(shù),并根據(jù)APS數(shù)據(jù)格式對有效數(shù)據(jù)進行封裝。接著觸發(fā)MAC層數(shù)據(jù)發(fā)送任務(wù),調(diào)用MAC層發(fā)送函數(shù),并根據(jù)MAC層數(shù)據(jù)格式進行封裝。最后觸發(fā)PHY層數(shù)據(jù)發(fā)送任務(wù),調(diào)用PHY層發(fā)送函數(shù),并根據(jù)PHY層數(shù)據(jù)格式進行封裝。以上數(shù)據(jù)封裝任務(wù)完成后,PHY層將使能協(xié)調(diào)器設(shè)備的RF發(fā)送器,并檢測當(dāng)前信道是否處于空閑狀態(tài),當(dāng)?shù)教幱诳臻e狀態(tài)時,啟動發(fā)送,向終端節(jié)點發(fā)送數(shù)據(jù)[8-10]。
另一方面ZigBee協(xié)調(diào)器設(shè)備的RF接收器接收來自終端設(shè)備的RF發(fā)送器發(fā)送的PHY層數(shù)據(jù),并觸發(fā)OSAL服務(wù)任務(wù)調(diào)度機制,首先啟動HAL層數(shù)據(jù)服務(wù)任務(wù),并根據(jù)PHY層數(shù)據(jù)格式進行解析,解析出MAC層有效數(shù)據(jù);接著觸發(fā)MAC層數(shù)據(jù)服務(wù)任務(wù),并根據(jù)NWK層數(shù)據(jù)格式進行解析,解析出NWK層有效數(shù)據(jù);然后觸發(fā)NWK層數(shù)據(jù)服務(wù)任務(wù),并根據(jù)APL層數(shù)據(jù)格式進行解析,解析出APL層有效數(shù)據(jù);最后將解析出的APL層有效數(shù)據(jù)傳遞到APL層中,并保存在數(shù)據(jù)緩沖器內(nèi),完成數(shù)據(jù)解析的過程。
3.2 主程序
一個控制程序必不可少的部分就是主程序,主程序是一個程序開始的入口,是實現(xiàn)程序功能的主工作流程。終端設(shè)備上電后,首先進行一系列的初始化過程,這些初始化主要包括目標板硬件的初始化、外設(shè)接口的初始化以及相關(guān)變量的初始化,然后程序便進入一個死循環(huán),依次循環(huán)檢測各事件是否觸發(fā),一旦觸發(fā)則調(diào)用該事件的子程序,實現(xiàn)該事件處理。終端設(shè)備控制軟件的主程序流程圖如圖3所示。
圖3 終端設(shè)備控制軟件的主程序流程圖
3.3 SPI通信子程序
STM32F103RCT6與ZigBee節(jié)點RF收發(fā)器之間的通信是通過SPI串行接口來完成的,通信的數(shù)據(jù)量較大,為了減輕CPU的負擔(dān),使控制程序執(zhí)行得更有效率,采用中斷和DMA模式[11-13]。
SPI串行接口進行數(shù)據(jù)發(fā)送時,需要檢測SPI_SR寄存器中的TXE位,當(dāng)數(shù)據(jù)寄存器中有數(shù)據(jù)時,此時TXE位為0,當(dāng)所有數(shù)據(jù)從數(shù)據(jù)寄存器的發(fā)送緩沖區(qū)傳送到移位寄存器時,此時TXE位被置1,該狀態(tài)下才可再向數(shù)據(jù)寄存器中寫入數(shù)據(jù)。
SPI串行接口的DMA模式,就是當(dāng)SPI-SR的TXE或RXNE位為1時,向?qū)?yīng)的DMA通道發(fā)送請求,DMA通道接到請求會發(fā)出應(yīng)答信號,SPI接收到應(yīng)答信號后撤銷對DMA的請求信號,DMA也撤銷應(yīng)答信號,SPI的數(shù)據(jù)傳輸開始,數(shù)據(jù)傳輸結(jié)束后,DMA結(jié)束。
3.4 CAN通訊子程序
STM32F103RCT6與網(wǎng)箱監(jiān)控傳感器設(shè)備之間的通信是通過CAN總線接口的中斷來完成的,CAN總線的應(yīng)用最重要的就是接口配置、初始化過程以及數(shù)據(jù)的發(fā)送和接收[14-16]。
CAN總線應(yīng)用的初始化過程包括CAN單元初始化和CAN報文過濾器初始化,其中CAN單元初始化最重要的就是波特率的設(shè)置。波特率可設(shè)置如下:
CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;//重新同步跳躍寬度1個時間單位
CAN_InitStructure.CAN_BS1=CAN_BS1_8tq;//時間段1為8個時間單位
CAN_InitStructure.CAN_BS2=CAN_BS2_7tq;//時間段2為7個時間單位
CAN_InitStructure.CAN_Prescaler=9;//設(shè)定了一個時間單位的長度為9
STM32F103RCT6的數(shù)據(jù)傳送是通過發(fā)送報文和接收報文來實現(xiàn)的。發(fā)送報文時,首先選擇一個空的發(fā)送郵箱;接著對標識符、數(shù)據(jù)長度以及待發(fā)數(shù)據(jù)經(jīng)行設(shè)置;然后請求發(fā)送,此時郵箱就不再是空郵箱。請求發(fā)送后,郵箱立刻進入掛號狀態(tài),并等待變成最高優(yōu)先級郵箱。一旦郵箱變?yōu)樽罡邇?yōu)先級,其狀態(tài)就變成預(yù)定發(fā)送狀態(tài)。當(dāng)CAN總線進入空閑模式時,預(yù)定發(fā)送狀態(tài)的郵箱中的報文就立刻被發(fā)送。郵箱中的報文被發(fā)送成功后,就立刻變?yōu)榭罩绵]箱。報文發(fā)送流程圖如圖4所示。
接收一個報文時,首先將其標識符與配置在標識符列表模式的過濾器經(jīng)行比較。若匹配,將該報文存放在相關(guān)聯(lián)的FIFO中,且所匹配的過濾器序號將被存入過濾器匹配序號中;若沒有匹配,將該報文標識符繼續(xù)與配置在標識符屏蔽位模式的過濾器相比較。若該報文標識符未與過濾器中的任何標識符匹配,則通過硬件丟棄該報文,并不對軟件有任何干擾。報文接收流程圖如圖5所示。
圖4 報文發(fā)送流程圖
圖5 報文接收流程圖
深水網(wǎng)箱養(yǎng)殖無線傳感網(wǎng)絡(luò)節(jié)點設(shè)計實現(xiàn)了以ZigBee技術(shù)進行數(shù)據(jù)傳輸?shù)臒o線傳感節(jié)點網(wǎng)絡(luò)系統(tǒng),并分別給出了硬件系統(tǒng)中ZigBee節(jié)點RF模塊、父節(jié)點通訊功能模塊、子節(jié)點通訊功能模塊的設(shè)計方法,對ZigBee節(jié)點協(xié)調(diào)器設(shè)備ZigBee通訊軟件、終端設(shè)備ZigBee通訊軟件、終端設(shè)備控制軟件進行了設(shè)計。無線傳感網(wǎng)絡(luò)能可靠的采集、處理、傳輸水環(huán)境信息數(shù)據(jù),這為利用傳感器技術(shù)和ZigBee無線網(wǎng)絡(luò)技術(shù)進行遠程實時監(jiān)測與控制應(yīng)用打下了堅實的技術(shù)支持。
[1]陳華凌,陳歲生,張仁政.基于ZigBee無線傳感器網(wǎng)絡(luò)的水環(huán)境監(jiān)測系統(tǒng) [J].儀表技術(shù)與傳感器,2012(1):71-73.
[2]Park D H,KangBJ,ChoKR,et al.A study on greenhouse automatic control system based onwireless sensor network[J].Wireless Personal Communications,2011,56(1):117-130.
[3]Li X,Cheng X,Yan K,et al.A monitoring system for vegetable greenhouses based on a wireless sensor network[J].Sensors,2010,10(10): 8963-8980.
[4]LIN Y G.An Intelligent Monitoring System for AgricultureBased on ZigbeeWirelessSensor Networks [J].Advanced Materials Research,2012,383(1),4358-4364.
[5]曹斌.ZigBee無線傳感器網(wǎng)絡(luò)協(xié)議改進及實現(xiàn)[D].上海:上海交通大學(xué),2010.
[6]馬海.基于ZigBee無線傳感器網(wǎng)絡(luò)的遠程數(shù)據(jù)監(jiān)測的設(shè)計與實現(xiàn)[D].武漢:武漢理工大學(xué),2010.
[7]李宗磊,侯西南.基于.NET平臺的智能安全監(jiān)控系統(tǒng)及聯(lián)網(wǎng)系統(tǒng)的研究與應(yīng)用[J].科技情報開發(fā)與經(jīng)濟,2010,20(9):104-105.
[8]劉旻,何曉英.基于無線自組網(wǎng)技術(shù)的監(jiān)控系統(tǒng)設(shè)計[J].電子設(shè)計工程,2011,19(17):113-116.
[9]彭燕.基于ZigBee的無線傳感器網(wǎng)絡(luò)研究 [J].現(xiàn)代電子技術(shù),2011(5):49-51.
[10]周利娜,周建平,許燕.基于STM32F103C8T6和ZigBee的油井壓力監(jiān)控系統(tǒng)研究[J].現(xiàn)代電子技術(shù),2014(6):38-41.
[11]孫劍,董超,夏繼媛.基于Android的Socket(TCP/ IP)在LED燈光控制系統(tǒng)中的應(yīng)用[J].深圳職業(yè)技術(shù)學(xué)院學(xué)報,2012(5):19-23.
[12]陳浩,張偉.基于java socket的TCP/IP網(wǎng)絡(luò)編程[J].計算機光盤軟件與應(yīng)用,2013(2):35-37.
[13]左丹霞.C#語言開發(fā)中的數(shù)據(jù)庫編程技術(shù)分析[J].通訊世界,2015(19):252-253.
[14]丁凡,周永明.基于STM32和ZigBee的無線校園火災(zāi)報警系統(tǒng)設(shè)計 [J].微型機與應(yīng)用,2012(6): 43-45.
[15]亢雪琳.基于STM32的CAN總線通信設(shè)計[D].長春:吉林大學(xué),2013.
[16]孫曉夢,王志斌.基于TCP的多線程Socket通信實例[J].遼東學(xué)院學(xué)報:自然科學(xué)版,2013(3):178-182.
Design of a ZigBee wireless sensor network node for aquaculture monitoring
HU Yu1,2,HUANG Xiao-hua1,TAO Qi-you1,GUO Gen-xi1,XUE Jia-xiang2
(1.South China Sea Fisheries Research Institute,CAFS Key Lab.of South China Sea Fishery Resources Exploitation&Utilization,Guangzhou 510300,China;2.South China University of Technology,Guangzhou 510640,China)
This paper proposes a wireless environmental monitoring method for aquaculture based on ZigBee technology,and the hardware and software hardware design for the monitoring network and sensor nodes is presented.According to the architecture of the wireless sensor network system and the hardware design plan,appropriate devices are selected to realize the desired functionality in each sensor node.The necessary devices includes the RF ZigBee transceiver,the communications module for the ZigBee parent node,the circuit design for the communications module of the ZigBee child node.The software design for the ZigBee node is also carried out,including the communications software of the ZigBee coordinator device and the ZigBee terminal equipment,and the control software for the terminal equipment.The ability of wireless sensor networks to collect,process,and transmit aquaculture environmental information reliably serves as solid technical support for remote real-time monitoring and control applications by combining sensor technology and ZigBee wireless network technology.
deep water cage;ZigBee;monitoring;wireless sensor network node
TN602
:A
:1674-6236(2017)06-0100-05
2016-05-25稿件編號:201605227
國家科技支撐計劃項目(2011BAD13B11);廣東省科技計劃項目(2013B0020501001);廣東省海洋經(jīng)濟創(chuàng)新發(fā)展區(qū)域示范專項 (GD2013-D01-001,GD2012-C03-002);廣東省省部產(chǎn)學(xué)研項目(2013B090600030)
胡 昱(1982—),男,湖北仙桃人,碩士,助理研究員。研究方向:漁業(yè)裝備信息工程技術(shù)。