王 銀,俞建定,駱國(guó)慶
(寧波大學(xué)信息科學(xué)與工程學(xué)院,浙江寧波315211)
以太網(wǎng)是開(kāi)放的、數(shù)字化的通信網(wǎng)絡(luò),能簡(jiǎn)單方便地把工業(yè)控制網(wǎng)絡(luò)和企業(yè)信息網(wǎng)絡(luò)連接起來(lái),實(shí)現(xiàn)工控企業(yè)管理的一體化,且通信速率極高,數(shù)據(jù)傳輸量超大,擁有良好的擴(kuò)展性和自適應(yīng)特性,相比其他通信協(xié)議它更具開(kāi)放性[1]。這些優(yōu)秀的性能使它成為了現(xiàn)在大部分局域網(wǎng)采用的最廣泛的網(wǎng)絡(luò)協(xié)議標(biāo)準(zhǔn)。我們的目的是在以太網(wǎng)基礎(chǔ)上實(shí)現(xiàn)實(shí)時(shí)通信,實(shí)時(shí)通信網(wǎng)絡(luò)的要求是數(shù)據(jù)傳輸時(shí)間的確定性,即保證在可以衡量的時(shí)間范圍內(nèi)系統(tǒng)得到響應(yīng)。
為此,在過(guò)去的幾年里,已經(jīng)提出了多種基于以太網(wǎng)確定性通信方案的協(xié)議。此文中,將應(yīng)用與CAN現(xiàn)場(chǎng)總線通信的相似傳輸特性。我們知道CAN網(wǎng)絡(luò)是一個(gè)實(shí)時(shí)通信網(wǎng)絡(luò),廣泛應(yīng)用于現(xiàn)代工業(yè)場(chǎng)合,它對(duì)于少量信息的傳輸是一個(gè)最佳的通信協(xié)議。CAN總線上的信息有不同的優(yōu)先級(jí),優(yōu)先級(jí)高的信息總是能獲得訪問(wèn)總線的權(quán)限。因此,對(duì)于高優(yōu)先級(jí)的信息的傳輸延時(shí)長(zhǎng)短是可以保證的,能夠進(jìn)行實(shí)時(shí)傳送,但是和其他網(wǎng)絡(luò)通信協(xié)議相比,CAN總線有明顯的不足,通信速率很小,最大才1 Mb/s,數(shù)據(jù)傳輸量也很小(8字節(jié)),難以滿(mǎn)足大型數(shù)據(jù)傳輸?shù)膽?yīng)用場(chǎng)合。鑒于此,在以太網(wǎng)基礎(chǔ)上,結(jié)合CAN的實(shí)時(shí)傳輸特性,提高以太網(wǎng)的傳輸時(shí)間實(shí)時(shí)性,來(lái)滿(mǎn)足現(xiàn)代工業(yè)控制場(chǎng)合的大數(shù)據(jù)實(shí)時(shí)傳輸控制要求。
標(biāo)準(zhǔn)的以太網(wǎng)協(xié)議是以CSMA/CD(載波監(jiān)聽(tīng)多路訪問(wèn)/沖突檢測(cè))技術(shù)為基礎(chǔ)的,網(wǎng)絡(luò)上的各工作站點(diǎn)對(duì)總線進(jìn)行偵聽(tīng)以確認(rèn)總線是否空閑[2]。如果監(jiān)測(cè)到總線處于空閑狀態(tài),需要發(fā)送數(shù)據(jù)的站點(diǎn)就開(kāi)始發(fā)送數(shù)據(jù)。如果兩個(gè)或兩個(gè)以上的站點(diǎn)同時(shí)開(kāi)始傳輸數(shù)據(jù),那么沖突就產(chǎn)生了。在這種情況下,訪問(wèn)機(jī)制會(huì)首先確保站點(diǎn)單元停止傳輸數(shù)據(jù),而后根據(jù)預(yù)定義的隨機(jī)選擇算法,工作站點(diǎn)再次嘗試發(fā)送數(shù)據(jù)。這個(gè)過(guò)程將會(huì)反復(fù)執(zhí)行直到碰撞消失。
實(shí)時(shí)性的一個(gè)重要特征就是時(shí)間的確定性,通信時(shí)數(shù)據(jù)傳輸時(shí)間不是隨機(jī)的,而是可事先確定的。若一個(gè)事件發(fā)生后,則系統(tǒng)會(huì)在一個(gè)可確切預(yù)料的時(shí)間范圍內(nèi)做到響應(yīng)。反應(yīng)速度由被控制過(guò)程來(lái)決定。對(duì)于高精密性的控制系統(tǒng),實(shí)時(shí)性的要求就會(huì)更高了[2]。
由以上可知,雖然以太網(wǎng)具有很高的傳輸速率,但是卻不能確保實(shí)現(xiàn)控制設(shè)備間的實(shí)時(shí)控制通信。如上以太網(wǎng)協(xié)議只確保了數(shù)據(jù)的安全傳輸,可是從確定性方面來(lái)看,這卻是一個(gè)很大的障礙。它允許數(shù)據(jù)傳輸時(shí)間可以被任意推遲,所以也就不能實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)快速通信(時(shí)間的確定性)。要想使以太網(wǎng)技術(shù)在不改變其已有標(biāo)準(zhǔn)的大前提下實(shí)現(xiàn)以太網(wǎng)傳輸?shù)拇_定性,以太網(wǎng)傳輸?shù)拇_定性又由傳輸時(shí)的抖動(dòng)和延時(shí)以及碰撞所影響,因此要找到一種解決方案來(lái)減少傳輸時(shí)的抖動(dòng)、碰撞,來(lái)提高以太網(wǎng)傳輸?shù)拇_定性[3-4]。
在高速傳輸通道中,抖動(dòng)也是影響以太網(wǎng)確定性的關(guān)鍵因素,目前存在的常用的所有通信協(xié)議中,都有一定程度范圍內(nèi)的抖動(dòng)。在實(shí)時(shí)控制系統(tǒng)中,抖動(dòng)的范圍應(yīng)保證它可以衡量,使系統(tǒng)服務(wù)得到及時(shí)響應(yīng),若系統(tǒng)不能實(shí)時(shí)響應(yīng),有可能會(huì)引起災(zāi)難性后果,抖動(dòng)示意圖如圖1所示。

