本設計涉及智能電網(wǎng)電力線通信領域,主要是對現(xiàn)有的電力線載波通信中使用的通用的CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance帶有沖突避免的載波監(jiān)聽多路訪問)機制進行改進,實現(xiàn)對電力線載波通信網(wǎng)絡擁塞的控制。
背景技術:
隨著智能電表的普及,供電公司告別了人工讀取電量的方式,可以通過多種方式獲取電量,其中最常見的一種就是電力線載波通信。它以設計和運營成本低廉成為電表數(shù)據(jù)通信的首選。早期的電力線載波通信在一個網(wǎng)絡內有一個主節(jié)點,多個從節(jié)點,只有主節(jié)點可以發(fā)起通信,從節(jié)點只有接收到訪問信息后才能進入通信發(fā)送狀態(tài)。因此,不存在電力線信道通信的沖突,但網(wǎng)絡通信的利用率低。隨著電力用電信息采集和現(xiàn)場管理要求的提高,許多電力用戶需要從節(jié)點能將從節(jié)點發(fā)生的事件主動上報,因此要求從節(jié)點和主節(jié)點一樣能主動發(fā)起通信,這樣在電力線上就會發(fā)生通信的沖突,如何根據(jù)電力線載波通信的特點處理好通信沖突,成為電力線載波通信研究的重要任務。
通信沖突是指當數(shù)據(jù)在網(wǎng)絡中傳輸時,出現(xiàn)兩個設備或兩個以上設備同時發(fā)送數(shù)據(jù)的現(xiàn)象,從而導致網(wǎng)絡中數(shù)據(jù)擁塞,數(shù)據(jù)丟失的情況。CSMA/CA協(xié)議一般位于通信協(xié)議的介質訪問層MAC(Media Access Control)層,是介質訪問層的核心算法之一。它利用檢測和避免兩大手段來避免數(shù)據(jù)沖突,從而保證了數(shù)據(jù)的傳輸?shù)目煽啃?。當一個節(jié)點想發(fā)送數(shù)據(jù)時,首先檢測信道,觀察信道是否空閑。如果信道空閑,等待一段時間,接著發(fā)送數(shù)據(jù),其它的節(jié)點都置信道繁忙標志位NAV(Network Allocation Vector)。當目的節(jié)點接收到數(shù)據(jù)幀后,等待一段時間發(fā)送應答ACK(Acknowledge)幀。源節(jié)點接收到ACK數(shù)據(jù)幀后,標志著發(fā)送數(shù)據(jù)完成。等待一段時期后,進入競爭窗口,各個節(jié)點競爭發(fā)送,取得發(fā)送權的節(jié)點重復上述動作,而沒有取得發(fā)送權的節(jié)點進入退避狀態(tài)。
由于電力線載波通信的信道的主要功能是傳輸電力,不是為通信而設計,因此,它不是一個理想的通信線路。其通信的帶寬和速度受到限制,如果單純的使用通用的CSMA/CA,當數(shù)據(jù)通信頻繁,信道擁塞嚴重時,部分節(jié)點可能會一直處于避讓狀態(tài),根據(jù)CSMA/CA機制,很可能會進入放棄發(fā)送的狀態(tài),從而可能造成部分數(shù)據(jù)的丟失,本發(fā)明將重要數(shù)據(jù)和普通數(shù)據(jù)區(qū)分開來,讓重要數(shù)據(jù)優(yōu)先競爭發(fā)送,從而保證重要的數(shù)據(jù)在電力線上優(yōu)先傳輸和可靠性。
技術實現(xiàn)要素:
本發(fā)明在CSMA/CA協(xié)議的基礎上增加了重要數(shù)據(jù)發(fā)送的請求幀RF(Request Frame)和允許幀AF(Allow Frame)命令,從而確保重要數(shù)據(jù)通信的可靠性,當一個節(jié)點需要發(fā)送高優(yōu)先級數(shù)據(jù)時,先發(fā)送一個請求信號RF,預約信道,目的節(jié)點接收到了RF后,回復AF信號。這樣雙方成功進行了RF/AF通信握手后,才進行數(shù)據(jù)的發(fā)送,保證數(shù)據(jù)的安全可靠性。
另外,本發(fā)明還對競爭窗口進行改進和劃分,將競爭窗口劃分為高優(yōu)先級窗口和普通優(yōu)先級窗口。重要的通信數(shù)據(jù)被設置為高優(yōu)先級數(shù)據(jù),當出現(xiàn)發(fā)送競爭時,首先進入高優(yōu)先級窗口進行競爭,等待高優(yōu)先級窗口用完,再進入普通優(yōu)先級窗口進行數(shù)據(jù)發(fā)送競爭,以確保重要數(shù)據(jù)的優(yōu)先發(fā)送。
在本發(fā)明中,我們將RF和AF的格式設定為源節(jié)點短地址(2個字節(jié))和目的節(jié)點短地址(2個字節(jié)),以及一個狀態(tài)位(1個字節(jié))。RF和AF的幀長度較小,僅相當于普通數(shù)據(jù)幀長度的幾十分之一,對網(wǎng)絡資源的開銷很小。因此增加RF和AF命令,對電力線上的數(shù)據(jù)的傳輸量影響并不大,但是有了RF和AF的交互,卻可以更好的保護高優(yōu)先級數(shù)據(jù)的安全,避免重要數(shù)據(jù)的丟失,也減少因數(shù)據(jù)丟失而導致的數(shù)據(jù)重發(fā)。
在對高低優(yōu)先級窗口的劃分上,可以根據(jù)一些參數(shù)(maxBE為最大退避指數(shù)值,macHighPriorityWindowSize為高優(yōu)先級窗口時間片數(shù), SlotTime為 CSMA/CA中一個時間片的時長,maxBE和macHighPriorityWindowSize來自于應用層,可自己設定,SlotTime來自于802.15.4標準)來決定窗口時間的長度,本發(fā)明中設置高優(yōu)先級的窗口寬度(HPCW time)為:
HPCW time = macHighPriorityWindowSize * SlotTime;
由于退避措施采用二進制退避算法,那么普通優(yōu)先級的窗口寬度(NPCW time)則為:
NPCW time = (2maxBE * SlotTime) – HPCW time;
只有當高優(yōu)先級窗口時間用完,才能進入普通優(yōu)先級窗口。
為保證重要數(shù)據(jù)發(fā)送的優(yōu)先性和可靠性,本次發(fā)明還提出了高優(yōu)先級數(shù)據(jù)搶占式發(fā)送機制。當網(wǎng)絡中的一個節(jié)點正在發(fā)送普通優(yōu)先級數(shù)據(jù)時,信道處于繁忙狀態(tài)。此時,網(wǎng)絡中的一個節(jié)點接收到來自應用層的高優(yōu)先級的數(shù)據(jù),為了確保此數(shù)據(jù)優(yōu)先發(fā)送,高優(yōu)先級數(shù)據(jù)搶占發(fā)送機制將正在進行發(fā)送的普通優(yōu)先級數(shù)據(jù)打斷,將它置于重發(fā)狀態(tài),等待下一次發(fā)送。高優(yōu)先級數(shù)據(jù)發(fā)送節(jié)點搶占到信道后,優(yōu)先將數(shù)據(jù)發(fā)送。
附圖說明
圖1.CSMA/CA協(xié)議的工作原理圖;
圖2.幀間間隔位置與競爭窗口劃分圖;
圖3.改進后的CSMA/CA協(xié)議工作原理圖;
圖4.高優(yōu)先級數(shù)據(jù)發(fā)送流程圖;
圖5.高優(yōu)先級數(shù)據(jù)搶占發(fā)送機制原理圖;
具體實施方法
下面結合附圖詳細介紹本發(fā)明:
結合圖4所示,在發(fā)送數(shù)據(jù)前,初始化CSMA/CA中NB(退避次數(shù))和BE(二進制指數(shù))變量,將NB設置為0,BE設置為MinBE(二進制指數(shù)最小值),并對數(shù)據(jù)的高低優(yōu)先級進行判斷。如果判斷此數(shù)據(jù)為高優(yōu)先級數(shù)據(jù),進入高優(yōu)先級競爭窗口,然后啟動沖突避讓機制,等待一個避讓時間,避讓時間為random(CW)(根據(jù)競爭窗口CW生成的隨機數(shù)),進行物理層監(jiān)聽PCS(physical carrier sense)。當確認信道空閑時,將進入數(shù)據(jù)發(fā)送狀態(tài)。如果發(fā)現(xiàn)此信道處于繁忙狀態(tài),那么將NB和BE的變量加1,根據(jù)BE的值重新決定CW(競爭窗口)的大小。并判斷NB的值是否大于maxCSMABackoffs(最大退避次數(shù)),如果NB的值超出范圍,則退出發(fā)送,如果沒有超出,進入競爭窗口。
如果高優(yōu)先級的數(shù)據(jù)進入發(fā)送狀態(tài),將先發(fā)送一個RF信號給目標節(jié)點,如果目標節(jié)點接收到RF信號,將反饋一個AF信號,進行數(shù)據(jù)傳輸前的握手準備。如果RF信號已經(jīng)發(fā)送,等待一段時間,發(fā)現(xiàn)無AF回應,可以重發(fā)一次RF,并統(tǒng)計RF的發(fā)送次數(shù),如果發(fā)送次數(shù)超出范圍,退出發(fā)送狀態(tài)。
在發(fā)送數(shù)據(jù)的過程中,在幀發(fā)送之后,會間隔一段時間,再發(fā)送下一幀或等候下一幀,這段時間稱之為幀間間隔。幀之間的時間間隔對于數(shù)據(jù)的發(fā)送是非常必要的。結合圖2所示,在CSMA/CA協(xié)議中,有兩種幀間間隔;分別為CIFS和RIFS。CIFS(contention interframe space)稱之為爭奪幀間隙,它緊跟著ACK幀發(fā)送完成之后,表明數(shù)據(jù)發(fā)送完成。RIFS(response interframe space)稱之為回復幀間間隔,它出現(xiàn)在ACK幀之前,數(shù)據(jù)幀之后。在RF與AF之間的間隔稱之為SIFS(short interframe space)短幀間隙。
對于普通優(yōu)先級數(shù)據(jù)發(fā)送,首先等待高優(yōu)先級數(shù)據(jù)發(fā)送完成,高優(yōu)先級窗口關閉,普通優(yōu)先級窗口開啟,普通優(yōu)先級的數(shù)據(jù)進入普通優(yōu)先級窗口進行退避競爭,啟動物理層監(jiān)聽(PCS),確認信道空閑,獲得發(fā)送權的數(shù)據(jù),進入發(fā)送狀態(tài),其它數(shù)據(jù)進入等待狀態(tài)。獲得發(fā)送權的節(jié)點無須進行RF/AF握手,直接將數(shù)據(jù)發(fā)送給目標節(jié)點,目標節(jié)點接收到數(shù)據(jù)之后,發(fā)送ACK幀給源節(jié)點,源節(jié)點收到ACK幀,表明數(shù)據(jù)幀發(fā)送完成。
另外,為了確保高優(yōu)先級數(shù)據(jù)發(fā)送的絕對優(yōu)先權,我們考慮到了高優(yōu)先級數(shù)據(jù)搶占式發(fā)送機制。結合圖5所示,當一個普通優(yōu)先級數(shù)據(jù)正在發(fā)送過程中,網(wǎng)絡中的另一個節(jié)點接收到了應用層下發(fā)的高優(yōu)先級的數(shù)據(jù)。則此節(jié)點先進入退避狀態(tài),退避一段時間后,對電力線進行偵聽并判斷電力線上數(shù)據(jù)的高低優(yōu)先級。如果電力線上傳輸?shù)臄?shù)據(jù)優(yōu)先級為高優(yōu)先級時,則進入等待狀態(tài)。如果電力線上的數(shù)據(jù)是普通優(yōu)先級數(shù)據(jù),節(jié)點會發(fā)送一個RF幀,進行信道預約,并打斷普通優(yōu)先級數(shù)據(jù)發(fā)送。原先發(fā)送的節(jié)點被打斷后,會置重發(fā)標志位(Resend Flag),等待下一次發(fā)送。競爭到信道的節(jié)點接收到目的節(jié)點發(fā)出的AF幀后,接著發(fā)送數(shù)據(jù)幀,等待到目的節(jié)點的ACK幀回復后,則此次高優(yōu)先級數(shù)據(jù)發(fā)送結束。