AUTO SARCAN診斷實現
2)軟體架構
AUTOAR架構中和診斷相關的模組如圖2所示。
FIM模組的作用是根據DEM(DiagnosticEventManager)報告的事件狀態使能或禁止軟體構件內部的功能實體。PDURouter(協議數據單元路由器)模組僅負責轉發DCM(DiagnosticCommunicationManager)和CANTP(CANTransportLayer)之間的I_PDU(交互層協議數據單元),不會對數據進行任何修改。CANInterface模組、CANDriver模組和CANTransceiver模組負責L_PDU(數據鏈路層協議數據單元)的傳輸。
DEM、DCM和CANTP是AUTOSAR架構中和診斷相關的核心模組。
3)DCM
DCM模組遵循ISO14229-1、ISO15031-5、ISO15765-4和SAEJ1979標準,能直接處理0x10、0x27和0x3E服務。收到AUTOSAR支援的OBD服務或其他UDS服務時,靠叫DEM、軟體構件或者其他BSW模組提供的介面進行響應。
AUTOSAR建議用叁個功能模組組成DCM,分別是DSL(DiagnosticSessionLayer)、DSD(DiagnosticServiceDispatcher)和DSP(DiagnosticServiceProcessing)。其中DSL負責處理PDURouter傳來的診斷請求,管理會話層和應用層定時參數,處理會話狀態的切換等。DSD負責將DSL傳來的診斷請求轉發給DSP,同時將DSP傳來的診斷響應報文傳給DSL。DSP負責分析接收到的診斷請求報文,檢查其報文格式以及其請求的子功能。只有在診斷請求報文的服務標識符、子功能、報文格式等條件都滿足的情況下,DSP才會處理收到的請求報文,并將處理結果整理成診斷響應報文發給PDURouter。
4)DEM
DCM模組遵循的標準與DCM相同,負責直接處理與DTC相關的服務,如UDS中的0x19服務(響應報文由DCM發送出去)。當軟體構件中的MonitorFunction檢測到故障或BSW模組檢測到故障時,將通知DEM模組處理和儲存‘診斷事件’(由EventID進行標識)。如果故障確診,唿叫NVRAMManager(非揮發性記憶體管理器)提供的介面將其存取到非揮發性記憶體中,同時通知應用層進行故障指示。DEM的狀態圖如圖3所示:
圖3DEM狀態圖
5)CANTP模組
遵循ISO15765-2標準。負責診斷報文的尋址、拆包與打包,以及網路層定時參數的管理。所以,該模組向下傳輸的是N_PDU(網路層協議數據單元)。
第一、由于嚴格分層,除了CANDriver和CANTransceiver模組要依賴于硬體,AUTOSAR與診斷相關的模組幾乎完全獨立于硬體。按照此架構開發完成的診斷程式碼能夠擺脫硬體的束縛,具有最大程度的再使用性。
第二、AUTOSAR目前不支援SAEJ1939。
第叁、暫時不能直接將AUTOSAR軟體架構用于Bootloder程式的開發。
綜上所述,AUTOSAR標準仍舊處于發展和完善階段,但隨著目前汽車ECU軟體開發矛盾的加劇,開發難度不斷增大,開發週期卻不斷縮短,AUTOSAR將成為必然趨勢。
評論