DCM是什么
DCM全稱Diagnostic Communication Manager,它位于AUTOSAR基礎(chǔ)軟件的服務(wù)層,它的主要作用是為開發(fā)和生產(chǎn)階段提供與診斷儀交互的診斷服務(wù)。
DCM模塊可以保證診斷數(shù)據(jù)流的正確性,管理診斷狀態(tài),比如會(huì)話狀態(tài)和安全訪問等級(jí)狀態(tài)。DCM會(huì)檢查某個(gè)診斷請(qǐng)求是否被支持,以及在當(dāng)前的會(huì)話狀態(tài)和安全訪問等級(jí)下下該診斷請(qǐng)求會(huì)不會(huì)被執(zhí)行。
DCM在AUTOSAR中的位置
DCM模塊在AUTOSAR架構(gòu)中的位置如下圖:
DCM模塊獨(dú)立于網(wǎng)絡(luò)總線,也就是說(shuō)DCM不區(qū)分接收到的診斷請(qǐng)求是來(lái)自于CAN總線還是LIN總線,抑或是Flexray總線,所有與總線有關(guān)的處理都在PDUR模塊完成。DCM模塊從PDUR接收診斷報(bào)文,然后在DCM內(nèi)部完成檢查和處理。在這個(gè)過程中DCM將會(huì)與其他BSW模塊或SWC(通過RTE)進(jìn)行交互,以獲得需要的數(shù)據(jù)或者執(zhí)行相應(yīng)的命令。DCM最終會(huì)收集并整合信息,最后發(fā)送響應(yīng)報(bào)文給PDUR模塊。
DCM包含的子模塊
為了合理的分配DCM的各項(xiàng)任務(wù),DCM被劃分為如下三個(gè)子模塊:
- DSL(Diagnostic Session Layer):處理診斷請(qǐng)求和響應(yīng)的數(shù)據(jù)流,監(jiān)督和管理診斷協(xié)議時(shí)序,管理會(huì)話和安全訪問狀態(tài)。
- DSD(Diagnostic Service Dispatcher):檢查診斷請(qǐng)求的有效性(診斷ID是否支持、會(huì)話狀態(tài)、安全等級(jí)),把有效的診斷請(qǐng)求委托給DSP,并追蹤診斷請(qǐng)求的處理
- DSP(Diagnostic Service Processing):檢查診斷請(qǐng)求格式以及診斷子服務(wù)是否支持,獲得需要返回的數(shù)據(jù)或者執(zhí)行需要被調(diào)用的函數(shù)(調(diào)用SWC的函數(shù)寫數(shù)據(jù)到NVM,調(diào)用DEM的服務(wù)獲得DTC狀態(tài))、填充response的數(shù)據(jù)
DCM各個(gè)子模塊及其他軟件模塊之間的交互
下面利用一張圖來(lái)厘清DCM各個(gè)子模塊之間的關(guān)系,以及與其他軟件模塊的交互關(guān)系。
現(xiàn)在通過診斷儀發(fā)送一條配置車輛識(shí)別碼(VIN)的診斷命令,看一下DCM的整個(gè)處理流程。
- 首先這條診斷報(bào)文(0x2E, 0xF1, 0x90, ......)會(huì)經(jīng)由PDUR傳送到DSL,DSL會(huì)先確認(rèn)當(dāng)前是否有其他診斷請(qǐng)求正在處理,如果沒有將會(huì)把該診斷請(qǐng)求發(fā)送給DSD模塊。
- DSD模塊收到0x2E的診斷報(bào)文后,會(huì)先判斷服務(wù)ID 0x2E在不在當(dāng)前的Service Identifier Table中,如果不在將會(huì)拒絕該請(qǐng)求(一般情況下ECU都是支持0x2E服務(wù)的,這里只是舉例子),如果該服務(wù)ID在Service Identifier Table中,接下來(lái)要判斷當(dāng)前的診斷會(huì)話(從DSL獲取)是否為擴(kuò)展會(huì)話,以及當(dāng)前的安全訪問狀態(tài)是否允許0x2E寫入。如果所有檢查通過,則會(huì)把該診斷請(qǐng)求委托給DSP模塊。否則將會(huì)拒絕該診斷請(qǐng)求,并通知DSL發(fā)送響應(yīng)的負(fù)反饋到PDUR。
- DSP收到0x2E的診斷請(qǐng)求后,會(huì)先檢查請(qǐng)求的格式,比如總的報(bào)文長(zhǎng)度是否符合定義,以及診斷子服務(wù)0xF190是否支持。如果校驗(yàn)通過則調(diào)用APP層相應(yīng)的SWC的函數(shù),把VIN數(shù)據(jù)寫入到NVM。然后準(zhǔn)備正響應(yīng)報(bào)文并發(fā)送給DSD,DSD再發(fā)送給DSL,最后通過PDUR發(fā)送到相應(yīng)到網(wǎng)絡(luò)總線上。
-
LIN總線
+關(guān)注
關(guān)注
19文章
111瀏覽量
28184 -
AUTOSAR
+關(guān)注
關(guān)注
10文章
379瀏覽量
22655 -
DCM
+關(guān)注
關(guān)注
0文章
166瀏覽量
27094 -
ECU軟件
+關(guān)注
關(guān)注
1文章
13瀏覽量
10422 -
DTC控制
+關(guān)注
關(guān)注
0文章
19瀏覽量
1293
發(fā)布評(píng)論請(qǐng)先 登錄
轉(zhuǎn)載----DCM使用詳解
DCM在FPGA中指的是什么?
怎么在代碼中實(shí)現(xiàn)DCM
是否可以在DCM保持復(fù)位期間使用DCM的狀態(tài)輸出
如何鎖定DCM
為什么ISE無(wú)法將DCM置于設(shè)計(jì)中?
BUFG到DCM怎么進(jìn)行連接
什么是CCM和DCM
rtthread dcm組件dcm_cache_save接口mkdir:/data failed怎樣去解決呢
FPGA設(shè)計(jì)中DCM的原理分析及應(yīng)用研究
如何使用DCM,DCM使用說(shuō)明

賽靈思DCM概述和應(yīng)用技巧
使用DCM怎樣消除時(shí)鐘Skew?
rtthread dcm組件dcm_cache_save接口mkdir:/data failed解決辦法

評(píng)論