尹亞蘭,李 琰,徐天奇,馮 昆
(云南民族大學 電氣信息工程學院,云南 昆明 650504)
近年來,諸多學者在無線網(wǎng)絡技術(shù)、通信技術(shù)等領(lǐng)域進行了深入研究,使之得到了迅猛發(fā)展.目前,無線網(wǎng)絡已經(jīng)能夠應用到大多數(shù)的工業(yè)現(xiàn)場中.然而,相比于其他網(wǎng)絡環(huán)境,工業(yè)生產(chǎn)流程對網(wǎng)絡性能有著更為嚴格的要求.在工業(yè)系統(tǒng)中,如果不能滿足工業(yè)生產(chǎn)對網(wǎng)絡性能的要求,所造成的損失往往比其他場景的損失更大:不僅會降低網(wǎng)絡的服務質(zhì)量和網(wǎng)絡系統(tǒng)性能,甚至還可能會因此出現(xiàn)整個網(wǎng)絡系統(tǒng)崩潰的情況,從而造成無法挽回的損失[1],特別是對電力系統(tǒng)這類對實時性有著最為嚴苛的要求的行業(yè)所造成的影響幾乎是不可估量的.
數(shù)據(jù)包丟失作為影響工業(yè)無線網(wǎng)絡的一大因素,受到了工業(yè)界和學術(shù)界的一致關(guān)注[2].由于工業(yè)環(huán)境對實時性的高要求,數(shù)據(jù)包的發(fā)送與接收通常都是在一個固定的時間內(nèi)完成,到達截止時間,則開始發(fā)送下一個數(shù)據(jù)包.信道狀態(tài)的不同,往往會出現(xiàn)部分數(shù)據(jù)包在截止時間內(nèi)未能傳輸成功,占用通信資源的情況.為了避免未成功傳輸?shù)臄?shù)據(jù)包占用通信資源影響下一個數(shù)據(jù)包的發(fā)送與接收,通常把在截止時間內(nèi)未成功傳輸?shù)那闆r視為數(shù)據(jù)包丟失[3].而工業(yè)現(xiàn)場對網(wǎng)絡數(shù)據(jù)傳輸?shù)目煽啃院痛_定性有著較高要求,數(shù)據(jù)包丟失往往會給網(wǎng)絡帶來不可靠性和不確定性,進而在工業(yè)生產(chǎn)流程中造成嚴重后果.因此降低網(wǎng)絡傳輸過程中的丟包率,提升工業(yè)無線網(wǎng)絡數(shù)據(jù)傳輸?shù)拇_定性,仍然是一個亟需解決的問題.
目前,針對無線網(wǎng)絡在進行數(shù)據(jù)傳輸?shù)倪^程中仍然存在著數(shù)據(jù)包丟失的問題,學術(shù)界和工業(yè)界已經(jīng)做出了許多研究與探討,也提出了很多解決方案,比如利用重傳機制、信道復用等技術(shù).但信道復用在使用過程中會帶來一些負面影響,比如電磁干擾等,因此大部分工業(yè)現(xiàn)場流程中的wireless HART網(wǎng)絡不能使用信道復用技術(shù)[1].雖然Gunatilaka等[4]改進了傳統(tǒng)的信道復用方法,盡量減少信道復用對網(wǎng)絡性能產(chǎn)生的不良影響,但其仍然存在鏈路干擾沖突等不確定問題.而重傳機制則不會出現(xiàn)鏈路干擾等情況,但重傳會耗費數(shù)據(jù)流傳輸過程中的時間,帶來更多的時延,甚至降低傳輸性能[5],因此學者們一直在不斷優(yōu)化重傳機制.針對無線網(wǎng)絡中因為丟包觸發(fā)重傳而導致傳輸性能大幅下降的問題,Dang等[6]通過為wireless HART網(wǎng)絡在重傳機制中分配合適的網(wǎng)絡資源,增強了wireless HART網(wǎng)絡的魯棒性,降低了數(shù)據(jù)傳輸過程中的時延,然而該算法仍然存在不低的丟包率.Djukic等[7]研究了基于TDMA的無線網(wǎng)絡調(diào)度問題,考慮數(shù)據(jù)包重傳導致時延增大的情況,尋找出了時延最小的丟包重新傳輸順序,但其只改進了重傳帶來的時延,并沒有顯著提高重傳成功率.
現(xiàn)有研究雖然都在一定程度上優(yōu)化了重傳機制,但就目前來看,工業(yè)無線網(wǎng)絡中數(shù)據(jù)流在不可靠鏈路中發(fā)生數(shù)據(jù)包丟失的問題依然顯著存在,而重傳機制也需要不斷改進.因此,為了滿足工業(yè)環(huán)境對無線網(wǎng)絡的確定性要求,針對丟包問題,本文基于TDMA技術(shù),研究改進wireless HART網(wǎng)絡的重傳機制,提高數(shù)據(jù)傳輸?shù)某晒β?
wireless HART網(wǎng)絡針對傳輸過程中數(shù)據(jù)包傳輸失敗的問題,在數(shù)據(jù)鏈路層和網(wǎng)絡層都提供了重傳機制[8],數(shù)據(jù)鏈路層重傳該數(shù)據(jù)包直到該數(shù)據(jù)包被轉(zhuǎn)發(fā)到下一個節(jié)點,網(wǎng)絡層重傳數(shù)據(jù)包直到接收到目的節(jié)點發(fā)出的響應數(shù)據(jù)包.鑒于工業(yè)現(xiàn)場對無線網(wǎng)絡的實時性要求,這兩種重傳機制有時間限制,在數(shù)據(jù)鏈路層,等待網(wǎng)絡層發(fā)出的數(shù)據(jù)包的時間有限制,在截止時間之前,如果網(wǎng)絡層沒有收到響應數(shù)據(jù)包,則會要求重傳該數(shù)據(jù)包,數(shù)據(jù)鏈路層將會對傳輸失敗的數(shù)據(jù)包進行重傳,直到重傳成功或到達截止時間或重傳次數(shù)達到最大;如果超時之前沒有接收到響應數(shù)據(jù)包,則會自動重傳該數(shù)據(jù)包,超出時間限制或者重傳次數(shù)達到閾值都沒有重傳成功則認為該數(shù)據(jù)報文傳送失敗.
wireless HART網(wǎng)絡在數(shù)據(jù)鏈路層主要利用時分多址接入(time division multiple access,TDMA)技術(shù)進行數(shù)據(jù)傳輸[9].TDMA技術(shù)把無線網(wǎng)絡信道中的時間分成大小相同的時隙(Slot),一定數(shù)量的時隙組成一個超幀(superframe),超幀按照自身的時間周期進行不斷地循環(huán)重復.wireless HART網(wǎng)絡中的數(shù)據(jù)傳輸以時隙為單位,一個時隙內(nèi)可以完成一個數(shù)據(jù)包的傳輸和一個確認(ACK)數(shù)據(jù)包的交換[10].wireless HART網(wǎng)絡的TDMA機制時隙結(jié)構(gòu)如圖1所示[11-12],圖1中的符號含義見表1.
圖1 wireless HART網(wǎng)絡中的TDMA時隙
表1 時隙內(nèi)通信的符號定義
在wireless HART網(wǎng)絡時隙模型圖(圖1)中,在源節(jié)點處,如果信道空閑評估(CCA)功能可以正常使用,則源節(jié)點在發(fā)送數(shù)據(jù)包的時隙開始后的TsCCAOffset時刻,利用CCA功能對傳輸信道進行空閑評估.如果傳輸信道正在進行數(shù)據(jù)包傳輸,則暫時放棄發(fā)送當前數(shù)據(jù)包,防止數(shù)據(jù)包之間出現(xiàn)競爭沖突.如果信道當前沒有發(fā)送數(shù)據(jù)包,則源節(jié)點在TsRxTx時間段內(nèi)準備進行數(shù)據(jù)包發(fā)送,在TsTxOffset時刻將數(shù)據(jù)包發(fā)出.源節(jié)點在數(shù)據(jù)包發(fā)送結(jié)束后等待TsRxAckDelay時間段,由發(fā)送數(shù)據(jù)包的狀態(tài)轉(zhuǎn)變成接收數(shù)據(jù)包的狀態(tài).若在TsAckWait范圍內(nèi),源節(jié)點接收到正確的ACK數(shù)據(jù)包,則表示該數(shù)據(jù)包已經(jīng)發(fā)送成功,反之該數(shù)據(jù)包發(fā)送失敗.
同時,目的節(jié)點在負責傳輸數(shù)據(jù)包的時隙開始后的TsRxOffset時刻是接收數(shù)據(jù)包的狀態(tài),若在TsRxWait時間范圍中目的節(jié)點沒有收到數(shù)據(jù)包,則判定該時隙內(nèi)沒有進行數(shù)據(jù)包傳輸.如果在TsRxWait時間范圍內(nèi),目的節(jié)點收到了數(shù)據(jù)包,則在接收完成后,在TsTxAckDelay時間段準備ACK數(shù)據(jù)包,在TsAck時刻,目的節(jié)點立即將ACK數(shù)據(jù)包發(fā)出.wireless HART網(wǎng)絡有著嚴格的時間同步機制,只有在正確的時間順序下,才能在響應的發(fā)送時隙內(nèi)進行消息的發(fā)送和接收.
網(wǎng)絡中包含I條數(shù)據(jù)流,表示為H={H1,H2,…,HI},每條數(shù)據(jù)流Hi(Hi∈H)周期性的產(chǎn)生數(shù)據(jù)包,并沿著傳輸路徑從源節(jié)點將數(shù)據(jù)包傳向目的節(jié)點.wireless HART網(wǎng)絡是基于時隙方式運行的多信道網(wǎng)絡,數(shù)據(jù)流通過信道中的時隙在節(jié)點之間進行傳輸.
結(jié)合冗余路徑與TDMA機制,考慮在重傳過程中對單路徑進行拆分,增加冗余信道,對發(fā)送失敗的數(shù)據(jù)包進行重傳.如圖2所示,基于wireless HART網(wǎng)絡的TDMA機制,本文的重傳機制針對單信道丟包的情況,把信道劃分為帶寬相同的S個子信道,而這些子信道在截止時間范圍內(nèi)用來傳輸數(shù)據(jù)包.由于信道狀態(tài)不同,數(shù)據(jù)傳輸成功率也不相同,因此當某一個數(shù)據(jù)包在其中某一個子信道沒有成功傳輸時,考慮信道狀態(tài),在其他子信道對該數(shù)據(jù)包進行重傳.
圖2 多徑傳輸模型
TDMA機制中的數(shù)據(jù)包在傳輸過程中以時隙為時間單位,數(shù)據(jù)包重傳最大次數(shù)為Q,數(shù)據(jù)包傳輸失敗時,利用冗余子信道對傳輸失敗的數(shù)據(jù)包再次進行數(shù)據(jù)傳輸,因此子信道總數(shù)S受重傳最大次數(shù)限制,不能超過重傳最大次數(shù),即S≤Q.為了滿足實時性要求,數(shù)據(jù)傳輸需要在截止時間的要求內(nèi)完成,以Ti表示數(shù)據(jù)流Hi的周期,即Hi要在Ti時間內(nèi)全部傳輸完成.用Di表示對Hi進行傳輸?shù)南鄬刂箷r間,即Di≤Ti.設數(shù)據(jù)流的傳輸時間為Zi,結(jié)合重傳機制,則其時間限制條件為:
Si×(Q+1)≤Di≤Ti.
(1)
對于數(shù)據(jù)流Hi的第j個數(shù)據(jù)包τi,j,在其傳輸完成后釋放的時間為:
Ri,j=Ti×(j-1)+1.
(2)
截止時間為:
Di,j=Ti×(j-1)+Di
(3)
將數(shù)據(jù)包τi,j的傳輸時間用Zi,j表示,則可以將滿足工業(yè)環(huán)境對數(shù)據(jù)傳輸?shù)膶崟r性需求并且考慮重傳的確定性調(diào)度問題表示為:
(4)
最后的結(jié)果用ks表示,若源節(jié)點A通過子信道s向目的節(jié)點B進行了一次成功數(shù)據(jù)傳輸,則ks=1,反之,目的節(jié)點B沒有收到源節(jié)點A發(fā)送的數(shù)據(jù)包,則ks=0.
子信道在進行數(shù)據(jù)傳輸前,在給首次進行數(shù)據(jù)包傳輸調(diào)度通信資源的同時,還需要考慮數(shù)據(jù)包進行Q次重傳時所需要的通信資源,所以在嚴格的時間限制下,還應該考慮進行數(shù)據(jù)流傳輸后剩余的還能夠進行數(shù)據(jù)包重傳的通信資源.若數(shù)據(jù)包τj傳輸信道s上的第u個周期Fs,u在當前時隙t需要進行數(shù)據(jù)傳輸,且Fs,u前一個周期的數(shù)據(jù)傳輸已經(jīng)完成,那么Fu處于釋放態(tài).令Ut表示在時隙t時已經(jīng)調(diào)度完成的周期數(shù),Vt表示在時隙t剩余未調(diào)度的周期數(shù),數(shù)據(jù)流Hi在時隙t的傳輸狀態(tài)如圖3所示.
圖3 數(shù)據(jù)流Hi在時隙t的傳輸狀態(tài)
由圖3可知,周期Fs,u的剩余可調(diào)度時隙個數(shù)為:
Di,j-(Q+1)×t+1.
(5)
此時還有Vt個未傳輸數(shù)據(jù)的周期,則定義周期Fs,u在時隙t的截止時間裕度為:
μt(Fs,u)=Di,j-(Q+1)×(t+Vt)+1.
(6)
因為數(shù)據(jù)重傳需要占用一定的通信資源,截止時間裕度越小,就越不可能在截止時間內(nèi)完成重傳,導致傳輸失敗,因此還需要滿足公式(7):
(7)
上述公式表明,子信道可以進行數(shù)據(jù)包重傳調(diào)度的必要條件是子信道上的每個超幀內(nèi)周期的截止時間裕度都必須滿足公式(7).
數(shù)據(jù)包τj本身具有釋放時間Ri,j和傳輸截止時間Di,j,因此τj在信道中的存活時間為[Ri,j,Di,j].相同地,由Ri,j和Di,j能夠得到數(shù)據(jù)流傳輸路徑上每一個鏈路的存活時間.
定義數(shù)據(jù)流的傳輸信道τs的存活時間為:
fD(τs)=[rs,ds].
(8)
公式(8)中rs為子信道存活時間的最小值,表示子信道τs在rs時間前一直在發(fā)送數(shù)據(jù)包;ds則是子信道存活時間的最大值,即子信道τs進行數(shù)據(jù)包傳輸?shù)慕刂箷r間.則rs的計算方式為:
rs=Ri,j+pers×(Q+1).
(9)
公式(9)中pers表示從產(chǎn)生數(shù)據(jù)報文的源節(jié)點發(fā)送數(shù)據(jù)包到達目的節(jié)點的過程中需要的周期個數(shù).
類似地,ds的計算方式為:
ds=Di,j-pers×(Q+1).
(10)
公式(10)表示在截止時間限制下,子信道τs不能在ds之后進行數(shù)據(jù)包的傳輸.因此,子信道τs的存活時間為:
fD(τs)=[Ri,j+pers×(Q+1),Di,j-pers×(Q+1)].
(11)
從上述公式可以計算出,信道τs的存活時間內(nèi)擁有的時隙個數(shù)為:
Δs=ds-rs+1.
(12)
定義η為存活時間被包含于fD(τs)內(nèi)的子信道數(shù).在能夠進行數(shù)據(jù)傳輸?shù)淖有诺罃?shù)為S時,考慮子信道存活時間內(nèi)的時隙數(shù),將以上公式整理后得到:
(13)
本文研究的多路徑重傳調(diào)度算法具體步驟如下.
1)初始化.設置參數(shù):子信道數(shù)、數(shù)據(jù)流傳輸?shù)慕刂箷r間、子信道中的周期和時隙、重傳次數(shù).令當前時隙t=1.
2)如果當前時隙t大于超幀的周期,則在該周期不能進行數(shù)據(jù)傳輸,認為傳輸失敗,算法結(jié)束;如果當前時隙t小于等于周期,同時數(shù)據(jù)包傳輸已經(jīng)成功,則返回數(shù)據(jù)傳輸?shù)慕Y(jié)果;若當前時隙t小于等于周期,并且子信道中還存在沒有進行數(shù)據(jù)傳輸?shù)奶幱卺尫艖B(tài)的周期或者重傳子信道,則表示子信道正在進行數(shù)據(jù)傳輸,進入3).
3)在當前時隙t,根據(jù)丟包率的大小進行排序,按從小到大的順序依次對重傳數(shù)據(jù)進行重傳處理.如果當前時隙沒有足夠進行數(shù)據(jù)包重傳的時隙,進入4);如果當前時隙有足夠進行數(shù)據(jù)包重傳的時隙,則進入5).
4)按子信道丟包率大小選擇子信道準備重新傳輸.如果當前準備進行數(shù)據(jù)傳輸?shù)闹芷诘慕刂箷r隙小于t,則該子信道不能進行數(shù)據(jù)傳輸,將在其他子信道進行數(shù)據(jù)傳輸,同時根據(jù)t和Di更新重傳子信道的截止時間,返回2).
5)將重傳信道集合中子信道的截止時隙和2)中的條件相對應.如果該子信道不能進行數(shù)據(jù)傳輸,在重傳子信道集合中剔除該子信道;反之則保留重傳子信道集合中的所有子信道,進入6).
6)按子信道排序依次進行數(shù)據(jù)包的重傳,所有的數(shù)據(jù)包傳輸完成后進入7).
7)根據(jù)6)中數(shù)據(jù)包傳輸結(jié)果,更新重傳子信道集合中子信道的重傳信息;將6)中傳輸完成的子信道添加到重傳子信道集合中,并更新該子信道的截止時間和當前時隙t=t+1,返回2).
本文利用Matlab對提出的基于優(yōu)先級與多路徑結(jié)合的wireless HART網(wǎng)絡重傳算法進行了仿真驗證與對比分析.其中網(wǎng)絡中需要進行傳輸?shù)臄?shù)據(jù)流個數(shù)N=100,數(shù)據(jù)流的周期在Prange=2a~b,a≤b內(nèi)隨機生成.考慮工業(yè)無線網(wǎng)絡對時延的嚴格要求,重傳次數(shù)限制在3次,第3次重傳失敗就視為傳輸失敗,則子信道設為3,子信道的丟包率呈正態(tài)分布.
首先選取傳輸成功率對算法進行評估,傳輸成功率高低表示算法的性能好壞.
圖4中,在不同的數(shù)據(jù)流量情況下,以傳輸成功率為性能指標,將提出的算法與最早截止時間優(yōu)先(earliest deadline first,EDF)算法和截止時間單調(diào)(deadline monotonic,DM)算法進行了對比.從圖中可以明顯觀察到,本文提出的基于多路徑重傳算法的傳輸成功率在不同數(shù)據(jù)流量下均比其他兩種算法的傳輸成功率高.
圖4 不同數(shù)據(jù)流量的傳輸成功率
除了對傳輸成功率進行了評估,還以平均重傳次數(shù)和平均重傳時延為性能指標,以丟包率為變量進行仿真對比,驗證本文的重傳策略的可行性,仿真結(jié)果如圖5,圖6所示.
從圖5中可以看到,本文提出的重傳策略的平均重傳次數(shù)均低于隨機重傳策略和固定重傳策略,說明多路徑重傳策略的重傳成功率高于其他兩種重傳策略,進一步說明了本文的重傳方案的可行性.從圖6中可以看到,本文的多路徑重傳策略的平均重傳時延比其他兩種重傳策略的平均重傳時延都小,而隨機重傳的平均重傳時延在丟包率增大到0.13左右時已經(jīng)超過了其他2種策略.圖6證明,本文提出的多路徑重傳調(diào)度算法在考慮重傳的情況下,算法帶來的平均重傳時延低于其他2種重傳策略,這也表明算法在調(diào)度過程中具有低時延優(yōu)勢,說明算法具有可行性.
圖5 平均重傳次數(shù)比較
圖6 平均重傳時延比較
針對工業(yè)無線網(wǎng)絡中仍然存在的數(shù)據(jù)包丟失問題,本文提出一種重傳和多路徑結(jié)合的確定性調(diào)度算法.該算法結(jié)合基于優(yōu)先級的重傳機制與多路徑重傳策略,首先考慮信道狀態(tài),根據(jù)信道丟包率制定子信道優(yōu)先級,然后根據(jù)優(yōu)先級選擇重傳子信道對需要重傳的數(shù)據(jù)包進行重傳.最后,對提出的重傳策略以丟包率為變量進行了仿真實驗,用不同性能指標對算法的性能進行了對比評估.最后的仿真結(jié)果表明,提出的基于優(yōu)先級的重傳與多路徑結(jié)合算法的傳輸成功率高于其他對比策略,同時產(chǎn)生較低的時延.然而算法沒有考慮工業(yè)環(huán)境的資源受限問題,重傳處理需要占用一定的通信資源,因此未來的研究工作還需要在重傳過程中進一步考慮對資源進行合理調(diào)度.