一種“動靜結(jié)合”的CAN總線調(diào)度算法在汽車電子控制網(wǎng)絡(luò)中的研究與應(yīng)用
實現(xiàn)動態(tài)優(yōu)先級晉升的算法很簡單,其軟件流程圖如圖3所示。
圖3 動態(tài)優(yōu)先級調(diào)度算法的程序流程圖
4、調(diào)度算法在汽車電子控制網(wǎng)絡(luò)中的應(yīng)用
作者設(shè)計了防抱死系統(tǒng)(ABS)、電子助力轉(zhuǎn)向系統(tǒng)(EPS)以及車身控制系統(tǒng)(兼做低速CAN總線與高速CAN總線之間的網(wǎng)橋)作為CAN總線汽車電子控制網(wǎng)絡(luò)節(jié)點,上位PC機節(jié)點采用IXXAT公司的CANlink模塊(CAN-RS232轉(zhuǎn)換器)與總線相連,并使用該公司的CAN BUS Tester(CAN總線測試儀)模塊以及CanAnalyser(CAN總線分析開發(fā))軟件進行了CAN網(wǎng)絡(luò)的設(shè)計和開發(fā)。采用本文介紹的調(diào)度算法,應(yīng)用層部分采用的是目前流行的J1939協(xié)議。
4.1 汽車電子控制網(wǎng)絡(luò)硬件設(shè)計
防死抱系統(tǒng)、電子助力轉(zhuǎn)向系統(tǒng)及車身控制系統(tǒng)的處理器均選用了飛思卡爾公司的MC9S12DP256芯片,該芯片是一款低成本、高性能的16位HCS12系列微處理器,內(nèi)置有msCAN控制器,非常適合作為汽車電子控制單元的核心部件; CAN總線收發(fā)器選用的是MC33989(高速總線)芯片和MC33388芯片(低速總線);車身控制系統(tǒng)中的LIN總線收發(fā)器和電機驅(qū)動選用的都是MC33399芯片;車燈及其他負載的驅(qū)動選用的是MC33888芯片。網(wǎng)絡(luò)整體框圖如圖4所示。
圖4 汽車電子控制網(wǎng)絡(luò)的整體框圖
4.2 汽車電子控制網(wǎng)絡(luò)軟件設(shè)計
利用CodeWarrior集成開發(fā)環(huán)境IDE(Integrated Development Environment),通過背景調(diào)試方式BDM(Background Debug Mode),下載控制程序和修改相關(guān)參數(shù),在不干擾目標程序運行的情況下,實時監(jiān)測各寄存器和存儲器,實現(xiàn)了控制程序的板上在線調(diào)試,從而提高了集成系統(tǒng)的開發(fā)效率和試驗的方便性,縮短了試驗周期。
系統(tǒng)所需軟件模塊主要由系統(tǒng)初始化模塊、啟動自檢模塊、主控制模塊、數(shù)據(jù)采集模塊、數(shù)據(jù)處理模塊、參考車速計算模塊、控制決策和執(zhí)行機構(gòu)動作模塊、故障診斷模塊、總線通信模塊等幾大部分組成。各模塊由主控制模塊按任務(wù)管理機制實時進行統(tǒng)一調(diào)度,分配運行時間,進行數(shù)據(jù)和信號的交換。
為了實現(xiàn)預(yù)期的CAN總線調(diào)度算法,將節(jié)點的11位ID分解為3 + 8位的形式,前3位定義為組號。每個節(jié)點占用二個ID,同一節(jié)點ID的后8位相同,前3位用來區(qū)分時間觸發(fā)報文組與事件觸發(fā)報文組,并且時間觸發(fā)報文組的優(yōu)先級設(shè)置比事件觸發(fā)報文組的優(yōu)先級高。在調(diào)度表中,安排先發(fā)送時間觸發(fā)報文,發(fā)送完畢后,再允許各節(jié)點發(fā)送事件觸發(fā)報文。發(fā)送時間觸發(fā)報文時,高優(yōu)先級節(jié)點的報文先發(fā)送,在該期間,由調(diào)度表確保僅有一個節(jié)點獲取總線控制權(quán)。在一個調(diào)度周期內(nèi),只有最后一個時間窗用于各節(jié)點發(fā)送事件觸發(fā)報文,該時間窗的大小,可根據(jù)實際使用情況,在調(diào)度表中靈活安排。若多個節(jié)點同時發(fā)送事件觸發(fā)報文,則依據(jù)CAN總線的位仲裁機制,以及動態(tài)優(yōu)先級調(diào)度算法來進行競爭,獲取總線控制權(quán)的節(jié)點發(fā)送報文。
實踐證明,這種結(jié)合了TTCAN技術(shù)和動態(tài)晉升機制的調(diào)度算法,在整車電子控制網(wǎng)絡(luò)中起到了至關(guān)重要的作用,各個子系統(tǒng)之間數(shù)據(jù)傳輸?shù)膶崟r性以及通信質(zhì)量都得到了明顯的改善。
評論