徐 智,張 楠,胡麗娜,丁洪偉,劉龍軍
(1.云南大學 信息學院,云南 昆明 650504;2.武警北京總隊第三醫(yī)院,北京 豐臺區(qū) 100039)
CSMA即載波監(jiān)聽多路訪問[1],是提高通信傳輸效率的重要MAC層協(xié)議,被廣泛應用于無線網(wǎng)絡[2]。該協(xié)議技術的控制機理是在信息數(shù)據(jù)傳輸?shù)倪^程中,各個信息站點根據(jù)偵聽到信道的工作情況,調(diào)整自己的行為。根據(jù)具體的偵聽發(fā)送策略,可以將CSMA分為非堅持CSMA[3]、1-堅持CSMA[4]和P-堅持CSMA。其中,非堅持CSMA對信道的利用率太低,以1-堅持CSMA接入的信道碰撞率太高;而P-堅持CSMA[5]綜合了這兩種協(xié)議的特點,在站點發(fā)送數(shù)據(jù)前對信道進行偵聽,若信道忙,則以一定的概率P來決定是否繼續(xù)偵聽;若信道空閑,則立即發(fā)送數(shù)據(jù)。該協(xié)議可通過調(diào)整偵聽概率來達到一定的平衡,提升系統(tǒng)吞吐量,從而保證通信傳輸效率。
MATLAB是一種數(shù)學軟件,通過其運算與繪圖功能可以對通信協(xié)議的數(shù)學模型進行仿真,但這些實驗僅僅是對算法的理論進行結果驗證,并沒有剖析其實現(xiàn)的原理與傳輸?shù)倪^程。而FPGA作為硬件化的一種表現(xiàn),通過建立控制類型數(shù)字系統(tǒng)為通信協(xié)議的硬件實現(xiàn)提供可行方式,將算法中的控制原理體現(xiàn)在各個電路模塊上,使節(jié)點傳輸過程在硬件電路上得到體現(xiàn)。針對現(xiàn)有通信協(xié)議硬件設計[6-7]中信源模塊與傳輸模塊設計的不足,本文運用FPGA為P-堅持CSMA協(xié)議的硬件實現(xiàn)提供了可靠方案,首先運用MATLAB和Quartus II兩種軟件設計出滿足P-堅持CSMA協(xié)議算法中所要求的信源模塊;而后通過硬件電路描述語言Verilog[8-9]和邏輯電路設計相結合的方法建立穩(wěn)定傳輸?shù)碾娐?,充分展現(xiàn)了P-堅持CSMA協(xié)議算法中的控制策略;最終經(jīng)過分析比較,得到該設計的測試結果與理論值一致,且該協(xié)議系統(tǒng)的吞吐量以及平均功率優(yōu)于其他一些MAC層協(xié)議,而系統(tǒng)的高吞吐量和低功耗恰恰證實了該協(xié)議在提升系統(tǒng)通信效率與減少節(jié)點傳輸能耗方面的功能。該設計在硬件方面的實現(xiàn),是一個從理論聯(lián)系到實踐的過程,對提高網(wǎng)絡通信效率具有現(xiàn)實意義,可廣泛應用到無線傳感器網(wǎng)絡、物聯(lián)網(wǎng)等領域。
P-堅持CSMA協(xié)議原理為當一個站點要發(fā)送數(shù)據(jù)時,首先會對信道進行偵聽,若信道處于空閑狀態(tài),那么就立即發(fā)送數(shù)據(jù);如果偵聽到信道忙,則會根據(jù)設定的概率P來決定是否繼續(xù)偵聽信道。
圖1 P-堅持CSMA協(xié)議模型圖
如圖1所示,U、B和I分別表示信道的信息分組發(fā)送成功、信道沖突和信道空閑3個狀態(tài)。TP為一個信息分組的發(fā)送時間,BU為信息分組發(fā)送成功和產(chǎn)生碰撞的聯(lián)合事件;Tu為出現(xiàn)忙時間周期和空閑時間周期的一個循環(huán)周期;
在對協(xié)議算法分析前,對系統(tǒng)進行如下假設與定義:
1)信道接入的方式為P-堅持CSMA協(xié)議,并且信道上的信息分組到達過程都滿足獨立參數(shù)為G的泊松分布[10];
2)信道空閑的時隙長度為a,有分組發(fā)送時的時隙長度為單位長度1,為a的整數(shù)倍;
在時間t內(nèi),信道上到達的信息分組數(shù)位n的事件發(fā)生概率為:
(1)
則在n個分組中,有m個分組以概率P堅持發(fā)送信道的概率為:
(2)
在一個空閑時隙a內(nèi),信道無分組發(fā)送的概率為:
(3)
在一個傳輸期(1+a)內(nèi),信道只有一個信息分組發(fā)送的事件概率為:
(4)
在一個傳輸期(1+a)內(nèi),信道沒有信息分組要發(fā)送的概率為:
(5)
在一個傳輸期(1+a)內(nèi),信道只有一個信息分組,且下個時隙將發(fā)送的事件概率為:
(6)
在一個傳輸周期(1+a)的信道上連續(xù)i個空閑事件I的概率為:
p(NI=i)=(e-aGP)i-1(1-e-aGP)
(7)
在一個傳輸周期(1+a)的信道上,連續(xù)j個忙事件BU的概率為:
p(NBU=j)=(1-e-(1+a)GP)j-1e-(1+a)GP
(8)
上述兩種事件聯(lián)合概率為:
pNI=i,NBU=j=(e-aGP)i-1
(9)
在一個循環(huán)周期TP內(nèi),信道處于空閑狀態(tài)所占用的平均時隙數(shù)為:
(10)
同時信道忙碌的時隙數(shù)為:
(11)
在進行一個循環(huán)周期TP中,信息分組發(fā)送成功有以下兩種情況。
1)空閑期的最后一個時隙一個信息分組到達,并且在下個時隙立即發(fā)送,該事件平均時隙數(shù)為:
(12)
2)忙周期到達,且是決定以概率P在下一個時隙發(fā)送,該事件平均時隙數(shù)為:
ENU2=(1+a)GP
(13)
則信息分組發(fā)送成功總占用的平均時隙數(shù)為:
(14)
信道忙事件總占用的平均時隙數(shù)為:
(15)
信道空閑事件總占用的平均時隙數(shù)為:
(16)
(17)
為了求得系統(tǒng)功耗的數(shù)學表達式,對信道在以下3種不同狀態(tài)下所需功率進行設定。
1)處于發(fā)送狀態(tài)時功率為Ps;
2)處于偵聽狀態(tài)時功率為Pl;
3)處于接收狀態(tài)時功率為Pr。
系統(tǒng)功率也分為以下3種情況。
1)假設系統(tǒng)中的節(jié)點總數(shù)為M,當空閑時隙a內(nèi)決定發(fā)送分組的終端數(shù)量為1時,此時系統(tǒng)功率為:
Ps+(M-1)Pr
(18)
那么在一個平均傳輸周期內(nèi),分組成功發(fā)送所需要的功率為:
(19)
當空閑時隙a內(nèi)無終端決定發(fā)送分組的時候,所有終端站點都在偵聽信道,系統(tǒng)功率為MPl,則在一個平均傳輸周期內(nèi),信道處于空閑狀態(tài)的系統(tǒng)功率為:
(20)
2)基于前面的分析,對系統(tǒng)進行的是(I,BU,T)平均循環(huán)周期的劃分,因此在一個平均傳輸周期內(nèi),信道發(fā)生碰撞的系統(tǒng)功率為:
(21)
其中,
EB=EBU-EU(1+a)
(22)
因此,在一個平均傳輸周期內(nèi),系統(tǒng)的平均功率為:
PA=PU+PB+PI
(23)
根據(jù)FPGA自頂向下的設計特點,對P-堅持CSMA協(xié)議接入的通信系統(tǒng)的實現(xiàn)需要進行模塊化設計。根據(jù)協(xié)議原理,在設計的過程中將系統(tǒng)劃分為數(shù)據(jù)存儲、時隙長度控制、信息分組處理和吞吐量檢測4個模塊。圖2為基于FPGA的P-堅持CSMA協(xié)議設計的系統(tǒng)電路架構圖。
圖2 系統(tǒng)電路架構圖
從圖2中可看到由MATLAB軟件產(chǎn)生泊松數(shù)據(jù)流引入到Quartus II軟件中,經(jīng)過數(shù)據(jù)存儲模塊和時隙控制模塊后生成信息站點;隨后信息站點的數(shù)據(jù)經(jīng)過信息分組處理模塊后可實現(xiàn)P-堅持CSMA的控制機理;吞吐量檢測模塊是對整個電路的結果進行數(shù)量統(tǒng)計,便于計算系統(tǒng)傳輸過程中的吞吐量;而根據(jù)吞吐量的理論值和統(tǒng)計值的比較可判斷硬件電路是否設計成功。
從P-堅持CSMA協(xié)議的算法中已經(jīng)得知,信道上的信息分組到達過程都必須滿足獨立參數(shù)為G的泊松分布,但是在Quartus II中并沒有相關的內(nèi)核或者模塊能夠產(chǎn)生泊松分布的數(shù)據(jù)流,因此就需要借助其他軟件生成泊松數(shù)據(jù)流。
圖3即初站點生成圖,首先由MATLAB軟件中的泊松函數(shù)生成到達率為G的泊松數(shù)據(jù)流,然后通過QuartusⅡ中內(nèi)核ROM模塊對該數(shù)據(jù)流進行讀寫存儲,將存儲的泊松數(shù)據(jù)流經(jīng)過8分頻時鐘控制生成擬定的信息分組數(shù)據(jù)(1代表信道空閑,8代表數(shù)據(jù)發(fā)送成功,9代表信息沖突),最終生成初站點。
圖3 初站點生成圖
由數(shù)據(jù)存儲模塊可以產(chǎn)生初站點,該站點的數(shù)據(jù)流滿足泊松分布;在P-堅持CSMA協(xié)議中空閑事件時隙長度為a,而忙事件的時隙長度為單位1,是a的整數(shù)倍,但是初站點的數(shù)據(jù)流中空閑事件與忙事件的時隙長度是一樣的,并沒有倍數(shù)關系,因此需要對時隙長度進行控制。
圖4即為FPGA時隙長度控制模塊,該模塊由異步FIFO和反饋信號模塊組成。異步FIFO對初站點信息流進行讀寫控制;反饋信號模塊具有監(jiān)測與延時功能,實際上是由一個計數(shù)器完成時隙長度控制功能。由于異步FIFO模塊讀使能從有效變?yōu)闊o效時,輸出的信息會保持最后讀到的數(shù)據(jù),根據(jù)這一特性,當反饋模塊檢測到初站點信息流數(shù)據(jù)為忙碌數(shù)據(jù)時,暫停讀使能,通過計數(shù)控制恢復讀使能的時間,這個恢復的時間就是忙碌事件的時隙長度,故最終實現(xiàn)了時隙長度可控的功能。
圖4 FPGA時隙長度控制模塊
已知信道中存在信道空閑和信道忙碌(成功與碰撞的聯(lián)合事件)兩種狀態(tài)。在硬件實現(xiàn)過程中為了體現(xiàn)這兩種事件,將一個信息站點劃分為空閑站點和忙碌站點。這兩個站點數(shù)據(jù)分別來自MATLAB軟件中兩個泊松數(shù)據(jù)流,到達率分別為G1和G2,且G1+G2=G,這樣一個到達率為G的泊松數(shù)據(jù)站點便生成了。而信息分組處理模塊根據(jù)信道總線上實時數(shù)據(jù)1、8、9來選擇性讀取空閑或忙碌站點的信息數(shù)據(jù),這樣系統(tǒng)即完成了偵聽信道的功能又實現(xiàn)了滿足P-堅持協(xié)議控制的機理。
該模塊由計數(shù)器組成,對系統(tǒng)信息分組發(fā)送成功的個數(shù)進行數(shù)值統(tǒng)計,然后根據(jù)成功個數(shù)所占整個仿真時間的比例來計算吞吐量的仿真值。
運用Quartus II 9.0進行綜合與布局布線,系統(tǒng)工作最小時鐘周期為10 ns,站點發(fā)送的信息長度為8 bit,空閑時隙a=0.1,空閑信息所占時隙長度為80 ns,忙碌信息所占時隙長度為800 ns,設定仿真時間為500s,系統(tǒng)信息總到達率G=2,G1=0.5,G2=0.75,選擇性偵聽概率P=0.5。根據(jù)以上系數(shù)設定進行電路仿真,復位信號rst低電平時系統(tǒng)復位,高電平時系統(tǒng)正常工作,得到仿真結果如圖5所示。
圖5 系統(tǒng)仿真測試結果
如圖5所示,U為信道總線上數(shù)據(jù)傳輸成功事件時隙的個數(shù),為3 236。在T=500 μs,a=0.1,G=2,P=0.5,M=2,Ps=70 mW,Pr=40 mW,Pl=16 mW的條件下對該電路進行仿真,經(jīng)計算,系統(tǒng)吞吐量的仿真值為0.470 7,與理論值0.470 9相符;根據(jù)系統(tǒng)吞吐量仿真值后,可計算系統(tǒng)仿真過程中節(jié)點平均功率值為34.131 mW,與理論值34.132 mW相符,證明了該協(xié)議設計正確。
P-堅持CSMA與其他協(xié)議系統(tǒng)的吞吐量理論值與統(tǒng)計值的對比如圖6所示,各MAC層協(xié)議硬件測試的吞吐量統(tǒng)計值點均在理論值曲線上。從圖中可清晰看到P-堅持CSMA協(xié)議不僅有著較高的吞吐量,并且在系統(tǒng)到達率增大的情況下能保持較高的吞吐量,展現(xiàn)了其較強的穩(wěn)定性與實用性。
圖6 P-堅持CSMA協(xié)議與其他協(xié)議吞吐量比較
在系統(tǒng)平均功率的測試中,根據(jù)已設定的條件,經(jīng)仿真得到P-堅持CSMA與其他協(xié)議系統(tǒng)的平均功率對比圖如圖7所示。從圖中可知在系統(tǒng)到達率變化范圍內(nèi),P-堅持CSMA協(xié)議系統(tǒng)始終比其他兩種MAC協(xié)議的平均功率低,且系統(tǒng)平均功率統(tǒng)計值均在理論值曲線上,證實了該協(xié)議能夠有效降低通信系統(tǒng)的能耗。
圖7 P-堅持CSMA協(xié)議與其他協(xié)議平均功率比較
本文根據(jù)P-堅持CSMA協(xié)議的信息站點工作特點與需求,運用FPGA對該策略接入控制協(xié)議的系統(tǒng)進行設計。該設計可適用于信息分組到達率不斷變化的現(xiàn)實通信系統(tǒng)中,能有效地減少信道空閑資源的浪費與能量消耗,提高整個系統(tǒng)的通信效益。通過對設計的P-堅持CSMA協(xié)議的仿真測試與實驗統(tǒng)計分析,驗證了所設計的硬件電路能夠按照協(xié)議規(guī)則實現(xiàn)相關控制功能,有效提高信道利用率,減少能量消耗,且具有較強的穩(wěn)定性與實用性,可廣泛應用于無線傳感器網(wǎng)絡[11]和移動通信網(wǎng)絡[12]等領域。