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