你的位置:首頁 > 測試測量 > 正文

AUTO SARCAN診斷實現(xiàn)

發(fā)布時間:2010-10-14

中心議題:

  • 汽車診斷簡介
  • AUTOSARCAN診斷實現(xiàn)


AUTOSAR是由全球汽車OEM和供應商共同推出的一種汽車電子嵌入式軟體分層架構。該分層架構由微控制器抽象層、ECU抽象層、服務層、執(zhí)行時環(huán)境(RTE)和應用層組成,前叁層被統(tǒng)稱為基礎軟體(BSW)。

AUTOSAR各層軟體的通訊透過叁類介面實現(xiàn),分別是標準介面、AUTOSAR介面和標準AUTOSAR介面。其中,標準介面用于BSW各個模組之間的通訊,已用C語言定義,如voidAdc_Init(constAdc_ConfigType*ConfigPtr)。AUTOSAR介面用于軟體構件(SW-C)之間的通訊或者軟體構件和ECU韌體(IO硬體抽象、復雜設備驅動)之間的通訊,這類介面命名以‘Rte_’為前綴。標準AUTOSAR介面用于軟體構件存取AUTOSAR服務。依賴這種分層架構和介面定義,AUTOSR顯著提高了汽車電子嵌入式軟體的再使用性──層級越高者,再使用性越強。值得注意的是:

*微控制器抽象層層級最低,隨微控制器的更換而更換;
*RTE雖然層級僅低于應用層,但由于它負責著應用層和BSW之間的橋樑作用,和硬體的耦合性最高,不具有再使用性;
*應用層(除感測器、執(zhí)行器相關的軟體構件外)完全獨立于硬體,具有絕對的再使用性。


圖1AUTOSAR分層架構

汽車診斷簡介

目前,整車廠和供應商採用在線診斷與離線診斷相結合的診斷方法。在線診斷透過ECU內部軟硬體實現(xiàn)自診斷。在汽車執(zhí)行過程中,自診斷系統(tǒng)即時監(jiān)控電子控制系統(tǒng)各組成部份的工作狀態(tài),因而檢測電子控制系統(tǒng)中的故障。自診斷系統(tǒng)一方面將檢測出的故障透過一定的方式(比如警報指示燈)向駕駛員發(fā)出警告,另一方面將故障程式碼及相關數(shù)據(jù)存入ECU記憶體。離線診斷透過外部診斷設備讀取相應的診斷資訊,實現(xiàn)診斷作業(yè)。實現(xiàn)離線診斷的關鍵在于如何實現(xiàn)診斷設備和ECU之間的通訊機制和診斷服務,即診斷協(xié)議。

目前,診斷協(xié)議標準主要分為ISO和SAE兩種體系。美國使用SAE標準體系,包括中國在內的多數(shù)國家使用ISO標準體系。在乘用車領域,OEM正從自定義診斷協(xié)議逐漸轉向ISO標準。在商用車領域,OEM沿用SAE診斷,歐洲OEM在此基礎上增加了ISO診斷。表1列出了部份ISO和SAE標準對照。

AUTOSARCAN診斷實現(xiàn)

1)診斷服務

目前,AUTOSARV3.1診斷部份支援9個OBD服務(如表2所示),14個UDS服務(如表3所示)。

依據(jù)表2和表3可知,AUTOSAR不支援OBD中的0x05服務(請求氧感測器監(jiān)測結果),塬因在于基于CAN線的0x05服務在0x06中實現(xiàn)。不支援UDS中的0x28(通訊控制)、0x34(程式下載)、0x35(程式上傳)、0x36(數(shù)據(jù)傳輸)和0x37(請求傳輸煺出)服務,且0x10服務不支援編程會話和擴展會話這兩種子功能。這些服務主要用于ECU重新編程,因此AUTOSAR不支援Bootloader。

圖2AUTOSARCAN診斷相關模組[page]

雖然AUTOSAR目前不支援上述服務,但并未限制開發(fā)者對其進行擴展。

2)軟體架構

AUTOAR架構中和診斷相關的模組如圖2所示。

FIM模組的作用是根據(jù)DEM(DiagnosticEventManager)報告的事件狀態(tài)使能或禁止軟體構件內部的功能實體。PDURouter(協(xié)議數(shù)據(jù)單元路由器)模組僅負責轉發(fā)DCM(DiagnosticCommunicationManager)和CANTP(CANTransportLayer)之間的I_PDU(交互層協(xié)議數(shù)據(jù)單元),不會對數(shù)據(jù)進行任何修改。CANInterface模組、CANDriver模組和CANTransceiver模組負責L_PDU(數(shù)據(jù)鏈路層協(xié)議數(shù)據(jù)單元)的傳輸。

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傳來的診斷請求,管理會話層和應用層定時參數(shù),處理會話狀態(tài)的切換等。DSD負責將DSL傳來的診斷請求轉發(fā)給DSP,同時將DSP傳來的診斷響應報文傳給DSL。DSP負責分析接收到的診斷請求報文,檢查其報文格式以及其請求的子功能。只有在診斷請求報文的服務標識符、子功能、報文格式等條件都滿足的情況下,DSP才會處理收到的請求報文,并將處理結果整理成診斷響應報文發(fā)給PDURouter。

4)DEM

DCM模組遵循的標準與DCM相同,負責直接處理與DTC相關的服務,如UDS中的0x19服務(響應報文由DCM發(fā)送出去)。當軟體構件中的MonitorFunction檢測到故障或BSW模組檢測到故障時,將通知DEM模組處理和儲存‘診斷事件’(由EventID進行標識)。如果故障確診,唿叫NVRAMManager(非揮發(fā)性記憶體管理器)提供的介面將其存取到非揮發(fā)性記憶體中,同時通知應用層進行故障指示。DEM的狀態(tài)圖如圖3所示:
 


 圖3DEM狀態(tài)圖

5)CANTP模組

遵循ISO15765-2標準。負責診斷報文的尋址、拆包與打包,以及網路層定時參數(shù)的管理。所以,該模組向下傳輸?shù)氖荖_PDU(網路層協(xié)議數(shù)據(jù)單元)。

第一、由于嚴格分層,除了CANDriver和CANTransceiver模組要依賴于硬體,AUTOSAR與診斷相關的模組幾乎完全獨立于硬體。按照此架構開發(fā)完成的診斷程式碼能夠擺脫硬體的束縛,具有最大程度的再使用性。

第二、AUTOSAR目前不支援SAEJ1939。

第叁、暫時不能直接將AUTOSAR軟體架構用于Bootloder程式的開發(fā)。

綜上所述,AUTOSAR標準仍舊處于發(fā)展和完善階段,但隨著目前汽車ECU軟體開發(fā)矛盾的加劇,開發(fā)難度不斷增大,開發(fā)週期卻不斷縮短,AUTOSAR將成為必然趨勢。
 

要采購微控制器么,點這里了解一下價格!
特別推薦
技術文章更多>>
技術白皮書下載更多>>
熱門搜索
?

關閉

?

關閉