圖1 抖動(dòng)
有關(guān)信息傳輸時(shí)的抖動(dòng)的標(biāo)準(zhǔn)偏差如式(1)所示,N是數(shù)據(jù)包的總數(shù)量,xi是每個(gè)延時(shí)傳輸?shù)臄?shù)據(jù)包是每個(gè)包延時(shí)的平均值:

在下面的仿真分析中,將會(huì)用標(biāo)準(zhǔn)偏差來(lái)測(cè)試傳輸時(shí)的抖動(dòng)性。
算法原理:選取最小退讓時(shí)間作為基數(shù) ,假設(shè)2τ,也就是一個(gè)爭(zhēng)用期時(shí)間。定義一個(gè)參數(shù)N,為碰撞后重傳的次數(shù),N=min[重傳次數(shù),10][5,6]。從離散型整數(shù)集合[0,1,2,……,(2N-1)]中,隨機(jī)取出一個(gè)數(shù)記做R。那么重傳所需要的退讓時(shí)間為R倍的基本退讓時(shí)間,如式(2)所示,即:

同時(shí),重新傳輸?shù)拇螖?shù)也不是不眠不休地進(jìn)行,當(dāng)已經(jīng)重新傳輸了16次還不成功,就放棄該幀,發(fā)送失敗,報(bào)告給高層協(xié)議。此算法的作用:站點(diǎn)檢測(cè)到碰撞并發(fā)完阻塞信號(hào)后,為了降低再次碰撞的幾率,需要等候一段時(shí)間,然后再傳輸數(shù)據(jù)[7]。二進(jìn)制指數(shù)退讓算法保證了這種退讓操作的穩(wěn)定,但是也帶來(lái)了等待時(shí)間的不確定性,無(wú)法進(jìn)行實(shí)時(shí)傳輸。
在通信網(wǎng)絡(luò)中,當(dāng)一個(gè)站點(diǎn)需要發(fā)送數(shù)據(jù)時(shí),它會(huì)先監(jiān)聽(tīng)總線(傳輸介質(zhì)),若傳輸總線已被占用,它將推遲發(fā)送直到總線空閑。若多個(gè)站點(diǎn)同時(shí)檢測(cè)到空閑并開(kāi)始傳輸數(shù)據(jù),那么碰撞就會(huì)產(chǎn)生[8]。在這種情況下,隨機(jī)時(shí)間間隔的二進(jìn)制指數(shù)退讓算法的具體應(yīng)用如下:
當(dāng)碰撞發(fā)生時(shí),每個(gè)CSMA/CD站點(diǎn)會(huì)選擇一段時(shí)間延時(shí)來(lái)避免沖突,這段時(shí)間的大小由退讓值來(lái)決定。每個(gè)單元在每次沖突碰撞中的退讓時(shí)間值將會(huì)乘以2(最大值的上限為1 024)。初始化退讓時(shí)間值為最小退讓值,每個(gè)CSMA/CD站點(diǎn)根據(jù)平等分配原則在最大退讓值范圍內(nèi)隨機(jī)選擇一個(gè)退讓時(shí)間。當(dāng)數(shù)據(jù)成功傳輸后,傳輸單元把退讓值設(shè)置為0。如果同一數(shù)據(jù)包由于碰撞的發(fā)生,傳輸了16次還沒(méi)成功,二進(jìn)制指數(shù)退讓算法將會(huì)強(qiáng)迫該單元丟棄該數(shù)據(jù)包,而且退讓值也將會(huì)清零,若有新的數(shù)據(jù)包,則重新分配最小退讓值。
結(jié)合以上原理在Matlab上建立模型框架,控制系統(tǒng)由12個(gè)CSMA/CD站點(diǎn)組成,它們共享以太網(wǎng)總線帶寬。為了能夠評(píng)估系統(tǒng)傳輸數(shù)據(jù)時(shí)的平均延遲和消息傳輸時(shí)的抖動(dòng)等特征。在這個(gè)特定的設(shè)置中,把所有的站點(diǎn)單元平均都以每秒100個(gè)數(shù)據(jù)包的速度傳輸數(shù)據(jù),包的固定大小為128 bytes。每個(gè)站點(diǎn)單元由以下結(jié)構(gòu)構(gòu)成:數(shù)據(jù)處理有關(guān)的應(yīng)用程序模塊、MAC控制器管理以太網(wǎng)單元使用的共享通道和T型結(jié)點(diǎn),把該站點(diǎn)鏈接到網(wǎng)絡(luò)模型上,具體模型如圖2所示(由于篇幅原因只畫(huà)部分,共12個(gè))。
在這個(gè)模型框架中,可以指定數(shù)據(jù)包生成率和應(yīng)用程序塊的數(shù)據(jù)包大小范圍、MAC控制器塊的發(fā)送緩沖區(qū)的長(zhǎng)度。為了便于實(shí)驗(yàn),規(guī)定緩沖區(qū)大小為20個(gè)數(shù)據(jù)包長(zhǎng)度,發(fā)送速度為100數(shù)據(jù)包/s(數(shù)據(jù)源有一定的抖動(dòng):假設(shè)每個(gè)數(shù)據(jù)包抖動(dòng)為10 μs(標(biāo)準(zhǔn)偏差))。

