一種“動靜結(jié)合”的CAN總線調(diào)度算法在汽車電子控制網(wǎng)絡(luò)中的研究與應(yīng)用
1、基于CAN總線的汽車電子控制網(wǎng)絡(luò)中潛在問題
從信息共享角度分析,現(xiàn)代典型的汽車電子控制單元有:電控燃油噴射系統(tǒng)、電控傳動系統(tǒng)、防抱死制動系統(tǒng)(ABS)、防滑控制系統(tǒng)(ASR)、巡航系統(tǒng)、空調(diào)控制系統(tǒng)等,用CAN總線將各個單元節(jié)點連接起來,組成實時通信網(wǎng)絡(luò)。
汽車CAN總線網(wǎng)絡(luò)在實際運行過程中,眾多節(jié)點之間需要進(jìn)行大量的實時數(shù)據(jù)交換,不可避免會出現(xiàn)總線負(fù)荷過大的情況。當(dāng)信息幀的碰撞概率達(dá)到一定程度時,系統(tǒng)中一部分信息幀的收發(fā)就會產(chǎn)生延時,甚至根本不能收發(fā)成功。這樣,當(dāng)駕駛員剎車時,即使時延只有幾個毫秒,但時速100公里的汽車也可能在這期間內(nèi)全速駛出3~4米,后果將不堪設(shè)想。
為了解決上述問題,本文提出了一種結(jié)合TTCAN(Time Triggered Controller Area Network)技術(shù)和動態(tài)晉升機(jī)制[4]各自所長的“動靜結(jié)合”的調(diào)度算法。該算法有效解決了數(shù)據(jù)的發(fā)送時延和沖突問題,改善了CAN總線數(shù)據(jù)傳輸?shù)膶崟r性。
2、基于TTCAN技術(shù)的時間觸發(fā)調(diào)度方式
TTCAN由時間進(jìn)程驅(qū)動,其時間觸發(fā)調(diào)度由順序固定的時間窗組成。時間窗是用于交換報文的時間片斷,通常有三類時間窗:專用時間窗(特定的周期性報文)、仲裁時間窗(通過仲裁訪問總線的報文)和空閑時間窗(為總線擴(kuò)展所保留),如圖1所示。專用時間窗類似于TDMA(時分多路訪問),屬于離線進(jìn)行的靜態(tài)調(diào)度,所有流程和時間參數(shù)均需要預(yù)先指定,并可以在多級或多個TTCAN網(wǎng)絡(luò)內(nèi)實現(xiàn)同步。TTCAN的全局時間由時間主機(jī)周期發(fā)送的參考報文產(chǎn)生,它的總線最多可以配置8個具有優(yōu)先級的時間主機(jī)節(jié)點,以確??偩€的連續(xù)、確定性通信,優(yōu)先級最高的時間主機(jī)為當(dāng)前時間主機(jī)。
圖1 TTCAN的基本周期和時間窗
在節(jié)點編程時,可以利用處理器的定時器中斷周期作為NTU(Network Time Unit),其值定義為在CAN總線上以1Mbps的速率傳輸1幀8字節(jié)數(shù)據(jù)幀所需時間的八分之一,約為16.75μs。對周期中斷次數(shù)進(jìn)行計數(shù),總線的調(diào)度從主節(jié)點發(fā)送參考報文開始,當(dāng)計數(shù)器值與節(jié)點設(shè)定值相符時,則發(fā)送周期報文。傳輸數(shù)據(jù)幀時的時間窗利用率可以定義為:時間窗利用率=(傳輸數(shù)據(jù)幀所需的NTU數(shù)/時間窗長度)×100%。在實際測試中可以發(fā)現(xiàn),當(dāng)時間窗小、調(diào)度周期數(shù)大時,誤碼率較大;當(dāng)時間窗增大即時間窗利用率較低時,誤碼率基本維持在很低的水平。
3、基于動態(tài)優(yōu)先級調(diào)度算法的事件觸發(fā)調(diào)度方式
仲裁窗發(fā)送事件觸發(fā)報文,如果采用傳統(tǒng)的靜態(tài)優(yōu)先級分配機(jī)制,將會在網(wǎng)絡(luò)負(fù)擔(dān)繁重的情況下出現(xiàn)發(fā)送傳輸時延或者丟失報文。而動態(tài)優(yōu)先級調(diào)度算法則能很好地解決這一問題。以下是該算法的基本原理。
首先,將CAN的仲裁域(以擴(kuò)展幀格式為例)分成優(yōu)先級和標(biāo)識兩部分,如圖2所示。標(biāo)識部分是固定用來標(biāo)識協(xié)議幀的,這也是協(xié)議幀的惟一標(biāo)識,與傳統(tǒng)協(xié)議幀標(biāo)識符的意義完全相同;優(yōu)先級部分已經(jīng)不再具有協(xié)議幀的標(biāo)識功能,而只是表示協(xié)議幀的優(yōu)先級功能,所以它可以根據(jù)總線調(diào)度機(jī)制分配給協(xié)議幀的優(yōu)先級的變化而變化。
圖2 CAN擴(kuò)展幀格式的仲裁域的劃分
其次,當(dāng)協(xié)議幀第一次發(fā)送、且當(dāng)它在發(fā)送時和其他協(xié)議幀碰撞并失去仲裁時,即退出發(fā)送,并置優(yōu)先級上升一位后,再重新發(fā)送。因為這時其優(yōu)先級高于其他協(xié)議幀,在整個網(wǎng)絡(luò)中如果沒有其他與之具有相同優(yōu)先級的協(xié)議幀同時發(fā)送,即使和其他的協(xié)議幀(處于第一次發(fā)送的)碰撞,也會贏得仲裁,所以發(fā)送成功的概率很大。
評論