《電子技術應用》
您所在的位置:首頁 > 其他 > 业界动态 > 一种“动静结合”的CAN总线调度算法在汽车电子控制网络中的研究与应用

一种“动静结合”的CAN总线调度算法在汽车电子控制网络中的研究与应用

2008-04-22
作者:江 杰, 胡文江, 范 宇

  摘 要: 一種以TTCAN技術為基礎、結合動態(tài)優(yōu)先級的CAN總線調度算法,闡述了這種算法較傳統CAN總線協議的改進之處,并將該調度算法應用在基于CAN總線的汽車電子控制網絡" title="汽車電子控制網絡">汽車電子控制網絡系統中,有效改善了系統實時性" title="實時性">實時性及網絡質量。
  關鍵詞: CAN總線 TTCAN 動態(tài)優(yōu)先級算法 汽車電子控制網絡


  CAN總線[1]最初是由德國BOSCH公司于20世紀80年代初提出的,當時主要應用于汽車電氣通信,它將汽車上各種信號的接線只用兩根簡潔的電纜線取代,而各種電子裝置通過CAN控制器掛到這兩根電纜上,設備之間進行數據通信和數據共享,從而大大減少了汽車上的線束。CAN總線結構獨特,性能可靠,目前被公認為是最有前途的現場控制總線之一。
1 基于CAN總線的汽車電子控制網絡中潛在問題
  從信息共享角度分析,現代典型的汽車電子控制單元[2]有:電控燃油噴射系統、電控傳動系統、防抱死制動系統(ABS)、防滑控制系統(ASR)、巡航系統、空調控制系統等,用CAN總線將各個單元節(jié)點連接起來,組成實時通信網絡。
  汽車CAN總線網絡在實際運行過程中,眾多節(jié)點之間需要進行大量的實時數據交換,不可避免會出現總線負荷過大的情況。當信息幀的碰撞概率達到一定程度時,系統中一部分信息幀的收發(fā)就會產生延時,甚至根本不能收發(fā)成功。這樣,當駕駛員剎車時,即使時延只有幾個毫秒,但時速100公里的汽車也可能在這期間內全速駛出3~4米,后果將不堪設想。
  為了解決上述問題,本文提出了一種結合TTCAN[3](Time Triggered Controller Area Network)技術和動態(tài)晉升機制[4]各自所長的“動靜結合”的調度算法。該算法有效解決了數據的發(fā)送時延和沖突問題,改善了CAN總線數據傳輸的實時性。
2 基于TTCAN技術的時間觸發(fā)" title="時間觸發(fā)">時間觸發(fā)調度方式
  TTCAN由時間進程驅動,其時間觸發(fā)調度由順序固定的時間窗組成。時間窗是用于交換報文的時間片斷,通常有三類時間窗:專用時間窗(特定的周期性報文)、仲裁時間窗(通過仲裁訪問總線的報文)和空閑時間窗(為總線擴展所保留),如圖1所示。專用時間窗類似于TDMA(時分多路訪問),屬于離線進行的靜態(tài)調度,所有流程和時間參數均需要預先指定,并可以在多級或多個TTCAN網絡內實現同步。TTCAN的全局時間由時間主機周期發(fā)送的參考報文產生,它的總線最多可以配置8個具有優(yōu)先級的時間主機節(jié)點,以確??偩€的連續(xù)、確定性通信,優(yōu)先級最高的時間主機為當前時間主機。


  在節(jié)點編程時,可以利用處理器的定時器中斷周期作為NTU(Network Time Unit),其值定義為在CAN總線上以1Mbps的速率傳輸1幀8字節(jié)數據幀" title="數據幀">數據幀所需時間的八分之一,約為16.75μs。對周期中斷次數進行計數,總線的調度從主節(jié)點發(fā)送參考報文開始,當計數器值與節(jié)點設定值相符時,則發(fā)送周期報文。傳輸數據幀時的時間窗利用率可以定義為:時間窗利用率=(傳輸數據幀所需的NTU數/時間窗長度)×100%。在實際測試中可以發(fā)現,當時間窗小、調度周期數大時,誤碼率較大;當時間窗增大即時間窗利用率較低時,誤碼率基本維持在很低的水平。
3 基于動態(tài)優(yōu)先級調度算法的事件觸發(fā)調度方式
  仲裁窗發(fā)送事件觸發(fā)報文,如果采用傳統的靜態(tài)優(yōu)先級分配機制,將會在網絡負擔繁重的情況下出現發(fā)送傳輸時延或者丟失報文。而動態(tài)優(yōu)先級調度算法則能很好地解決這一問題。以下是該算法的基本原理。
  首先,將CAN的仲裁域(以擴展幀格式為例)分成優(yōu)先級和標識兩部分,如圖2所示。標識部分是固定用來標識協議幀的,這也是協議幀的惟一標識,與傳統協議幀標識符的意義完全相同;優(yōu)先級部分已經不再具有協議幀的標識功能,而只是表示協議幀的優(yōu)先級功能,所以它可以根據總線調度機制分配給協議幀的優(yōu)先級的變化而變化。


  其次,當協議幀第一次發(fā)送、且當它在發(fā)送時和其他協議幀碰撞并失去仲裁時,即退出發(fā)送,并置優(yōu)先級上升一位后,再重新發(fā)送。因為這時其優(yōu)先級高于其他協議幀,在整個網絡中如果沒有其他與之具有相同優(yōu)先級的協議幀同時發(fā)送,即使和其他的協議幀(處于第一次發(fā)送的)碰撞,也會贏得仲裁,所以發(fā)送成功的概率很大。
  實現動態(tài)優(yōu)先級晉升的算法很簡單,其軟件流程圖如圖3所示。