圖2 仿真模型總框圖
在以太網(wǎng)通信方案模型中需要設(shè)置3步:首先要有同步觸發(fā)信號(hào),其次為每個(gè)以太網(wǎng)數(shù)據(jù)包分發(fā)一個(gè)發(fā)送時(shí)間槽,最后分配給每個(gè)MAC不同的最小退讓時(shí)間。在這模型中,數(shù)據(jù)包的長(zhǎng)度固定為128 bytes,傳輸速度為100 Mbps。固定的長(zhǎng)度和固定的順序使包的傳輸時(shí)間可以預(yù)測(cè),減少數(shù)據(jù)包傳輸期間的碰撞。
同步信號(hào):實(shí)時(shí)應(yīng)用程序要求嚴(yán)格同步,以便于在定義的傳輸周期內(nèi),消息的傳送控制得到保證。在這個(gè)模型中使用內(nèi)部時(shí)鐘信號(hào)作為同步信號(hào),這意味著在這些站點(diǎn)中共用一個(gè)精確的時(shí)鐘,以便于所有的站點(diǎn)能夠給在自己的時(shí)間槽上傳輸數(shù)據(jù)。
專(zhuān)用時(shí)間槽:在這個(gè)通信網(wǎng)絡(luò)模型中,為每個(gè)站點(diǎn)單元指定專(zhuān)有的時(shí)間槽,消息在各個(gè)已經(jīng)分配好的時(shí)間槽上發(fā)送數(shù)據(jù),避免發(fā)生碰撞。圖3顯示了通信方法。

