基于ZigBee的光伏照明控制系統設計
2.3 終端節點(diǎn)硬件設計
終端節點(diǎn)的功能是接收協(xié)調器發(fā)送的指令控制路燈開(kāi)關(guān)。其電源是在監控計算機發(fā)送命令到光伏充電機對路燈供電線(xiàn)纜供電之后提供,因此硬件部分不需要電池后備功能、光伏照明系統中供電電壓為直流220 V,終端節點(diǎn)電源部分采用DC-DC開(kāi)關(guān)電源產(chǎn)生5 V直流供電,路燈開(kāi)關(guān)控制則通過(guò)CC2430的GPIO和三極管控制繼電器實(shí)現。由于CC2430只有引腳P1.O和P1.1具有20 mA的驅動(dòng)能力,而其他引腳最大驅動(dòng)電流為4 mA,所以使用SN74HC04D作為輸出緩沖。其原理圖如圖4所示。本文引用地址:http://dyxdggzs.com/article/157120.htm
3 系統軟件設計
系統軟件主要包括ZigBee協(xié)調器節點(diǎn)程序、路由器節點(diǎn)程序、終端節點(diǎn)程序和監控計算機程序。監控計算機程序實(shí)現對光伏照明系統的監控和數據處理,LED路燈通斷控制,以及與之相連的另外一套光伏發(fā)電系統和環(huán)境監測系統的數據采集和監控。監控計算機與協(xié)調器節點(diǎn)通信通過(guò)二進(jìn)制編碼的方式進(jìn)行通信,每隔5 s發(fā)送1次采集命令。其數據包格式如下:
其中,數據包包頭(HEADER)占2字節,可設置為0x81、Ox82,用于區分是計算機數據包輸出還是數據包輸入;數據長(cháng)度(LENGTH)為1字節;命令類(lèi)型包括充電機數據采集、路燈開(kāi)關(guān)狀態(tài)采集、環(huán)境參數采集等;數據字節數由LENGTH指定;數據CRC校驗占1字節。
ZigBee節點(diǎn)程序是在TI公司提供的ZStack-1.4.3-1.2.1協(xié)議棧的基礎上編寫(xiě)的,可以實(shí)現網(wǎng)絡(luò )建立、節點(diǎn)加入和退出、數據傳輸等功能。該協(xié)議棧將應用層和堆棧層進(jìn)行了分離,提供了類(lèi)似于操作系統的運行機制(OSAL)(主要包括任務(wù)的注冊、初始化、啟動(dòng),任務(wù)間的消息交換,任務(wù)同步,中斷處理,以及時(shí)間管理和內存分配等),具有很好的可移植性。
節點(diǎn)程序流程如圖5所示。當對硬件和協(xié)議棧各層初始化后,采用有限狀態(tài)機以事件輪詢(xún)方式對事件進(jìn)行處理。如果同時(shí)有幾個(gè)事件發(fā)生,則判斷事件優(yōu)先級后逐次處理。該協(xié)議棧提供了豐富的API函數供用戶(hù)調用,這種軟件構架可方便地構造用戶(hù)應用程序。由于對終端節點(diǎn)的供電是由光伏充電機根據監控計算機的命令來(lái)控制,因此在正常情況下終端節點(diǎn)每天都會(huì )加人和退出網(wǎng)絡(luò )。
ZigBee節點(diǎn)之間的通信有兩種尋址方式,分別通過(guò)固定的64位IEEE地址和16位網(wǎng)絡(luò )地址來(lái)尋找網(wǎng)絡(luò )設備。當節點(diǎn)加入ZigBee網(wǎng)絡(luò )時(shí),它可以通過(guò)協(xié)調器隨機獲取唯一的l6位網(wǎng)絡(luò )地址。光伏照明系統要求能按照路燈的編號任意控制其點(diǎn)亮或者關(guān)閉,而要與特定節點(diǎn)通信必須采用IEEE地址,故利用TI公司提供的SmartRF軟件對ZigBee節點(diǎn)的64位IEEE地址進(jìn)行人工分配。協(xié)調器向終端節點(diǎn)傳送數據使用AF_DataReqt-lest()函數實(shí)現,該函數需要節點(diǎn)的網(wǎng)絡(luò )地址作為參數,通過(guò)IEEE地址獲取16位網(wǎng)絡(luò )地址的功能由NLME_GetShortAddr()函數實(shí)現。程序設計中,在應用層添加用戶(hù)所需要的任務(wù),對接收到的事件進(jìn)行處理。節點(diǎn)在啟動(dòng)時(shí)需完成以下工作:初始化CC2430和協(xié)議棧;幫助協(xié)調器節點(diǎn)建立ZigBee網(wǎng)絡(luò ),設置網(wǎng)絡(luò )PAN ID,等待其他節點(diǎn)加入網(wǎng)絡(luò );對監控計算機傳送的命令進(jìn)行解析和轉發(fā);讀取路由器和各個(gè)終端節點(diǎn)發(fā)送的狀態(tài)數據,并轉發(fā)給監控計算機處理。
配置ZigBee設備對象(ZD0)端點(diǎn)時(shí),網(wǎng)內的所有節點(diǎn)其端點(diǎn)ID和端點(diǎn)描述符必須相同,否則節點(diǎn)之間不能進(jìn)行通信。圖5的程序流程主要是針對用戶(hù)事件處理(包括串口事件、數據傳送事件、定時(shí)器事件等),路由器和終端節點(diǎn)的程序設計流程類(lèi)似,分別在用戶(hù)事件中根據協(xié)調
器發(fā)送的命令類(lèi)型完成充電機狀態(tài)數據采集、回傳,以及路燈開(kāi)關(guān)控制。
結語(yǔ)
將ZigBee無(wú)線(xiàn)網(wǎng)絡(luò )用于光伏照明系統控制,具有通信距離遠、成本低,維護方便等優(yōu)點(diǎn),控制路燈總數可達64盞,覆蓋范圍大于300 m,并可以進(jìn)一步擴展。該系統已經(jīng)成功應用于建設部太陽(yáng)能建筑應用示范工程,且通過(guò)建設部驗收。
評論