任振興
摘要:該文對LonWorks總線網(wǎng)絡(luò)的協(xié)議模型進行了分析,采用MATLAB7.4.0仿真軟件對LonWorks總線網(wǎng)絡(luò)通信實時性進行仿真分析。仿真結(jié)果表明,影響通信實時性能的主要因素是不同站點數(shù)下的負載提供情況。網(wǎng)絡(luò)在輕負載情況下,如果提供負載不超過400包/s,節(jié)點數(shù)在一定數(shù)目下,沖突率就能控制在2%以下,同時平均訪問延時在負載為400包/s時也是很小的;當(dāng)網(wǎng)絡(luò)在輕負載情況下,隨著BL值的增加,插入的隨機時間片減少,節(jié)點發(fā)送速度較快;在重負載下,隨著BL值增加,插入的隨機時間片較多,可有效避免沖突。最后初步提出幾種改善LonWorks總線網(wǎng)絡(luò)通信延遲的可行性方法。
關(guān)鍵詞:LonWorks總線;實時性;沖突;仿真
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2016)30-0217-03
LonWorks(Local Operating Network,局部操作網(wǎng)絡(luò))是美國Echelon公司開發(fā)的一種局域網(wǎng)絡(luò)控制系統(tǒng)能夠建立生產(chǎn)過程現(xiàn)場級設(shè)備之間及其與更高控制管理層之間的通訊,負責(zé)底層設(shè)備數(shù)據(jù)的上傳和管理層控制命令的下達。實現(xiàn)基本控制、補償計算、參數(shù)修改、報警、顯示、監(jiān)控、優(yōu)化及控管一體化的綜合自動化功能。已在電力監(jiān)控系統(tǒng)、制造自動化、過程自動化、樓宇、交通領(lǐng)域得到廣泛應(yīng)用[1][2]。由于LonWorks網(wǎng)絡(luò)為底層控制網(wǎng)必須滿足對現(xiàn)場控制設(shè)備的實時性和信道數(shù)據(jù)傳輸?shù)母咝砸?。LonWorks總線使用LonTalk協(xié)議,其介質(zhì)訪問控制層采用帶沖突檢測的載波監(jiān)聽多路訪問(CSMA/CD)控制方式。各個站點采用“優(yōu)先級可預(yù)測P—持續(xù)CSMA/CD”二進制指數(shù)退避算法來處理沖突,導(dǎo)致每次信號重發(fā)的等待時間不一致,使得通信延遲時間不確定??紤]LonWorks網(wǎng)絡(luò)的通信延遲降低監(jiān)控系統(tǒng)的實時性能,因而目前對LonWorks總線網(wǎng)絡(luò)實時性能進行分析是LonWorks技術(shù)研究的重要內(nèi)容之一。
1 LonWorks總線網(wǎng)絡(luò)協(xié)議模型分析
1.1 協(xié)議模型
LonWorks總線采用LonTalk協(xié)議,LonTalk協(xié)議的 MAC子層的報文周期見圖1[3]。由圖1可知[β1]出現(xiàn)在一幀報文的后面,其中[β1]是一個空閑時間,作用是隔離信道上的所有報文幀,在[β1]期間沒有任何信息傳送才表示網(wǎng)絡(luò)空閑,任何節(jié)點在發(fā)送數(shù)據(jù)前需先確定網(wǎng)絡(luò)是否空閑。緊跟在[β1]后的是優(yōu)先級時間片,它由大小相等的n個傳送延時Tslot組成,LonTalk協(xié)議規(guī)定n值可以為128,緊跟在優(yōu)先級時間片后面的是隨機時間片,它由大小相等的傳送延時[β2]組成,隨機傳送延時[β2]的個數(shù)允許為1008個,優(yōu)先傳送延時Tslot和[β2]的大小相等。LonTalk協(xié)議規(guī)定在一個報文周期內(nèi)只能有一幀報文被發(fā)送,Tslot對應(yīng)的節(jié)點比[β2]對應(yīng)的節(jié)點優(yōu)先級高,越靠近[β1]的傳送延時對應(yīng)的節(jié)點優(yōu)先級就越高。
節(jié)點發(fā)送報文前隨機插入[0~w]個隨機時隙,為此信道中的任一節(jié)點在發(fā)送報文之前平均插入了[w2]個隨機時隙,公式為[w=BL×wbase],其中[w]會根據(jù)網(wǎng)絡(luò)負載變化而變化,[wbase]是基本隨機窗口內(nèi)隨機時隙的個數(shù),在此BL為某一時刻網(wǎng)上將發(fā)送消息包的數(shù)目的預(yù)估值,[wbase]=16。
節(jié)點有報文需要利用信道發(fā)送時,首先需要在[β1]周期內(nèi)確認網(wǎng)絡(luò)是否空閑,是否有報文。若網(wǎng)絡(luò)被確認為空閑,一個隨機等待時間會被節(jié)點產(chǎn)生,隨機等待時間為[0~w]隨機時間片[β2]中的一個,待到延時結(jié)束,網(wǎng)絡(luò)仍被確認為空閑,這個時候節(jié)點才可以發(fā)送報文;否則,節(jié)點檢測是否需要接收信息,然后再重復(fù)MAC算法。
BL值是某一時刻網(wǎng)上將發(fā)送信息包的數(shù)目的預(yù)估值,每個節(jié)點都有一個當(dāng)前信道使用情況的BL估計值。當(dāng)檢測到一個MPDU(報文格式)發(fā)送或接收時,BL值會增加1;同時每隔一個固定報文周期BL值會減1,然后BL值會被放到MPDU/LPDU中。由于BL值需要大于等于1,所以當(dāng)BL值為1時就不再減了。
概率[p]值的動態(tài)變化與隨機時隙數(shù)的動態(tài)變化之間的關(guān)系說明如下:
(1)概率[p]值的動態(tài)變化取決于隨機時隙數(shù)的動態(tài)變化。
當(dāng)網(wǎng)上將發(fā)送的信息包的數(shù)目增加時,數(shù)據(jù)將被節(jié)點分布在更多的時隙上發(fā)送,參數(shù)BL(backlog)決定了增加的時隙數(shù)量,其中BL為網(wǎng)絡(luò)負載,BL的取值范圍為1~63,隨機時隙數(shù)目R=16×BL=16~1008。
(2)節(jié)點對網(wǎng)絡(luò)負載的預(yù)測能力決定了隨機時隙數(shù)目的動態(tài)變化。
每一個節(jié)點在網(wǎng)上啟動發(fā)送信息之前,首先隨機時隙數(shù)會根據(jù)BL值進行調(diào)整,然后以概率[1BL?16]在某一隨機分配的時隙發(fā)送數(shù)據(jù)。每一個網(wǎng)絡(luò)上的節(jié)點都擁有一個自己的BL值,BL是節(jié)點對當(dāng)前網(wǎng)絡(luò)負載的估計。BL是按照如下方法預(yù)測得出的:節(jié)點在它發(fā)送的消息包中增加了接收到該消息需要肯定應(yīng)答的節(jié)點數(shù)目,也就是發(fā)送消息包將帶來的應(yīng)答數(shù)信息,新的BL值由收到該信息包的節(jié)點的BL值加上對應(yīng)的應(yīng)答數(shù)得來,從而達到更新隨機時隙的目的,同時節(jié)點在發(fā)送完消息包時,它的BL值將會自動減l,必須選擇應(yīng)答服務(wù)才能實現(xiàn)預(yù)測,如果應(yīng)答服務(wù)類型被數(shù)據(jù)包所采用,則可以預(yù)測50%或更高的網(wǎng)絡(luò)負載。
2 LonWorks網(wǎng)絡(luò)通信延遲分析
2.1 LonTalk協(xié)議的實時特性
有多個節(jié)點設(shè)備同時在總線上發(fā)送報文時會產(chǎn)生沖突,根據(jù)退避算法,各節(jié)點設(shè)備發(fā)送報文之前等待一段時間。LonTalk網(wǎng)絡(luò)的通信延時主要包括以下幾點。
1)數(shù)據(jù)傳輸?shù)难訒r[Ttran]:從數(shù)據(jù)進入發(fā)送節(jié)點的排隊隊列時起,至目的節(jié)點成功接收該數(shù)據(jù)時止;
2)數(shù)據(jù)排隊的延時[Tque]:從數(shù)據(jù)進入發(fā)送節(jié)點的排隊隊列時起,到該數(shù)據(jù)所在隊列的前面數(shù)據(jù)被發(fā)送完時止;
3)數(shù)據(jù)阻塞的時間[Tblock]:從節(jié)點將向網(wǎng)絡(luò)上發(fā)送數(shù)據(jù)時起,到將數(shù)據(jù)真正發(fā)送到網(wǎng)絡(luò)上為止;
4)數(shù)據(jù)發(fā)送的凈延時[Tframe]:完整的數(shù)據(jù)被一次性成功發(fā)送到網(wǎng)絡(luò)上所需要的時間。數(shù)據(jù)的幀長度和比特位時間[Tbit]等參數(shù)決定了該時間的大小;
5)通道傳播的延時[Tprop]:該延時大小取決于數(shù)據(jù)在網(wǎng)絡(luò)上的傳輸速度和目的節(jié)點與發(fā)送節(jié)點之間的距離;
6)接收的延時[Tdrv]:數(shù)據(jù)被目的節(jié)點完整接收所需要的時間。
由此得到:
在多數(shù)的實際控制應(yīng)用中,一個節(jié)點的新報文到來時,舊的報文就會丟失[3],因此[Tque]可以忽略。總線傳輸距離不是很長,LonWorks的總線形結(jié)構(gòu)網(wǎng)絡(luò)最長距離為2700m[5],因此[Tprop]和[Tdrv]可以忽略。所以式(1)可簡化為以下公式:
2.2 信道吞吐量和沖突率
吞吐量:指的是單位時間內(nèi),信道成功傳輸?shù)膸颍〝?shù)據(jù)量)。在這里是信道比特率的百分比。設(shè)一個幀長度為[L]。
[τsucc]是一個幀周期傳輸報文成功的平均時間長度;
[τcoll]是一個幀周期傳送過程中發(fā)生碰撞的平均時間長度。
[dsucc]為平均時隙個數(shù),在此節(jié)點贏得總線使用權(quán)開始傳輸數(shù)據(jù)。
[dcoll]為平均時隙個數(shù),在此節(jié)點傳輸過程中發(fā)生沖突。
就目前所研究的吞吐量而言,一般取[β1=4bits],[β2=2bits],幀長度[L=96bits]。
沖突率:幀傳輸過程中發(fā)生沖突的小部分時間。
3 仿真結(jié)果及其分析
影響LonWorks網(wǎng)絡(luò)通信延遲的主要因素是不同站點數(shù)下的負載提供情況,本文是在MATLAB7.4.0軟件環(huán)境下借助于TrueTime工具箱進行仿真,來分析這幾個參數(shù)對LonWorks總線網(wǎng)絡(luò)實時性能的影響。對LonTalk MAC算法在不確認服務(wù)下仿真,假定數(shù)據(jù)包長度為12Bytes,信道速率為78kbps。
3.1站點數(shù)(節(jié)點數(shù))下負載與信道吞吐量之間的關(guān)系。
由圖2可以看出,當(dāng)節(jié)點數(shù)個數(shù)很小時,即為2以內(nèi),信道吞吐量隨著所提供負載的增長而增長,吞吐量達到最大值84%左右,將保持穩(wěn)定,即使負載再增長,吞吐量將保持在穩(wěn)定的范圍內(nèi);當(dāng)節(jié)點數(shù)為6時,信道吞吐量隨著所提供負載的增長而增長,達到最大值75%左右,將保持穩(wěn)定,即使負載再增長,吞吐量將保持在穩(wěn)定的范圍內(nèi);隨著節(jié)點的持續(xù)增多,信道所達到的最大吞吐量的值會持續(xù)下降,便穩(wěn)定在某一范圍之內(nèi);最后當(dāng)節(jié)點數(shù)達到30時,信道吞吐量所能達到的最大值只有56%左右。
3.2不同站點數(shù)下負載與沖突率之間的關(guān)系仿真分析
由圖3可知:當(dāng)節(jié)點數(shù)為30時,對應(yīng)所提供的負載為1600包/秒時,這時的信道沖突率是最大的為60%;當(dāng)站點數(shù)減少到24時,信道沖突率隨著所提供負載的增長而增長,當(dāng)提供的負載為1600包/秒時,隨對應(yīng)的沖突率已減小到52%左右,并將穩(wěn)定在這個范圍內(nèi),即使負載的增加。由圖可以看出,節(jié)點數(shù)越少,所對應(yīng)的沖突率就越小,最后當(dāng)節(jié)點數(shù)減少到2時,信道的沖突率基本保持在5%左右,即使負載的增加,信道沖突率將保持恒定不變。因此,當(dāng)網(wǎng)絡(luò)在輕負載下,如果提供的負載不超過400包/秒,節(jié)點數(shù)在一定數(shù)目下,沖突率就能控制在2%以下。
3.3 不同站點數(shù)下的平均訪問延時與負載之間的關(guān)系仿真分析
由圖3可知,當(dāng)節(jié)點數(shù)為2~30時,對應(yīng)所提供的負載在800包/秒時,平均訪問延時將保持在最小值,延時幾乎為0,當(dāng)隨著所提供負載的增加,平均訪問延時也開始相應(yīng)的增加,節(jié)點數(shù)越多的,所對應(yīng)的平均訪問延時就越大,當(dāng)負載增加到1600包/秒時,對應(yīng)的平均訪問延時達到3200bit。因此可知網(wǎng)絡(luò)在輕負載情況下,如果所提供負載不超過400包/秒,節(jié)點數(shù)在一定數(shù)目下,平均訪問延時在這個范圍內(nèi)是很小的。
3.4 改善LonWorks總線網(wǎng)絡(luò)實時性能的方法:
為滿足工業(yè)或企業(yè)所用系統(tǒng)的實時要求,用以下方法減少LonWorks網(wǎng)絡(luò)的傳輸時延和沖突:
(1)一般影響網(wǎng)絡(luò)實時性和信道利用率最為關(guān)鍵的因素是網(wǎng)絡(luò)的通信協(xié)議,因此可以從LonWorks的介質(zhì)訪問機制入手,從沖突避免方面考慮,可以對LonTalk協(xié)議的MAC仲裁機制進行硬實時改進,即通過選擇網(wǎng)絡(luò)中任意節(jié)點作為主節(jié)點來發(fā)送同步幀,去解決因較高優(yōu)先級節(jié)點交替占用總線,而使較低優(yōu)先級節(jié)點得不到總線使用權(quán)的問題。從而去避免沖突的發(fā)生。
(2)可以使用基于馬爾科夫鏈的方法對LonTalk協(xié)議——可預(yù)測的P-堅持CSMA協(xié)議在沖突檢測情況下對信道進行負荷效率預(yù)測分析與研究,分析對于指定的負載情況下的馬爾科夫鏈的轉(zhuǎn)移概率,通過計算競爭窗口的平穩(wěn)分布,和傳輸成功/失敗的概率[6]。來減少沖突提高LonTalk協(xié)議的實時性能。
(3)也可以從沖突解決方面去考慮,對LonTalk協(xié)議的軟實時性去改進,如改進二進制退避算法,使網(wǎng)絡(luò)傳輸?shù)臎_突率盡可能小,也就是系統(tǒng)有效吞吐量盡可能大,可以使用增強的二進制退避算法—基于馬爾科夫鏈的模型來分析競爭窗口[7],通過選擇最優(yōu)競爭窗口及動態(tài)的估計要發(fā)送報文的站點數(shù)目,來改善LonWorks網(wǎng)絡(luò)的實時性能。
4 結(jié)論
本文對LonWorks總線網(wǎng)絡(luò)的實時協(xié)議模型進行了分析同時分析了影響實時通信的性能參數(shù),用MATLAB7.4.0軟件對不同的站點(節(jié)點)的不同負載情況下的LonWorks總線網(wǎng)絡(luò)進行了仿真分析,仿真結(jié)果表明基于LonWorks總線網(wǎng)絡(luò)可以滿足目前工業(yè)應(yīng)用的實時性要求,同時提出了幾種改善LonWorks總線網(wǎng)絡(luò)實時性能的可行性方法。
參考文獻:
[1] 張云貴,王麗娜,張聲勇,等.LonWorks總線系統(tǒng)設(shè)計與應(yīng)用[M].北京:中國電力出版社,2010.
[2] 陽憲惠.工業(yè)數(shù)據(jù)通信與控制網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,2003:343-366.
[3] 楊育紅.LON網(wǎng)絡(luò)控制技術(shù)及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,1999.
[4] 張玉萍.LonWorks總線實時通信協(xié)議的研究[D].哈爾濱工業(yè)大學(xué),2009.
[5] LonTalk Protocol Specification,Version 3.0,Echelon Corporation.
[6] KRISHNA C M;SHIN K G Real-time systems 2001
[7] 茹鋒.控制網(wǎng)絡(luò)協(xié)議的實時性能分析與應(yīng)用研究[D].西安交通大學(xué),2002.