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