圖3 時(shí)間槽
應(yīng)用不同的最小退讓時(shí)間:盡管數(shù)據(jù)在已經(jīng)定義好的各自的時(shí)間槽內(nèi)發(fā)送,但是由于抖動(dòng)的影響,有的CSMA/CD單元的傳輸時(shí)間可能超過(guò)它們的時(shí)間槽,從而引起沖突的發(fā)生。
對(duì)于這個(gè)問(wèn)題,在半雙工以太網(wǎng)通信網(wǎng)絡(luò)中采用二進(jìn)制指數(shù)退讓算法(BEB),為每個(gè)站點(diǎn)單元分配專(zhuān)有的最小退讓時(shí)間值。
我們的目的是通過(guò)分析研究不同的最小退讓值和發(fā)送時(shí)間對(duì)實(shí)時(shí)通信的影響,所以在以下分析方法中,給這12個(gè)MACs分配不同的最小退讓時(shí)間或者隨機(jī)分配,或者按線性方法分配,以此來(lái)分析比較各種方法的性能。圖4、圖5、圖6分別是在4種方案下測(cè)得的抖動(dòng)、延時(shí)及碰撞次數(shù)的數(shù)據(jù)曲線圖。

圖4 抖動(dòng)時(shí)間統(tǒng)計(jì)

圖5 延時(shí)時(shí)間統(tǒng)計(jì)

圖6 碰撞次數(shù)統(tǒng)計(jì)
方案一:線性增加最小退讓時(shí)間。給這12個(gè)MACs線性分配最小退讓時(shí)間,如表1所示。這種方法的思想是不同數(shù)據(jù)包在第一次發(fā)生碰撞時(shí),給每個(gè)MAC站點(diǎn)單元線性分配不同的最小退讓時(shí)間,然后運(yùn)用二進(jìn)制指數(shù)退讓算法來(lái)降低數(shù)據(jù)包發(fā)送時(shí)的碰撞概率。因此,在此網(wǎng)絡(luò)模型中指定的最小退讓時(shí)間如表1所示,通信性能如圖所示,最小抖動(dòng)為0.690 1 ms,最大抖動(dòng)為1.236 1 ms,平均抖動(dòng)和平均延時(shí)分別為0.916 0 ms和1.221 9 ms,但是前一半的MAC站點(diǎn)單元的碰撞次數(shù)卻很大,尤其是第一次竟達(dá)到112 228次,平均碰撞90 098次。

