新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種“動(dòng)靜結(jié)合”的CAN總線調(diào)度算法在汽車電子控制

一種“動(dòng)靜結(jié)合”的CAN總線調(diào)度算法在汽車電子控制

作者: 時(shí)間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

最初是由德國BOSCH公司于20世紀(jì)80年代初提出的,當(dāng)時(shí)主要應(yīng)用于電氣通信,它將上各種信號(hào)的接線只用兩根簡(jiǎn)潔的電纜線取代,而各種電子裝置通過CAN控制器掛到這兩根電纜上,設(shè)備之間進(jìn)行數(shù)據(jù)通信和數(shù)據(jù)共享,從而大大減少了上的線束。結(jié)構(gòu)獨(dú)特,性能可靠,目前被公認(rèn)為是最有前途的現(xiàn)場(chǎng)控制總線之一。

本文引用地址:http://2s4d.com/article/201609/304269.htm

1、基于的汽車電子控制網(wǎng)絡(luò)中潛在問題

從信息共享角度分析,現(xiàn)代典型的汽車電子控制單元有:電控燃油噴射系統(tǒng)、電控傳動(dòng)系統(tǒng)、防抱死制動(dòng)系統(tǒng)(ABS)、防滑控制系統(tǒng)(ASR)、巡航系統(tǒng)、空調(diào)控制系統(tǒng)等,用CAN總線將各個(gè)單元節(jié)點(diǎn)連接起來,組成實(shí)時(shí)通信網(wǎng)絡(luò)。

汽車CAN總線網(wǎng)絡(luò)在實(shí)際運(yùn)行過程中,眾多節(jié)點(diǎn)之間需要進(jìn)行大量的實(shí)時(shí)數(shù)據(jù)交換,不可避免會(huì)出現(xiàn)總線負(fù)荷過大的情況。當(dāng)信息幀的碰撞概率達(dá)到一定程度時(shí),系統(tǒng)中一部分信息幀的收發(fā)就會(huì)產(chǎn)生延時(shí),甚至根本不能收發(fā)成功。這樣,當(dāng)駕駛員剎車時(shí),即使時(shí)延只有幾個(gè)毫秒,但時(shí)速100公里的汽車也可能在這期間內(nèi)全速駛出3~4米,后果將不堪設(shè)想。

為了解決上述問題,本文提出了一種結(jié)合(Time Triggered Controller Area Network)技術(shù)和動(dòng)態(tài)晉升機(jī)制[4]各自所長(zhǎng)的“動(dòng)靜結(jié)合”的調(diào)度算法。該算法有效解決了數(shù)據(jù)的發(fā)送時(shí)延和沖突問題,改善了CAN總線數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性。

2、基于技術(shù)的時(shí)間觸發(fā)調(diào)度方式

由時(shí)間進(jìn)程驅(qū)動(dòng),其時(shí)間觸發(fā)調(diào)度由順序固定的時(shí)間窗組成。時(shí)間窗是用于交換報(bào)文的時(shí)間片斷,通常有三類時(shí)間窗:專用時(shí)間窗(特定的周期性報(bào)文)、仲裁時(shí)間窗(通過仲裁訪問總線的報(bào)文)和空閑時(shí)間窗(為總線擴(kuò)展所保留),如圖1所示。專用時(shí)間窗類似于TDMA(時(shí)分多路訪問),屬于離線進(jìn)行的靜態(tài)調(diào)度,所有流程和時(shí)間參數(shù)均需要預(yù)先指定,并可以在多級(jí)或多個(gè)TTCAN網(wǎng)絡(luò)內(nèi)實(shí)現(xiàn)同步。TTCAN的全局時(shí)間由時(shí)間主機(jī)周期發(fā)送的參考報(bào)文產(chǎn)生,它的總線最多可以配置8個(gè)具有優(yōu)先級(jí)的時(shí)間主機(jī)節(jié)點(diǎn),以確??偩€的連續(xù)、確定性通信,優(yōu)先級(jí)最高的時(shí)間主機(jī)為當(dāng)前時(shí)間主機(jī)。

圖1 TTCAN的基本周期和時(shí)間窗

在節(jié)點(diǎn)編程時(shí),可以利用處理器的定時(shí)器中斷周期作為NTU(Network Time Unit),其值定義為在CAN總線上以1Mbps的速率傳輸1幀8字節(jié)數(shù)據(jù)幀所需時(shí)間的八分之一,約為16.75μs。對(duì)周期中斷次數(shù)進(jìn)行計(jì)數(shù),總線的調(diào)度從主節(jié)點(diǎn)發(fā)送參考報(bào)文開始,當(dāng)計(jì)數(shù)器值與節(jié)點(diǎn)設(shè)定值相符時(shí),則發(fā)送周期報(bào)文。傳輸數(shù)據(jù)幀時(shí)的時(shí)間窗利用率可以定義為:時(shí)間窗利用率=(傳輸數(shù)據(jù)幀所需的NTU數(shù)/時(shí)間窗長(zhǎng)度)×100%。在實(shí)際測(cè)試中可以發(fā)現(xiàn),當(dāng)時(shí)間窗小、調(diào)度周期數(shù)大時(shí),誤碼率較大;當(dāng)時(shí)間窗增大即時(shí)間窗利用率較低時(shí),誤碼率基本維持在很低的水平。

3、基于動(dòng)態(tài)優(yōu)先級(jí)調(diào)度算法的事件觸發(fā)調(diào)度方式

