專利名稱:基于ZigBee的無線測(cè)控網(wǎng)絡(luò)的動(dòng)態(tài)節(jié)點(diǎn)身份實(shí)現(xiàn)方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于ZigBee的無線測(cè)控網(wǎng)絡(luò)的動(dòng)態(tài)節(jié)點(diǎn)身份實(shí)現(xiàn)方法及系統(tǒng),可用于對(duì)由ZigBee技術(shù)構(gòu)建的無線測(cè)控網(wǎng)絡(luò)性能的改善,增加整個(gè)網(wǎng)絡(luò)的靈活性和減小網(wǎng)絡(luò)的整體能耗。
背景技術(shù):
ZigBee技術(shù)因其低速率、低功耗、低成本等特性已經(jīng)被廣泛的應(yīng)用在各個(gè)領(lǐng)域,尤其非常的適合構(gòu)建無線測(cè)控網(wǎng)絡(luò),無線測(cè)控網(wǎng)絡(luò)是由許多部署在監(jiān)測(cè)區(qū)域內(nèi)的微型傳感器節(jié)點(diǎn)組成,利用ZigBee無線通信技術(shù)將所有的節(jié)點(diǎn)組成一個(gè)網(wǎng)絡(luò),各個(gè)節(jié)點(diǎn)采集到的數(shù)據(jù)、通過網(wǎng)絡(luò)傳輸給上位機(jī)以供使用者,使用者也可以將命令傳輸給各個(gè)節(jié)點(diǎn),從而方便了人們對(duì)監(jiān)測(cè)區(qū)域的控制,提高了工作的效率。但是目前的基于ZigBee技術(shù)的無線測(cè)控網(wǎng)絡(luò),節(jié)點(diǎn)類型包括協(xié)調(diào)器、路由器、終端設(shè)備,整個(gè)網(wǎng)絡(luò)只有一個(gè)協(xié)調(diào)器,路由器具有數(shù)據(jù)轉(zhuǎn)發(fā)和路由功能,終端節(jié)點(diǎn)只負(fù)責(zé)采集數(shù)據(jù)并將數(shù)據(jù)發(fā)送給協(xié)調(diào)器,在網(wǎng)絡(luò)組建之初,節(jié)點(diǎn)類型就被規(guī)定好,在網(wǎng)絡(luò)工作期間使用者沒有任何辦法去更改節(jié)點(diǎn)類型,除非重新給節(jié)點(diǎn)燒寫新程序或者用新類型的節(jié)點(diǎn)代替。當(dāng)終端節(jié)點(diǎn)距離所有的路由器太遠(yuǎn)或者工業(yè)現(xiàn)場(chǎng)的通信環(huán)境太惡劣,終端節(jié)點(diǎn)采集的數(shù)據(jù)不能成功發(fā)送出去,造成丟包率的增加,嚴(yán)重影響到整個(gè)網(wǎng)絡(luò)的可靠性。一種解決方法是在終端節(jié)點(diǎn)周圍增加路由器,將數(shù)據(jù)順利的轉(zhuǎn)發(fā)出去,但是這樣會(huì)增加構(gòu)建網(wǎng)絡(luò)的成本,并不是我們所希望的;另一種方法是增加節(jié)點(diǎn)的發(fā)射功率,這種方法雖然可以在短期內(nèi)減小丟包率,但是這樣會(huì)讓節(jié)點(diǎn)的能量很快的消耗掉,通信狀況不好的地方消耗能量多,靠近協(xié)調(diào)器和通信狀況好的地方消耗能量少,造成網(wǎng)絡(luò)能量分布極不均勻。另外終端節(jié)點(diǎn)采集到的數(shù)據(jù)需要周期性的發(fā)送給協(xié)調(diào)器,但是數(shù)據(jù)包只包括幾個(gè)簡(jiǎn)單的數(shù)據(jù)、源節(jié)點(diǎn)的網(wǎng)絡(luò)地址和物理地址,而且每次只是數(shù)據(jù)不一樣,這樣每個(gè)終端節(jié)點(diǎn)需要不停的采集和發(fā)送,會(huì)造成網(wǎng)絡(luò)的通信擁塞現(xiàn)象。
發(fā)明內(nèi)容
本發(fā)明的目的就是為克服現(xiàn)有技術(shù)存在的網(wǎng)絡(luò)中節(jié)點(diǎn)類型不可變以及簡(jiǎn)單的數(shù)據(jù)信息的發(fā)送容易引起網(wǎng)絡(luò)擁塞的缺點(diǎn),提供一種基于ZigBee的無線測(cè)控網(wǎng)絡(luò)的動(dòng)態(tài)節(jié)點(diǎn)身份實(shí)現(xiàn)方法及系統(tǒng),該方法可以靈活的改變每個(gè)路由器節(jié)點(diǎn)為終端節(jié)點(diǎn),也可以靈活的改變每個(gè)終端節(jié)點(diǎn)為路由器節(jié)點(diǎn);去掉多個(gè)數(shù)據(jù)包的冗余重復(fù)信息,將數(shù)據(jù)綜合后再發(fā)送。為實(shí)現(xiàn)上述目的,本發(fā)明采用如下方案一種基于ZigBee的無線測(cè)控網(wǎng)絡(luò)的動(dòng)態(tài)節(jié)點(diǎn)身份實(shí)現(xiàn)方法,包括下列步驟( I)自定義的上位機(jī)串口命令,包括身份改變命令C/EX****(*代表是網(wǎng)絡(luò)地址),串口命令C/CH*林* O代表是網(wǎng)絡(luò)地址);
(2)在協(xié)議棧的應(yīng)用層,每個(gè)節(jié)點(diǎn)用結(jié)構(gòu)體形式存儲(chǔ)其他節(jié)點(diǎn)的信息。在節(jié)點(diǎn)加入網(wǎng)絡(luò)時(shí)或者節(jié)點(diǎn)身份改變后會(huì)廣播具有自己的物理地址、網(wǎng)絡(luò)地址和節(jié)點(diǎn)類型信息的數(shù)據(jù)包給網(wǎng)內(nèi)所有節(jié)點(diǎn),接收到此數(shù)據(jù)包的節(jié)點(diǎn)則將節(jié)點(diǎn)類型、物理地址和網(wǎng)絡(luò)地址存放到結(jié)構(gòu)體內(nèi)。(3)路由器節(jié)點(diǎn)接收到節(jié)點(diǎn)身份改變的命令(C/EX****),則停止路由轉(zhuǎn)發(fā)功能,開始采集數(shù)據(jù);終端節(jié)點(diǎn)接收到節(jié)點(diǎn)身份改變命令,則停止采集數(shù)據(jù),開啟路由轉(zhuǎn)發(fā)功能;(4)通過串口命令C/CH****指定的路由器節(jié)點(diǎn),此類路由器節(jié)點(diǎn)的特征是其子節(jié)點(diǎn)中全是終端節(jié)點(diǎn),這類路由器節(jié)點(diǎn)對(duì)于接收到的數(shù)據(jù)信息按照源地址不同分別存儲(chǔ)起 來,待來自同一源地址的數(shù)據(jù)信息達(dá)到10次時(shí),則將10個(gè)數(shù)據(jù)信息一次全發(fā)送給協(xié)調(diào)器。如步驟(2)中,每個(gè)節(jié)點(diǎn)在協(xié)議棧的應(yīng)用層定義一個(gè)結(jié)構(gòu)體用以存儲(chǔ)其它網(wǎng)內(nèi)節(jié)點(diǎn)的信息。結(jié)構(gòu)體內(nèi)的成員包括路由節(jié)點(diǎn)個(gè)數(shù)routercount,用來存儲(chǔ)網(wǎng)內(nèi)每個(gè)路由節(jié)點(diǎn)物理地址和網(wǎng)絡(luò)地址的三維數(shù)組,終端節(jié)點(diǎn)個(gè)數(shù)RFDcount,用來存儲(chǔ)網(wǎng)內(nèi)每個(gè)終端節(jié)點(diǎn)物理地址和網(wǎng)絡(luò)地址的三維數(shù)組。當(dāng)節(jié)點(diǎn)加入網(wǎng)絡(luò)成功會(huì)廣播內(nèi)容為自己的節(jié)點(diǎn)類型、物理地址、網(wǎng)絡(luò)地址的數(shù)據(jù)包給網(wǎng)內(nèi)所有其他節(jié)點(diǎn);另外當(dāng)路由器節(jié)點(diǎn)和終端節(jié)點(diǎn)接收到節(jié)點(diǎn)身份轉(zhuǎn)換的命令后,如果轉(zhuǎn)換成功也會(huì)廣播自己轉(zhuǎn)換后的節(jié)點(diǎn)類型、物理地址和網(wǎng)絡(luò)地址給其他節(jié)點(diǎn),以便其他節(jié)點(diǎn)及時(shí)更新節(jié)點(diǎn)類型信息。如步驟(3)中自定義串口命令,命令格式為C/EX****,協(xié)調(diào)器按照命令里的網(wǎng)絡(luò)地址,將此命令單播給目的節(jié)點(diǎn),目的節(jié)點(diǎn)會(huì)轉(zhuǎn)換自己的節(jié)點(diǎn)身份,具體步驟是Ca)目的節(jié)點(diǎn)是路由器,全局變量Exchang為0,接收到命令后,Exchange賦值為I ;同時(shí)發(fā)送節(jié)點(diǎn)改變的信息給網(wǎng)內(nèi)所有節(jié)點(diǎn),發(fā)送函數(shù)為SendstateMessage (),發(fā)送的數(shù)據(jù)內(nèi)容是字符類型的,為“excRFD+物理地址+網(wǎng)絡(luò)地址”;(b)其他路由器節(jié)點(diǎn)和終端節(jié)點(diǎn)接收到上述數(shù)據(jù)信息,如果數(shù)據(jù)信息的前六個(gè)字符是excRFD,則從存儲(chǔ)網(wǎng)內(nèi)路由器節(jié)點(diǎn)信息的結(jié)構(gòu)體中找出與excRFD后面緊跟的8位物理地址完全相同的這一條信息,進(jìn)行刪除操作,然后在存儲(chǔ)網(wǎng)內(nèi)終端節(jié)點(diǎn)信息的結(jié)構(gòu)體添加一條新的終端節(jié)點(diǎn)信息;(C)協(xié)調(diào)器接收到(a)中所述的數(shù)據(jù)信息,則做(b)中同樣的操作,另外,會(huì)調(diào)用串口寫入函數(shù) halwrite (),內(nèi)容是“網(wǎng)絡(luò)地址+exchanged RFD successfully”。如步驟⑷中如果路由器節(jié)點(diǎn)的子節(jié)點(diǎn)中全都是終端節(jié)點(diǎn),則上位可發(fā)送自定義串口命令給這樣的路由器節(jié)點(diǎn),命令格式為C/CH**** (*代表網(wǎng)絡(luò)地址),協(xié)調(diào)器會(huì)將此命令發(fā)送給網(wǎng)絡(luò)地址為此命令內(nèi)的網(wǎng)絡(luò)地址的路由器節(jié)點(diǎn),接收到此命令后,當(dāng)接收到其他節(jié)點(diǎn)發(fā)送來的數(shù)據(jù)信息時(shí),如果信息是采集的數(shù)據(jù)則按照源地址不同存儲(chǔ)起來,當(dāng)來自同一源地址的數(shù)據(jù)信息達(dá)到10條時(shí),則將此10條信息和源節(jié)點(diǎn)的網(wǎng)絡(luò)地址組成的數(shù)據(jù)包發(fā)送給協(xié)調(diào)器,由協(xié)調(diào)器上傳到上位機(jī)。一種基于ZigBee的無線測(cè)控網(wǎng)絡(luò)的動(dòng)態(tài)節(jié)點(diǎn)身份實(shí)現(xiàn)系統(tǒng),它包括監(jiān)控終端,監(jiān)控終端通過串口與Zigbee網(wǎng)絡(luò)協(xié)調(diào)器監(jiān)控終端通信;若干路由器,若干終端節(jié)點(diǎn)分別與離自己最近的路由器進(jìn)行通信,從而構(gòu)成樹形Zigbee網(wǎng)絡(luò);監(jiān)控終端通過指令使各終端節(jié)點(diǎn)身份在路由器與終端節(jié)點(diǎn)之間轉(zhuǎn)換。本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于本發(fā)明可以靈活的改變每個(gè)路由器節(jié)點(diǎn)為終端節(jié)點(diǎn),也可以靈活的改變每個(gè)終端節(jié)點(diǎn)為路由器節(jié)點(diǎn);對(duì)于終端節(jié)點(diǎn)采集到的信息可以將10次數(shù)據(jù)綜合后再發(fā)送,大大降低了網(wǎng)絡(luò)擁塞的現(xiàn)象,提高了網(wǎng)絡(luò)的效率。本發(fā)明實(shí)現(xiàn)了節(jié)點(diǎn)身份的靈活轉(zhuǎn)換,避免了一些節(jié)點(diǎn)因?yàn)橥ㄐ怒h(huán)境惡劣和距離其他路由器節(jié)點(diǎn)遠(yuǎn)而成為孤點(diǎn)的情況,增加了網(wǎng)絡(luò)的可靠性。解決了路由節(jié)點(diǎn)由于轉(zhuǎn)發(fā)數(shù)據(jù)耗能多,過早的成為死亡節(jié)點(diǎn)的現(xiàn)象;同時(shí)采用了數(shù)據(jù)綜合的方法,減少了網(wǎng)絡(luò)的冗余信息,對(duì)數(shù)據(jù)進(jìn)行綜合,減輕了網(wǎng)絡(luò)的傳輸擁塞現(xiàn)象,降低數(shù)據(jù)的傳輸延遲,節(jié)約了節(jié)點(diǎn)的能量。解決了現(xiàn)有ZigBee無線測(cè)控網(wǎng)絡(luò)丟包率大,能耗大的問題。本發(fā)明可有效的在各種應(yīng)用場(chǎng)景下的ZigBee無線測(cè)控網(wǎng)絡(luò)中。
圖I為原網(wǎng)絡(luò)拓?fù)鋱D;圖2執(zhí)行C/EX0001的網(wǎng)絡(luò)拓?fù)渥兓瘓D;圖3為串口命令為C/EX0001的工作流程圖; 圖4為串口命令為C/CH0001的工作流程圖;圖5為此方法應(yīng)用在無線測(cè)控網(wǎng)絡(luò)中的示意圖。
具體實(shí)施例方式如圖I-圖5所示,本發(fā)明的具體實(shí)施方法如下假設(shè)網(wǎng)絡(luò)拓?fù)鋱D如圖I所示,其中有網(wǎng)絡(luò)地址為0001的路由器和網(wǎng)絡(luò)地址分別為0002,0004的終端,這兩個(gè)終端采集的數(shù)據(jù)都通過0001轉(zhuǎn)發(fā)給協(xié)調(diào)器。當(dāng)0001和0002之間的通信出現(xiàn)問題,如圖2所示,用虛線代表兩者之間不能進(jìn)行正常通信,而且0002距離其他路由器也都比較遠(yuǎn),這時(shí)上位機(jī)無法接收到來自0002的數(shù)據(jù)。上位機(jī)發(fā)送串口命令C/EX0004 ;網(wǎng)絡(luò)地址為0004的終端節(jié)點(diǎn)接收到,具體的處理過程如圖3中的工作流程圖所示,Exchange原先為0,接收到命令后更改為I。一方面發(fā)送包括本節(jié)點(diǎn)新類型、物理地址網(wǎng)絡(luò)地址的數(shù)據(jù)包給所有網(wǎng)內(nèi)節(jié)點(diǎn),比如網(wǎng)絡(luò)地址為0002的節(jié)點(diǎn)接收到此信息,存儲(chǔ)節(jié)點(diǎn)信息的結(jié)構(gòu)體變量為JoinNode,記錄終端個(gè)數(shù)的成員變量JoinNode. RFDcount減去I,從JoinNode. RFDLaddr中刪除0004的物理地址,JoinNode. RFDSaddr中刪除0004的網(wǎng)絡(luò)地址,然后記錄路由器個(gè)數(shù)的成員變量JoinNode.Routercount 加 I, JoinNode. RouterLaddr 中添加0004 的物理地址,JoinNode. RouterSaddr中添加0004的網(wǎng)絡(luò)地址;另一方面不再執(zhí)行數(shù)據(jù)采集函數(shù),而是在接收到數(shù)據(jù)信息后。,如果需要轉(zhuǎn)發(fā),則執(zhí)行轉(zhuǎn)發(fā)功能函數(shù)。這樣,如圖2所示,0004成為新的路由器節(jié)點(diǎn),0002可以與0004通信,從而將數(shù)據(jù)轉(zhuǎn)發(fā)出去。同理,如果0004需要轉(zhuǎn)換回終端身份,則發(fā)送C/EX0004后,如圖3所示,Exchange被賦值為0,執(zhí)行終端功能,發(fā)送本節(jié)點(diǎn)新類型、物理地址網(wǎng)絡(luò)地址的數(shù)據(jù)包給所有網(wǎng)內(nèi)節(jié)點(diǎn),比如網(wǎng)絡(luò)地址為0002的節(jié)點(diǎn)接收到此信息,存儲(chǔ)節(jié)點(diǎn)信息的結(jié)構(gòu)體變量為JoinNode,記錄終端個(gè)數(shù)的成員變量JoinNode. Routercount減去I,從JoinNode. RouterLaddr中刪除0004的物理地址,JoinNode. RouterSaddr中刪除0004的網(wǎng)絡(luò)地址,然后記錄路由器個(gè)數(shù)的成員變量JoinNode. RFDcount加I, JoinNode. RFDLaddr中添加0004的物理地址,JoinNode. RFDSaddr中添加0004的網(wǎng)絡(luò)地址。如果需要如圖I中的網(wǎng)絡(luò)地址為0001的路由器將子節(jié)點(diǎn)的數(shù)據(jù)綜合10次后再發(fā)送給協(xié)調(diào)器,則發(fā)送串口命令C/CH0001,執(zhí)行流程圖如圖4所示,網(wǎng)絡(luò)地址為OOOl的節(jié)點(diǎn)接收到此命令后,先判斷是否子節(jié)點(diǎn)全部是終端節(jié)點(diǎn),可以從圖I中看出0002和0004是終端并且是0001的子節(jié)點(diǎn),如果給兩個(gè)子節(jié)點(diǎn)編號(hào),網(wǎng)絡(luò)地址為0002的終端編號(hào)為01,網(wǎng)絡(luò)地址為0004的終端編號(hào)為02,然后由0002每傳送給0001 —次數(shù)據(jù),變量countOl加1,數(shù)據(jù)被存儲(chǔ)在二維數(shù)組Databuf
[countOl]中,第一維中存放編號(hào)為01的節(jié)點(diǎn)的網(wǎng)絡(luò)地址,當(dāng)countOl等于10,則將Databuf中的第二維的數(shù)據(jù)和數(shù)據(jù)來源節(jié)點(diǎn)的網(wǎng)絡(luò)地址和物理地址一起發(fā)送給協(xié)調(diào)器。CountOl清零,Dadabuf也清零。0004的數(shù)據(jù)的處理也同上一樣。如圖5所示,是一個(gè)基于Zigbee的無線測(cè)控網(wǎng)絡(luò)示意圖。上位機(jī)即監(jiān)控終端可以通過串口與zigbee網(wǎng)絡(luò)的協(xié)調(diào)器進(jìn)行通信;可以從圖5得知zigbee網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)是樹形的,協(xié)調(diào)器與兩個(gè)路由器通信,終端節(jié)點(diǎn)分別與離自己最近的路由器進(jìn)行通信。上位機(jī)發(fā)送命令C/EX0002,則網(wǎng)絡(luò)地址為0002的路由器會(huì)接收到該命令,路由器會(huì)執(zhí)行如圖3所示的的操作,之后成為一個(gè)終端,執(zhí)行終端功能。而如果上位機(jī)發(fā)送C/EX0003,則網(wǎng)絡(luò)地址為0003的終端會(huì)收到此消息,同理,亦會(huì)按照?qǐng)D3的流程執(zhí)行相關(guān)的操作,開始履行路由器功 倉泛。
權(quán)利要求
1.一種基于ZigBee的無線測(cè)控網(wǎng)絡(luò)的動(dòng)態(tài)節(jié)點(diǎn)身份實(shí)現(xiàn)方法,其特征是,包括下列步驟 (1)自定義上位機(jī)串口命令,包括身份改變命令C/EX****,其中*代表是網(wǎng)絡(luò)地址;串口命令C/CH#林,其中*代表是網(wǎng)絡(luò)地址; (2)在協(xié)議棧的應(yīng)用層,每個(gè)節(jié)點(diǎn)采用結(jié)構(gòu)體形式存儲(chǔ)其他節(jié)點(diǎn)的信息;在節(jié)點(diǎn)加入網(wǎng)絡(luò)時(shí)或者節(jié)點(diǎn)身份改變后會(huì)廣播具有自己的物理地址、網(wǎng)絡(luò)地址和節(jié)點(diǎn)類型信息的數(shù)據(jù)包給網(wǎng)內(nèi)所有節(jié)點(diǎn),接收到此數(shù)據(jù)包的節(jié)點(diǎn)則將節(jié)點(diǎn)類型、物理地址和網(wǎng)絡(luò)地址存放到結(jié)構(gòu)體內(nèi); (3)路由器節(jié)點(diǎn)接收到節(jié)點(diǎn)身份改變的命令C/EX****時(shí),則停止路由轉(zhuǎn)發(fā)功能,開始采集數(shù)據(jù);終端節(jié)點(diǎn)接收到節(jié)點(diǎn)身份改變命令,則停止采集數(shù)據(jù),開啟路由轉(zhuǎn)發(fā)功能; (4)通過串口命令C/CH****指定的路由器節(jié)點(diǎn),此類路由器節(jié)點(diǎn)的特征是其子節(jié)點(diǎn)中全是終端節(jié)點(diǎn),這類路由器節(jié)點(diǎn)對(duì)于接收到的數(shù)據(jù)信息按照源地址不同分別存儲(chǔ)起來,待來自同一源地址的數(shù)據(jù)信息達(dá)到設(shè)定次時(shí),則將這批數(shù)據(jù)信息一次全發(fā)送給協(xié)調(diào)器。
2.根據(jù)權(quán)利要求I所述的基于ZigBee的無線測(cè)控網(wǎng)絡(luò)的動(dòng)態(tài)節(jié)點(diǎn)身份實(shí)現(xiàn)方法,其特征是,所述每個(gè)節(jié)點(diǎn)的結(jié)構(gòu)體內(nèi)的成員包括路由節(jié)點(diǎn)個(gè)數(shù)Routercount,用來存儲(chǔ)網(wǎng)內(nèi)每個(gè)路由節(jié)點(diǎn)物理地址和網(wǎng)絡(luò)地址的二維數(shù)組,終端節(jié)點(diǎn)個(gè)數(shù)RFDcount,用來存儲(chǔ)網(wǎng)內(nèi)每個(gè)終端節(jié)點(diǎn)物理地址和網(wǎng)絡(luò)地址的二維數(shù)組;當(dāng)節(jié)點(diǎn)加入網(wǎng)絡(luò)成功會(huì)廣播內(nèi)容為自己的節(jié)點(diǎn)類型、物理地址、網(wǎng)絡(luò)地址的數(shù)據(jù)包給網(wǎng)內(nèi)所有其他節(jié)點(diǎn);另外當(dāng)路由器節(jié)點(diǎn)和終端節(jié)點(diǎn)接收到節(jié)點(diǎn)身份轉(zhuǎn)換的命令后,如果轉(zhuǎn)換成功也會(huì)廣播自己轉(zhuǎn)換后的節(jié)點(diǎn)類型、物理地址和網(wǎng)絡(luò)地址給其他節(jié)點(diǎn),以便其他節(jié)點(diǎn)及時(shí)更新節(jié)點(diǎn)類型信息。
3.根據(jù)權(quán)利要求I所述的基于ZigBee的無線測(cè)控網(wǎng)絡(luò)的動(dòng)態(tài)節(jié)點(diǎn)身份實(shí)現(xiàn)方法,其特征是,所述協(xié)調(diào)器按照命令里的網(wǎng)絡(luò)地址,將此命令單播給目的節(jié)點(diǎn),目的節(jié)點(diǎn)會(huì)轉(zhuǎn)換自己的節(jié)點(diǎn)身份,具體步驟是 (a)目的節(jié)點(diǎn)是路由器,全局變量Exchang為0,接收到命令后,Exchange賦值為I;同時(shí)發(fā)送節(jié)點(diǎn)改變的信息給網(wǎng)內(nèi)所有節(jié)點(diǎn),發(fā)送函數(shù)為SendstateMessage (),發(fā)送的數(shù)據(jù)內(nèi)容是字符類型的,為“excRFD+物理地址+網(wǎng)絡(luò)地址”; (b)其他路由器節(jié)點(diǎn)和終端節(jié)點(diǎn)接收到上述數(shù)據(jù)信息,如果數(shù)據(jù)信息的前六個(gè)字符是excRFD,則從存儲(chǔ)網(wǎng)內(nèi)路由器節(jié)點(diǎn)信息的結(jié)構(gòu)體中找出與excRFD后面緊跟的8位物理地址完全相同的這一條信息,進(jìn)行刪除操作,然后在存儲(chǔ)網(wǎng)內(nèi)終端節(jié)點(diǎn)信息的結(jié)構(gòu)體添加一條新的終端節(jié)點(diǎn)信息; (C)協(xié)調(diào)器接收到(a)中所述的數(shù)據(jù)信息,則做(b)中同樣的操作,另外,會(huì)調(diào)用串口寫入函數(shù) halwrite (),內(nèi)容是“網(wǎng)絡(luò)地址+exchanged RFD successfully”。
4.根據(jù)權(quán)利要求I所述的基于ZigBee的無線測(cè)控網(wǎng)絡(luò)的動(dòng)態(tài)節(jié)點(diǎn)身份實(shí)現(xiàn)方法,其特征是,如果路由器節(jié)點(diǎn)的子節(jié)點(diǎn)中全都是終端節(jié)點(diǎn),則上位機(jī)發(fā)送自定義串口命令給這樣的路由器節(jié)點(diǎn),命令格式為C/CH****,協(xié)調(diào)器會(huì)將此命令發(fā)送給網(wǎng)絡(luò)地址為此命令內(nèi)的網(wǎng)絡(luò)地址的路由器節(jié)點(diǎn),接收到此命令后,當(dāng)接收到其他節(jié)點(diǎn)發(fā)送來的數(shù)據(jù)信息時(shí),如果信息是采集的數(shù)據(jù)則按照源地址不同存儲(chǔ)起來,當(dāng)來自同一源地址的數(shù)據(jù)信息達(dá)到10條時(shí),則將此10條信息和源節(jié)點(diǎn)的網(wǎng)絡(luò)地址組成的數(shù)據(jù)包發(fā)送給協(xié)調(diào)器,由協(xié)調(diào)器上傳到上位機(jī)。
5.一種權(quán)利要求I所述基于ZigBee的無線測(cè)控網(wǎng)絡(luò)的動(dòng)態(tài)節(jié)點(diǎn)身份實(shí)現(xiàn)方法用系統(tǒng),其特征是,它包括監(jiān)控終端,監(jiān)控終端通過串口與Zigbee網(wǎng)絡(luò)協(xié)調(diào)器監(jiān)控終端通信;若干路由器,若干終端節(jié)點(diǎn)分別與離自己最近的路由器進(jìn)行通信,從而構(gòu)成樹形Zigbee網(wǎng)絡(luò); 監(jiān)控終端通過指令使各終端節(jié)點(diǎn)身份在路由器與終端節(jié)點(diǎn)之間轉(zhuǎn)換。
全文摘要
本發(fā)明公開了一種基于ZigBee的無線測(cè)控網(wǎng)絡(luò)的動(dòng)態(tài)節(jié)點(diǎn)身份實(shí)現(xiàn)方法及系統(tǒng),包括下列步驟(1)自定義的上位機(jī)串口命令,包括C/EX****,C/CH****;(2)在協(xié)議棧的應(yīng)用層,每個(gè)節(jié)點(diǎn)用結(jié)構(gòu)體形式存儲(chǔ)其他節(jié)點(diǎn)的信息;(3)路由器節(jié)點(diǎn)接收到節(jié)點(diǎn)身份改變的命令,則停止路由轉(zhuǎn)發(fā)功能,開始采集數(shù)據(jù);終端節(jié)點(diǎn)接收到節(jié)點(diǎn)身份改變命令,則停止采集數(shù)據(jù),開啟路由轉(zhuǎn)發(fā)功能;(4)通過串口命令指定的路由器節(jié)點(diǎn),對(duì)于接收到的數(shù)據(jù)信息按照源地址不同分別存儲(chǔ)起來,待來自同一源地址的數(shù)據(jù)信息達(dá)到10次時(shí),則將10個(gè)數(shù)據(jù)信息一次全發(fā)送給協(xié)調(diào)器。本發(fā)明增加了網(wǎng)絡(luò)的可靠性,減輕了網(wǎng)絡(luò)的傳輸擁塞現(xiàn)象,降低數(shù)據(jù)的傳輸延遲,節(jié)約了節(jié)點(diǎn)的能量。
文檔編號(hào)H04L29/08GK102664962SQ201210146550
公開日2012年9月12日 申請(qǐng)日期2012年5月11日 優(yōu)先權(quán)日2012年5月11日
發(fā)明者侯萌, 徐元, 楊秀蔚, 牟偉清, 邱書波 申請(qǐng)人:山東輕工業(yè)學(xué)院