表1 退讓時(shí)間
方案二:相同的最小退讓時(shí)間,數(shù)據(jù)包在各自的時(shí)間槽中發(fā)送。同上述一樣,在以太網(wǎng)通信網(wǎng)絡(luò)中每個(gè)站點(diǎn)單元的最小退讓時(shí)間均為51.2 μs,但是發(fā)送時(shí)間不同,每個(gè)數(shù)據(jù)包都在分配好的時(shí)間槽內(nèi)發(fā)送。通過(guò)觀察數(shù)據(jù)可知最大抖動(dòng)為1.100 3 ms,最小抖動(dòng)為0.696 1 ms,平均抖動(dòng)為0.895 6 ms,平均延時(shí)為1.166 6 ms,沖突次數(shù)平均80 137次,明顯減小。
方案三:相同的最小退讓時(shí)間和相同的發(fā)送時(shí)間。在這種情況下所有的數(shù)據(jù)包的最小退讓時(shí)間為51.2 μs,測(cè) 得 數(shù) 據(jù) 如 上 圖 所 示,最 大 抖 動(dòng) 為1.519 3 ms,最小抖動(dòng)和平均抖動(dòng)分別為1.012 1 ms和1.326 8 ms。平均數(shù)據(jù)傳輸延時(shí)為1.763 6 ms。觀察可知,由于數(shù)據(jù)在相同的時(shí)間段發(fā)送,發(fā)生延時(shí)的時(shí)間和抖動(dòng)時(shí)間明顯高于方案一和方案二,對(duì)于實(shí)時(shí)性有較大影響。
方案四:隨機(jī)分配最小退讓時(shí)間。在這次模擬測(cè)試中,用產(chǎn)生的隨機(jī)數(shù)乘以51.2 μs作為各個(gè)站點(diǎn)單元的最小退讓時(shí)間值,如表1所示。這樣做的目的是保證每個(gè)站點(diǎn)單元的最小退讓值隨機(jī)性不同,這樣引起的抖動(dòng)也小。隨機(jī)產(chǎn)生的數(shù)所得到的最小退讓時(shí)間值如表1所示,這種情況下統(tǒng)計(jì)得知最小抖動(dòng)和平均抖動(dòng)分別為0.465 6 ms和0.699 6 ms。最大抖動(dòng)和平均延時(shí)分別為1.032 8 ms和1.061 5 ms。綜合以上方案可知,當(dāng)一個(gè)站點(diǎn)的最小退讓值很大時(shí),它的抖動(dòng)也很大。總體來(lái)說(shuō),在不同的最小退讓值時(shí)間情況下,隨機(jī)產(chǎn)生的最小退讓時(shí)間值能夠有效避免站點(diǎn)單元重復(fù)進(jìn)入退讓狀態(tài)。隨機(jī)產(chǎn)生最小退讓值的情況下,平均沖突次數(shù)也大幅減少到71 026次。
通過(guò)以上4種方案實(shí)驗(yàn)結(jié)果對(duì)比分析,方案四為最佳,可以看出最小退讓時(shí)間對(duì)網(wǎng)絡(luò)通信性能的影響:較小的和相似的最小退讓時(shí)間很容易引起較高的抖動(dòng)。隨機(jī)的最小退讓時(shí)間能使站點(diǎn)單元不再重復(fù)進(jìn)入退讓(等待)狀態(tài),碰撞概率和抖動(dòng)也大幅減少,提高了整個(gè)網(wǎng)絡(luò)通信的快速實(shí)時(shí)性和成功率,而且還能很好地利用網(wǎng)絡(luò)擁塞控制,充分利用了網(wǎng)絡(luò)寬帶,極大提高了網(wǎng)絡(luò)通信性能[8,9]。
通過(guò)Matlab事件仿真模塊構(gòu)建了一個(gè)基于CSMA/CD協(xié)議的仿真模型。通過(guò)時(shí)鐘同步信號(hào)觸發(fā),數(shù)據(jù)包在各個(gè)站點(diǎn)單元的時(shí)間槽內(nèi)發(fā)送,當(dāng)碰撞發(fā)生時(shí),結(jié)合隨機(jī)產(chǎn)生的最小時(shí)間退讓值,應(yīng)用二進(jìn)制指數(shù)退讓算法進(jìn)行避讓?zhuān)瑴p少?zèng)_突。在這個(gè)實(shí)驗(yàn)中,通過(guò)傳輸時(shí)的碰撞、抖動(dòng)和延時(shí)來(lái)分析最小退讓時(shí)間值對(duì)通信網(wǎng)絡(luò)性能的影響[10]。實(shí)驗(yàn)結(jié)果表明,給MAC控制器選擇合理的最小退讓時(shí)間值,能有效減少延時(shí)和抖動(dòng)。如果現(xiàn)實(shí)中有設(shè)備要求高,也可以為特定的某一個(gè)MAC站點(diǎn)單元指定一個(gè)專(zhuān)有的退讓時(shí)間值,以期使它的抖動(dòng)降到最低。通過(guò)這種簡(jiǎn)單的方法,在實(shí)際應(yīng)用中,可以結(jié)合自己的需求,來(lái)減少站點(diǎn)的延時(shí)和抖動(dòng),可以有效提高以太網(wǎng)通信的確定性(實(shí)時(shí)性)。
[1] 繆學(xué)勤.實(shí)時(shí)以太網(wǎng)技術(shù)最新進(jìn)展[J].電氣時(shí)代,2005(6):64-68.
[2] 徐皚冬,王宏,邢志浩.工業(yè)以太網(wǎng)實(shí)時(shí)通信技術(shù)[J].信息與控制,2005,34(1):60 -65.
[3] 劉科.工業(yè)以太網(wǎng)實(shí)時(shí)通信技術(shù)及進(jìn)展[J].工礦自動(dòng)化,2005(3):53-55.
[4] 凌永發(fā),高飛.動(dòng)態(tài)二進(jìn)制指數(shù)后退算法研究[J].計(jì)算機(jī)工程與應(yīng)用,2007,43(21):57 -59.
[5] 姜慶標(biāo).退避算法中隨機(jī)數(shù)范圍對(duì)工業(yè)Ethernet實(shí)時(shí)性的影響[J].南京工程學(xué)院學(xué)報(bào),2006,4(1):19 -22.
[6] 杜文鳳,王博文.基于嵌入式的實(shí)時(shí)通信協(xié)議棧研究與設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2013(2):26-28.
[7] 趙國(guó)鋒,邱作雨,張 毅.基于單片機(jī)的嵌入式.TCP/IP協(xié)議棧的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2009,19(3):137-140.
[8] 王志平,熊光澤.實(shí)時(shí)調(diào)度算法研究[J].電子科技大學(xué)學(xué)報(bào),2000,29(2):25 -29.
[9] 趙偉,周侗,劉明哲.一種實(shí)時(shí)以太網(wǎng)模型及其性能測(cè)試實(shí)現(xiàn)[J].儀器儀表學(xué)報(bào),2006,27(Z1):72 -74.
[10]孫曉峰,王中杰.基于MATLAB/SimEvents的網(wǎng)絡(luò)仿真研究[J].網(wǎng)絡(luò)通訊與安全,2007(12):1254-1258.