一種“動(dòng)靜結(jié)合”的CAN總線調(diào)度算法在汽車電子控制網(wǎng)絡(luò)中的研究與應(yīng)用
實(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)的交換。
為了實(shí)現(xiàn)預(yù)期的CAN總線調(diào)度算法,將節(jié)點(diǎn)的11位ID分解為3 + 8位的形式,前3位定義為組號(hào)。每個(gè)節(jié)點(diǎn)占用二個(gè)ID,同一節(jié)點(diǎn)ID的后8位相同,前3位用來區(qū)分時(shí)間觸發(fā)報(bào)文組與事件觸發(fā)報(bào)文組,并且時(shí)間觸發(fā)報(bào)文組的優(yōu)先級(jí)設(shè)置比事件觸發(fā)報(bào)文組的優(yōu)先級(jí)高。在調(diào)度表中,安排先發(fā)送時(shí)間觸發(fā)報(bào)文,發(fā)送完畢后,再允許各節(jié)點(diǎn)發(fā)送事件觸發(fā)報(bào)文。發(fā)送時(shí)間觸發(fā)報(bào)文時(shí),高優(yōu)先級(jí)節(jié)點(diǎn)的報(bào)文先發(fā)送,在該期間,由調(diào)度表確保僅有一個(gè)節(jié)點(diǎn)獲取總線控制權(quán)。在一個(gè)調(diào)度周期內(nèi),只有最后一個(gè)時(shí)間窗用于各節(jié)點(diǎn)發(fā)送事件觸發(fā)報(bào)文,該時(shí)間窗的大小,可根據(jù)實(shí)際使用情況,在調(diào)度表中靈活安排。若多個(gè)節(jié)點(diǎn)同時(shí)發(fā)送事件觸發(fā)報(bào)文,則依據(jù)CAN總線的位仲裁機(jī)制,以及動(dòng)態(tài)優(yōu)先級(jí)調(diào)度算法來進(jìn)行競(jìng)爭(zhēng),獲取總線控制權(quán)的節(jié)點(diǎn)發(fā)送報(bào)文。
實(shí)踐證明,這種結(jié)合了TTCAN技術(shù)和動(dòng)態(tài)晉升機(jī)制的調(diào)度算法,在整車電子控制網(wǎng)絡(luò)中起到了至關(guān)重要的作用,各個(gè)子系統(tǒng)之間數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性以及通信質(zhì)量都得到了明顯的改善。
評(píng)論