基于ZigBee技術(shù)的樹(shù)簇網(wǎng)絡(luò)監(jiān)控系統(tǒng)設(shè)計(jì)
在終端設(shè)備嵌入式軟件中,操作系統(tǒng)模塊主要實(shí)現(xiàn)的是簡(jiǎn)單的任務(wù)輪詢和工作調(diào)度的功能,同時(shí)還需實(shí)現(xiàn)節(jié)點(diǎn)硬件的初始化和功能配置。這個(gè)操作系統(tǒng)模塊不是真正意義上的操作系統(tǒng),而是一個(gè)具有操作系統(tǒng)任務(wù)調(diào)度功能的模塊。該操作系統(tǒng)模塊在Z-Stack中由OSAL組件構(gòu)成。操作系統(tǒng)模塊的任務(wù)調(diào)度具體方式是:首先,為需要實(shí)現(xiàn)的功能建立任務(wù),且每一個(gè)任務(wù)有不同的事件。當(dāng)操作系統(tǒng)運(yùn)行時(shí),會(huì)不間斷地輪詢所有任務(wù)的標(biāo)志位。若標(biāo)志位有效,則表明該任務(wù)有事件發(fā)生,調(diào)用任務(wù)事件處理函數(shù),并在任務(wù)處理函數(shù)中,根據(jù)標(biāo)志位,判斷是什么事件發(fā)生。然后,系統(tǒng)做出對(duì)應(yīng)的操作,最后將標(biāo)志位清零。
3.2 Z-Stack總共默認(rèn)65 000個(gè)設(shè)備入網(wǎng)。為保證網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的地址是唯一的,使用了分布式尋址方案,由父節(jié)點(diǎn)分配子節(jié)點(diǎn)地址。此種算法保證了控制端的數(shù)據(jù)包能夠精確地發(fā)送到指定設(shè)備,子節(jié)點(diǎn)也只能有一個(gè)父節(jié)點(diǎn),有助于網(wǎng)絡(luò)的可測(cè)量性。在網(wǎng)絡(luò)初始化之前,有幾個(gè)參數(shù)需要配置,分別是MAX_DEPTH、MAX_ROUTERS 和MAX_CHILDREN[6]。
MAX_DEPTH決定了網(wǎng)絡(luò)的最大深度。協(xié)調(diào)器在最頂層,位于深度0;它的子節(jié)點(diǎn)位于深度1,依此類推。MAX_CHILDREN決定了一個(gè)路由器或者一個(gè)協(xié)調(diào)器可以處理的最大子節(jié)點(diǎn)個(gè)數(shù)。MAX_ROUTERS決定了一個(gè)路由器或者一個(gè)協(xié)調(diào)器可以連接的最大路由器的個(gè)數(shù)。這個(gè)參數(shù)是 MAX_CHILDREN的一個(gè)子集,終端設(shè)備使用(MAX_CHILDREN-MAX_ROUTERS)剩下的地址空間。圖4為使用自定義棧配置后的網(wǎng)絡(luò)拓?fù)浜凸?jié)點(diǎn)地址分配示意圖。LAYER1最多20個(gè)節(jié)點(diǎn),其中包含6個(gè)路由節(jié)點(diǎn)。
在網(wǎng)絡(luò)初始化過(guò)程中,協(xié)調(diào)器先將自身設(shè)置為一個(gè)簇標(biāo)識(shí)符為0的簇頭,并向臨近的設(shè)備以廣播方式發(fā)送信標(biāo)幀。接收到信標(biāo)幀的設(shè)備(路由器或終端設(shè)備)向簇頭請(qǐng)求加入網(wǎng)絡(luò),如果作為父節(jié)點(diǎn)的協(xié)調(diào)器允許該設(shè)備的加入,則將其作為子節(jié)點(diǎn)加入到它的鄰居表中,同時(shí),請(qǐng)求加入的設(shè)備將協(xié)調(diào)器作為父節(jié)點(diǎn)加入到鄰居表中,成為從設(shè)備。已經(jīng)加入網(wǎng)絡(luò)的路由器也廣播信標(biāo)幀,以這種方式,直到所有設(shè)備都接入網(wǎng)絡(luò)。在接入網(wǎng)絡(luò)的同時(shí),廣播信標(biāo)幀的父節(jié)點(diǎn)會(huì)向接人的子節(jié)點(diǎn)分配唯一的 16位網(wǎng)絡(luò)短地址。圖5是網(wǎng)絡(luò)建立和節(jié)點(diǎn)入網(wǎng)流程。
電容屏相關(guān)文章:電容屏原理
評(píng)論