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