許飛,徐金榜,王樹林,李勝
(1.華中科技大學(xué) 自動化學(xué)院,湖北 武漢 430074; 2.中核蘭州鈾濃縮有限公司,甘肅 蘭州 730065)
隨著工業(yè)控制系統(tǒng)的發(fā)展,總線網(wǎng)絡(luò)的需求和拓?fù)浣Y(jié)構(gòu)變得越來越復(fù)雜。隨著網(wǎng)絡(luò)復(fù)雜度提高,網(wǎng)絡(luò)系統(tǒng)可靠性變得越來越重要,基于多主網(wǎng)絡(luò)的系統(tǒng)應(yīng)用需求與日俱增,需要總線上有相互形成冗余備用關(guān)系的多個(gè)主節(jié)點(diǎn)的存在。所以,針對多主網(wǎng)絡(luò)設(shè)計(jì)一種高效可靠的CAN 總線應(yīng)用層協(xié)議顯得尤為必要。
根據(jù)多主網(wǎng)絡(luò)的網(wǎng)絡(luò)拓?fù)涮攸c(diǎn),選用時(shí)分型網(wǎng)絡(luò)消息發(fā)送機(jī)制的TTCAN 協(xié)議為基本協(xié)議,基于TTCAN 協(xié)議的總線系統(tǒng)與傳統(tǒng)的 CAN總線系統(tǒng)的拓?fù)浣Y(jié)構(gòu)完全相同,其主要區(qū)別在于其會話層和應(yīng)用層協(xié)議不同[1]。但是多主網(wǎng)絡(luò)由于有多個(gè)主節(jié)點(diǎn)的存在,無法像單主網(wǎng)絡(luò)那樣由某個(gè)節(jié)點(diǎn)單獨(dú)控制網(wǎng)絡(luò)的消息交換行為,極易出現(xiàn)消息交換混亂,某些消息甚至?xí)霈F(xiàn)長時(shí)間延時(shí)發(fā)送的情況。因此多主網(wǎng)絡(luò)的消息調(diào)度必須要一定的網(wǎng)絡(luò)調(diào)度策略的支持,通過對矩陣周期的循環(huán)調(diào)度,來實(shí)現(xiàn)對TTCAN 協(xié)議網(wǎng)絡(luò)的調(diào)度。
文中針對某個(gè)系統(tǒng)的通訊網(wǎng)絡(luò)的需求進(jìn)行了分析,為了解決此多主網(wǎng)絡(luò)的矩陣周期無法生成的問題,對TTCAN 的傳輸機(jī)制做出一定的突破,根據(jù)多主結(jié)構(gòu)的網(wǎng)絡(luò)行為架構(gòu)優(yōu)化后的多主系統(tǒng)矩陣,最后在Stateflow 仿真平臺上予以驗(yàn)證,得出優(yōu)化矩陣對復(fù)雜的網(wǎng)絡(luò)任務(wù)集的調(diào)度具有良好效果。
TTCAN 是由時(shí)間觸發(fā)CAN 報(bào)文傳輸?shù)囊环N協(xié)議,采用時(shí)間觸發(fā)機(jī)制,相對與CAN 協(xié)議,在CSMA/CA 的底層機(jī)制上,添加了時(shí)分多路(TDMA)的方式來實(shí)現(xiàn)總線通訊[2]。在時(shí)間觸發(fā)系統(tǒng)中,網(wǎng)絡(luò)有一個(gè)同步的全局時(shí)間,網(wǎng)絡(luò)上的每個(gè)節(jié)點(diǎn)都參照這個(gè)時(shí)間來動作。時(shí)間觸發(fā)系統(tǒng)的每個(gè)節(jié)點(diǎn)的軟件結(jié)構(gòu)中都保存一個(gè)任務(wù)調(diào)度表,參照當(dāng)前的網(wǎng)絡(luò)時(shí)間,每個(gè)節(jié)點(diǎn)對應(yīng)任務(wù)調(diào)度表上的安排相應(yīng)的任務(wù)執(zhí)行[3]。
TTCAN 協(xié)議的系統(tǒng)矩陣周期MC(matrix cycle)由若干個(gè)基本周期BC(Basic Cycle)組成[4](見圖1)。一個(gè)基本周期BC 以一個(gè)參考消息開始,由多個(gè)時(shí)間窗口組成,包括自由窗和仲裁窗等,對應(yīng)矩陣周期的一行,處于同一列的時(shí)間窗構(gòu)成了矩陣周期的列。矩陣周期的兩個(gè)參考消息之間時(shí)間間隔是一個(gè)基本周期BC,它的長度為任務(wù)集中所有任務(wù)時(shí)間的最大公約數(shù)。
圖1 TTCAN 的系統(tǒng)矩陣周期MC Fig.1 Matrix cycle of TTCAN
基本周期由3 類固定時(shí)間窗口組成:包括發(fā)送周期消息的獨(dú)占時(shí)間窗;發(fā)送隨機(jī)消息的仲裁時(shí)間窗以及用于網(wǎng)絡(luò)擴(kuò)展的自由時(shí)間窗[5]。每一個(gè)基本周期的時(shí)間窗口組成可能不同,各個(gè)時(shí)間窗口的長度及所完成的任務(wù)也可能不同,但是標(biāo)準(zhǔn)TTCAN 協(xié)議規(guī)定同一列的各個(gè)時(shí)間窗的長度應(yīng)該相同。
2.2.1 確認(rèn)參考消息的發(fā)送機(jī)制
在單主網(wǎng)絡(luò)中,TTCAN 的參考消息由唯一的主節(jié)點(diǎn)發(fā)送。而在多主網(wǎng)絡(luò)中,將發(fā)送窗口設(shè)置在每個(gè)時(shí)間片的開始,由該時(shí)間片內(nèi)的通訊雙方的主節(jié)點(diǎn)來發(fā)送參考消息,這樣雖然降低了總線利用率,但是增加了總線可靠性,容錯(cuò)能力更強(qiáng)。
多主網(wǎng)絡(luò)的參考消息發(fā)送機(jī)制如圖2所示。
圖2 多主網(wǎng)絡(luò)的參考消息發(fā)送機(jī)制 Fig.2 The mechanism of multi-master network reference messaging
2.2.2 確定多主節(jié)點(diǎn)的鏈路關(guān)系
為了提高總線利用率,需要優(yōu)化參考消息,簡化攜帶的消息內(nèi)容,在系統(tǒng)矩陣中開辟一個(gè)空閑時(shí)間片作為主節(jié)點(diǎn)網(wǎng)絡(luò)連接關(guān)系的同步時(shí)間片,以通報(bào)網(wǎng)絡(luò)連接情況,以免每次在參考消息中發(fā)送,增加參考消息的長度。
2.2.3 確定時(shí)間窗大小
在定時(shí)間片的長度的時(shí)候就要把參考消息的時(shí)間長度考慮進(jìn)去,畢竟一個(gè)時(shí)間片里面并非只發(fā)一個(gè)消息幀,一個(gè)時(shí)間片是為了一個(gè)通訊任務(wù)而服務(wù)的。
一個(gè)擴(kuò)展幀的長度為
其中Sm是CAN 中消息m的數(shù)據(jù)域的字節(jié)數(shù)。
對于參考消息:Sm取2,用于傳輸網(wǎng)絡(luò)時(shí)間,幀長度L0= 73bits ;
對于正常消息:Sm取8,用于傳輸網(wǎng)絡(luò)時(shí)間,幀長度Ln=130 bits,最大為150 bits。
根據(jù)需求確定基本周期中每列的長度Lt,即一個(gè)周期性任務(wù)所需要的總線傳輸時(shí)間,每個(gè)時(shí)間窗任務(wù)由一個(gè)參考消息和n個(gè)周期性消息組成,合計(jì)消息數(shù)量為n+1,消息與消息之間的位時(shí)間間隔Δtbits。
2.2.4 確定BC 和MC 的持續(xù)時(shí)間BCT和MCT
根據(jù)輸入周期性節(jié)點(diǎn)的個(gè)數(shù)N以及各個(gè)節(jié)點(diǎn)消息發(fā)送周期T= {T1,T2,K KTN-1,TN}(其中T是升序排序的)進(jìn)行確定,取所有消息的最大公約數(shù)為基本周期BCT。取所有報(bào)文傳輸周期的最小公倍數(shù)或者是最小公倍數(shù)的整數(shù)倍為MCT。
通過式(3)得到矩陣MC的行數(shù)R,即矩陣周期中基本周期BC 的個(gè)數(shù)。
2.2.5 確定TBC內(nèi)可傳輸周期消息數(shù)
根據(jù)公式(2)確定周期性任務(wù)發(fā)送一周期消息的傳輸時(shí)間Lt??捎墒剑?)求出BC 內(nèi)可以傳輸消息最大數(shù)目;由式(5)求出BC 中可以傳輸消息的平均數(shù)目;判斷若滿足α<γmax,則γ=α,傳輸非周期消息數(shù)β=γmax-γ,否則可要增大波特率以滿足要求[6]。
式中:a是為了避免非周期性信號對周期性信號傳輸造成干擾,在兩個(gè)周期間加入隔離窗口[7];Ti表示各節(jié)點(diǎn)的傳輸周期;BCT表示最小傳輸周期。
2.2.6 確定矩陣周期的列數(shù)
基本周期的列數(shù),即在基本周期中可以調(diào)度傳輸?shù)南€(gè)數(shù); 對于消息實(shí)例集合在滿足消息實(shí)例的發(fā)送周期時(shí),將任務(wù)集中的任務(wù)往Mc中填入,一般按照優(yōu)先分配觸發(fā)周期短、通訊時(shí)間長的任務(wù),后分配觸發(fā)周期長、通訊時(shí)間短的任務(wù),得到待優(yōu)化的初始矩陣周期Mc,矩陣周期的列數(shù)C[8]:
2.2.7 建立多主TTCAN 系統(tǒng)矩陣
在沒有標(biāo)準(zhǔn)TTCAN 的同一列時(shí)間片長度一致的約束下,生成系統(tǒng)類矩陣周期和對應(yīng)的時(shí)間片長度矩陣。將任務(wù)集中的執(zhí)行時(shí)間的最大公約數(shù)作為矩陣的基本元素Uc,則Mc的每行的初始元素個(gè)數(shù)為 /BTc Uc,將每個(gè)任務(wù)所覆蓋的初始元素窗口合并,這樣矩陣周期將變成一個(gè)每行元素的個(gè)數(shù)不相等、需要進(jìn)行補(bǔ)零操作,改進(jìn)后的最終矩陣為Mc’,然后每個(gè)任務(wù)覆蓋的初始元素的個(gè)數(shù)再構(gòu)建一個(gè)時(shí)間片長度矩陣Lc’。
電氣系統(tǒng)的網(wǎng)絡(luò)拓?fù)淙鐖D3所示。其中A,B,C,D,E是供電主節(jié)點(diǎn),E,F(xiàn),G,H,Ⅰ,J為從節(jié)點(diǎn),分別與相應(yīng)的主節(jié)點(diǎn)進(jìn)行連接。節(jié)點(diǎn)J監(jiān)聽當(dāng)前網(wǎng)絡(luò)的工作狀態(tài)。
圖3 某實(shí)際工程的電氣系統(tǒng)網(wǎng)絡(luò)拓?fù)?Fig.3 Network topology of electrical system in a practical engineering
根據(jù)文中的調(diào)度表構(gòu)造方法和實(shí)際的通訊鏈路,以上一節(jié)的仿真數(shù)據(jù)為基礎(chǔ),生成多主節(jié)點(diǎn)網(wǎng)絡(luò)的系統(tǒng)矩陣。電氣系統(tǒng)通訊任務(wù)集見表1。
表1 電氣系統(tǒng)通訊任務(wù)集 Tab.1 Communication tasks set of electrical system
總線通訊波特率為200 kb/s,每個(gè)任務(wù)窗口包含1 個(gè)參考消息和1 個(gè)周期性消息,由于L0=73 bits,Lf=150 bits, 1n= ,Δt=50 bits, 根據(jù)公式(2)得出:Lt=273 bits,傳輸時(shí)間為1.365 ms,取2 ms作為時(shí)間窗口的最小寬度。
鏈路包含16個(gè)周期型消息和2個(gè)非周期型消息。周期消息數(shù)N=16,按周期消息的發(fā)送周期進(jìn)行升序排列T={26,26,26,2678,78,78,78,156,156, 156,156,156,156,156,156},確定BCT=26 ms,MCT=156 ms,矩陣行數(shù)R=MCT/BCT=6,基本元素Uc=2 ms,則初始矩陣每行元素個(gè)數(shù)為13 個(gè)。
沒有優(yōu)化前的系統(tǒng)矩陣為Mc中的17 為仲裁窗口,任務(wù)2,6,10,14 所在的列的時(shí)間片長度均為10 ms,觸發(fā)次數(shù)均為5 次。按照標(biāo)準(zhǔn)的TTCAN 的矩陣周期生成方法,是無法生成一個(gè)合適的矩陣周期來實(shí)現(xiàn)這個(gè)任務(wù)集的需求的。另外,即使在矩陣周期能生成,許多時(shí)候迫使同一列上的其他時(shí)間片長度必須一致將浪費(fèi)不少的總線資源。
沒有優(yōu)化前的系統(tǒng)矩陣為Mc:
優(yōu)化后的系統(tǒng)矩陣Mc’和時(shí)間片長度矩陣Lc’為
說明:系統(tǒng)矩陣Mc’中的元素0 是主節(jié)點(diǎn)信息同步窗口,用于在多主網(wǎng)絡(luò)里面管理主節(jié)點(diǎn)的在線狀態(tài); -1 是仲裁信息窗口,多個(gè)非周期性消息仲裁通訊;-2 是冗余時(shí)間窗口,-是空的,僅為保持矩陣形式填充的。時(shí)間片長度矩陣Lc’與其一一對應(yīng)??梢娋仃囆问较啾扔谠瓉淼南到y(tǒng)矩陣要求的列長度一致做出優(yōu)化,以容納更多的消息類型,提高總線利用率。
本文采用simulink 中的stateflow 工具對多主網(wǎng)絡(luò)TTCAN 應(yīng)用層協(xié)議以及改進(jìn)后的系統(tǒng)矩陣周期的可行性進(jìn)行驗(yàn)證。
仿真的母級模型示意圖如圖4所示,根據(jù)通訊鏈路表得,其中任務(wù)1~16 為周期信號,任務(wù)17,18 是非周期觸發(fā)的隨機(jī)信號。端口out 可以觀察總線上的波形,而o1~o18 分別是上述通訊鏈路對應(yīng)的輸出端口。
圖4 TTCAN 網(wǎng)絡(luò)應(yīng)用層仿真母級模型 Fig.4 Simulation master module of TTCAN network application layer
不同周期的通訊鏈路的觸發(fā)、發(fā)送波形如圖5~圖7所示。
圖5 周期為26 ms 的任務(wù)發(fā)送波形 Fig.5 Send out waveform with 26 ms period
圖6 周期為78 ms 的任務(wù)發(fā)送波形 Fig.6 Send out waveform with 78 ms period
圖7 周期為156 ms 的任務(wù)發(fā)送波形 Fig.7 Send out waveform with 156 ms period
可以看出對于周期信號,發(fā)送任務(wù)處于等待狀態(tài)的時(shí)間相對于它們各自的截止期都是比較小的。
仿真結(jié)果如圖8,圖9所示。
圖8 初始總線狀態(tài)波形 Fig.8 The initial bus state waveforms
圖9 優(yōu)化后總線狀態(tài)波形 Fig.9 Optimized bus state waveform
網(wǎng)絡(luò)總線負(fù)載率是衡量一個(gè)總線通訊性能的重要指標(biāo),是總線被占用的時(shí)間和整個(gè)運(yùn)行時(shí) 間的比率,由于在多主節(jié)點(diǎn)TTCAN 協(xié)議下總線網(wǎng)絡(luò)的通訊過程實(shí)際上是矩陣周期的周期性循環(huán),因此在整數(shù)個(gè)矩陣周期內(nèi)都可以計(jì)算負(fù)載率,以基本周期為單位,根據(jù)圖5和圖6經(jīng)過計(jì)算得到:系統(tǒng)優(yōu)化前的網(wǎng)絡(luò)總線負(fù)載率為0.6656,優(yōu)化后網(wǎng)絡(luò)總線負(fù)載率 0.7294,利用率提高了9.58%。優(yōu)化后的網(wǎng)絡(luò)總線負(fù)載率得到了明顯的提高。
文中分析了標(biāo)準(zhǔn)TTCAN 協(xié)議在多主網(wǎng)絡(luò)下的不適用限制,并根據(jù)多主節(jié)點(diǎn)的網(wǎng)絡(luò)特點(diǎn)對TTCAN 協(xié)議的系統(tǒng)矩陣的生成方法進(jìn)行了修改,提出了改進(jìn)型的系統(tǒng)矩陣周期和對應(yīng)的時(shí)間片長度矩陣的生成方法,最后利用 Simulink 中Stateflow 工具,建立了一個(gè)某個(gè)工業(yè)控制現(xiàn)場TTCAN 網(wǎng)絡(luò)系統(tǒng)的仿真模型。并對改進(jìn)的TTCAN 協(xié)議進(jìn)行驗(yàn)證,仿真結(jié)果表明改進(jìn)后的多主TTCAN 網(wǎng)絡(luò)調(diào)度平臺的總線利用率提高了,并且增強(qiáng)了可靠性和穩(wěn)定性。
[1] Leen G, Heffernan D.TTCAN:A New Time-triggered Controller Area Network[J].Microprocessors and Microsystems, 2002, 26(2):77-94.
[2] 夏澤中,雷志雄.基于CAN 總線的時(shí)間觸發(fā)分布控制系統(tǒng)的設(shè)計(jì)[J].儀表技術(shù),2005:22-23.
[3] 姚浩強(qiáng).多主 TTCAN 網(wǎng)絡(luò)設(shè)計(jì)應(yīng)用研究[D].華中科技大學(xué),2013.
[4] Leen G, Heffernan D.Time-triggered Controller Area Network[J].Computing & Control Engineering Journal, 2001, 12(6):245-256.
[5] 張小玉.基于粒子群算法的 TTCAN 總線系統(tǒng)矩陣優(yōu)化研究[D].江南大學(xué), 2008.
[6] Fonseca J, Coutinho F, Barreiros J.Scheduling for a TTCAN Network with a Stochastic Optimization Algorithm[C]//Proceedings of the International CAN Conference,2001:10-16.
[7] 馮曉東, 張爭明, 張剛.TTCAN 網(wǎng)絡(luò)調(diào)度平臺的設(shè)計(jì)優(yōu)化[J].微電子學(xué)與計(jì)算機(jī), 2010, 3(17).
[8] Qiao X, Wang K, Sun Y,et al.A Genetic Algorithms Based Optimization for TTCAN[C]//Vehicular Electronics and Safety, 2007.ICVES.IEEE International Conference on.IEEE, 2007:1-7.