智能駕駛的整車控制部分需要采用AUTOSAR框架進(jìn)行開(kāi)發(fā),以滿足高實(shí)時(shí)性以及高級(jí)別的功能安全需求。在本文中,通過(guò)采用AUTOSAR框架中網(wǎng)絡(luò)管理的實(shí)現(xiàn)方式,對(duì)網(wǎng)絡(luò)管理報(bào)文的格式進(jìn)行定義,并描述CAN網(wǎng)絡(luò)休眠與喚醒的狀態(tài)轉(zhuǎn)換、網(wǎng)絡(luò)喚醒狀態(tài)中各個(gè)子狀態(tài)的切換、CAN Bus-off狀態(tài)下的處理策略以及非正常電壓模式下的處理策略等。在CANoe上對(duì)網(wǎng)絡(luò)管理功能的策略進(jìn)行驗(yàn)證,測(cè)試結(jié)果表明能夠?qū)崿F(xiàn)AUTOSAR網(wǎng)絡(luò)管理的各項(xiàng)功能。
1 引言
近些年來(lái),智能駕駛相關(guān)技術(shù)在世界范圍內(nèi)獲得廣泛關(guān)注和蓬勃發(fā)展。智能網(wǎng)聯(lián)汽車是指搭載各傳感器、控制器、執(zhí)行器等裝置,融合現(xiàn)代通信與網(wǎng)絡(luò)、人工智能等技術(shù),實(shí)現(xiàn)車與X(車、路、人、云等)智能信息交換、共享,具備復(fù)雜環(huán)境感知、智能決策、協(xié)同控制等功能,可實(shí)現(xiàn) “安全、高效、舒適、節(jié)能”行駛,并最終可實(shí)現(xiàn)替代人來(lái)操作的新一代汽車[1-2]。美國(guó)高速公路管理局(NHTSA)發(fā)布了對(duì)自動(dòng)駕駛各個(gè)級(jí)別的定義:Level 0代表人工駕駛,Level 1代表輔助駕駛,Level 2代表部分自動(dòng)駕駛,Level 3代表?xiàng)l件自動(dòng)駕駛,Level 4代表完全的自動(dòng)駕駛。對(duì)于高級(jí)別自動(dòng)駕駛,對(duì)控制器硬件以及基礎(chǔ)軟件的要求相對(duì)要高。高度自動(dòng)駕駛級(jí)別的域控制器系統(tǒng)架構(gòu)如圖1所示。
圖1 自動(dòng)駕駛域控制器系統(tǒng)架構(gòu)
數(shù)據(jù)融合與處理部分既要求實(shí)時(shí)性和一定的功能安全級(jí)別,又要求基礎(chǔ)軟件能管理更大內(nèi)存,需要有文件系統(tǒng)的支持,因此采用具有文件系統(tǒng)的實(shí)時(shí)操作系統(tǒng)框架進(jìn)行開(kāi)發(fā)。整車控制部分需要基礎(chǔ)軟件具有高實(shí)時(shí)性以及高級(jí)別的功能安全需求,因此采用車控基礎(chǔ)軟件AUTOSAR框架進(jìn)行開(kāi)發(fā)[3]。AUTOSAR是由各大汽車制造廠商、零部件供應(yīng)商、汽車電子、半導(dǎo)體和軟件系統(tǒng)公司于2003年聯(lián)合推出的一個(gè)開(kāi)放的、標(biāo)準(zhǔn)化的軟件架構(gòu)。該架構(gòu)專門(mén)應(yīng)用于汽車電子領(lǐng)域,嘗試通過(guò)增加軟件模塊的重用和互換,來(lái)降低系統(tǒng)軟件架構(gòu)的復(fù)雜度,從而優(yōu)化整個(gè)軟件的開(kāi)發(fā)流程。滿足AUTOSAR框架的基礎(chǔ)軟件,具有可移植、可擴(kuò)展、高實(shí)時(shí)、高可靠、滿足功能安全要求等特點(diǎn)[4]。本文采用基于AUTOSAR架構(gòu)的網(wǎng)絡(luò)管理,在汽車CAN系統(tǒng)中進(jìn)行實(shí)現(xiàn),并在CANoe上對(duì)網(wǎng)絡(luò)管理的各功能進(jìn)行仿真驗(yàn)證[5]。
2 AUTOSAR CAN網(wǎng)絡(luò)管理報(bào)文格式
在網(wǎng)絡(luò)管理中,網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)通過(guò)網(wǎng)絡(luò)管理報(bào)文進(jìn)行通信,AUTOSAR CAN網(wǎng)絡(luò)管理報(bào)文的數(shù)據(jù)場(chǎng)格式見(jiàn)表1。
表1 網(wǎng)絡(luò)管理報(bào)文的數(shù)據(jù)場(chǎng)格式
表1中,字節(jié)0為ECU Address,作為源節(jié)點(diǎn)標(biāo)識(shí)符,用以告知其他節(jié)點(diǎn)該報(bào)文是由哪個(gè)節(jié)點(diǎn)發(fā)送的;處于CAN網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都會(huì)分配一個(gè)唯一的標(biāo)識(shí)符,本文中網(wǎng)絡(luò)管理報(bào)文的ECU Address=0x439。字節(jié)1為控制比特向量,字節(jié)2~7為用戶自定義的數(shù)據(jù)信息。本文中字節(jié)2User date 0用于將網(wǎng)絡(luò)喚醒原因顯示出來(lái),其他自定義數(shù)據(jù)作為擴(kuò)展保留,用“0x00”填充。表2列出了控制比特向量各位的含義。其中Bit0為重復(fù)報(bào)文狀態(tài)請(qǐng)求位,置1代表需進(jìn)入重復(fù)報(bào)文發(fā)送狀態(tài),清零代表不再需要重復(fù)報(bào)文發(fā)送狀態(tài);Bit4位為激活喚醒位,置1代表主動(dòng)喚醒狀態(tài),清零代表被動(dòng)喚醒狀態(tài)。其他位為保留位,以0填充。
表2 控制比特向量格式
3 網(wǎng)絡(luò)管理的策略實(shí)現(xiàn)
3.1 網(wǎng)絡(luò)休眠與喚醒
AUTOSAR網(wǎng)絡(luò)管理包含3個(gè)主要狀態(tài):總線休眠狀態(tài)、預(yù)休眠狀態(tài)和喚醒狀態(tài)。當(dāng)網(wǎng)絡(luò)節(jié)點(diǎn)滿足休眠條件,不需要進(jìn)行CAN通信時(shí),進(jìn)入總線休眠狀態(tài)。網(wǎng)絡(luò)處于總線休眠狀態(tài)可以降低車輛電量消耗。一般情況下,當(dāng)節(jié)點(diǎn)上電之后默認(rèn)進(jìn)入總線休眠狀態(tài),當(dāng)在總線休眠狀態(tài)接收到應(yīng)用程序喚醒需求或者網(wǎng)絡(luò)通信需求時(shí),節(jié)點(diǎn)從總線休眠狀態(tài)進(jìn)入喚醒狀態(tài)。當(dāng)在喚醒狀態(tài)下再次滿足休眠條件時(shí),節(jié)點(diǎn)首先進(jìn)入預(yù)休眠狀態(tài),從預(yù)休眠狀態(tài)延時(shí)一段時(shí)間再進(jìn)入總線休眠狀態(tài)。在預(yù)休眠狀態(tài)下,節(jié)點(diǎn)停止網(wǎng)絡(luò)管理報(bào)文和應(yīng)用報(bào)文的發(fā)送,但是可以進(jìn)行ACK的應(yīng)答活動(dòng),用以監(jiān)控總線網(wǎng)絡(luò)需求。當(dāng)定時(shí)器到時(shí)進(jìn)入總線休眠狀態(tài)后,關(guān)閉總線活動(dòng)。3個(gè)主要網(wǎng)絡(luò)狀態(tài)的轉(zhuǎn)移過(guò)程如圖2所示。
圖2 網(wǎng)絡(luò)休眠與喚醒狀態(tài)處理策略
3.2 網(wǎng)絡(luò)喚醒狀態(tài)
當(dāng)總線處于網(wǎng)絡(luò)喚醒狀態(tài)時(shí),包含3個(gè)子狀態(tài):重復(fù)報(bào)文狀態(tài)、正常模式狀態(tài)和休眠準(zhǔn)備狀態(tài)。而重復(fù)報(bào)文狀態(tài)又包含報(bào)文快速發(fā)送狀態(tài)和正常發(fā)送狀態(tài)兩種。如上文提到,當(dāng)在總線休眠狀態(tài)接收到應(yīng)用程序喚醒需求或者網(wǎng)絡(luò)通信需求時(shí),節(jié)點(diǎn)從總線休眠狀態(tài)進(jìn)入喚醒狀態(tài)。當(dāng)接收到應(yīng)用程序喚醒需求時(shí),節(jié)點(diǎn)進(jìn)入重復(fù)報(bào)文狀態(tài)中的報(bào)文快速發(fā)送狀態(tài),當(dāng)接收到網(wǎng)絡(luò)通信需求時(shí),節(jié)點(diǎn)進(jìn)入重復(fù)報(bào)文狀態(tài)中的報(bào)文正常發(fā)送狀態(tài)。當(dāng)節(jié)點(diǎn)進(jìn)入報(bào)文快速發(fā)送狀態(tài)時(shí),會(huì)開(kāi)啟定時(shí)器,當(dāng)定時(shí)器到時(shí)后,節(jié)點(diǎn)從報(bào)文快速發(fā)送狀態(tài)進(jìn)入報(bào)文正常發(fā)送狀態(tài)。節(jié)點(diǎn)進(jìn)入重復(fù)報(bào)文狀態(tài)后會(huì)開(kāi)啟另一定時(shí)器,定時(shí)器到時(shí)后,節(jié)點(diǎn)從重復(fù)報(bào)文狀態(tài)退出。當(dāng)網(wǎng)絡(luò)需要繼續(xù)進(jìn)行CAN通信,節(jié)點(diǎn)從重復(fù)報(bào)文狀態(tài)進(jìn)入正常模式狀態(tài)。當(dāng)網(wǎng)絡(luò)不再需要進(jìn)行CAN通信,節(jié)點(diǎn)從重復(fù)報(bào)文狀態(tài)進(jìn)入休眠準(zhǔn)備狀態(tài)。在正常模式狀態(tài)下,若需要與網(wǎng)絡(luò)上的其他節(jié)點(diǎn)繼續(xù)通信時(shí),需要保持在正常模式,若不再需要網(wǎng)絡(luò)通信,節(jié)點(diǎn)從正常模式狀態(tài)進(jìn)入休眠準(zhǔn)備狀態(tài)。進(jìn)入休眠準(zhǔn)備狀態(tài)后需要停止網(wǎng)絡(luò)管理報(bào)文和應(yīng)用報(bào)文的發(fā)送。網(wǎng)絡(luò)喚醒狀態(tài)的轉(zhuǎn)移過(guò)程如圖3所示。
圖3 網(wǎng)絡(luò)喚醒狀態(tài)處理策略
3.3 CAN Bus-off狀態(tài)
CAN網(wǎng)絡(luò)管理需要考慮Bus-off狀態(tài)下的處理策略。當(dāng)檢測(cè)到總線處于Bus-off狀態(tài)時(shí),停止網(wǎng)絡(luò)報(bào)文和應(yīng)用報(bào)文的發(fā)送,并開(kāi)啟定時(shí)器BusOffRecoveryCounter。定時(shí)器大小由Bus-off具體的快慢恢復(fù)策略決定。當(dāng)定時(shí)器到時(shí)后,網(wǎng)絡(luò)進(jìn)入喚醒狀態(tài)。若Bus-off狀態(tài)進(jìn)入之前網(wǎng)絡(luò)已經(jīng)處于喚醒狀態(tài),則退出Bus-off狀態(tài)后,具體進(jìn)入喚醒狀態(tài)的哪個(gè)子狀態(tài)由之前的歷史狀態(tài)確定。
3.4 電壓狀態(tài)
網(wǎng)絡(luò)管理需要在正常電壓模式下進(jìn)行工作。當(dāng)總線處于總線休眠狀態(tài)或者預(yù)休眠狀態(tài)時(shí),檢測(cè)到應(yīng)用程序的喚醒需求或者網(wǎng)絡(luò)通信需求時(shí),需要確認(rèn)當(dāng)前電壓處于正常電壓狀態(tài)才會(huì)退出當(dāng)前狀態(tài),進(jìn)入網(wǎng)絡(luò)喚醒狀態(tài)。當(dāng)總線處于網(wǎng)絡(luò)喚醒狀態(tài)時(shí),檢測(cè)到電壓處于過(guò)低或過(guò)高電壓狀態(tài),則退出網(wǎng)絡(luò)喚醒狀態(tài)進(jìn)入預(yù)休眠狀態(tài)。
3.5 網(wǎng)絡(luò)管理的策略實(shí)現(xiàn)
在上述策略中詳細(xì)描述了網(wǎng)絡(luò)管理的狀態(tài)轉(zhuǎn)移過(guò)程,本文通過(guò)Stateflow的狀態(tài)機(jī)進(jìn)行實(shí)現(xiàn),程序中的具體策略如圖4所示。
圖4 AUTOSAR網(wǎng)絡(luò)管理處理策略
4 測(cè)試
網(wǎng)絡(luò)管理策略實(shí)現(xiàn)之后,在CANoe上對(duì)其功能進(jìn)行驗(yàn)證測(cè)試。接收到本地喚醒需求時(shí)的測(cè)試結(jié)果如圖5所示,待測(cè)試節(jié)點(diǎn)ID為0x439。當(dāng)接收到本地喚醒事件后,節(jié)點(diǎn)0x439從總線休眠狀態(tài)進(jìn)入網(wǎng)絡(luò)喚醒狀態(tài)中的報(bào)文快速發(fā)送狀態(tài),以20ms的發(fā)送周期快速發(fā)送網(wǎng)絡(luò)管理報(bào)文,發(fā)送完成10幀網(wǎng)絡(luò)管理報(bào)文后,報(bào)文快速發(fā)送狀態(tài)定時(shí)器到時(shí),進(jìn)入到正常發(fā)送狀態(tài),按照500ms的發(fā)送周期發(fā)送網(wǎng)絡(luò)管理報(bào)文。
圖5 本地喚醒策略測(cè)試結(jié)果
接收到網(wǎng)絡(luò)通信需求時(shí)的測(cè)試結(jié)果如圖6所示,待測(cè)試節(jié)點(diǎn)ID為0x439。當(dāng)被網(wǎng)絡(luò)中的0x43A節(jié)點(diǎn)喚醒后,節(jié)點(diǎn)0x439從總線休眠狀態(tài)進(jìn)入網(wǎng)絡(luò)喚醒狀態(tài)中的正常發(fā)送狀態(tài),并發(fā)出第1幀網(wǎng)絡(luò)管理報(bào)文,之后按照500ms的發(fā)送周期發(fā)送網(wǎng)絡(luò)管理報(bào)文。發(fā)送完成3幀網(wǎng)絡(luò)管理報(bào)文后,正常發(fā)送狀態(tài)定時(shí)器到時(shí),進(jìn)入到正常模式狀態(tài),正常模式狀態(tài)與重復(fù)報(bào)文狀態(tài)中的正常發(fā)送狀態(tài)報(bào)文周期相同,同樣按照500ms的發(fā)送周期發(fā)送網(wǎng)絡(luò)管理報(bào)文。
圖6 網(wǎng)絡(luò)喚醒策略測(cè)試結(jié)果
5 結(jié)論
在本文中,介紹了基于AUTOSAR標(biāo)準(zhǔn)的域控制器進(jìn)行網(wǎng)絡(luò)管理的實(shí)現(xiàn)過(guò)程,包括AUTOSAR CAN網(wǎng)絡(luò)管理報(bào)文格式,網(wǎng)絡(luò)休眠與喚醒的狀態(tài)轉(zhuǎn)換、網(wǎng)絡(luò)喚醒狀態(tài)中的各個(gè)子狀態(tài)的切換、CAN Bus-off狀態(tài)下的處理策略以及非正常電壓模式下的處理策略等,通過(guò)Stateflow的狀態(tài)機(jī)進(jìn)行實(shí)現(xiàn),并在CANoe上進(jìn)行了驗(yàn)證。測(cè)試結(jié)果表明所述策略能夠?qū)崿F(xiàn)網(wǎng)絡(luò)管理的各項(xiàng)功能。
評(píng)論
查看更多