AUTOSAR CAN診斷實(shí)現
雖然AUTOSAR目前不支援上述服務(wù),但并未限制開(kāi)發(fā)者對其進(jìn)行擴展。
2) 軟體架構
AUTOAR架構中和診斷相關(guān)的模組如圖2所示。
FIM模組的作用是根據DEM(Diagnostic Event Manager)報告的事件狀態(tài)使能或禁止軟體構件內部的功能實(shí)體。PDU Router(協(xié)議數據單元路由器)模組僅負責轉發(fā)DCM(Diagnostic Communication Manager)和CAN TP(CAN Transport Layer)之間的I_PDU(交互層協(xié)議數據單元),不會(huì )對數據進(jìn)行任何修改。CAN Interface模組、CAN Driver模組和CAN Transceiver模組負責L_PDU(數據鏈路層協(xié)議數據單元)的傳輸。
DEM、DCM和CAN TP是AUTOSAR架構中和診斷相關(guān)的核心模組。
3) DCM
DCM模組遵循ISO 14229-1、ISO 15031-5、ISO 15765-4和SAE J1979標剩能直接處理0x10、0x27和0x3E服務(wù)。收到AUTOSAR支援的OBD服務(wù)或其他UDS服務(wù)時(shí),靠叫DEM、軟體構件或者其他BSW模組提供的介面進(jìn)行響應。
AUTOSAR建議用叁個(gè)功能模組組成DCM,分別是DSL(Diagnostic Session Layer)、DSD(Diagnostic Service Dispatcher)和DSP(Diagnostic Service Processing)。其中DSL負責處理PDU Router傳來(lái)的診斷請求,管理會(huì )話(huà)層和應用層定時(shí)參數,處理會(huì )話(huà)狀態(tài)的切換等。DSD負責將DSL傳來(lái)的診斷請求轉發(fā)給DSP,同時(shí)將DSP傳來(lái)的診斷響應報文傳給DSL。DSP負責分析接收到的診斷請求報文,檢查其報文格式以及其請求的子功能。只有在診斷請求報文的服務(wù)標識符、子功能、報文格式等條件都滿(mǎn)足的情況下,DSP才會(huì )處理收到的請求報文,并將處理結果整理成診斷響應報文發(fā)給PDU Router。
4) DEM
DCM模組遵循的標視DCM相同,負責直接處理與DTC相關(guān)的服務(wù),如UDS中的0x19服務(wù)(響應報文由DCM發(fā)送出去)。當軟體構件中的Monitor Function檢測到故障或BSW模組檢測到故障時(shí),將通知DEM模組處理和儲存‘診斷事件’(由Event ID進(jìn)行標識)。如果故障確診,唿叫NVRAM Manager(非揮發(fā)性記憶體管理器)提供的介面將其存取到非揮發(fā)性記憶體中,同時(shí)通知應用層進(jìn)行故障指示。DEM的狀態(tài)圖如圖3所示:

圖3 DEM狀態(tài)圖
5) CAN TP模組
遵循ISO 15765-2標?。负扎愪Z媳ㄎ牡難爸貳⒉鳶與打包,以及網(wǎng)路層定時(shí)參數的管理。所以,該模組向下傳輸的是N_PDU(網(wǎng)路層協(xié)議數據單元)。
結論
第一、由于嚴格分層,除了CAN Driver和CAN Transceiver模組要依賴(lài)于硬體,AUTOSAR與診斷相關(guān)的模組幾乎完全獨立于硬體。按照此架構開(kāi)發(fā)完成的診斷程式碼能夠擺脫硬體的束縛,具有最大程度的再使用性。
第二、AUTOSAR目前不支援SAE J1939。
第叁、暫時(shí)不能直接將AUTOSAR軟體架構用于Bootloder程式的開(kāi)發(fā)。
綜上所述,AUTOSAR標嗜躍紗τ詵⒄購屯晟平錐危但隨著(zhù)目前汽車(chē)ECU軟體開(kāi)發(fā)矛盾的加劇,開(kāi)發(fā)難度不斷增大,開(kāi)發(fā)L期卻不斷縮短,AUTOSAR將成為必然趨勢。
評論