本發(fā)明涉及網(wǎng)絡(luò)通信
技術(shù)領(lǐng)域:
:,具體涉及一種可提高基于電力線通信的點(diǎn)到多點(diǎn)通信系統(tǒng)數(shù)據(jù)傳輸?shù)目煽啃耘c穩(wěn)定性的多址接入方法。
背景技術(shù):
::通信設(shè)備的監(jiān)控系統(tǒng)對(duì)于保障可靠的通訊鏈路具有重要意義。自20世紀(jì)80年代起,現(xiàn)場(chǎng)總線因其可靠性強(qiáng)/通信快捷、兼容性廣等一系列優(yōu)勢(shì)在工業(yè)自動(dòng)化控制中得以廣泛應(yīng)用。目前各種設(shè)備監(jiān)控管理系統(tǒng)和現(xiàn)場(chǎng)總線設(shè)備種類繁多,可以滿足各行業(yè)的需要。但在一些空間有限的應(yīng)用場(chǎng)景,現(xiàn)場(chǎng)總線技術(shù)也存在著布線難度高、傳輸速率受限、不易維護(hù)的問題。電力線載波技術(shù)是指利用已有的配電網(wǎng)作為傳輸媒介,進(jìn)行載波傳輸?shù)囊环N通信方式,該技術(shù)將通信信號(hào)通過耦合電路耦合到電力線上,實(shí)現(xiàn)數(shù)據(jù)傳遞和信息交換。電力線載波通信技術(shù)借助電力線進(jìn)行數(shù)據(jù)傳輸,不需要重新布線,在家庭上網(wǎng)和物聯(lián)網(wǎng)領(lǐng)域得到了廣泛的應(yīng)用。目前電力線通信技術(shù)在處理多節(jié)點(diǎn)通信時(shí),一般采用csma/ca或者tdma。csma/ca處理解決多節(jié)點(diǎn)通信問題時(shí)的方法是,當(dāng)一個(gè)節(jié)點(diǎn)想發(fā)送數(shù)據(jù)時(shí),先偵聽信道,如果信道忙,則隨機(jī)等待一個(gè)時(shí)間,然后再次偵聽信道,直到信道空閑。顯然,這種方式延時(shí)是不可預(yù)測(cè)的,不能滿足設(shè)備監(jiān)控實(shí)時(shí)性的需求。而tdma模式是一種基于時(shí)隙的信道分配方案,把時(shí)間分割成互不重疊的時(shí)段(幀),再將幀分割成互不重疊的時(shí)隙(信道)與用戶具有一一對(duì)應(yīng)關(guān)系,依據(jù)時(shí)隙區(qū)分來自不同地址的用戶信號(hào),從而完成多址接入。但電力線信道由于環(huán)境惡劣,丟包較多。傳統(tǒng)的tdma所使用的基于時(shí)隙的方式有可能因?yàn)橹匾獢?shù)據(jù)丟失而使系統(tǒng)處于不正常的工作狀態(tài),不適合于設(shè)備監(jiān)控這種應(yīng)用場(chǎng)景。技術(shù)實(shí)現(xiàn)要素:為了克服上述現(xiàn)有技術(shù)的不足,本發(fā)明的目的是提供一種提高數(shù)據(jù)傳輸?shù)目煽啃耘c穩(wěn)定性的多址接入方法,對(duì)傳統(tǒng)tdma方式進(jìn)行改進(jìn),使用可變數(shù)據(jù)長(zhǎng)度與動(dòng)態(tài)優(yōu)先級(jí)相結(jié)合的輪詢方法實(shí)現(xiàn)點(diǎn)到多點(diǎn)通信,提高了數(shù)據(jù)通信的可靠性與穩(wěn)定性,并支持入網(wǎng)設(shè)備的動(dòng)態(tài)入網(wǎng)與退網(wǎng),從而可以將電力線通信技術(shù)應(yīng)用到設(shè)備監(jiān)控領(lǐng)域。為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:一種提高數(shù)據(jù)傳輸?shù)目煽啃耘c穩(wěn)定性的多址接入方法,包括以下步驟:1)通信主節(jié)點(diǎn)和n個(gè)通信從節(jié)點(diǎn)通過電力線信道組成單總線拓?fù)浣Y(jié)構(gòu);所述的通信主節(jié)點(diǎn)為中心監(jiān)控節(jié)點(diǎn),負(fù)責(zé)對(duì)各個(gè)通信從節(jié)點(diǎn)的網(wǎng)絡(luò)狀態(tài)信息進(jìn)行實(shí)時(shí)數(shù)據(jù)采集;通信從節(jié)點(diǎn)為被監(jiān)控節(jié)點(diǎn),在特定時(shí)刻向通信主節(jié)點(diǎn)發(fā)送自身的網(wǎng)絡(luò)狀態(tài)信息。通信主節(jié)點(diǎn)初始化后向總線上發(fā)送廣播入網(wǎng)消息,總線上的通信從節(jié)點(diǎn)監(jiān)聽到入網(wǎng)廣播后,進(jìn)行應(yīng)答入網(wǎng),進(jìn)入就緒狀態(tài)。2)通信主節(jié)點(diǎn)將總線上的所有入網(wǎng)通信從節(jié)點(diǎn)劃分為n個(gè)優(yōu)先級(jí),每一個(gè)優(yōu)先級(jí)有且僅有一個(gè)通信從節(jié)點(diǎn),通信主節(jié)點(diǎn)按照優(yōu)先級(jí)對(duì)總線上的所有通信從節(jié)點(diǎn)進(jìn)行輪詢?cè)L問;3)通信從節(jié)點(diǎn)被通信主節(jié)點(diǎn)輪詢到時(shí),可根據(jù)具體情況選擇向通信主節(jié)點(diǎn)發(fā)送監(jiān)控?cái)?shù)據(jù)或者退網(wǎng)申請(qǐng)。如有數(shù)據(jù)要發(fā)送,則向通信主節(jié)點(diǎn)發(fā)送監(jiān)控?cái)?shù)據(jù),并在數(shù)據(jù)發(fā)送完畢時(shí),對(duì)通信主節(jié)點(diǎn)進(jìn)行應(yīng)答,應(yīng)答信息中包含本次輪詢時(shí)向通信主節(jié)點(diǎn)發(fā)送的數(shù)據(jù)長(zhǎng)度。如發(fā)送退網(wǎng)申請(qǐng),則待通信主節(jié)點(diǎn)應(yīng)答后,進(jìn)入掛起狀態(tài);4)通信主節(jié)點(diǎn)接收到應(yīng)答信號(hào)并處理后,將再次發(fā)送廣播入網(wǎng)消息。新加入的或掛起狀態(tài)的通信從節(jié)點(diǎn)如需入網(wǎng)則監(jiān)聽到入網(wǎng)廣播可執(zhí)行新的入網(wǎng)操作,如無入網(wǎng)請(qǐng)求,則通信主節(jié)點(diǎn)輪詢下一個(gè)優(yōu)先級(jí)高的通信從節(jié)點(diǎn);5)當(dāng)通信主節(jié)點(diǎn)輪詢完所有在網(wǎng)通信從節(jié)點(diǎn),根據(jù)本次輪詢所有通信從節(jié)點(diǎn)發(fā)送數(shù)據(jù)量確定下一次輪詢通信從節(jié)點(diǎn)的優(yōu)先級(jí)。所述的步驟1)中通信主節(jié)點(diǎn)和通信從節(jié)點(diǎn)在進(jìn)行初始化操作之后,通信主節(jié)點(diǎn)會(huì)向總線上發(fā)送入網(wǎng)廣播,通信從節(jié)點(diǎn)在監(jiān)聽到入網(wǎng)廣播后會(huì)進(jìn)行應(yīng)答。為了控制指令的可靠傳輸,入網(wǎng)廣播消息與通信從節(jié)點(diǎn)應(yīng)答消息等重要消息的發(fā)送采用獨(dú)立的信令信道,信令信道與數(shù)據(jù)傳輸通道采用不同的頻帶寬度,這不僅保證了重要信息的可靠傳輸,也保證了當(dāng)有通信從節(jié)點(diǎn)動(dòng)態(tài)加入時(shí),其他通信從節(jié)點(diǎn)監(jiān)控?cái)?shù)據(jù)的傳輸不被干擾。所述的步驟2)中通信主節(jié)點(diǎn)將總線上的所有入網(wǎng)通信從節(jié)點(diǎn)劃分為n個(gè)優(yōu)先級(jí),在通信主節(jié)點(diǎn)進(jìn)行初始化時(shí),會(huì)建立兩個(gè)存儲(chǔ)表:就緒表和掛起表。其中就緒表中有整型變量noderdygrp與整型數(shù)組noderdytable[]。數(shù)組noderdytable[]中包括了每一個(gè)優(yōu)先級(jí)是否有通信從節(jié)點(diǎn)就緒信息;在noderdygrp中,通信從節(jié)點(diǎn)按照優(yōu)先級(jí)分組,8個(gè)通信從節(jié)點(diǎn)為一組。noderdygrp中每一位標(biāo)明八組通信從節(jié)點(diǎn)中每一組是否有通信從節(jié)點(diǎn)進(jìn)入就緒態(tài)。掛起表包含了退網(wǎng)通信從節(jié)點(diǎn)的地址信息。當(dāng)有一個(gè)新的通信從節(jié)點(diǎn)入網(wǎng)時(shí),通信主節(jié)點(diǎn)根據(jù)優(yōu)先級(jí)規(guī)則為此從節(jié)點(diǎn)分配一優(yōu)先級(jí)值,并將此從節(jié)點(diǎn)注冊(cè)到就緒表中,通信主節(jié)點(diǎn)從就緒表中選取最高優(yōu)先級(jí)的通信從節(jié)點(diǎn),進(jìn)行輪詢,并修改就緒表,注銷該節(jié)點(diǎn)以便于查找次優(yōu)先級(jí)的通信從節(jié)點(diǎn)。輪詢完畢后,通信主節(jié)點(diǎn)恢復(fù)原有的就緒表,進(jìn)行下一次的輪詢。為了使通信主節(jié)點(diǎn)快速選取優(yōu)先級(jí)最高的通信從節(jié)點(diǎn),使用空間換時(shí)間算法,對(duì)就緒表中noderdytable[]變量各個(gè)優(yōu)先級(jí)是否有通信從節(jié)點(diǎn)就緒的各種可能情況進(jìn)行窮舉,然后針對(duì)每種情況,進(jìn)行演算就緒表中最高優(yōu)先級(jí)的通信從節(jié)點(diǎn),將演算結(jié)果保存在數(shù)組lookuptable[256]中,選取最高優(yōu)先級(jí)從節(jié)點(diǎn)如下方式:y=lookuptable[noderdygrp];x=lookuptable[noderdytable[y]];prio=y<<3+x;此算法時(shí)間復(fù)雜度為o(1),滿足了系統(tǒng)對(duì)實(shí)時(shí)性的需求。所述的步驟3)中通信從節(jié)點(diǎn)被通信主節(jié)點(diǎn)輪詢到時(shí),根據(jù)具體情況選擇向通信主節(jié)點(diǎn)發(fā)送監(jiān)控?cái)?shù)據(jù)或者退網(wǎng)申請(qǐng)。當(dāng)通信從節(jié)點(diǎn)需發(fā)送監(jiān)控?cái)?shù)據(jù)時(shí),其發(fā)送數(shù)據(jù)長(zhǎng)度由該從節(jié)點(diǎn)根據(jù)實(shí)際情況自行選擇,沒有限制。當(dāng)數(shù)據(jù)發(fā)送完畢,該通信從節(jié)點(diǎn)需向通信主節(jié)點(diǎn)發(fā)送應(yīng)答信息,應(yīng)答信息中包含了本次該從節(jié)點(diǎn)發(fā)送的數(shù)據(jù)總長(zhǎng)度,通信主節(jié)點(diǎn)根據(jù)此信息進(jìn)行優(yōu)先級(jí)的制定,并對(duì)此數(shù)據(jù)信息與實(shí)際收到的數(shù)據(jù)總長(zhǎng)度進(jìn)行比較,交由上層處理。當(dāng)通信從節(jié)點(diǎn)向通信主節(jié)點(diǎn)發(fā)送退網(wǎng)申請(qǐng)時(shí),需要通信主節(jié)點(diǎn)的應(yīng)答。通信主節(jié)點(diǎn)收到退網(wǎng)申請(qǐng)時(shí),將退網(wǎng)從節(jié)點(diǎn)地址信息寫入掛起表中,并發(fā)送應(yīng)答消息。為了減輕通信主節(jié)點(diǎn)的系統(tǒng)開銷,當(dāng)通信從節(jié)點(diǎn)在規(guī)定時(shí)間內(nèi)沒有收到應(yīng)答時(shí),便放棄申請(qǐng),等待下一次繼續(xù)申請(qǐng)或執(zhí)行其他動(dòng)作。所述的步驟4)中通信主節(jié)點(diǎn)接收到應(yīng)答信號(hào)并處理后,將再次發(fā)送廣播入網(wǎng)消息,支持通信從節(jié)點(diǎn)的動(dòng)態(tài)入網(wǎng)。當(dāng)有新的通信從節(jié)點(diǎn)入網(wǎng)時(shí),通信主節(jié)點(diǎn)將動(dòng)態(tài)的更新就緒表,當(dāng)就緒表中所有注冊(cè)從節(jié)點(diǎn)輪詢完畢,通信主節(jié)點(diǎn)再開始下一次輪詢。所述的步驟5)中通信主節(jié)點(diǎn)輪詢完所有在網(wǎng)通信從節(jié)點(diǎn),根據(jù)本次輪詢所有通信從節(jié)點(diǎn)發(fā)送數(shù)據(jù)量確定下一次輪詢通信從節(jié)點(diǎn)的優(yōu)先級(jí)。通信主節(jié)點(diǎn)在輪詢完畢,會(huì)將所有通信從節(jié)點(diǎn)發(fā)送數(shù)據(jù)總長(zhǎng)度進(jìn)行排序,發(fā)送數(shù)據(jù)長(zhǎng)度越短的通信從節(jié)點(diǎn),在下一次輪詢獲取的優(yōu)先級(jí)越高,若存在數(shù)據(jù)長(zhǎng)度相等的情況,則按照入網(wǎng)先后順序分配優(yōu)先級(jí)。本發(fā)明的有益效果是:本發(fā)明對(duì)傳統(tǒng)tdma方式進(jìn)行改進(jìn),使用可變數(shù)據(jù)長(zhǎng)度與動(dòng)態(tài)優(yōu)先級(jí)相結(jié)合的輪詢方法實(shí)現(xiàn)點(diǎn)到多點(diǎn)通信,提高了數(shù)據(jù)通信的可靠性與穩(wěn)定性,并支持入網(wǎng)設(shè)備的動(dòng)態(tài)入網(wǎng)與退網(wǎng),從而可以將電力線通信技術(shù)應(yīng)用到設(shè)備監(jiān)控領(lǐng)域。附圖說明圖1為基于電力線通信的設(shè)備監(jiān)控系統(tǒng)單總線通信拓?fù)浣Y(jié)構(gòu)圖。圖2為通信主節(jié)點(diǎn)的mac層工作流程。圖3為通信從節(jié)點(diǎn)的mac層工作流程。圖4為通信從節(jié)點(diǎn)就緒表結(jié)構(gòu)。圖5為最高優(yōu)先級(jí)通信從節(jié)點(diǎn)查找表。圖6為輔助數(shù)組。具體實(shí)施方式以下結(jié)合附圖對(duì)本發(fā)明進(jìn)一步敘述。1)通信系統(tǒng)拓?fù)淙鐖D1所示,通信主節(jié)點(diǎn)和n個(gè)通信從節(jié)點(diǎn)通過電力線信道組成單總線拓?fù)浣Y(jié)構(gòu)。其中通信主節(jié)點(diǎn)為中心監(jiān)控節(jié)點(diǎn),負(fù)責(zé)對(duì)各個(gè)通信從節(jié)點(diǎn)的網(wǎng)絡(luò)狀態(tài)信息進(jìn)行實(shí)時(shí)數(shù)據(jù)采集;通信從節(jié)點(diǎn)為被監(jiān)控節(jié)點(diǎn),在特定時(shí)刻向通信主節(jié)點(diǎn)發(fā)送自身的網(wǎng)絡(luò)狀態(tài)信息。通信主節(jié)點(diǎn)采用輪詢算法根據(jù)優(yōu)先級(jí)對(duì)網(wǎng)絡(luò)中的各個(gè)通信從節(jié)點(diǎn)進(jìn)行遍歷訪問。當(dāng)通信從節(jié)點(diǎn)被輪詢到時(shí),如有數(shù)據(jù)可發(fā)送,可以向通信主節(jié)點(diǎn)發(fā)送自身的網(wǎng)絡(luò)狀態(tài)數(shù)據(jù),并在發(fā)送完畢后,向通信主節(jié)點(diǎn)發(fā)送應(yīng)答信息,應(yīng)答信息中包括本次輪詢此通信從節(jié)點(diǎn)向通信主節(jié)點(diǎn)發(fā)送數(shù)據(jù)長(zhǎng)度。通信主節(jié)點(diǎn)遍歷完所有在網(wǎng)通信從節(jié)點(diǎn)后,將所有通信從節(jié)點(diǎn)下一次發(fā)送數(shù)據(jù)長(zhǎng)度進(jìn)行排序,然后按照數(shù)據(jù)長(zhǎng)度越小,優(yōu)先級(jí)越高的規(guī)則對(duì)所有在網(wǎng)通信從節(jié)點(diǎn)優(yōu)先級(jí)制定,然后重新開始執(zhí)行輪詢算法。2)通信從節(jié)點(diǎn)入網(wǎng)如圖2所示,系統(tǒng)上電后,通信主節(jié)點(diǎn)進(jìn)行初始化操作。在進(jìn)行初始化時(shí),通信主節(jié)點(diǎn)會(huì)建立兩個(gè)存儲(chǔ)表:就緒表和掛起表。其中就緒表包含了所有在網(wǎng)通信節(jié)點(diǎn)優(yōu)先級(jí)信息以及地址信息。掛起表為退網(wǎng)通信從節(jié)點(diǎn)的地址信息。在完成初始化之后,通信主節(jié)點(diǎn)將向網(wǎng)絡(luò)中發(fā)送廣播信息,廣播信息為一幀數(shù)據(jù)幀{1,1,1,1,1,1,1}。當(dāng)總線上的通信從節(jié)點(diǎn)監(jiān)聽到入網(wǎng)廣播信息后,將向通信主節(jié)點(diǎn)發(fā)送應(yīng)答信息。通信主節(jié)點(diǎn)在收到此通信從節(jié)點(diǎn)入網(wǎng)應(yīng)答后,分配特定的網(wǎng)絡(luò)地址給通信從節(jié)點(diǎn),并向此通信從節(jié)點(diǎn)發(fā)送應(yīng)答信息。通信從節(jié)點(diǎn)收到入網(wǎng)信息后,入網(wǎng)成功,進(jìn)入就緒狀態(tài)。3)通信從節(jié)點(diǎn)退網(wǎng)如圖3所示,當(dāng)通信從節(jié)點(diǎn)被輪詢到時(shí),如果沒有網(wǎng)絡(luò)數(shù)據(jù)要發(fā)送,并且需要退網(wǎng),則可以向通信主節(jié)點(diǎn)發(fā)送退網(wǎng)信息。如圖2所示,通信主節(jié)點(diǎn)在收到退網(wǎng)信息時(shí),則從就緒表中將通信從節(jié)點(diǎn)刪除,并向通信從節(jié)點(diǎn)發(fā)送應(yīng)答信息,通信從節(jié)點(diǎn)在收到應(yīng)答信息后進(jìn)入掛起狀態(tài)。如沒有收到退網(wǎng)應(yīng)答,則通信從節(jié)點(diǎn)重新監(jiān)聽網(wǎng)絡(luò)地址,待下次輪詢到本站時(shí),從新申請(qǐng)退網(wǎng)。進(jìn)入掛起狀態(tài)的通信從節(jié)點(diǎn)可以在必要的時(shí)候,重新監(jiān)聽入網(wǎng)廣播,并進(jìn)行入網(wǎng)操作。4)網(wǎng)絡(luò)數(shù)據(jù)的發(fā)送如圖2所示,在組網(wǎng)完畢后,通信主節(jié)點(diǎn)將從就緒表中,選擇優(yōu)先級(jí)最高的通信從節(jié)點(diǎn),并向該節(jié)點(diǎn)發(fā)送輪詢指令。如圖3所示,該通信從節(jié)點(diǎn)監(jiān)聽網(wǎng)上地址,如為本機(jī)地址,則選擇向通信主節(jié)點(diǎn)發(fā)送網(wǎng)絡(luò)狀態(tài)數(shù)據(jù),在數(shù)據(jù)發(fā)送完畢后對(duì)通信主節(jié)點(diǎn)進(jìn)行應(yīng)答,應(yīng)答信息中包括本次輪詢發(fā)送的數(shù)據(jù)長(zhǎng)度。通信主節(jié)點(diǎn)對(duì)數(shù)據(jù)交付上層處理,并記錄該通信從節(jié)點(diǎn)本次發(fā)送數(shù)據(jù)長(zhǎng)度信息,以便于優(yōu)先級(jí)的制定。5)掛起狀態(tài)的通信從節(jié)點(diǎn)的動(dòng)態(tài)入網(wǎng)如圖2所示,為了支持總線上所有通信從節(jié)點(diǎn)的動(dòng)態(tài)加入,通信主節(jié)點(diǎn)在完成接收一個(gè)通信從節(jié)點(diǎn)的數(shù)據(jù)后,再次向網(wǎng)絡(luò)發(fā)送入網(wǎng)廣播。此時(shí),如果有新的設(shè)備加入網(wǎng)絡(luò),可以在收到廣播信息后進(jìn)行入網(wǎng)操作流程。6)優(yōu)先級(jí)規(guī)則系統(tǒng)初次上電時(shí),通信主節(jié)點(diǎn)會(huì)根據(jù)入網(wǎng)通信從節(jié)點(diǎn)入網(wǎng)先后順序進(jìn)行優(yōu)先級(jí)初始化操作。先入網(wǎng)的通信從節(jié)點(diǎn)具有較高的優(yōu)先級(jí)。處于掛起狀態(tài)的通信從節(jié)點(diǎn)再次入網(wǎng)后優(yōu)先級(jí)同樣遵循此規(guī)則。在輪詢完所有在網(wǎng)通信從節(jié)點(diǎn)后,通信主節(jié)點(diǎn)對(duì)收到的通信從節(jié)點(diǎn)本次發(fā)送數(shù)據(jù)長(zhǎng)度進(jìn)行排序。發(fā)送數(shù)據(jù)長(zhǎng)度越短的通信從節(jié)點(diǎn)優(yōu)先級(jí)越高,如有相等情況,按入網(wǎng)順序排序處理。7)通信從節(jié)點(diǎn)在就緒表中的注冊(cè)與刪除每個(gè)入網(wǎng)通信從節(jié)點(diǎn)都被通信主節(jié)點(diǎn)賦予不同的優(yōu)先等級(jí),從最高優(yōu)先級(jí)0到最低優(yōu)先級(jí)n-1,其中n為總線上從節(jié)點(diǎn)的數(shù)目,本發(fā)明中n<=64。每個(gè)就緒的通信從節(jié)點(diǎn)都被放在就緒表中,就緒表中有兩個(gè)變量noderdygrp與noderdytable[]。在noderdygrp中,通信從節(jié)點(diǎn)按照優(yōu)先級(jí)分組,8個(gè)通信從節(jié)點(diǎn)為一組。noderdygrp中每一位標(biāo)明八組通信從節(jié)點(diǎn)中每一組是否有通信從節(jié)點(diǎn)進(jìn)入就緒態(tài)。通信從節(jié)點(diǎn)進(jìn)入就緒狀態(tài)后,noderdytable[]中的相應(yīng)元素的相應(yīng)位也置為1。noderdygrp與noderdytable[]之間的對(duì)應(yīng)關(guān)系如圖4所示:當(dāng)noderdytable[0]中的任何一位是1時(shí),noderdygrp中的第0位置1;當(dāng)noderdytable[1]中的任何一位是1時(shí),noderdygrp中的第1位置1;當(dāng)noderdytable[2]中的任何一位是1時(shí),noderdygrp中的第2位置1;當(dāng)noderdytable[3]中的任何一位是1時(shí),noderdygrp中的第3位置1;當(dāng)noderdytable[4]中的任何一位是1時(shí),noderdygrp中的第4位置1;當(dāng)noderdytable[5]中的任何一位是1時(shí),noderdygrp中的第5位置1;當(dāng)noderdytable[6]中的任何一位是1時(shí),noderdygrp中的第6位置1;當(dāng)noderdytable[7]中的任何一位是1時(shí),noderdygrp中的第7位置1;當(dāng)一個(gè)通信從節(jié)點(diǎn)成功入網(wǎng)后,通信主節(jié)點(diǎn)總是會(huì)為此通信從節(jié)點(diǎn)分配優(yōu)先級(jí),并將此通信從節(jié)點(diǎn)寫入就緒表中。將通信從節(jié)點(diǎn)注冊(cè)到就緒表如下所示:noderdygrp|=nodemaptable[prio>>3];noderdytable[prio>>3]|=nodemaptable[prio&0x07];當(dāng)一個(gè)通信從節(jié)點(diǎn)向通信主節(jié)點(diǎn)申請(qǐng)退網(wǎng)成功時(shí),通信主節(jié)點(diǎn)將從就緒表中將此通信從節(jié)點(diǎn)中刪除。將通信從節(jié)點(diǎn)從就緒表中刪除如下所示:if(noderdytable[prio>>3]&=~nodemaptable[prio&0x07])==0)noderdygrp&=~nodemaptalbe[prio>>3];其中nodemaptalble[]為如圖6所示的數(shù)組。8)通信主節(jié)點(diǎn)選取最高優(yōu)先級(jí)從節(jié)點(diǎn)算法為了使通信主節(jié)點(diǎn)從就緒表中快速選取優(yōu)先級(jí)最高的通信從節(jié)點(diǎn)。本發(fā)明中使用空間換時(shí)間算法,對(duì)就緒表中noderdytable[]變量各個(gè)優(yōu)先級(jí)是否有通信從節(jié)點(diǎn)就緒的各種可能情況進(jìn)行窮舉。然后針對(duì)每種情況,進(jìn)行演算就緒表中最高優(yōu)先級(jí)的通信從節(jié)點(diǎn)。將演算結(jié)果保存在數(shù)組lookuptable[256]中,如圖5所示。選取最高優(yōu)先級(jí)從節(jié)點(diǎn)如下y=lookuptable[noderdygrp];x=lookuptable[noderdytable[y]];prio=y<<3+x;此算法時(shí)間復(fù)雜度為o(1),滿足了系統(tǒng)對(duì)實(shí)時(shí)性的需求。當(dāng)前第1頁12當(dāng)前第1頁12