4 調度算法在汽車電子控制網絡中的應用
  作者設計了防抱死系統(ABS)、電子助力轉向系統(EPS)以及車身控制系統" title="車身控制系統">車身控制系統(兼做低速CAN總線與高速CAN總線之間的網橋)作為CAN總線汽車電子控制網絡節(jié)點,上位PC機節(jié)點采用IXXAT公司的CANlink模塊(CAN-RS232轉換器)與總線相連,并使用該公司的CAN BUS Tester(CAN總線測試儀)模塊以及CanAnalyser(CAN總線分析開發(fā))軟件進行了CAN網絡的設計和開發(fā)。采用本文介紹的調度算法,應用層部分采用的是目前流行的J1939協議。
4.1 汽車電子控制網絡硬件設計
  防死抱系統、電子助力轉向系統及車身控制系統的處理器均選用了飛思卡爾公司的MC9S12DP256芯片,該芯片是一款低成本、高性能的16位HCS12系列微處理器,內置有msCAN控制器,非常適合作為汽車電子控制單元的核心部件; CAN總線收發(fā)器選用的是MC33989(高速總線)芯片和MC33388芯片(低速總線);車身控制系統中的LIN總線收發(fā)器和電機驅動選用的都是MC33399芯片;車燈及其他負載的驅動選用的是MC33888芯片。網絡整體框圖如圖4所示。


4.2 汽車電子控制網絡軟件設計
  利用CodeWarrior集成開發(fā)環(huán)境IDE(Integrated Development Environment),通過背景調試方式BDM(Background Debug Mode),下載控制程序和修改相關參數,在不干擾目標程序運行的情況下,實時監(jiān)測各寄存器和存儲器,實現了控制程序的板上在線調試,從而提高了集成系統的開發(fā)效率和試驗的方便性,縮短了試驗周期。
  系統所需軟件模塊主要由系統初始化模塊、啟動自檢模塊、主控制模塊、數據采集模塊、數據處理模塊、參考車速計算模塊、控制決策和執(zhí)行機構動作模塊、故障診斷模塊、總線通信模塊等幾大部分組成。各模塊由主控制模塊按任務管理機制實時進行統一調度,分配運行時間,進行數據和信號的交換。
  為了實現預期的CAN總線調度算法,將節(jié)點的11位ID分解為3 + 8位的形式,前3位定義為組號。每個節(jié)點占用二個ID,同一節(jié)點ID的后8位相同,前3位用來區(qū)分時間觸發(fā)報文組與事件觸發(fā)報文組,并且時間觸發(fā)報文組的優(yōu)先級設置比事件觸發(fā)報文組的優(yōu)先級高。在調度表中,安排先發(fā)送時間觸發(fā)報文,發(fā)送完畢后,再允許各節(jié)點發(fā)送事件觸發(fā)報文。發(fā)送時間觸發(fā)報文時,高優(yōu)先級節(jié)點的報文先發(fā)送,在該期間,由調度表確保僅有一個節(jié)點獲取總線控制權。在一個調度周期內,只有最后一個時間窗用于各節(jié)點發(fā)送事件觸發(fā)報文,該時間窗的大小,可根據實際使用情況,在調度表中靈活安排。若多個節(jié)點同時發(fā)送事件觸發(fā)報文,則依據CAN總線的位仲裁機制,以及動態(tài)優(yōu)先級調度算法來進行競爭,獲取總線控制權的節(jié)點發(fā)送報文。
  實踐證明,這種結合了TTCAN技術和動態(tài)晉升機制的調度算法,在整車電子控制網絡中起到了至關重要的作用,各個子系統之間數據傳輸的實時性以及通信質量都得到了明顯的改善。
參考文獻

[1] ?饒運濤,鄒繼軍,鄭勇蕓. 現場總線CAN原理與應用技術[M].北京:北京航空航天大學出版社,2003.
[2]? 趙丁選. 光機電一體化設計使用手冊. 北京:化學工業(yè)出版社,2003.
[3]? 馮謙. CAN總線的時間觸發(fā)調度算法設計及實驗研究. 沈陽:信息與控制出版社,2005.
[4]? 史久根,張培仁,陳真勇. CAN現場總線系統設計技術.北京:國防工業(yè)出版社,2004.

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。

相關內容