仲裁窗發(fā)送事件觸發(fā)報(bào)文,如果采用傳統(tǒng)的靜態(tài)優(yōu)先級(jí)分配機(jī)制,將會(huì)在網(wǎng)絡(luò)負(fù)擔(dān)繁重的情況下出現(xiàn)發(fā)送傳輸時(shí)延或者丟失報(bào)文。而動(dòng)態(tài)優(yōu)先級(jí)調(diào)度算法則能很好地解決這一問題。以下是該算法的基本原理。

首先,將CAN的仲裁域(以擴(kuò)展幀格式為例)分成優(yōu)先級(jí)和標(biāo)識(shí)兩部分,如圖2所示。標(biāo)識(shí)部分是固定用來標(biāo)識(shí)協(xié)議幀的,這也是協(xié)議幀的惟一標(biāo)識(shí),與傳統(tǒng)協(xié)議幀標(biāo)識(shí)符的意義完全相同;優(yōu)先級(jí)部分已經(jīng)不再具有協(xié)議幀的標(biāo)識(shí)功能,而只是表示協(xié)議幀的優(yōu)先級(jí)功能,所以它可以根據(jù)總線調(diào)度機(jī)制分配給協(xié)議幀的優(yōu)先級(jí)的變化而變化。

圖2 CAN擴(kuò)展幀格式的仲裁域的劃分

其次,當(dāng)協(xié)議幀第一次發(fā)送、且當(dāng)它在發(fā)送時(shí)和其他協(xié)議幀碰撞并失去仲裁時(shí),即退出發(fā)送,并置優(yōu)先級(jí)上升一位后,再重新發(fā)送。因?yàn)檫@時(shí)其優(yōu)先級(jí)高于其他協(xié)議幀,在整個(gè)網(wǎng)絡(luò)中如果沒有其他與之具有相同優(yōu)先級(jí)的協(xié)議幀同時(shí)發(fā)送,即使和其他的協(xié)議幀(處于第一次發(fā)送的)碰撞,也會(huì)贏得仲裁,所以發(fā)送成功的概率很大。

實(shí)現(xiàn)動(dòng)態(tài)優(yōu)先級(jí)晉升的算法很簡(jiǎn)單,其軟件流程圖如圖3所示。

圖3 動(dòng)態(tài)優(yōu)先級(jí)調(diào)度算法的程序流程圖

4、調(diào)度算法在汽車電子控制網(wǎng)絡(luò)中的應(yīng)用

作者設(shè)計(jì)了防抱死系統(tǒng)(ABS)、電子助力轉(zhuǎn)向系統(tǒng)(EPS)以及車身控制系統(tǒng)(兼做低速CAN總線與高速CAN總線之間的網(wǎng)橋)作為CAN總線汽車電子控制網(wǎng)絡(luò)節(jié)點(diǎn),上位PC機(jī)節(jié)點(diǎn)采用IXXAT公司的CANlink模塊(CAN-RS232轉(zhuǎn)換器)與總線相連,并使用該公司的CAN BUS Tester(CAN總線測(cè)試儀)模塊以及CanAnalyser(CAN總線分析開發(fā))軟件進(jìn)行了CAN網(wǎng)絡(luò)的設(shè)計(jì)和開發(fā)。采用本文介紹的調(diào)度算法,應(yīng)用層部分采用的是目前流行的J1939協(xié)議。

4.1 汽車電子控制網(wǎng)絡(luò)硬件設(shè)計(jì)

防死抱系統(tǒng)、電子助力轉(zhuǎn)向系統(tǒng)及車身控制系統(tǒng)的處理器均選用了飛思卡爾公司的MC9S12DP256芯片,該芯片是一款低成本、高性能的16位HCS12系列微處理器,內(nèi)置有msCAN控制器,非常適合作為汽車電子控制單元的核心部件; CAN總線收發(fā)器選用的是MC33989(高速總線)芯片和MC33388芯片(低速總線);車身控制系統(tǒng)中的LIN總線收發(fā)器和電機(jī)驅(qū)動(dòng)選用的都是MC33399芯片;車燈及其他負(fù)載的驅(qū)動(dòng)選用的是MC33888芯片。網(wǎng)絡(luò)整體框圖如圖4所示。

圖4 汽車電子控制網(wǎng)絡(luò)的整體框圖

4.2 汽車電子控制網(wǎng)絡(luò)軟件設(shè)計(jì)

利用CodeWarrior集成開發(fā)環(huán)境IDE(Integrated Development Environment),通過背景調(diào)試方式BDM(Background Debug Mode),下載控制程序和修改相關(guān)參數(shù),在不干擾目標(biāo)程序運(yùn)行的情況下,實(shí)時(shí)監(jiān)測(cè)各寄存器和存儲(chǔ)器,實(shí)現(xiàn)了控制程序的板上在線調(diào)試,從而提高了集成系統(tǒng)的開發(fā)效率和試驗(yàn)的方便性,縮短了試驗(yàn)周期。

系統(tǒng)所需軟件模塊主要由系統(tǒng)初始化模塊、啟動(dòng)自檢模塊、主控制模塊、數(shù)據(jù)采集模塊、數(shù)據(jù)處理模塊、參考車速計(jì)算模塊、控制決策和執(zhí)行機(jī)構(gòu)動(dòng)作模塊、故障診斷模塊、總線通信模塊等幾大部分組成。各模塊由主控制模塊按任務(wù)管理機(jī)制實(shí)時(shí)進(jìn)行統(tǒng)一調(diào)度,分配運(yùn)行時(shí)間,進(jìn)行數(shù)據(jù)和信號(hào)的交換。


上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