《AUTOSAR谱系分解(ETAS工具链)》之DCM的子模块DSL、DSD和DSP
DCM的子模块DSL、DSD和DSP
DSL-Diagnostic Session Layer
-
EXP:
-
EXP:
- EXP:
诊断会话层主要有以下三个作用:
- EXP:
-
- 处理诊断请求和响应数据流。
- 管理诊断状态(会话状态和安全状态)。
- 管理时间参数。
DSD-Diagnostic Service Dispatcher
-
EXP:
-
EXP:
- EXP:
诊断服务调度程序是 DSL 和 DSP 之间的桥梁,
处理 DSL 的诊断请求数据,经过处理后调用 DSP 中的处理程序;
将 DSP 处理完成后发送的响应数据传递给 DSL。
- EXP:
-
DSP-Diagnostic Service Processor
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_CC.c
- Dcm_DcmCommunicationControl
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Cdi.c
- Dcm_DcmClearDiagnosticInformation
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Cdtcs.c
- Dcm_DcmControlDTCSetting
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Dddi.c
-
Dcm_DcmDDDI
- EXP:UDS service for definition of Dynamical Defined ID.
-
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Dsc.c
- Dcm_DcmDiagnosticSessionControl
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Er.c
- Dcm_DcmEcuReset
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_GetVIN.c
- Dcm_GetVin
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Iocbi.c
- Dcm_DcmInputOutputControlByIdentifier
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Rc.c
- Dcm_DcmRoutineControl
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Rdbi.c
- Dcm_DcmReadDataByIdentifier
- Dcm_GetActiveRDBIDid
- Dcm_GetPagedDIDData
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Rdpi.c
- Dcm_DcmReadDataByPeriodicIdentifier
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Rdtc.c
- Dcm_DcmReadDTCInformation
- Dcm_IsProtocolIPCanFD
-
.GenDcmsrcDcmDspDcmDspUdsDcmDspUds_Rdtc_GetFreezeFrameDataByRecord.c
- Dcm_Dsp_GetFreezeFrameDataByRecord
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Rdtc_RepDataRecordByDTC.c
- Dcm_Dsp_ReportDataRecordByDTCNumber
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Rdtc_RepDTCFaultDetectionCounter.c
- Dcm_Dsp_ReportFaultDetectionCounter
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Rdtc_RepFailedDTC.c
- Dcm_Dsp_ReportFailedDTC
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Rdtc_RepNumDTCByStatusMask.c
-
Dcm_Dsp_ReportNumberOfDTC
- EXP:
-
- Dcm_Dsp_ReportNumberOfDTC
- This function is used to implement the RDTC service for the following sub functions:
- 0x01(reportNumberOfDTCByStatusMask),
- 0x07 (reportNumberOfDTCBySeverityMaskRecord),
- 0x11(reportNumberOfMirrorMemoryDTCByStatusMask),
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Rdtc_ReportDTCBySevMaskRec.c
- Dcm_Dsp_ReportDTCBySeverityMaskRecord
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Rdtc_ReportDTCSnapshotRecId.c
- Dcm_Dsp_ReportDTCSnapshotRecordIdentification
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Rdtc_RepSeverityOfDTC.c
- Dcm_Dsp_ReportSeverityOfDTC
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Rdtc_RepSuppDTC.c
- Dcm_Dsp_ReportSupportedDTC
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_RequestDownload.c
- Dcm_DcmRequestDownload
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_RequestTransferExit.c
- Dcm_DcmRequestTransferExit
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_RequestUpload.c
- Dcm_DcmRequestUpload
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Rmba.c
- Dcm_DcmReadMemoryByAddress
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Roe.c
- Dcm_DcmResponseOnEvent
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Seca.c
- Dcm_DcmSecurityAccess
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Tp.c
- Dcm_DcmTesterPresent
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_TransferData.c
- Dcm_DcmTransferData
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Wdbi.c
- Dcm_DcmWriteDataByIdentifier
- Dcm_GetActiveWDBIDid
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Wmba.c
- Dcm_DcmWriteMemoryByAddress
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Roe.c
- 0
-
.DcmsrcDcmDspDcmDspUdsDcmDspUds_Roe.c
- 0
-
EXP:
-
EXP:
- EXP:诊断服务处理程序,包含每个诊断服务具体的处理函数。如0x10服务、0x11服务的具体实现函数都是在这个模块里。
-
EXP:三个模块的关系
-
EXP:
-
EXP:
-
-
-
EXP:
DSL层负责接收和发送诊断报文,并将诊断数据或发送结果传递给DSD层,同时还会维护诊断会话、安全等级等诊断状态;
DSD层接收到DSL发送的诊断请求后,会进行初步判断和处理,分配给每个诊断服务,然后调用DSP中的诊断服务处理函数进行诊断处理;
DSP中的诊断处理函数在执行过程中可能会控制诊断会话或安全访问状态,所以又会通过接口函数来控制DSL层的状态。 -
EXP:
诊断通信管理(DCM)主要包括三个子模块:
诊断服务层(Diagnostic Service Layer,DSL)、
诊断服务调度(Diagnostic Service Dispatcher, DSD)、
诊断服务处理(Diagnostic Service Processing, DSP)
-
-
Diagnostic Service Layer:确定诊断数据请求和响应的数据流;监控和确保诊断请求和响应的时序,管理诊断状态(特别是诊断会话和安全状态)
Diagnostic Service Dispatcher:接收到的诊断请求转发给数据处理器;当数据处理器触发时,通过PDUR传输诊断响应。
Diagnostic Service Processing:处理实际的诊断请求。
评论记录:
回复评论: