專利名稱:窄帶電力線載波通信的ip組網(wǎng)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種適用于窄帶電力線載波通信的IP組網(wǎng)方法。
背景技術(shù):
TCP/UDP/IP協(xié)議是開放的標(biāo)準(zhǔn)協(xié)議,已經(jīng)成為互聯(lián)網(wǎng)事實(shí)上的標(biāo)準(zhǔn)。目前,TCP/ UDP/IP協(xié)議寬帶電力線載波中已廣泛使用。主要用于家庭、樓宇的局域網(wǎng)連接,以便共享與公網(wǎng)的接口,避免重復(fù)布線,節(jié)省成本。寬帶電力線載波傳輸速率高(IMbps-IOOMbps),數(shù)據(jù)幀長(大于IK字節(jié)),載波芯片有完善的數(shù)據(jù)鏈路成所需的媒體訪問控制(MAC)功能, 所以,在寬帶電力線載波通信中,TCP/UDP/IP協(xié)議的移植和使用沒有障礙。但是,窄帶電力線載波通信傳輸速率低(數(shù)百位每秒到數(shù)Kbps),數(shù)據(jù)幀短(一般小于500字節(jié)),更為困難的是,大多數(shù)窄帶電力線載波不具有MAC功能,而具有MAC功能的芯片成本又比較高。因此,需要用軟件的方法,實(shí)現(xiàn)MAC功能,這是在窄帶電力線載波通信網(wǎng)絡(luò)中采用TCP/UDP/IP 協(xié)議,需要解決的一個(gè)主要問題。窄帶電力線載波通常用于用電節(jié)點(diǎn)監(jiān)控、樓宇自動(dòng)化、自動(dòng)抄表等領(lǐng)域,與寬帶電力線載波傳輸?shù)亩嗝襟w和計(jì)算機(jī)通信相比,數(shù)據(jù)量要少很多。加之電網(wǎng)管理部門對(duì)電網(wǎng)上的電磁污染管理較為嚴(yán)格,監(jiān)控、樓宇自動(dòng)化、自動(dòng)抄表等領(lǐng)域只能是窄帶應(yīng)用,并且規(guī)定了嚴(yán)格的載波頻帶內(nèi)外的輻射標(biāo)準(zhǔn)。從目前的窄帶應(yīng)用來說,如果選擇了一個(gè)窄帶電力線載波芯片,從網(wǎng)絡(luò)結(jié)構(gòu)的角度來看,從應(yīng)用層以下,甚至應(yīng)用層的功能,都要受限于芯片提供商,其網(wǎng)絡(luò)層的組網(wǎng)和路由功能,都是私有的,限制了窄帶應(yīng)用的可擴(kuò)展性。而TCP/UDP/ IP協(xié)議是開放的、標(biāo)準(zhǔn)化的網(wǎng)絡(luò)通信協(xié)議,如果在網(wǎng)絡(luò)層采用TCP/UDP/IP作為通信協(xié)議, 可使整個(gè)窄帶應(yīng)用僅在底層依賴芯片提供商,把窄帶應(yīng)用開發(fā)人員從整個(gè)網(wǎng)絡(luò)維護(hù)任務(wù)中解脫出來,僅關(guān)注應(yīng)用層的開發(fā)就可以了。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種窄帶電力線載波通信的IP組網(wǎng)方法,能夠使使窄帶電力線通信網(wǎng)由私有封閉網(wǎng)變?yōu)榭蓴U(kuò)展的開放網(wǎng)絡(luò),從而降低硬件成本,為智能用電和管電打下基礎(chǔ)。為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是一種窄帶電力線載波通信的IP組網(wǎng)方法,其特別之處在于,(1)幀格式設(shè)計(jì)只限于載波芯片通信幀的用戶數(shù)據(jù)區(qū),定義與此算法對(duì)應(yīng)的幀格式,具體特征是用戶數(shù)據(jù)區(qū)的第一個(gè)字節(jié)表示的是幀類型,幀類型包括IP組網(wǎng)方法所用到幀、網(wǎng)絡(luò)管理幀及普通點(diǎn)對(duì)點(diǎn)通信所用到的幀,具體是組網(wǎng)廣播幀hello,0X01 ;IP地址請(qǐng)求幀IPreq, 0x02 ;IP 地址分配幀 IPassign,0x03 ;IP 地址確認(rèn)幀 IPack,0x04 ;組播幀multicast,0x05 ; 組播應(yīng)答幀multicast!·印,0x06 ;點(diǎn)對(duì)點(diǎn)請(qǐng)求幀P2Preq,0x07 ;點(diǎn)對(duì)點(diǎn)應(yīng)答幀P2Pr印, 0x08 ;
(2)具有載波偵聽多址訪問\沖突避免功能的退避原理 任何節(jié)點(diǎn)發(fā)送之前,都處于接收狀態(tài),檢測是否接收到有效幀的同步頭字節(jié);所有收到同步頭子節(jié)的節(jié)點(diǎn),都要保持接收狀態(tài),繼續(xù)接收直到長度字節(jié),然后根據(jù)長度字節(jié), 判斷此幀是否全部接收完畢;每個(gè)收到此幀的節(jié)點(diǎn)都要根據(jù)幀類型及幀長度,判斷自身應(yīng)該等待的時(shí)間,然后啟動(dòng)定時(shí)器,等待這個(gè)時(shí)間長度,并繼續(xù)保持接收狀態(tài);發(fā)送節(jié)點(diǎn)發(fā)送完畢后,切換到接收狀態(tài),并等待應(yīng)答;同時(shí)啟動(dòng)一個(gè)定時(shí)器,判斷應(yīng)答幀是否在規(guī)定的時(shí)間內(nèi)到達(dá);每接收一個(gè)應(yīng)答幀,此定時(shí)器復(fù)位并重新啟動(dòng)定時(shí);若定時(shí)期滿后仍無應(yīng)答,則根據(jù)會(huì)話的性質(zhì),確定下一步應(yīng)該采取的措施;接收節(jié)點(diǎn)若是目標(biāo)節(jié)點(diǎn),則需要構(gòu)造應(yīng)答幀;若目標(biāo)節(jié)點(diǎn)是單個(gè),則它立即構(gòu)造應(yīng)答幀并發(fā)送;而其它所有在通信雙方有效距離內(nèi)的節(jié)點(diǎn),都根據(jù)通信語義及幀長度,等待相應(yīng)的時(shí)間;若目標(biāo)節(jié)點(diǎn)是多個(gè),則各節(jié)點(diǎn)根據(jù)退避算法,形成一個(gè)隨機(jī)的退避時(shí)間,在此時(shí)間內(nèi),仍處于接收狀態(tài);最早結(jié)束退避時(shí)間的節(jié)點(diǎn),切換到發(fā)送狀態(tài),發(fā)送幀同步字節(jié);其它仍然處于退避期的節(jié)點(diǎn),收到此同步頭后,結(jié)束此輪定時(shí),處于等待狀態(tài),直至發(fā)送節(jié)點(diǎn)會(huì)話結(jié)束后,重新開始新的一輪隨機(jī)退避定時(shí);接收節(jié)點(diǎn)若不是目標(biāo)節(jié)點(diǎn),則無需構(gòu)造應(yīng)答幀,但仍然需要根據(jù)所接收到幀的類型,決定自己應(yīng)該處于等待狀態(tài)還是定時(shí)狀態(tài);若處于等待狀態(tài),則設(shè)置等待狀態(tài)結(jié)束的觸發(fā)條件;若處于定時(shí)狀態(tài),則需要計(jì)算定時(shí)的長度;并且在每一次定時(shí)期滿之前,若收到同一發(fā)送節(jié)點(diǎn)新的會(huì)話幀,則定時(shí)器復(fù)位并重新啟動(dòng)定時(shí)。還包括IP地址分配方案,即無類域間路由地址方案CIDR172. 16. 0.0/24;即子網(wǎng)掩碼 255. 255. 192. 0,A 相從 172. 12. 1. 0 到 172. 12. 63. 0 共 63 個(gè)子網(wǎng),254 個(gè)主機(jī);B 相從 172. 12. 64. 0 到 172. 12. 127. 0 共 64 個(gè)子網(wǎng),254 個(gè)主機(jī);C 相從 172. 12. 128. 0 到 172. 12. 254.0共128個(gè)子網(wǎng),254個(gè)主機(jī);在三相四線制中,每個(gè)相位上的主動(dòng)節(jié)點(diǎn)所在的網(wǎng)絡(luò)地址是所有子網(wǎng)地址中最小的,其主機(jī)地址又是其所在子網(wǎng)中最小的;在IP組網(wǎng)過程中,主動(dòng)節(jié)點(diǎn)初始化后或收到IPack幀后,立即發(fā)出hello幀,并啟動(dòng)較長的定時(shí);收到IPreq幀后,發(fā)出IPassign幀,此定時(shí)復(fù)位,啟動(dòng)較短的定時(shí),此定時(shí)與期望收到的IPack幀時(shí)間的相匹配;發(fā)出p2p幀后,則啟動(dòng)與期望收到的幀長度匹配的定時(shí);主動(dòng)節(jié)點(diǎn)先為自己的所有鄰居節(jié)點(diǎn)分配自己所屬子網(wǎng)的IP地址,若較長的定時(shí)已滿,仍未收到收到IPreq幀,則結(jié)束其尋找鄰居節(jié)點(diǎn)并為其分配IP地址的過程,然后對(duì)其鄰居節(jié)點(diǎn),按IP地址由小到大的次序,逐一用hello幀輪詢,hello幀中的網(wǎng)絡(luò)地址也對(duì)應(yīng)于鄰居節(jié)點(diǎn)的IP地址由小到大逐一遞增,被輪詢到的節(jié)點(diǎn),由于已經(jīng)有IP地址,所以不再發(fā)出IPreq幀,而是,以新的子網(wǎng)地址,發(fā)hello幀,尋找它自己的鄰居節(jié)點(diǎn);其它未被輪詢的鄰居節(jié)點(diǎn),收到此幀后,處于等待狀態(tài),直到被主動(dòng)節(jié)點(diǎn)輪詢到為止;若一個(gè)子網(wǎng)的被輪詢節(jié)點(diǎn)找到了其下層鄰居節(jié)點(diǎn),則它與其所有的下層節(jié)點(diǎn)形成一個(gè)新的子網(wǎng),網(wǎng)絡(luò)IP地址就是被輪詢幀中IP地址;被輪詢節(jié)點(diǎn)既具有上層子網(wǎng)中一個(gè)主機(jī)地址,也具有新子網(wǎng)中最小的主機(jī)地址,因此,它就是兩個(gè)子網(wǎng)之間的網(wǎng)關(guān)節(jié)點(diǎn),并且負(fù)責(zé)維護(hù)兩個(gè)子網(wǎng)之間的路由表;與被輪詢的節(jié)點(diǎn)屬于同一子網(wǎng),但還未被輪詢到的節(jié)點(diǎn),也可能收到被輪詢節(jié)點(diǎn)尋找其子層鄰居節(jié)點(diǎn)的hello幀,通過對(duì)被輪詢節(jié)點(diǎn)所發(fā)的幀計(jì)數(shù)的方法,最先達(dá)到規(guī)定計(jì)數(shù)值的所有節(jié)點(diǎn),啟動(dòng)一個(gè)隨機(jī)退避定時(shí),在退避定時(shí)到后,申請(qǐng)加入被輪詢節(jié)點(diǎn)的下層子網(wǎng);若成功加入,則它具有兩個(gè)子網(wǎng)的IP地址,從而與被輪詢節(jié)點(diǎn)一樣,成為兩個(gè)子網(wǎng)之間的網(wǎng)關(guān)節(jié)點(diǎn),將具有兩個(gè)IP地址的節(jié)點(diǎn)數(shù)目,限制在一定范圍內(nèi);當(dāng)子網(wǎng)內(nèi)節(jié)點(diǎn)的目標(biāo)節(jié)點(diǎn)不在本子網(wǎng)內(nèi)時(shí),它可以任意組播一個(gè)含外網(wǎng)網(wǎng)絡(luò)地址的通信幀,具有此外網(wǎng)網(wǎng)絡(luò)地址的網(wǎng)關(guān)簇節(jié)點(diǎn),啟動(dòng)退避定時(shí),定時(shí)最短的網(wǎng)關(guān)節(jié)點(diǎn),負(fù)責(zé)轉(zhuǎn)發(fā)這次通信,其它網(wǎng)關(guān)簇節(jié)點(diǎn)復(fù)位其定時(shí)器,重新出于等待狀態(tài);成為網(wǎng)關(guān)簇的節(jié)點(diǎn),也負(fù)責(zé)維護(hù)兩個(gè)子網(wǎng)之間的路由表,當(dāng)它被輪詢時(shí),不再以新的網(wǎng)絡(luò)地址發(fā)hello幀組網(wǎng),而是立即以一個(gè)應(yīng)答幀回復(fù)輪詢節(jié)點(diǎn),以便輪詢節(jié)點(diǎn)輪詢其下一個(gè)鄰居節(jié)點(diǎn),這樣直至組網(wǎng)完畢。 每個(gè)節(jié)點(diǎn)中至少同時(shí)運(yùn)行著一個(gè)服務(wù)器進(jìn)程和一個(gè)客戶機(jī)進(jìn)程;主動(dòng)節(jié)點(diǎn)中運(yùn)行著服務(wù)器進(jìn)程用來偵聽其它節(jié)點(diǎn)的連接,并在連接后提供所請(qǐng)求的服務(wù),其它節(jié)點(diǎn)中運(yùn)行著客戶機(jī)進(jìn)程,用來向主動(dòng)節(jié)點(diǎn)請(qǐng)求服務(wù),同樣,主動(dòng)節(jié)點(diǎn)中可運(yùn)行著客戶機(jī)進(jìn)程,而每個(gè)節(jié)點(diǎn)中運(yùn)行著服務(wù)器進(jìn)程,用來接收主動(dòng)節(jié)點(diǎn)的查詢,主動(dòng)節(jié)點(diǎn)向特定的節(jié)點(diǎn)發(fā)起查詢,而特定節(jié)點(diǎn)中的服務(wù)器進(jìn)程提供給所查詢的信息。采用本發(fā)明提出的IP組網(wǎng)方法,使同一臺(tái)變下、同一相線上、能夠可靠通信的窄帶電力線載波通信節(jié)點(diǎn),構(gòu)成一個(gè)IP子網(wǎng)。不能可靠通信的節(jié)點(diǎn),分屬于不同的子網(wǎng),依靠子網(wǎng)之間的網(wǎng)關(guān)節(jié)點(diǎn)通信。兩個(gè)子網(wǎng)之間的網(wǎng)關(guān)節(jié)點(diǎn)不是由一個(gè)節(jié)點(diǎn)構(gòu)成,而是由多個(gè)節(jié)點(diǎn)構(gòu)成的網(wǎng)關(guān)簇,進(jìn)一步提高了通信的可靠性。
附圖1為本發(fā)明中窄帶電力線載波通信節(jié)點(diǎn)的內(nèi)部軟件結(jié)構(gòu)圖;附圖2為本發(fā)明中窄帶電力線載波通信幀結(jié)構(gòu)圖;附圖3為本發(fā)明中相位與子網(wǎng)的網(wǎng)絡(luò)地址對(duì)應(yīng)關(guān)系圖;附圖4為本發(fā)明中物理層驅(qū)動(dòng)框圖。
具體實(shí)施例方式下面通過附圖和例子,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述圖1為本發(fā)明提出的通信節(jié)點(diǎn)的內(nèi)部軟件結(jié)構(gòu)圖,其中模塊10是窄帶電力線載波通信芯片的驅(qū)動(dòng)程序,它不是本發(fā)明的一部分,依賴于芯片提供商。此驅(qū)動(dòng)程序的實(shí)現(xiàn)要根據(jù)芯片商提供的數(shù)據(jù)手冊(cè),把MAC層來的要發(fā)送的數(shù)據(jù),放到芯片的發(fā)送緩沖寄存器;也通過中斷或查詢,把芯片的接收緩沖寄存器中的內(nèi)容,取出送給MAC層處理。其框圖如圖6 所示。圖1中的模塊20是本發(fā)明用軟件的方法實(shí)現(xiàn)了 CSMA/CD功能;模塊30是本發(fā)明所移植的TCP/IP協(xié)議,TCP/IP協(xié)議不屬于本發(fā)明申請(qǐng)保護(hù)的內(nèi)容。此部分相關(guān)的幀的設(shè)計(jì)、IP組網(wǎng)方法是申請(qǐng)保護(hù)的權(quán)利。為了實(shí)現(xiàn)模塊20、模塊30的功能,本發(fā)明設(shè)計(jì)了一些申請(qǐng)保護(hù)的數(shù)據(jù)幀格式。此窄帶電力線載波通信IP組網(wǎng)算法不針對(duì)任何載波芯片,因此, 與此算法對(duì)應(yīng)的幀格式,只限于載波芯片通信幀的用戶數(shù)據(jù)區(qū)。具體特征是用戶數(shù)據(jù)區(qū)的第一個(gè)字節(jié)表示的是幀類型。幀類型包括IP組網(wǎng)算法所用到幀、網(wǎng)絡(luò)管理幀及普通點(diǎn)對(duì)點(diǎn)通信所用到的幀。申請(qǐng)保護(hù)的幀類型有
組網(wǎng)廣播幀 hello,0x01 ;· IP 地址請(qǐng)求幀 IPreq,0x02 ;· IP 地址分配幀 IPassign,0x03 ;· IP 地址確認(rèn)幀 IPack,0x04 ; 組播幀 multicast,0x05 ; 組播應(yīng)答幀 multicast!·印,0x06 ;·點(diǎn)對(duì)點(diǎn)請(qǐng)求幀 P2Preq,0x07 ; 點(diǎn)對(duì)點(diǎn)應(yīng)答幀P2Pr印,0x08 ;各類幀的數(shù)據(jù)域結(jié)構(gòu)如圖2所示。軟件實(shí)現(xiàn)的隨機(jī)退避原理如下任何節(jié)點(diǎn)發(fā)送之前,都處于接收狀態(tài),檢測是否接收到有效幀的同步頭字節(jié)。所有收到同步頭子節(jié)的節(jié)點(diǎn),都要保持接收狀態(tài),繼續(xù)接收直到長度字節(jié),然后根據(jù)長度字節(jié),判斷此幀是否全部接收完畢;根據(jù)所接收幀中的幀類型字節(jié),判斷所接收的幀是廣播幀、組播幀還是點(diǎn)對(duì)點(diǎn)通信幀,并據(jù)此判斷目標(biāo)節(jié)點(diǎn)是否是自己,無論是否是自己,都要根據(jù)幀類型及幀長度,判斷自身應(yīng)該等待的時(shí)間,然后啟動(dòng)定時(shí)器,等待這個(gè)時(shí)間長度,并繼續(xù)保持接收狀態(tài);發(fā)送節(jié)點(diǎn)發(fā)送完畢后,切換到接收狀態(tài),并等待應(yīng)答。同時(shí)啟動(dòng)一個(gè)定時(shí)器,判斷應(yīng)答幀是否在規(guī)定的時(shí)間內(nèi)到達(dá);每接收一個(gè)應(yīng)答幀,此定時(shí)器復(fù)位并重新啟動(dòng)定時(shí);若定時(shí)期滿后仍無應(yīng)答,則根據(jù)會(huì)話的性質(zhì),確定下一步應(yīng)該采取的措施。接收節(jié)點(diǎn)若是目標(biāo)節(jié)點(diǎn),則需要構(gòu)造應(yīng)答幀。若目標(biāo)節(jié)點(diǎn)是單個(gè),則它立即構(gòu)造應(yīng)答幀并發(fā)送;而其它所有在通信雙方有效距離內(nèi)的節(jié)點(diǎn),都根據(jù)通信語義及幀長度,等待相應(yīng)的時(shí)間。若目標(biāo)節(jié)點(diǎn)是多個(gè),則各節(jié)點(diǎn)根據(jù)退避算法,形成一個(gè)隨機(jī)的退避時(shí)間,在此時(shí)間內(nèi),仍處于接收狀態(tài)。最早結(jié)束退避時(shí)間的節(jié)點(diǎn),切換到發(fā)送狀態(tài),發(fā)送幀同步字節(jié);其它仍然處于退避期的節(jié)點(diǎn),收到此同步頭后,結(jié)束此輪定時(shí),處于等待狀態(tài),直至發(fā)送節(jié)點(diǎn)會(huì)話結(jié)束后,重新開始新的一輪隨機(jī)退避定時(shí)。接收節(jié)點(diǎn)若不是目標(biāo)節(jié)點(diǎn),則無需構(gòu)造應(yīng)答幀。但仍然需要根據(jù)所接收到幀的類型,決定自己應(yīng)該處于等待狀態(tài)還是定時(shí)狀態(tài);若處于等待狀態(tài),則設(shè)置等待狀態(tài)結(jié)束的觸發(fā)條件;若處于定時(shí)狀態(tài),則需要計(jì)算定時(shí)的長度;并且在每一次定時(shí)期滿之前,若收到同一發(fā)送節(jié)點(diǎn)新的會(huì)話幀,則定時(shí)器復(fù)位并重新啟動(dòng)定時(shí)。在IP組網(wǎng)過程中,主動(dòng)節(jié)點(diǎn)初始化后或收到IPack幀后,立即發(fā)出hello幀,并啟動(dòng)較長的定時(shí);收到IPreq幀后,發(fā)出IPassign幀,此定時(shí)復(fù)位,啟動(dòng)較短的定時(shí),此定時(shí)與期望收到的IPack幀時(shí)間的相匹配;發(fā)出p2p幀后,則啟動(dòng)與期望收到的幀長度匹配的定時(shí)IP地址的分配方案采用CIDR(無類域間路由)地址方案,以解決子網(wǎng)數(shù)和主機(jī)數(shù)不平衡的問題。決定采用172. 16. 0. 0生成子網(wǎng)和主機(jī)IP地址。172. 16. 0. 0是一個(gè)屬于C 類的保留地址,用于Intranet主機(jī)編址。決定采用的子網(wǎng)掩碼是255. 255. 255. 0,這是一個(gè)B類的定制子網(wǎng)掩碼(非標(biāo)準(zhǔn)子網(wǎng)掩碼,B類的標(biāo)準(zhǔn)子網(wǎng)掩碼是255. 255. 0. 0)。以上子網(wǎng)和IP編址方案用CIDR表示就是172. 16.0.0/24。這種方案生成的子網(wǎng)數(shù)是254個(gè),每個(gè)子網(wǎng)上可容納的主機(jī)數(shù)是254個(gè),完全可以滿足單臺(tái)變下載波節(jié)點(diǎn)通過TCP/IP進(jìn)行通信的需求。每一相位上的載波模塊單獨(dú)組網(wǎng),分配給不同的網(wǎng)絡(luò)地址,相位與子網(wǎng)的網(wǎng)絡(luò)地址對(duì)應(yīng)關(guān)系如圖3所示。每個(gè)相位上的主動(dòng)節(jié)點(diǎn)所在的網(wǎng)絡(luò)地址是所有子網(wǎng)地址中最小的,其主機(jī)地址又是其所在子網(wǎng)中最小的。例如A相主動(dòng)節(jié)點(diǎn)所在的網(wǎng)絡(luò)地址是172. 16. 1.0,其主機(jī)地址是 172. 16. 1. 1 ;B相主動(dòng)節(jié)點(diǎn)所在的網(wǎng)絡(luò)地址是172. 16. 64. 0,其主機(jī)地址是172. 16. 64. 1 ;C 相主動(dòng)節(jié)點(diǎn)所在的網(wǎng)絡(luò)地址是172. 16. 128. 0,其主機(jī)地址是172. 16. 128. 1。圖4結(jié)合隨機(jī)退避功能,說明了本發(fā)明提出的IP組網(wǎng)算法。其中□是所在相位的主動(dòng)節(jié)點(diǎn),虛線圓弧是它發(fā)出的通信幀能夠覆蓋的范圍,此圓弧內(nèi)的節(jié)點(diǎn)收到hello幀后, 都要啟動(dòng)隨機(jī)的退避定時(shí);★ 是收到hello幀后最先結(jié)束退避定時(shí)的節(jié)點(diǎn),O是未參與此輪通信的節(jié)點(diǎn)。最后的虛線圓圈表示所形成的每個(gè)IP子網(wǎng),它們的重疊部分是網(wǎng)關(guān)簇節(jié)點(diǎn)。它們經(jīng)過上層節(jié)點(diǎn)輪詢而生成,具體過程為主動(dòng)節(jié)點(diǎn)先為自己的所有鄰居節(jié)點(diǎn)分配自己所屬子網(wǎng)的IP地址。若較長的定時(shí)已滿,仍未收到收到IPreq幀,則結(jié)束其尋找鄰居節(jié)點(diǎn)并為其分配IP地址的過程。然后對(duì)其鄰居節(jié)點(diǎn),按IP地址由小到大的次序,逐一用hello 幀輪詢,hello幀中的網(wǎng)絡(luò)地址也對(duì)應(yīng)于鄰居節(jié)點(diǎn)的IP地址由小到大逐一遞增。被輪詢到的節(jié)點(diǎn),由于已經(jīng)有IP地址,所以不再發(fā)出IPreq幀,而是,以新的子網(wǎng)地址,發(fā)hello幀, 尋找它自己的鄰居節(jié)點(diǎn);其它未被輪詢的鄰居節(jié)點(diǎn),收到此幀后,處于等待狀態(tài),直到被主動(dòng)節(jié)點(diǎn)輪詢到為止。被輪詢的鄰居節(jié)點(diǎn)確定其下層鄰居節(jié)點(diǎn)的定時(shí)長度及步驟,類似于主動(dòng)節(jié)點(diǎn)尋找其鄰居節(jié)點(diǎn)的定時(shí)長度及步驟。即若較長的定時(shí)已滿,仍未收到收到IPreq幀,則結(jié)束其尋找鄰居節(jié)點(diǎn)并為其分配IP地址的過程。不同之處是它要對(duì)輪詢節(jié)點(diǎn)回復(fù)一個(gè)應(yīng)答幀, 以便輪詢節(jié)點(diǎn)輪詢其下一個(gè)鄰居節(jié)點(diǎn)。若一個(gè)子網(wǎng)的被輪詢節(jié)點(diǎn)找到了其下層鄰居節(jié)點(diǎn),則它與其所有的下層節(jié)點(diǎn)形成一個(gè)新的子網(wǎng),網(wǎng)絡(luò)IP地址就是被輪詢幀中IP地址。被輪詢節(jié)點(diǎn)既具有上層子網(wǎng)中一個(gè)主機(jī)地址,也具有新子網(wǎng)中最小的主機(jī)地址,因此,它就是兩個(gè)子網(wǎng)之間的網(wǎng)關(guān)節(jié)點(diǎn),并且負(fù)責(zé)維護(hù)兩個(gè)子網(wǎng)之間的路由表。與被輪詢的節(jié)點(diǎn)屬于同一子網(wǎng),但還未被輪詢到的節(jié)點(diǎn),也可能收到被輪詢節(jié)點(diǎn)尋找其子層鄰居節(jié)點(diǎn)的hello幀。通過對(duì)被輪詢節(jié)點(diǎn)所發(fā)的幀計(jì)數(shù)的方法,最先達(dá)到規(guī)定計(jì)數(shù)值的所有節(jié)點(diǎn),啟動(dòng)一個(gè)隨機(jī)退避定時(shí),在退避定時(shí)到后,申請(qǐng)加入被輪詢節(jié)點(diǎn)的下層子網(wǎng)。若成功加入,則它具有兩個(gè)子網(wǎng)的IP地址,從而與被輪詢節(jié)點(diǎn)一樣,成為兩個(gè)子網(wǎng)之間的網(wǎng)關(guān)節(jié)點(diǎn)。將具有兩個(gè)IP地址的節(jié)點(diǎn)數(shù)目,限制在一定范圍內(nèi)。這樣,兩個(gè)子網(wǎng)之間的網(wǎng)關(guān)節(jié)點(diǎn)形成一個(gè)網(wǎng)關(guān)簇,提高了通信的可靠性。當(dāng)子網(wǎng)內(nèi)節(jié)點(diǎn)的目標(biāo)節(jié)點(diǎn)不在本子網(wǎng)內(nèi)時(shí),它可以任意組播一個(gè)含外網(wǎng)網(wǎng)絡(luò)地址的通信幀,具有此外網(wǎng)網(wǎng)絡(luò)地址的網(wǎng)關(guān)簇節(jié)點(diǎn), 啟動(dòng)退避定時(shí),定時(shí)最短的網(wǎng)關(guān)節(jié)點(diǎn),負(fù)責(zé)轉(zhuǎn)發(fā)這次通信,其它網(wǎng)關(guān)簇節(jié)點(diǎn)復(fù)位其定時(shí)器, 重新出于等待狀態(tài)。成為網(wǎng)關(guān)簇的節(jié)點(diǎn),也負(fù)責(zé)維護(hù)兩個(gè)子網(wǎng)之間的路由表。當(dāng)它被輪詢時(shí),不再以新的網(wǎng)絡(luò)地址發(fā)hello幀組網(wǎng),而是立即以一個(gè)應(yīng)答幀回復(fù)輪詢節(jié)點(diǎn),以便輪詢節(jié)點(diǎn)輪詢其下一個(gè)鄰居節(jié)點(diǎn)。這樣直至組網(wǎng)完畢。應(yīng)用層的拓?fù)湫问綖閷?duì)等網(wǎng),即每個(gè)節(jié)點(diǎn)中至少同時(shí)運(yùn)行著一個(gè)服務(wù)器進(jìn)程和一個(gè)客戶機(jī)進(jìn)程;服務(wù)器進(jìn)程用來偵聽其它節(jié)點(diǎn)的連接,并在連接后提供所請(qǐng)求的服務(wù)??蛻魴C(jī)進(jìn)程用來向特定的節(jié)點(diǎn)請(qǐng)求服務(wù)。例如在抄表應(yīng)用中,每一相上的主動(dòng)節(jié)點(diǎn),可以是集中器上的一個(gè)載波節(jié)點(diǎn),其中運(yùn)行著用于收集 電能表用電信息的服務(wù)器進(jìn)程,也運(yùn)行著用于收集主動(dòng)上報(bào)信息的服務(wù)器進(jìn)程;每個(gè)電能表中的載波節(jié)點(diǎn)中的客戶機(jī)進(jìn)程,知道它的 IP地址(如集中器在A相上的載波節(jié)點(diǎn)的主機(jī)地址是172. 16. 1. 1 ;在B相上的載波節(jié)點(diǎn)的主機(jī)地址是172. 16. 64. 1 ;在C相上的載波節(jié)點(diǎn)的主機(jī)地址是172. 16. 128. 1),也知道它用于收集電能信息的服務(wù)端口,因此,發(fā)起連接,把電能信息匯報(bào)給集中器;也知道它用于收集主動(dòng)上報(bào)信息的的服務(wù)器進(jìn)程,發(fā)起連接,主動(dòng)上報(bào)有關(guān)信息。 同樣,主動(dòng)節(jié)點(diǎn)中可運(yùn)行著客戶機(jī)進(jìn)程,而每個(gè)節(jié)點(diǎn)中運(yùn)行著服務(wù)器進(jìn)程,用來接收主動(dòng)節(jié)點(diǎn)的查詢。主動(dòng)節(jié)點(diǎn)向特定的節(jié)點(diǎn)發(fā)起查詢,而特定節(jié)點(diǎn)中的服務(wù)器進(jìn)程提供給所查詢的信息。
以下為本發(fā)明中IP組網(wǎng)流程;
權(quán)利要求
1.一種窄帶電力線載波通信的IP組網(wǎng)方法,其特征在于(1)幀格式設(shè)計(jì)只限于載波芯片通信幀的用戶數(shù)據(jù)區(qū),定義與此算法對(duì)應(yīng)的幀格式,具體特征是用戶數(shù)據(jù)區(qū)的第一個(gè)字節(jié)表示的是幀類型,幀類型包括IP組網(wǎng)方法所用到幀、網(wǎng)絡(luò)管理幀及普通點(diǎn)對(duì)點(diǎn)通信所用到的幀,具體是組網(wǎng)廣播幀hello,0X01 ;IP地址請(qǐng)求幀IPreq,0x02 ; IP地址分配幀IPassign,0x03 ;IP地址確認(rèn)幀IPack,0x04 ;組播幀multicast,0x05 ;組播應(yīng)答幀multicast!·印,0x06 ;點(diǎn)對(duì)點(diǎn)請(qǐng)求幀P2Preq,0x07 ;點(diǎn)對(duì)點(diǎn)應(yīng)答幀P2Pr印,0x08 ;(2)具有載波偵聽多址訪問\沖突避免功能的退避原理任何節(jié)點(diǎn)發(fā)送之前,都處于接收狀態(tài),檢測是否接收到有效幀的同步頭字節(jié);所有收到同步頭子節(jié)的節(jié)點(diǎn),都要保持接收狀態(tài),繼續(xù)接收直到長度字節(jié),然后根據(jù)長度字節(jié),判斷此幀是否全部接收完畢;每個(gè)收到此幀的節(jié)點(diǎn)都要根據(jù)幀類型及幀長度,判斷自身應(yīng)該等待的時(shí)間,然后啟動(dòng)定時(shí)器,等待這個(gè)時(shí)間長度,并繼續(xù)保持接收狀態(tài);發(fā)送節(jié)點(diǎn)發(fā)送完畢后,切換到接收狀態(tài),并等待應(yīng)答;同時(shí)啟動(dòng)一個(gè)定時(shí)器,判斷應(yīng)答幀是否在規(guī)定的時(shí)間內(nèi)到達(dá);每接收一個(gè)應(yīng)答幀,此定時(shí)器復(fù)位并重新啟動(dòng)定時(shí);若定時(shí)期滿后仍無應(yīng)答,則根據(jù)會(huì)話的性質(zhì),確定下一步應(yīng)該采取的措施;接收節(jié)點(diǎn)若是目標(biāo)節(jié)點(diǎn),則需要構(gòu)造應(yīng)答幀;若目標(biāo)節(jié)點(diǎn)是單個(gè),則它立即構(gòu)造應(yīng)答幀并發(fā)送;而其它所有在通信雙方有效距離內(nèi)的節(jié)點(diǎn),都根據(jù)通信語義及幀長度,等待相應(yīng)的時(shí)間;若目標(biāo)節(jié)點(diǎn)是多個(gè),則各節(jié)點(diǎn)根據(jù)退避算法,形成一個(gè)隨機(jī)的退避時(shí)間,在此時(shí)間內(nèi), 仍處于接收狀態(tài);最早結(jié)束退避時(shí)間的節(jié)點(diǎn),切換到發(fā)送狀態(tài),發(fā)送幀同步字節(jié);其它仍然處于退避期的節(jié)點(diǎn),收到此同步頭后,結(jié)束此輪定時(shí),處于等待狀態(tài),直至發(fā)送節(jié)點(diǎn)會(huì)話結(jié)束后,重新開始新的一輪隨機(jī)退避定時(shí);接收節(jié)點(diǎn)若不是目標(biāo)節(jié)點(diǎn),則無需構(gòu)造應(yīng)答幀,但仍然需要根據(jù)所接收到幀的類型,決定自己應(yīng)該處于等待狀態(tài)還是定時(shí)狀態(tài);若處于等待狀態(tài),則設(shè)置等待狀態(tài)結(jié)束的觸發(fā)條件;若處于定時(shí)狀態(tài),則需要計(jì)算定時(shí)的長度;并且在每一次定時(shí)期滿之前,若收到同一發(fā)送節(jié)點(diǎn)新的會(huì)話幀,則定時(shí)器復(fù)位并重新啟動(dòng)定時(shí)。
2.如權(quán)利要求1所述的窄帶電力線載波通信的IP組網(wǎng)方法,其特征在于還包括IP地址分配方案,即無類域間路由地址方案CIDR172. 16. 0. 0/24 ;即子網(wǎng)掩碼255. 255. 192. 0, A 相從 172. 12. 1. 0 到 172. 12. 63. 0 共 63 個(gè)子網(wǎng),254 個(gè)主機(jī);B 相從 172. 12. 64. 0 到 172. 12. 127. 0 共 64 個(gè)子網(wǎng),254 個(gè)主機(jī);C 相從 172. 12. 128. 0 到 172. 12. 254. 0 共 128 個(gè)子網(wǎng),254個(gè)主機(jī);在三相四線制中,每個(gè)相位上的主動(dòng)節(jié)點(diǎn)所在的網(wǎng)絡(luò)地址是所有子網(wǎng)地址中最小的,其主機(jī)地址又是其所在子網(wǎng)中最小的;在IP組網(wǎng)過程中,主動(dòng)節(jié)點(diǎn)初始化后或收到IPack幀后,立即發(fā)出hello幀,并啟動(dòng)較長的定時(shí);收到IPreq幀后,發(fā)出IPassign幀,此定時(shí)復(fù)位,啟動(dòng)較短的定時(shí),此定時(shí)與期望收到的IPack幀時(shí)間的相匹配;發(fā)出p2p幀后,則啟動(dòng)與期望收到的幀長度匹配的定時(shí);主動(dòng)節(jié)點(diǎn)先為自己的所有鄰居節(jié)點(diǎn)分配自己所屬子網(wǎng)的IP地址,若較長的定時(shí)已滿, 仍未收到收到IPreq幀,則結(jié)束其尋找鄰居節(jié)點(diǎn)并為其分配IP地址的過程,然后對(duì)其鄰居節(jié)點(diǎn),按IP地址由小到大的次序,逐一用hello幀輪詢,hello幀中的網(wǎng)絡(luò)地址也對(duì)應(yīng)于鄰居節(jié)點(diǎn)的IP地址由小到大逐一遞增,被輪詢到的節(jié)點(diǎn),由于已經(jīng)有IP地址,所以不再發(fā)出 IPreq巾貞,而是,以新的子網(wǎng)地址,發(fā)hello巾貞,尋找它自己的鄰居節(jié)點(diǎn);其它未被輪詢的鄰居節(jié)點(diǎn),收到此幀后,處于等待狀 態(tài),直到被主動(dòng)節(jié)點(diǎn)輪詢到為止;若一個(gè)子網(wǎng)的被輪詢節(jié)點(diǎn)找到了其下層鄰居節(jié)點(diǎn),則它與其所有的下層節(jié)點(diǎn)形成一個(gè)新的子網(wǎng),網(wǎng)絡(luò)IP地址就是被輪詢幀中IP地址;被輪詢節(jié)點(diǎn)既具有上層子網(wǎng)中一個(gè)主機(jī)地址,也具有新子網(wǎng)中最小的主機(jī)地址,因此,它就是兩個(gè)子網(wǎng)之間的網(wǎng)關(guān)節(jié)點(diǎn),并且負(fù)責(zé)維護(hù)兩個(gè)子網(wǎng)之間的路由表;與被輪詢的節(jié)點(diǎn)屬于同一子網(wǎng),但還未被輪詢到的節(jié)點(diǎn),也可能收到被輪詢節(jié)點(diǎn)尋找其子層鄰居節(jié)點(diǎn)的hello幀,通過對(duì)被輪詢節(jié)點(diǎn)所發(fā)的幀計(jì)數(shù)的方法,最先達(dá)到規(guī)定計(jì)數(shù)值的所有節(jié)點(diǎn),啟動(dòng)一個(gè)隨機(jī)退避定時(shí),在退避定時(shí)到后,申請(qǐng)加入被輪詢節(jié)點(diǎn)的下層子網(wǎng);若成功加入,則它具有兩個(gè)子網(wǎng)的IP地址,從而與被輪詢節(jié)點(diǎn)一樣,成為兩個(gè)子網(wǎng)之間的網(wǎng)關(guān)節(jié)點(diǎn),將具有兩個(gè)IP地址的節(jié)點(diǎn)數(shù)目,限制在一定范圍內(nèi);當(dāng)子網(wǎng)內(nèi)節(jié)點(diǎn)的目標(biāo)節(jié)點(diǎn)不在本子網(wǎng)內(nèi)時(shí),它可以任意組播一個(gè)含外網(wǎng)網(wǎng)絡(luò)地址的通信幀,具有此外網(wǎng)網(wǎng)絡(luò)地址的網(wǎng)關(guān)簇節(jié)點(diǎn),啟動(dòng)退避定時(shí),定時(shí)最短的網(wǎng)關(guān)節(jié)點(diǎn),負(fù)責(zé)轉(zhuǎn)發(fā)這次通信,其它網(wǎng)關(guān)簇節(jié)點(diǎn)復(fù)位其定時(shí)器,重新出于等待狀態(tài);成為網(wǎng)關(guān)簇的節(jié)點(diǎn),也負(fù)責(zé)維護(hù)兩個(gè)子網(wǎng)之間的路由表,當(dāng)它被輪詢時(shí),不再以新的網(wǎng)絡(luò)地址發(fā)hello幀組網(wǎng),而是立即以一個(gè)應(yīng)答幀回復(fù)輪詢節(jié)點(diǎn),以便輪詢節(jié)點(diǎn)輪詢其下一個(gè)鄰居節(jié)點(diǎn),這樣直至組網(wǎng)完畢。
3.如權(quán)利要求1所述的窄帶電力線載波通信的IP組網(wǎng)方法,其特征在于每個(gè)節(jié)點(diǎn)中至少同時(shí)運(yùn)行著一個(gè)服務(wù)器進(jìn)程和一個(gè)客戶機(jī)進(jìn)程;主動(dòng)節(jié)點(diǎn)中運(yùn)行著服務(wù)器進(jìn)程用來偵聽其它節(jié)點(diǎn)的連接,并在連接后提供所請(qǐng)求的服務(wù),其它節(jié)點(diǎn)中運(yùn)行著客戶機(jī)進(jìn)程,用來向主動(dòng)節(jié)點(diǎn)請(qǐng)求服務(wù),同樣,主動(dòng)節(jié)點(diǎn)中可運(yùn)行著客戶機(jī)進(jìn)程,而每個(gè)節(jié)點(diǎn)中運(yùn)行著服務(wù)器進(jìn)程,用來接收主動(dòng)節(jié)點(diǎn)的查詢,主動(dòng)節(jié)點(diǎn)向特定的節(jié)點(diǎn)發(fā)起查詢,而特定節(jié)點(diǎn)中的服務(wù)器進(jìn)程提供給所查詢的信息。
全文摘要
本發(fā)明涉及一種適用于窄帶電力線載波通信的IP組網(wǎng)方法,其特征是,(1)幀格式設(shè)計(jì),只限于載波芯片通信幀的用戶數(shù)據(jù)區(qū),定義與此算法對(duì)應(yīng)的幀格式,具體特征是用戶數(shù)據(jù)區(qū)的第一個(gè)字節(jié)表示的是幀類型,幀類型包括IP組網(wǎng)方法所用到幀、網(wǎng)絡(luò)管理幀及普通點(diǎn)對(duì)點(diǎn)通信所用到的幀;(2)具有載波偵聽多址訪問\沖突避免功能的退避原理。采用本發(fā)明提出的IP組網(wǎng)方法,使同一臺(tái)變下、同一相線上、能夠可靠通信的窄帶電力線載波通信節(jié)點(diǎn),構(gòu)成一個(gè)IP子網(wǎng)。不能可靠通信的節(jié)點(diǎn),分屬于不同的子網(wǎng),依靠子網(wǎng)之間的網(wǎng)關(guān)節(jié)點(diǎn)通信。兩個(gè)子網(wǎng)之間的網(wǎng)關(guān)節(jié)點(diǎn)不是由一個(gè)節(jié)點(diǎn)構(gòu)成,而是由多個(gè)節(jié)點(diǎn)構(gòu)成的網(wǎng)關(guān)簇,進(jìn)一步提高了通信的可靠性。
文檔編號(hào)H04L12/56GK102223276SQ20111018689
公開日2011年10月19日 申請(qǐng)日期2011年7月6日 優(yōu)先權(quán)日2011年7月6日
發(fā)明者張萬菊, 張軍, 李建煒, 李紅信, 王再望, 田勇, 趙四海 申請(qǐng)人:寧夏隆基寧光儀表有限公司