陶震宇,夏繼強(qiáng),滿慶豐
(北京航空航天大學(xué)機(jī)械工程及自動化學(xué)院,北京 100191)
CAN(Controller Area Network) 即控制器局域網(wǎng),采用非破壞性的總線仲裁技術(shù),保證了高優(yōu)先級節(jié)點(diǎn)信息的實(shí)時(shí)性,但在多節(jié)點(diǎn)系統(tǒng)中,低優(yōu)先級節(jié)點(diǎn)信息的實(shí)時(shí)性較差。TTCAN(Time-Triggered Controller Area Network)在CAN協(xié)議棧的會話層中加入時(shí)間控制器局域網(wǎng)協(xié)議,通過設(shè)計(jì)合理的調(diào)度矩陣保證了所有節(jié)點(diǎn)周期信息的實(shí)時(shí)性,對于非周期信息只提供了一個(gè)自由仲裁時(shí)間窗。由于增加了獨(dú)占窗,因此,與CAN在同樣的負(fù)載下,TTCAN的非周期信息延時(shí)將增大[1]。
文獻(xiàn)[2]針對TTCAN協(xié)議周期性和非周期性通訊任務(wù)的特點(diǎn),建立了TTCAN靜態(tài)調(diào)度算法的仿真模型,仿真結(jié)果說明周期消息實(shí)時(shí)性與矩陣周期一致,而非周期信息在負(fù)載率較高時(shí)可能出現(xiàn)“死鎖”現(xiàn)象。
文獻(xiàn)[3]研究了TTCAN非周期信息的延時(shí),并對非周期信息超過其最壞延遲的概率分布進(jìn)行了深入探討,提出了信息超出截止期的概率分布的計(jì)算方法,從多角度分析了信息參數(shù)的選擇對系統(tǒng)實(shí)時(shí)性能的影響。
對于TTCAN調(diào)度矩陣的不足,很多研究者提出了改進(jìn)方法。動態(tài)調(diào)度是常見的一種方法,這類調(diào)度算法主要有最小裕度最優(yōu)先LLF(least-laxity first)、最早截止期最優(yōu)先EDF等[4]。文獻(xiàn)[5]針對系統(tǒng)節(jié)點(diǎn)數(shù)增加、減少和網(wǎng)絡(luò)傳輸波特率發(fā)生變化時(shí)的情況提出了一種動態(tài)調(diào)度算法,并仿真說明了其傳輸?shù)膶?shí)時(shí)性和靈活性。文獻(xiàn)[6]分析了事件觸發(fā)和時(shí)間觸發(fā)的各自特點(diǎn),提出了FTTCAN(Flexible Time-Triggered communication on Controller Area Network),即在時(shí)間觸發(fā)和事件觸發(fā)之間插入隔離時(shí)間來將兩者結(jié)合到一起,以獲得兩者的優(yōu)點(diǎn)。
現(xiàn)有TTCAN的改進(jìn)方法依舊嚴(yán)格遵守調(diào)度矩陣中時(shí)間窗的周期性,而TTCAN中獨(dú)占窗是增加非周期信息延遲的主要因素。文中先從概率的角度分析了TTCAN非周期信息的概率延時(shí),然后提出在TTCAN兩相鄰獨(dú)占窗之間插入非周期信息仲裁時(shí)隙來提高非周期信息實(shí)時(shí)性的改進(jìn)方法,并給出實(shí)時(shí)性分析。
TTCAN的時(shí)間觸發(fā)機(jī)制是指將時(shí)間域分成大量的離散時(shí)間間隔(可稱為時(shí)間窗口),通過同步機(jī)制將消息的傳輸分配在一定的時(shí)間窗口內(nèi)完成。時(shí)間觸發(fā)系統(tǒng)通常由信息窗口、基本周期以及矩陣周期3部分組成?;局芷谟砂l(fā)送周期消息的獨(dú)占窗、發(fā)送非周期消息的仲裁窗以及用于網(wǎng)絡(luò)擴(kuò)展的自由窗三類固定的時(shí)間窗組成。矩陣周期由多個(gè)基本周期構(gòu)成,網(wǎng)絡(luò)中的節(jié)點(diǎn)按照矩陣周期循環(huán)傳輸,在指定的窗口提出發(fā)送請求。圖1為系統(tǒng)調(diào)度矩陣示意圖,其中包括4個(gè)周期信息。
圖1 矩陣周期
由于TTCAN是在標(biāo)準(zhǔn)CAN協(xié)議基礎(chǔ)上建立的一個(gè)高層協(xié)議,CAN的數(shù)據(jù)鏈路層和物理層并沒有改變,因此,TTCAN的通信延遲時(shí)間可分成與CAN相同的4個(gè)部分,即生成延遲、隊(duì)列延時(shí)、傳輸延時(shí)和接收延時(shí)。其中,生成延時(shí)和接收延時(shí)可以忽略不計(jì)。所以,TTCAN信息的延遲時(shí)間(Rm)主要由隊(duì)列延遲(tm)和傳輸延遲(Cm)構(gòu)成。
Rm=tm+Cm
(1)
隊(duì)列延時(shí)由仲裁延時(shí)和非仲裁延時(shí)2部分組成。仲裁延時(shí)是指兩信息同時(shí)發(fā)送時(shí),高優(yōu)先級信息對低優(yōu)先級信息造成的延時(shí)。非仲裁延時(shí)是指總線被其他正在傳輸?shù)男畔⒄加枚斐傻难訒r(shí)。
由TTCAN的協(xié)議可知,當(dāng)非周期信息在獨(dú)占窗時(shí)間段內(nèi)產(chǎn)生時(shí)需要等到仲裁窗口才能申請發(fā)送,而在仲裁窗產(chǎn)生非周期信息時(shí)能立刻申請發(fā)送。因此,在分析TTCAN非周期信息延時(shí)時(shí)需要對獨(dú)占窗時(shí)間段和仲裁窗時(shí)間段分別探討。
對于節(jié)點(diǎn)i(i=0,1,2,…,Z),在獨(dú)占窗時(shí)間段內(nèi)產(chǎn)生非周期信息m時(shí)的非仲裁延時(shí)由基本周期中未輪循到的獨(dú)占窗構(gòu)成。某段時(shí)間內(nèi),從非周期信息產(chǎn)生,到該時(shí)間段結(jié)束的時(shí)間為Tab(x),其概率值計(jì)算為:
(2)
式中ρ(x)為非周期信息在一段時(shí)間Xab內(nèi)產(chǎn)生的概率密度函數(shù),滿足平均分布:
(3)
假設(shè)基本周期內(nèi)獨(dú)占窗個(gè)數(shù)為L,一個(gè)獨(dú)占窗口時(shí)間為w0(w0=Cm),那么,非周期信息m的非仲裁延時(shí)為:
(4)
非周期信息m的仲裁延時(shí)tarb:
tarb=R(N,Ap)×Cm+D(N,Ap)×Tbc
(5)
式中:Ap為基本周期內(nèi)能發(fā)送的非周期信息個(gè)數(shù);R(N,Ap)為求N/Ap的余數(shù);D(N,Ap)為求N/Ap的整數(shù);N為信息m仲裁時(shí),優(yōu)先級比m高的信息的集合,節(jié)點(diǎn)序號越小優(yōu)先級越高;Tbc為系統(tǒng)調(diào)度矩陣的基本周期時(shí)間。
由式(4)和式(5)可得到在獨(dú)占窗時(shí)間段內(nèi)產(chǎn)生的非周期信息m的隊(duì)列延時(shí)tm1為:
tml=Tab(w0L)+R(N,Ap)×Cm+D(N,Ap)×Tbc
(6)
(7)
式中λ為系統(tǒng)在單位時(shí)間內(nèi)非周期信息的到達(dá)率,即認(rèn)為非周期信息的產(chǎn)生滿足泊松分布。
(8)
式中Ti為i節(jié)點(diǎn)非周期信息產(chǎn)生的最小時(shí)間間隔。
對于節(jié)點(diǎn)i(i=0,1,2,…,Z),在仲裁窗內(nèi)產(chǎn)生非周期信息m′,總線被占用的概率為:
(9)
(10)
非周期信息m′產(chǎn)生時(shí),基本周期內(nèi)已經(jīng)發(fā)送的非周期信息的最大個(gè)數(shù)Npd為:
Npd=t1/Cm
(11)
式中t1為m′在仲裁窗內(nèi)產(chǎn)生時(shí)距仲裁窗開始時(shí)刻的概率時(shí)間,計(jì)算為:
(12)
(13)
由式(10)和式(13)可得到在仲裁窗時(shí)間段內(nèi)產(chǎn)生的非周期信息m′的隊(duì)列延時(shí)tm2為:
(14)
(15)
式中Pos(x)為取正數(shù)函數(shù),定義如下:
(16)
根據(jù)式(6)、式(7)和式(14)、式(15)可得到節(jié)點(diǎn)i(i=0,1,2,…,Z)非周期信息產(chǎn)生后概率隊(duì)列延時(shí)tm為:
tm=[w0L×tm1+(Tbc-w0L)×tm2]/Tbc
(17)
計(jì)算TTCAN最壞延時(shí)時(shí),假設(shè)在周期開始時(shí)每個(gè)節(jié)點(diǎn)同時(shí)產(chǎn)生一個(gè)非周期信息,對于節(jié)點(diǎn)i(i=0,1,2,…,Z)的最壞隊(duì)列延遲計(jì)算如下。
tm=w0L+R(N,Ap)×Cm+D(N,Ap)×Tbc
(18)
(19)
式中:τbit為CAN總線傳輸一個(gè)數(shù)據(jù)位的時(shí)間;Ji為信息的抖動,一般取Ji=0.2 ms[7]。
高實(shí)時(shí)性系統(tǒng)中,非周期信息往往是系統(tǒng)運(yùn)行時(shí)的重要信息,因此,非周期信息響應(yīng)時(shí)間是評價(jià)系統(tǒng)實(shí)時(shí)性的一個(gè)重要指標(biāo)。一個(gè)高實(shí)時(shí)性系統(tǒng)的總線資源是固定且寶貴的,TTCAN協(xié)議用獨(dú)占窗嚴(yán)格保證了周期信息的實(shí)時(shí)性,而這犧牲了非周期信息的部分實(shí)時(shí)性。文中提出的TTCAN信息發(fā)送時(shí)間窗改進(jìn)是在滿足周期信息實(shí)時(shí)性要求的情況下,降低部分周期信息的實(shí)時(shí)性,以提高非周期信息的實(shí)時(shí)性。
TTCAN信息發(fā)送時(shí)間窗改進(jìn)主要是在每個(gè)獨(dú)占窗信息發(fā)送完成之后,插入仲裁時(shí)隙tk供非周期信息仲裁。若有非周期信息,那么,通過仲裁可發(fā)送一個(gè)非周期信息,此時(shí),仲裁時(shí)隙tk延長至Cm;若沒有非周期信息,那么,經(jīng)過仲裁時(shí)隙tk后進(jìn)入下一個(gè)獨(dú)占窗。為保證基本周期時(shí)間不變,改進(jìn)后的仲裁窗時(shí)間將隨前面非周期信息發(fā)送的個(gè)數(shù)而改變,即每個(gè)基本周期內(nèi)發(fā)送的非周期信息個(gè)數(shù)不變。圖2為改進(jìn)后一個(gè)基本周期內(nèi)時(shí)間片示意圖。
圖2 改進(jìn)后基本周期
對于節(jié)點(diǎn)i(i=0,1,2,…,Z),在獨(dú)占窗時(shí)間段產(chǎn)生非周期信息m時(shí)的隊(duì)列延時(shí)進(jìn)行分析。仲裁時(shí)隙tk被認(rèn)為是剛好等于信息仲裁時(shí)間,當(dāng)m在tk時(shí)間段產(chǎn)生時(shí),不能立即進(jìn)行發(fā)送仲裁,需要等到下一個(gè)tk,因此,在延時(shí)計(jì)算時(shí)將tk和獨(dú)占窗w0作為一個(gè)整體分析。
在獨(dú)占窗時(shí)間段插入非周期信息仲裁時(shí)隙tk后,基本周期內(nèi)的獨(dú)占窗時(shí)間點(diǎn)、仲裁窗時(shí)間長度都會動態(tài)調(diào)整,使得無法用概率直接計(jì)算m在不同獨(dú)占窗列時(shí)的隊(duì)列延時(shí)。文中在計(jì)算中采用隨機(jī)函數(shù)random(0,L)取(0,L)內(nèi)的正整數(shù)當(dāng)作m產(chǎn)生的位置,算出在該位置的概率隊(duì)列延時(shí),然后,取大量的計(jì)算樣本求平均值。
jra=random(0,L)
(20)
當(dāng)m在第jra列產(chǎn)生時(shí),若在前jra-1個(gè)tk有非周期信息發(fā)送,那么,實(shí)際到達(dá)jra列的時(shí)間Tpd(j)將會相應(yīng)延長,其概率計(jì)算為:
(21)
參照第3節(jié)中的計(jì)算方法,m在第jra列的概率隊(duì)列延時(shí)計(jì)算為:
如果N≤Ap-Npd
(22)
如果N>Ap-Npd,則
(23)
(24)
(25)
設(shè)計(jì)算tm1的樣本容量為S,則:
(26)
對于節(jié)點(diǎn)i(i=0,1,2,…,Z),在仲裁窗口產(chǎn)生非周期信息m′時(shí)的概率隊(duì)列延時(shí)計(jì)算為:
(27)
(28)
(29)
(30)
根據(jù)式(20)~式(26)和式(27)~式(30)可得到改進(jìn)后TTCAN節(jié)點(diǎn)i(i=0,1,2,…,Z)非周期信息產(chǎn)生后概率隊(duì)列延時(shí)tm為:
tm=[Tpd(L+1)×tm1+(Tbc-Tpd(L+1))×tm2]/Tbc
(31)
計(jì)算改進(jìn)TTCAN最壞延時(shí)時(shí),假設(shè)在周期開始時(shí)每個(gè)節(jié)點(diǎn)同時(shí)產(chǎn)生一個(gè)非周期信息,對于節(jié)點(diǎn)i(i=0,1,2,…,Z)的最壞隊(duì)列延時(shí)計(jì)算如下。
如果N≤Ap,則
(32)
如果N>Ap,則
(33)
(34)
改進(jìn)后TTCAN總線在運(yùn)行時(shí)相鄰獨(dú)占窗間插入了仲裁時(shí)隙或者非周期信息,因此,TTCAN原有的嚴(yán)格的獨(dú)占窗周期將被破壞,周期信息必然產(chǎn)生一定的時(shí)延。所以,有必要給出基本周期中獨(dú)占窗所在列j(j=1,2,3,…,L)時(shí)延的評估值,其概率延時(shí)計(jì)算如下:
tm=Tpd(j)-(j-1)×(Cm+tk)
(35)
計(jì)算時(shí)取系統(tǒng)節(jié)點(diǎn)數(shù)Z=55,每個(gè)節(jié)點(diǎn)具有1個(gè)周期信息,周期信息的周期為10 ms,20 ms,30 ms,40 ms,60 ms,傳輸波特率為1 Mbit/s.依據(jù)TTCAN靜態(tài)調(diào)度算法[2-3],取最小信息周期作為基本周期,即Tbc=10 ms.矩陣周期為周期信息的最小公倍數(shù)或者最小公倍數(shù)的整數(shù)倍,在此取矩陣周期為120 ms.采用11 位CAN 標(biāo)準(zhǔn)幀信息,數(shù)據(jù)長度為8 bit時(shí),信息的傳輸時(shí)間Cm=0.125 ms.此時(shí),仲裁時(shí)隙tk=11τbit,取tk=0.012 ms.基本周期內(nèi)獨(dú)占窗個(gè)數(shù)取L=35,那么,基本周期內(nèi)非周期信息最多能發(fā)送的個(gè)數(shù)Ap=45。
當(dāng)非周期信息產(chǎn)生時(shí)間間隔取平均Ti=20 ms時(shí),計(jì)算可得TTCAN和改進(jìn)TTCAN的非周期信息概率延時(shí)如圖3所示。從圖3可知,TTCAN非周期信息的概率延時(shí)隨優(yōu)先級下降而增加,最小延時(shí)為1.090 6 ms,最大延時(shí)為3.114 ms.改進(jìn)TTCAN各節(jié)點(diǎn)非周期信息延時(shí)相同,都為0.177 3 ms,此時(shí)非周期信息不因優(yōu)先級而受時(shí)延,且能實(shí)時(shí)、有效處理。改進(jìn)TTCAN的這一特點(diǎn)是緣于獨(dú)占窗間插入的仲裁時(shí)隙提高了非周期信息的響應(yīng)速度。
圖3 非周期信息概率延時(shí)Ti=20 ms
對式(21)進(jìn)一步分析可知,當(dāng)λ(w0+Cm)≥1,即平均Ti<13.75 ms時(shí),獨(dú)占窗時(shí)間段的仲裁時(shí)隙不能全部處理非周期信息,部分非周期信息被推延至仲裁窗進(jìn)行處理。圖4為平均Ti=13 ms時(shí)TTCAN和改進(jìn)TTCAN的非周期信息概率延時(shí)。從圖4可知,TTCAN低優(yōu)先級非周期信息出現(xiàn)嚴(yán)重時(shí)延,而改進(jìn)TTCAN最低優(yōu)先級非周期信息時(shí)延只有1.818 2 ms.
圖4 周期信息概率延時(shí)Ti=13 ms
當(dāng)平均Ti=20 ms時(shí),TTCAN和改進(jìn)TTCAN的非周期信息最壞概率延時(shí)如圖5所示。圖中兩條曲線具有相同的變化趨勢,非周期信息延時(shí)都是隨著優(yōu)先級降低而增大。不同的是改進(jìn)TTCAN的0號到34號節(jié)點(diǎn)、45號到55號節(jié)點(diǎn)非周期信息延時(shí)比TTCAN小,而35號到44號節(jié)點(diǎn)具有相同延時(shí)。出現(xiàn)這種現(xiàn)象的原因是改進(jìn)TTCAN具有35個(gè)仲裁時(shí)隙,提高了非周期信息響應(yīng)速度,而基本周期中仲裁時(shí)隙未處理完的非周期信息推延至仲裁窗處理,此時(shí)與TTCAN具有相同特性。
圖5 非周期信息最壞概率延時(shí)
圖6為改進(jìn)TTCAN在平均Ti=20 ms時(shí)基本周期內(nèi)獨(dú)占窗的概率延時(shí),由圖6可知獨(dú)占窗延時(shí)與其所在列數(shù)值正相關(guān),每個(gè)基本周期內(nèi),越靠前的獨(dú)占窗延時(shí)越小,最小延時(shí)為0 ms,最大延時(shí)為2.100 1 ms.因此,在實(shí)際應(yīng)用時(shí)把實(shí)時(shí)性要求高的周期信息安放在靠前的獨(dú)占窗位置,而將靠后的獨(dú)占窗設(shè)置為自由窗。
圖6 獨(dú)占窗概率延時(shí)
文中首先分析了TTCAN非周期信息的概率延時(shí),并給出了詳細(xì)的計(jì)算方法。針對TTCAN中獨(dú)占窗影響非周期信息實(shí)時(shí)性的問題,提出了在相鄰獨(dú)占窗間插入非周期信息仲裁時(shí)隙的改進(jìn)方法,通過分析和仿真計(jì)算證明該方法在滿足周期信息實(shí)時(shí)性要求的情況下,能有效提高非周期信息的響應(yīng)速度。
參考文獻(xiàn):
[1] 李佳,朱元,田光宇.CAN與TTCAN通信延遲時(shí)間分析,清華大學(xué)學(xué)報(bào)(自然科學(xué)版)2006,46(2):261-265.
[2] 馮曉東,果艷紅.TTCAN協(xié)議靜態(tài)調(diào)度算法研究與仿真.計(jì)算機(jī)仿真,2008,25(6):108-112.
[3] 夏繼強(qiáng),薛利強(qiáng),滿慶豐.時(shí)間觸發(fā)CAN總線實(shí)時(shí)性分析及評估方法.北京航空航天大學(xué)學(xué)報(bào),2012,38(2):222-227.
[4] 馮治寶,蕭偉,周美嬌,等.在實(shí)時(shí)通信中對TTCAN的改進(jìn).自動化
儀表,2009,30(2):21-23.
[5] 馮曉東,果艷紅.TTCAN動態(tài)調(diào)度算法實(shí)現(xiàn)與仿真.電子測量與儀器學(xué)報(bào),2008,22(2):81-85.
[6] ALMEIDA L,PEDREIRAS P,F(xiàn)ONSECA J A G.The FTT-CAN protocol:why and how.IEEE Transactions on industrial electronics,2002,49(6):1189-1201.
[7] TINDELL K,BUMS A.Guaranteeing message latencies on controller area network (CAN).Proceedings of the First International CAN Conference.Mainz:CiA,1994:1.2-1.11