基于JN5139的智能家居內(nèi)部組網(wǎng)
本文引用地址:http://www.ex-cimer.com/article/158188.htm
3 軟件設(shè)計(jì)
3.1 開(kāi)發(fā)環(huán)境
JN5139的集成開(kāi)發(fā)環(huán)境為CodeBlocks,該軟件是Jennie公司提供的代碼編輯和編譯環(huán)境,它和基于Cygwin的GCC編譯器進(jìn)行連接完成代碼的編譯工作。CodeBlocks是一款開(kāi)源的C/C++開(kāi)發(fā)工具,Jecnnic基于這個(gè)工具對(duì)其擴(kuò)展形成了自己的開(kāi)發(fā)平臺(tái)。另外Jennic還提供易用的下載軟件FlashProgrammer,可將CodeBlocks生成的能夠在JNl539上運(yùn)行的程序下載到電路中。這些開(kāi)發(fā)工具都可在其官方網(wǎng)站上免費(fèi)獲得,從而降低開(kāi)發(fā)成本。
3.2 程序流程
協(xié)調(diào)器/家庭網(wǎng)關(guān)在初始化過(guò)程中,首先進(jìn)行能量掃描和激活掃描信道,如果未發(fā)現(xiàn)合適的信道,則終止建立網(wǎng)絡(luò):如果找到合適的信道,則分配給該網(wǎng)絡(luò)一個(gè)唯一的16位PANID和16位的網(wǎng)絡(luò)地址,并向物理層發(fā)出組網(wǎng)請(qǐng)求,收到確認(rèn)后組網(wǎng)成功。然后,協(xié)調(diào)器/家庭網(wǎng)關(guān)循環(huán)檢測(cè)終端設(shè)備的綁定請(qǐng)求,當(dāng)收到綁定請(qǐng)求時(shí),進(jìn)行接入認(rèn)證,通過(guò)認(rèn)證后進(jìn)行綁定并更新鄰居表。然后接收數(shù)據(jù)并判定數(shù)據(jù)的來(lái)源,如果是外網(wǎng)發(fā)來(lái)的數(shù)據(jù),進(jìn)行協(xié)議轉(zhuǎn)換并處理外網(wǎng)請(qǐng)求;如果為內(nèi)網(wǎng)發(fā)來(lái)的數(shù)據(jù)請(qǐng)求,則接收查詢并發(fā)送需要查詢的數(shù)據(jù)。協(xié)調(diào)器/家庭網(wǎng)關(guān)的程序流程如圖4所示。
終端設(shè)備將可能加入網(wǎng)絡(luò)的協(xié)調(diào)器資料存入自己的鄰居表,包括協(xié)議版本、堆棧規(guī)范、PAN ID和其他可以加入的信息。然后向協(xié)調(diào)器發(fā)出請(qǐng)求信息。如果鄰居表中沒(méi)有合適的協(xié)調(diào)器,則表示入網(wǎng)失敗,終止加入網(wǎng)絡(luò)。如果發(fā)出的請(qǐng)求被批準(zhǔn),會(huì)得到協(xié)調(diào)器分配的一個(gè)16位的網(wǎng)絡(luò)地址,此時(shí)入網(wǎng)成功。終端設(shè)備與協(xié)調(diào)器進(jìn)行綁定操作,終端設(shè)備進(jìn)入查詢狀態(tài),并以一定的時(shí)間間隔查詢協(xié)調(diào)器緩沖區(qū)是否有對(duì)該節(jié)點(diǎn)的數(shù)據(jù)傳輸命令,若有則讀取傳感器數(shù)據(jù)或?qū)刂齐娐钒l(fā)出控制命令。圖5給出終端設(shè)備程序流程圖。
4 結(jié)語(yǔ)
將ZigBee這種低功耗、高可靠性、可擴(kuò)展性強(qiáng)的無(wú)線網(wǎng)絡(luò)應(yīng)用于智能家居內(nèi)部組網(wǎng),避免了各種現(xiàn)場(chǎng)布線,而且可以靈活增加新的家電設(shè)備。系統(tǒng)內(nèi)部組網(wǎng)完成后,可以直接由家庭網(wǎng)關(guān)連接GRPS、INTERNET等外部網(wǎng)絡(luò),實(shí)現(xiàn)各種家電設(shè)備和家居環(huán)境的實(shí)時(shí)遠(yuǎn)程監(jiān)控。
評(píng)論