整個(gè)診斷汽車(chē)管理包括診斷通信管理(Diagnostic Communication Manager, DCM)、診斷事件管理DEM(Diagnostic Event Manager)、功能抑制管理FIM(Function Inhibition Manager)幾大模塊。
診斷功能貫穿汽車(chē)的開(kāi)發(fā)生產(chǎn)及售后等過(guò)程,如開(kāi)發(fā)過(guò)程中EMC、ESD等實(shí)驗(yàn)均可使用診斷服務(wù)實(shí)現(xiàn),生產(chǎn)過(guò)程中的軟件下載更新、ECU產(chǎn)線EOL、汽車(chē)產(chǎn)線EOL等、售后過(guò)程中讀取DTC、控制輸出調(diào)試功能等。
尤其是在智能汽車(chē)上,診斷功能顯得尤為重要,因?yàn)橹悄芷?chē)的很多功能模塊需要承載更多的Sensor和Controller,且其功能都是自適應(yīng)觸發(fā)。因此,對(duì)于其自身系統(tǒng)及其關(guān)聯(lián)系統(tǒng)的診斷要求比傳統(tǒng)汽車(chē)要高很多。
如下圖,表示了AUTOSAR架構(gòu)中的所有診斷通信模塊之的關(guān)聯(lián)關(guān)系。在底層軟件中,包括模式管理Mode Manager、診斷Diagnosis、存儲(chǔ)Memory、通信Communication幾個(gè)模塊。
在AUTOSAR中,DCM和DEM是兩個(gè)關(guān)鍵的診斷模塊,它們之間通過(guò)一些通信鏈路相互作用。DCM主要負(fù)責(zé)與外部診斷工具(例如診斷掃描儀)進(jìn)行通信,以便讀取和清除故障碼,并執(zhí)行一些診斷任務(wù)。DEM則負(fù)責(zé)管理和記錄車(chē)輛的診斷事件,例如故障碼、診斷狀態(tài)和診斷數(shù)據(jù)等。
診斷通信管理模塊DCM
作為AutoSar診斷模塊的重要組成部分,DCM主要負(fù)責(zé)診斷數(shù)據(jù)流和管理診斷狀態(tài)(即能檢查診斷服務(wù)的請(qǐng)求是否滿足條件),包括診斷會(huì)話、安全狀態(tài)及診斷服務(wù)分配等。DCM模塊主要實(shí)現(xiàn)UDS和OBD診斷服務(wù)的實(shí)現(xiàn),但是DCM跟其他模塊的交互比較頻繁,需要了解診斷服務(wù)的機(jī)制需要其他模塊配置,比如BswM、DEM、EcuM以及SWC等。
DCM模塊可以分為四個(gè)子層,分別是DSD(Diagnostic Session Dispatcher)、DSL(Diagnostic Service Layer)、DSP(Diagnostic Service Processor)和DCL(Diagnostic Communication Layer)。在這個(gè)上下文中,DCM、DSD、DSL和DSP之間的關(guān)系可以描述如下:
1、DSL :診斷服務(wù)層。
該層處于DCM模塊的最底層,用于處理診斷數(shù)據(jù)請(qǐng)求和響應(yīng)的數(shù)據(jù)流;監(jiān)控和確保診斷請(qǐng)求和響應(yīng)的時(shí)序。它接收來(lái)自DSD層的診斷請(qǐng)求,并根據(jù)請(qǐng)求類(lèi)型將其路由到相應(yīng)的DSP子層服務(wù)。同時(shí),DSL也負(fù)責(zé)將來(lái)自DSP子層的診斷響應(yīng)傳輸回DSD層。
整個(gè)處理診斷請(qǐng)求及響應(yīng)的過(guò)程如下:
DSL負(fù)責(zé)接收PduR模塊上傳的診斷請(qǐng)求及調(diào)用PduR模塊發(fā)送診斷響應(yīng)數(shù)據(jù),管理并確保診斷協(xié)議時(shí)序和診斷狀態(tài)(如當(dāng)前安全級(jí)別保存和復(fù)位,當(dāng)前會(huì)話狀態(tài),默認(rèn)會(huì)話與非默認(rèn)會(huì)話之間的轉(zhuǎn)換,對(duì)不同診斷協(xié)議優(yōu)先級(jí)定義和搶占處理)。
2、DSD:診斷會(huì)話調(diào)度器。
處于中間層,這個(gè)子層主要負(fù)責(zé)管理診斷會(huì)話,如處理診斷會(huì)話切換、請(qǐng)求取消、會(huì)話超時(shí)等功能。此外,它還負(fù)責(zé)將來(lái)自DCL層的診斷請(qǐng)求轉(zhuǎn)發(fā)到相應(yīng)的DSL層服務(wù)。
當(dāng)接收到新的診斷請(qǐng)求后轉(zhuǎn)發(fā)到診斷服務(wù)器,完成診斷請(qǐng)求處理后轉(zhuǎn)發(fā)診斷響應(yīng)。
3、DSP:診斷服務(wù)處理器。
處于最上層,具體實(shí)施診斷服務(wù)處理,當(dāng)接受到DSD請(qǐng)求處理診斷服務(wù)并轉(zhuǎn)發(fā)診斷請(qǐng)求后,將完成實(shí)際的診斷服務(wù)功能響應(yīng)及處理。它包含了處理不同診斷服務(wù)(如讀取故障碼、控制執(zhí)行、數(shù)據(jù)參數(shù)ID請(qǐng)求等)所需的功能。每個(gè)具體的診斷服務(wù)都可以看作是一個(gè)獨(dú)立的DSP子層。
DCM作為診斷通信管理器,通過(guò)DSD負(fù)責(zé)診斷會(huì)話管理,DSL處理診斷服務(wù)請(qǐng)求和響應(yīng),而DSP負(fù)責(zé)實(shí)施具體的診斷服務(wù),以上各子層的協(xié)同作用可以有效的實(shí)現(xiàn)各種診斷服務(wù)的處理和響應(yīng)。
診斷事件管理(DEM)
DEM負(fù)責(zé)處理車(chē)輛的故障診斷信息。DEM模塊可以接收來(lái)自各種傳感器和控制器的診斷信息,然后根據(jù)故障嚴(yán)重程度進(jìn)行分類(lèi)和記錄,并提供診斷狀態(tài)和故障碼等信息。
此外,DEM還提供了一些API(應(yīng)用程序接口),用于訪問(wèn)和修改診斷數(shù)據(jù)。例如,可以使用API來(lái)清除已診斷的故障碼或設(shè)置故障碼的優(yōu)先級(jí)。DEM還提供了診斷通信協(xié)議和診斷存儲(chǔ)庫(kù),以便與其他系統(tǒng)進(jìn)行通信和記錄診斷數(shù)據(jù)。
DCM和DEM之間的通信鏈路主要包括以下組件:
1)DCM提供的API: DCM提供了一些API,用于從DEM中讀取和更新診斷數(shù)據(jù),例如讀取故障碼和清除故障碼等。
2)DEM提供的API: DEM也提供了一些API,用于向DCM提供診斷信息,例如故障碼、診斷狀態(tài)和診斷數(shù)據(jù)等。
3)DCM-DEM通信協(xié)議: DCM和DEM之間的通信需要使用一些標(biāo)準(zhǔn)化的通信協(xié)議,例如UDS(Unified Diagnostic Services)協(xié)議和ISO 14229標(biāo)準(zhǔn)。
4)診斷存儲(chǔ)庫(kù): DCM和DEM需要共享一些診斷數(shù)據(jù),例如故障碼和診斷狀態(tài)等,這些數(shù)據(jù)通常存儲(chǔ)在診斷存儲(chǔ)庫(kù)中,DCM和DEM可以通過(guò)這個(gè)存儲(chǔ)庫(kù)來(lái)交換數(shù)據(jù)。
舉個(gè)例子,我們?cè)趯?duì)智能汽車(chē)生產(chǎn)線過(guò)電檢時(shí),通常需要關(guān)閉智能駕駛的環(huán)境目標(biāo)檢測(cè)及后臺(tái)自啟動(dòng)功能(如AEB、MEB這類(lèi)后臺(tái)自動(dòng)運(yùn)行的功能),因?yàn)檫@些功能在產(chǎn)線上自動(dòng)運(yùn)行往往會(huì)導(dǎo)致誤觸發(fā),誤報(bào)警等。
那么如何通過(guò)診斷管理鏈路關(guān)閉這類(lèi)功能呢?
這就需要用到AutoSar中非常重要的兩個(gè)軟件組件模塊診斷事件管理DEM和實(shí)時(shí)調(diào)度系統(tǒng)RTE。他們之間的通信鏈路可以通過(guò)AUTOSAR的標(biāo)準(zhǔn)化軟件接口RTE APIs來(lái)實(shí)現(xiàn)。首先,DEM模塊可以向RTE模塊發(fā)送事件(例如功能抑制信息或故障碼、診斷狀態(tài)信息)。RTE模塊接收到這些事件后,通過(guò)其自身提供的一些API,RTE事件總線通過(guò)管理和分發(fā)來(lái)自DEM和其他模塊的事件,并將它們路由到相應(yīng)的處理程序中。此外,RTE操作系統(tǒng)作為一種特殊的軟件層,它負(fù)責(zé)管理和控制運(yùn)行時(shí)環(huán)境,并提供一些基礎(chǔ)設(shè)施服務(wù),例如任務(wù)調(diào)度、內(nèi)存管理和錯(cuò)誤處理等。從而有效的訪問(wèn)汽車(chē)電子系統(tǒng)的各種資源,例如讀取傳感器數(shù)據(jù)、控制執(zhí)行器等。也可以觸發(fā)相應(yīng)的操作,例如關(guān)閉AEB或MEB功能,亦或者打開(kāi)某個(gè)告警燈等。
為了更加詳細(xì)的說(shuō)明整個(gè)DEM的診斷鏈路,我們將以實(shí)際的DEM相關(guān)函數(shù)調(diào)用為例進(jìn)行有效的說(shuō)明。
首先,DEM的API主要包括DEM監(jiān)視器DemComponent(又名MonitorComponent),主要用于有關(guān)聯(lián)到的故障事件,比如傳感器本身發(fā)生的故障,這時(shí)控制器讀取的數(shù)據(jù)應(yīng)該被視為無(wú)效。一個(gè)DemComponent是若干個(gè)事件的集合,在DemComponent內(nèi)部,故障事件有優(yōu)先級(jí),當(dāng)最高優(yōu)先級(jí)的故障事件狀態(tài)為Failed從而導(dǎo)致其他故障事件也為Failed時(shí),亦或者父節(jié)點(diǎn)DemComponent的狀態(tài)為Failed從而導(dǎo)致子節(jié)點(diǎn)DemComponent內(nèi)的故障事件狀態(tài)變?yōu)镕ailed,這種叫連續(xù)錯(cuò)誤的故障。其他則被認(rèn)為是偶發(fā)錯(cuò)誤故障。另外,如果DemComponent內(nèi)部故障事件優(yōu)先級(jí)被忽略,那么僅有當(dāng)父節(jié)點(diǎn)DemComponent狀態(tài)為Failed導(dǎo)致子節(jié)點(diǎn)DemComponent的故障事件狀態(tài)變成Failed時(shí),也可被當(dāng)做連續(xù)錯(cuò)誤。
其次,DemDTCAttributes可以用于配置DTC的屬性,包括老化周期、故障優(yōu)先級(jí)、存儲(chǔ)方式(立即存儲(chǔ)還是下電存儲(chǔ))、快照數(shù)據(jù)需記錄的最大組數(shù)以及參考的凍結(jié)幀快照數(shù)據(jù)、故障數(shù)據(jù)存儲(chǔ)的Memory等,其中快照數(shù)據(jù)、擴(kuò)展數(shù)據(jù)等需要在DemGneral中進(jìn)行配置。
DemDTC用于配置故障得DTC值(即診斷故障碼)、DTC的嚴(yán)重弄程度以及參考的DTC屬性、Obd屬性等。
DemDebunceCounterBaseClass、DemDebounceTimeBaseClass兩項(xiàng)主要用于為不同的故障事件配置不同的Debounce策略,可以是基于計(jì)數(shù)器的Debounce策略,也可以是基于事件的Debounce策略,或者由SWC自定義。
DemOBDDTC用于配置OBD類(lèi)故障事件是否支持PTO以及故障事件的DTC值等。
DemPidClass用于配置PID以及相關(guān)的應(yīng)用層信號(hào)。
DemEventParameter用于配置故障的類(lèi)型(BSW或SWC)、故障需要多少個(gè)運(yùn)行循環(huán)才能確認(rèn)、是否支持預(yù)存儲(chǔ)功能、故障事件的Debounce策略以及參考的DTC屬性、DemComponent、使能條件、運(yùn)行循環(huán)等。
功能抑制管理FIM
FIM實(shí)際是一種軟件組件,用于實(shí)現(xiàn)對(duì)應(yīng)功能的抑制管理。功能抑制是指在車(chē)輛故障或安全問(wèn)題出現(xiàn)時(shí),對(duì)某些汽車(chē)功能進(jìn)行限制或禁用的操作,以保證車(chē)輛和乘客的安全。FIM組件通過(guò)AUTOSAR的標(biāo)準(zhǔn)化軟件接口(FIM API)與其他軟件組件(例如ECU、Sensor和Actuator)進(jìn)行通信,以檢測(cè)和響應(yīng)車(chē)輛故障或安全問(wèn)題,并執(zhí)行相應(yīng)的功能抑制措施。
FIM的主要功能邏輯就是基于DEM模塊上報(bào)Event狀態(tài),來(lái)觸發(fā)相應(yīng)的FID,然后BSW層或者SWC層相關(guān)的子模塊根據(jù)這些FIM功能抑制場(chǎng)景(也就是功能降級(jí))。
這里舉個(gè)自動(dòng)窗戶升降與防夾功能的例子來(lái)說(shuō)明如何通過(guò)FIM相關(guān)的函數(shù)模塊來(lái)調(diào)用Sensor SWC層中的Event anti_Pinch,并通過(guò)下面幾個(gè)階段來(lái)完成系統(tǒng)降級(jí)過(guò)程。
S1:Front-left Window-lifter SWC上報(bào)故障給到Error Management模塊;
S2:Error Management模塊會(huì)識(shí)別出為Event anti_Pinch故障,并調(diào)用Dem模塊接口通知該Event Status發(fā)生變化;
S3:Dem模塊會(huì)調(diào)用FIM模塊相應(yīng)的函數(shù)接口來(lái)通知FIM該Event Status對(duì)相應(yīng)FID的影響;
S4:SWC模塊接收到輪詢的FID,然后完成相應(yīng)的系統(tǒng)降級(jí)響應(yīng);
FIM模塊提供了一些API(應(yīng)用程序接口),用于訪問(wèn)和修改功能抑制狀態(tài)、讀取和更新診斷數(shù)據(jù)等。這些API通常是標(biāo)準(zhǔn)化的,符合AUTOSAR軟件架構(gòu)的規(guī)范。
FIM模塊主要調(diào)用的API接口包括如下:
FIM_Init():此API用于初始化FIM模塊,包括初始化內(nèi)部數(shù)據(jù)結(jié)構(gòu)、變量和狀態(tài)等。
該函數(shù)是用于完成FIM相關(guān)結(jié)構(gòu)體的初始化工作。如果DET模塊使能,可以判斷FIM是否初始化成功,或者可以通過(guò)一個(gè)靜態(tài)變量判斷是否發(fā)生變化來(lái)判斷初始化是否完成。因?yàn)槿绻鸉IM模塊沒(méi)有完成初始化,則會(huì)被其他模塊調(diào)用其內(nèi)部的函數(shù),且會(huì)返回E_NOT_OK,所以調(diào)用FIM其他函數(shù)接口之前必須完成FIM模塊的初始化。
FIM_InhibitFunction():此API用于抑制特定的汽車(chē)功能。它需要輸入功能ID和抑制級(jí)別等參數(shù),并返回抑制狀態(tài)和抑制結(jié)果等信息。
FIM_ReleaseFunction():此API用于釋放被抑制的汽車(chē)功能。它需要輸入功能ID等參數(shù),并返回釋放狀態(tài)和釋放結(jié)果等信息。
FIM_GetStatus():此API用于獲取FIM模塊的當(dāng)前狀態(tài),例如抑制狀態(tài)、抑制等級(jí)和抑制時(shí)間等。
FIM_GetDiagnosticData():此API用于讀取和更新FIM模塊的診斷數(shù)據(jù),例如故障碼和診斷狀態(tài)等。
如下將以具體的實(shí)例參數(shù)調(diào)用來(lái)說(shuō)明如何進(jìn)行功能抑制。
FIM_DemTriggerOnMonitorStatus:
該函數(shù)是為了提供給Dem模塊Event Status發(fā)生變化時(shí)通知到FIM模塊接口。一旦Event Status發(fā)生變化,Dem就會(huì)主動(dòng)調(diào)用該函數(shù),通知FIM,其本質(zhì)上就是一種Trigger Action行為。其實(shí)FIM獲取Event Status狀態(tài)變化,還有一種Polling的方式,但是當(dāng)Event數(shù)目比較大時(shí),有時(shí)候就無(wú)法察覺(jué)到某些Event Status的快速變化,因此一般而言,都優(yōu)先選擇Trigger方式來(lái)完成對(duì)FIM模塊的Event Status的通知。
FIM_GetFunctionPermission:
該函數(shù)提供給SWC或BSW模塊來(lái)獲取FID狀態(tài)。如果請(qǐng)求FID超出范圍或FIM模塊還沒(méi)有初始化完成,則FID就會(huì)直接退回FALSE。
FIM_GetFunctionAvailable:
該函數(shù)用來(lái)給BSW或SWC層設(shè)置某功能是否可用,如果輸入?yún)?shù)為T(mén)rue,則該功能可以正常使用
FIM_SetFunctionAvailable:
該函數(shù)用來(lái)給BSW或SWC層來(lái)設(shè)置某功能是否可用,如果輸入?yún)?shù)為T(mén)RUE,那么該功能可以正常使用。若輸入?yún)?shù)為FALSE,則該功能就會(huì)被Disable。
FIM_MainFunction:
該函數(shù)是為了實(shí)現(xiàn)對(duì)Event Status與Inhibition Mask的計(jì)算,此處有兩種方式,一種是Polling方式,另一種是Event Trigger方式,這兩種方式的使能通過(guò)工具選項(xiàng)FIMEventUpdate TriggeredByDem是否為T(mén)rue決定。
評(píng)論
查看更多