AUTOSAR CP SWS DiagnosticCommunicationManager
AUTOSAR CP SWS DiagnosticCommunicationManager
Manager
AUTOSAR CP R24-11
Specification of Diagnostic
Document Title Communication Manager
Document Owner AUTOSAR
Document Responsibility AUTOSAR
Document Identification No 18
4
• Diagnostic Extract shall be completed to
describe multi-dimensional arrays and
arrays with complex data types
• Added
AUTOSAR DcmDspExternalSRDataElementClass
2020-11-30 R20-11 Release
Management • Updated the Error Classification chapter
4
• Incorporation of Concept NVData
Handling Enhancements
4
• Redesign interfaces between Dem and
Dcm
• Editorial changes
5
4
• Created API tables for service interfaces
• Editorial changes
• DcmDslPeriodicTxConfirmationPduId
multiplicity changed and creation of
DcmDslPeriodicConnection parameter in
order to link the confirmation Id with
AUTOSAR TxPdu Id for PeriodicTransmission.
2009-12-18 4.0.1
Administration
• Dem_GetDTCOfOBDFreezeFrame,
Dlt_ConditionCheckRead added as
optional interfaces
• DspInternal_<DiagnosticService> Api
moved to mandatory internal interface to
support the ECU Supplier diagnosis.
4
• Add support of following UDS services :
ReadMemoryByAdress,
WriteMemoryByAdress,
RequestDownload, RequestUpload,
TransferData, RequestTransferExit,
CommunicationControl,
ResponseOnEvent.
• General cleanup
4
• Corrections in configuration chapter
Disclaimer
This work (specification and/or software implementation) and the material contained in
it, as released by AUTOSAR, is for the purpose of information only. AUTOSAR and the
companies that have contributed to it shall not be liable for any use of the work.
The material contained in this work is protected by copyright and other types of intel-
lectual property rights. The commercial exploitation of the material contained in this
work requires a license to such intellectual property rights.
This work may be utilized or reproduced without any modification, in any form or by
any means, for informational purposes only. For any other purpose, no part of the work
may be utilized or reproduced, in any form or by any means, without permission in
writing from the publisher.
The work has been developed for automotive applications only. It has neither been
developed, nor tested for non-automotive applications.
The word AUTOSAR and the AUTOSAR logo are registered trademarks.
Contents
1 Introduction and functional overview 24
6 Requirements Tracing 37
7 Functional specification 42
7.1 General design elements . . . . . . . . . . . . . . . . . . . . . . . . . . 42
7.1.1 Submodules within the Dcm module . . . . . . . . . . . . . . 42
7.1.2 Negative Response Code (NRC) . . . . . . . . . . . . . . . . 43
7.1.3 Non-volatile information . . . . . . . . . . . . . . . . . . . . . 44
7.1.4 Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
7.1.4.1 Atomic types overview . . . . . . . . . . . . . . . . . 44
7.1.4.2 Data array types overview . . . . . . . . . . . . . . . 45
7.1.4.3 Nested Data types overview . . . . . . . . . . . . . . 45
7.1.4.4 Data types constraints . . . . . . . . . . . . . . . . . 50
7.1.4.5 Dcm_OpStatusType . . . . . . . . . . . . . . . . . . 51
7.1.4.6 Dcm_Cemr_{DID}Type . . . . . . . . . . . . . . . . . 52
7.2 Diagnostic Session Layer (DSL) . . . . . . . . . . . . . . . . . . . . . . 52
7.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
7.2.2 Use cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
7.2.3 Interaction with other modules . . . . . . . . . . . . . . . . . 53
7.2.4 Functional description . . . . . . . . . . . . . . . . . . . . . . 53
7.2.4.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . 53
7.2.4.2 Forward requests from the PduR module to the DSD
submodule . . . . . . . . . . . . . . . . . . . . . . . 54
7.2.4.2.1 Dcm_StartOfReception . . . . . . . . . . . . . 55
7.2.4.2.2 Dcm_CopyRxData . . . . . . . . . . . . . . . . 57
7.2.4.2.3 Dcm_TpRxIndication . . . . . . . . . . . . . . 58
7.2.4.3 Concurrent TesterPresent (”keep alive logic”) 58
7.2.4.3.1 Dcm_CopyTxData . . . . . . . . . . . . . . . . 58
7.2.4.3.2 Dcm_TpTxConfirmation . . . . . . . . . . . . . 59
10.2.5.19.1DcmDspRoutine . . . . . . . . . . . . . . . . . 701
10.2.5.19.2DcmDspRequestRoutineResults . . . . . . . . 705
10.2.5.19.3DcmDspRequestRoutineResultsIn . . . . . . . 709
10.2.5.19.4DcmDspRequestRoutineResultsInSignal . . . 710
10.2.5.19.5DcmDspRequestRoutineResultsInSignalCompositePool714
10.2.5.19.6DcmDspRequestRoutineResultsOut . . . . . . 714
10.2.5.19.7DcmDspRequestRoutineResultsOutSignal . . 715
10.2.5.19.8DcmDspRequestRoutineResultsOutSignalCompositePool718
10.2.5.19.9DcmDspStartRoutine . . . . . . . . . . . . . . 719
10.2.5.19.10
DcmDspStartRoutineIn . . . . . . . . . . . . . 723
10.2.5.19.11
DcmDspStartRoutineInSignal . . . . . . . . . 726
10.2.5.19.12
DcmDspStartRoutineInSignalCompositePool . 729
10.2.5.19.13
DcmDspStartRoutineOut . . . . . . . . . . . . 730
10.2.5.19.14
DcmDspStartRoutineOutSignal . . . . . . . . 732
10.2.5.19.15
DcmDspStopRoutine . . . . . . . . . . . . . . 735
10.2.5.19.16
DcmDspStopRoutineIn . . . . . . . . . . . . . 740
10.2.5.19.17
DcmDspStartRoutineOutSignalCompositePool 741
10.2.5.19.18
DcmDspStopRoutineInSignal . . . . . . . . . . 742
10.2.5.19.19
DcmDspStopRoutineInSignalCompositePool . 746
10.2.5.19.20
DcmDspStopRoutineOut . . . . . . . . . . . . 746
10.2.5.19.21
DcmDspStopRoutineOutSignal . . . . . . . . . 748
10.2.5.19.22
DcmDspStopRoutineOutSignalCompositePool 751
10.2.5.20 Session Security and Modes . . . . . . . . . . . . . 752
10.2.5.20.1DcmDspSecurity . . . . . . . . . . . . . . . . . 752
10.2.5.20.2DcmDspSecurityRow . . . . . . . . . . . . . . 755
10.2.5.20.3DcmDspSession . . . . . . . . . . . . . . . . . 762
10.2.5.20.4DcmDspSessionRow . . . . . . . . . . . . . . 763
10.2.5.20.5DcmModeCondition . . . . . . . . . . . . . . . 766
10.2.5.20.6DcmSwcDataElementValue . . . . . . . . . . . 769
10.2.5.20.7DcmSwcDataElementPrimitive . . . . . . . . . 770
10.2.5.20.8DcmSwcDataElementArray . . . . . . . . . . . 771
10.2.5.20.9DcmSwcDataElementArrayElement . . . . . . 771
10.2.5.20.10
DcmModeRule . . . . . . . . . . . . . . . . . . 772
10.2.5.21 DcmDspVehInfo . . . . . . . . . . . . . . . . . . . . 776
10.2.5.22 DcmDspVehInfoData . . . . . . . . . . . . . . . . . . 778
10.2.5.23 DcmDspPeriodicTransmission . . . . . . . . . . . . . 780
10.2.5.24 DcmDspClearDTC . . . . . . . . . . . . . . . . . . . 786
10.2.6 DcmGeneral . . . . . . . . . . . . . . . . . . . . . . . . . . . 787
10.2.6.1 DcmSecurityEventRefs . . . . . . . . . . . . . . . . 794
10.2.6.2 DcmSecureCoding . . . . . . . . . . . . . . . . . . . 811
10.3 Protocol Configuration Example . . . . . . . . . . . . . . . . . . . . . . 814
10.4 Published Information . . . . . . . . . . . . . . . . . . . . . . . . . . . 815
A Change history of AUTOSAR traceable items 816
A.1 Traceable item history of this document according to AUTOSAR Re-
lease R24-11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816
Offboard Onboard
AUTOSAR Application
DCM*
Manufacturing
Microcontroller (µC)
Development
Diagnostic
Tool
Service
*DCM: Diagnostic Communication Manager
Figure 1.1: Overview of the communication between the external diagnostic tools and
the onboard AUTOSAR Application
The Dcm module ensures diagnostic data flow and manages the diagnostic states, es-
pecially diagnostic sessions and security states. Furthermore, the Dcm module checks
if the diagnostic service request is supported and if the service may be executed in
the current session according to the diagnostic states.The Dcm module provides the
OSI-Layers 5 to 7 of Table 1: Diagnostic protocols and OSI-Layer.
OSI-
Protocols
Layer
UDS- Legislated
Protocol OBD -
7 - ISO14229- - - - - ISO15031-5
1 [1] - SAE [2] - SAE
J1979-2 J1979
SAE SAE
ISO 14229- J1979DA, J1979DA,
6 - - -
1:2013 [1] SAE SAE
J2012DA J2012DA
ISO14229-2
5 ISO15765-3 - - - -
[3]
4 ISO15765-2 ISO 15765-4 - - ISO 13400-2 ISO 15765-4
ISO14229-2
3 ISO15765-2 ISO 15765-4 - - ISO 13400-2
[3]
CAN- ISO14229-2
2 ISO 15765-4 LIN-Protocol FlexRay ISO 13400-3
Protocol [3]
CAN- ISO14229-2
1 ISO 15765-4 LIN-Protocol FlexRay ISO 13400-3
Protocol [3]
OSI-
Protocols
Layer
At OSI-level 7, the Dcm module provides an extensive set of ISO14229-1 [1] services.
In addition, the Dcm module provides mechanisms to support the OBD services $01 -
$0A defined in documents [4, SAE J1979] and [2, ISO 15031-5]. With these services,
Autosar OBD functionality is capable of meeting all light duty OBD regulations worldwide
(California OBDII, EOBD, Japan OBD, and all others). At OSI-level 5, the Dcm module
handles the network-independent sections of the following specifications:
• ISO15765-3 [5]: Implementation of unified diagnostic services (UDS on CAN)
• ISO15765-4 [6]: Requirements for emission-related systems, Chapter 5 ”Session
Layer”
In the AUTOSAR Architecture the Diagnostic Communication Manager is located in the
Communication Services (Service Layer).
the Dcm will assemble the gathered information and send a message back through the
PduR module.
Terms: Description:
API Application Programming Interface
CAN Controller Area Network
CEMR ControlEnableMaskRecord
Dcm Diagnostic Communication Manager
Dem Diagnostic Event Manager
Det Default Error Tracer
DID Data Identifier
DSD Diagnostic Service Dispatcher (submodule of the Dcm module)
DSL Diagnostic Session Layer (submodule of the Dcm module)
DSP Diagnostic Service Processing (submodule of the Dcm module)
DTC Diagnostic Trouble Codes
ID Identifier
LIN Local Interconnect Network
MCU Micro-Controller Unit
MOST Media Orientated System Transport
NRC Negative Response Code
OBD On-Board Diagnosis
OSI Open Systems Interconnection
PDID Periodic Data Identifier, periodically send by the Dcm after a re-
quest of ReadDataByPeriodicIndentifer
PDU Protocol Data Unit
PID Parameter Identifier
RCRRP Response correctly received - response pending
RID Routine Identifier
ROE ResponseOnEvent
Terms: Description:
RTE Runtime Environment
SAP Service Access Point
SDU Service Data Unit
SID Service Identifier
SW-C Software-Component
TP Transport Protocol
UDS Unified Diagnostic Services
Xxx_ Placeholder for an API provider
SPRMIB suppressPosRspMsgIndicationBit
3 Related documentation
[1] ISO 14229-1(2013) – Unified diagnostic services (UDS) – Part 1: Application layer
(Release 2013-03)
https://www.iso.org
[2] ISO 15031-5 – Road vehicles – Communication between vehicle and external
equipment for emission-related diagnostic – Part 5: Emission-related diagnostic
services.
https://www.iso.org
[3] ISO 14229-2(2021) – Unified diagnostic services (UDS) - Part 2: Session layer
services (Release 2021-10)
https://www.iso.org
[4] SAE J1979 – E/E Diagnostic Test Modes
[5] ISO 15765-3 – Diagnostics on controller area network (CAN) – Part 3: Implemen-
tation of unified diagnostic services (UDS on CAN) (Release 2004 10-06)
[6] ISO 15765-4 – Diagnostics on controller area network (CAN) – Part 4: Require-
ments for emission-related systems (Release 2005 01-04)
[7] Glossary
AUTOSAR_FO_TR_Glossary
[8] General Specification of Basic Software Modules
AUTOSAR_CP_SWS_BSWGeneral
[9] ISO 14229-1(2020) – Unified diagnostic services (UDS) – Part 1: Application layer
(Release 2020-02)
https://www.iso.org
[10] Requirements on Diagnostics
AUTOSAR_FO_RS_Diagnostics
[11] Requirements on Intrusion Detection System
AUTOSAR_FO_RS_IntrusionDetectionSystem
[12] General Requirements on Basic Software Modules
AUTOSAR_CP_RS_BSWGeneral
[13] ISO 17356-3: Road vehicles – Open interface for embedded automotive applica-
tions – Part 3: OSEK/VDX Operating System (OS)
[14] Specification of PDU Router
AUTOSAR_CP_SWS_PDURouter
[15] ISO 15765-2 – Road vehicles – Diagnostics on Controller Area Networks (CAN)
– Part2: Network layer services
[16] ISO 15031-6 – Road vehicles – Communication between vehicle and external
equipment for emission-related diagnostic – Part 6: Diagnostic trouble code defi-
nitions
https://www.iso.org
[17] Specification of Crypto Service Manager
AUTOSAR_CP_SWS_CryptoServiceManager
[18] Specification of Key Manager
AUTOSAR_CP_SWS_KeyManager
[19] Specification of I/O Hardware Abstraction
AUTOSAR_CP_SWS_IOHardwareAbstraction
[20] Specification of Diagnostic Event Manager
AUTOSAR_CP_SWS_DiagnosticEventManager
4.1 Limitations
The following limitations apply when using the Dcm module:
• The Dcm module does not provide any diagnostic multi-channel capabilities. This
means that parallel requests of a tester addressed to different independent func-
tionalities cannot be processed by a single Dcm module. Furthermore, the con-
cept currently implemented does not take more than one instance of a Dcm mod-
ule residing in one ECU into account. As the legislator requires that emission-
related service requests according to ISO 15031-5 [2] shall be processed prior to
any enhanced diagnostic requests, the Dcm module provides a protocol switching
mechanism based on protocol prioritization.
• UDS Service AccessTimingParameter (0x83) is not supported by the ISO stan-
dards in CAN and LIN. Also it is not planned to support this service with FlexRay.
Therefore no support for this service is planned.
• Subfunction onTimerInterrupt of Service ResponseOnEvent is not supported in
the current release.
• UDS Service SecuredDataTransmission (0x84) is not supported in the current
release.
• The Dcm SWS does not cover any SAE J1939 related diagnostic requirements.
• Due to DEM limitation, the diagnostic service $19 05 is limited to the OBD leg-
islative freeze frame.
• Management of IOControl service without InputOutputControlParameter in re-
quest and response is not supported
• The length of controlState parameter in IOControl request and response has to be
of same size (due to the one configuration parameter DcmDspDataByteSize)
• Same layout of a DID which is used in RDBI, WDBI or IOCBI services
• The user optional parameter DTCSettingControlOptionRecord in the Con-
trolDTCSetting request is only supported if it corresponds to a groupOfAllDTCs
(0xFFFFFF) value. In other cases it has to be managed in a vendor specific
implementation.
• Only the ControlDTCSetting sub-functions 0x01 and 0x02 are supported.
• The handling of infrastructure errors reported by the RTE during DCM/DEM <-
> SW-C interactions is missing from the SWS and might have to be taken into
account by implementers if they need it.
• The Dcm does not support DLT for ROE
• The ROE ServiceToRespondTo does not support PageBuffering
power cycle already starts the security delay time. ([SWS_Dcm_01355] is fol-
lowed instead.) .
InfotypeServices ServiceRequestNotification
SecurityAccess RoutineServices
«abswRequires» «abswRequires»
«abswRequires»
DataServices «abswRequires»
«abswRequires»
«abswRequires» RequestManufacturerNotification
DataServices_DIDRange SecurityAccess ServiceRequestSupplierNotification
DataServicesPIDRPort InfotypeServices RoutineServices RequestControlServices
Dcm «abswRequires»
DataServices_DIDRange
RequestControlServices
Dem
«realize» «optional»
Dem_DcmReadDataOfOBDFreezeFrame «realize»
Dcm_MainFunction
«realize»
Dcm_Init NvM
«realize»
«optional» NvM_WriteBlock
«optional»
IoHwAb
«realize»
IoHwAb_Dcm
«realize» «mandatory»
BswM
«realize» «optional»
BswM_Dcm_ApplicationUpdated
Dcm_ComM ComM_Types
ComM_Dcm
«realize» «optional»
BswM_Dcm_CommunicationMode_CurrentState
«optional»
«mandatory» «realize» «realize»
«optional»
• Diagnostic Event Manager (DEM): The DEM module provides function to retrieve
all information related to fault memory such that the Dcm module is able to re-
spond to tester requests by reading data from the fault memory.
• Protocol Data Unit Router (PduR module): The PduR module provides functions
to transmit and receive diagnostic data. Proper operation of the Dcm module
presumes that the PduR interface supports all service primitives defined for the
Service Access Point (SAP) between diagnostic application layer and underlying
transport layer (see ISO14229-1 [1], chapter 5 Application layer services).
6 Requirements Tracing
The following tables reference the requirements specified in [10], [11] as well as [12]
and links to the fulfillment of these. Please note that if column “Satisfied by” is empty for
a specific requirement this means that this requirement is not fulfilled by this document.
Requirement Description Satisfied by
[RS_Diag_04003] Network independent design [SWS_Dcm_00030]
[RS_Diag_04005] Manage Security Access level [SWS_Dcm_00020] [SWS_Dcm_00033]
handling [SWS_Dcm_00252] [SWS_Dcm_00338]
[SWS_Dcm_01397] [SWS_Dcm_01535]
[SWS_Dcm_CONSTR_06083]
[RS_Diag_04006] Manage session handling [SWS_Dcm_00022] [SWS_Dcm_00250]
[SWS_Dcm_00339] [SWS_Dcm_01373]
[SWS_Dcm_01374] [SWS_Dcm_01375]
[SWS_Dcm_01376] [SWS_Dcm_01377]
[SWS_Dcm_01378] [SWS_Dcm_01535]
[RS_Diag_04011] Provide diagnostic state information [SWS_Dcm_00338] [SWS_Dcm_00339]
to applications [SWS_Dcm_01321] [SWS_Dcm_01322]
[RS_Diag_04015] Timing handling according to [SWS_Dcm_00027] [SWS_Dcm_00030]
ISO14229-2 [SWS_Dcm_00143] [SWS_Dcm_01679]
[RS_Diag_04016] Support "Busy handling" by sending a [SWS_Dcm_00024]
negative response 0x78
[RS_Diag_04020] Suppress responses to diagnostic [SWS_Dcm_00001] [SWS_Dcm_00200]
tool requests
[RS_Diag_04021] Handling of different diagnostic [SWS_Dcm_00015] [SWS_Dcm_00079]
sessions in parallel [SWS_Dcm_00460] [SWS_Dcm_00575]
[SWS_Dcm_00576] [SWS_Dcm_00727]
[SWS_Dcm_01046] [SWS_Dcm_01602]
[SWS_Dcm_01603] [SWS_Dcm_01604]
[SWS_Dcm_01605]
[RS_Diag_04033] Support the upload/download [SWS_Dcm_00496] [SWS_Dcm_00499]
services for reading/writing data in an [SWS_Dcm_00502] [SWS_Dcm_00503]
ECU in an extended and [SWS_Dcm_00504] [SWS_Dcm_00505]
manufacturer specific diagnostic [SWS_Dcm_01417] [SWS_Dcm_01418]
session [SWS_Dcm_01419] [SWS_Dcm_01420]
[SWS_Dcm_01421] [SWS_Dcm_01422]
[SWS_Dcm_01591] [SWS_Dcm_01592]
[SWS_Dcm_01593] [SWS_Dcm_01594]
[SWS_Dcm_01595] [SWS_Dcm_01596]
[SWS_Dcm_01598]
[RS_Diag_04058] Ability to access different event [SWS_Dcm_00004] [SWS_Dcm_00005]
memories [SWS_Dcm_00077] [SWS_Dcm_00279]
[SWS_Dcm_00293] [SWS_Dcm_00295]
[SWS_Dcm_00378] [SWS_Dcm_00388]
[SWS_Dcm_00389] [SWS_Dcm_00393]
[SWS_Dcm_00465] [SWS_Dcm_01263]
[RS_Diag_04067] Provide the diagnostic status [SWS_Dcm_00293] [SWS_Dcm_00378]
information according to ISO 14229-1
[RS_Diag_04098] Interact with standard bootloader [SWS_Dcm_00532] [SWS_Dcm_00535]
[SWS_Dcm_00536] [SWS_Dcm_00592]
[SWS_Dcm_00654] [SWS_Dcm_00767]
[SWS_Dcm_01163] [SWS_Dcm_01177]
[SWS_Dcm_01423] [SWS_Dcm_01424]
[SWS_Dcm_01425] [SWS_Dcm_CONSTR_06080]
5
4
Requirement Description Satisfied by
[RS_Diag_04115] The optional parameter DTCSetting [SWS_Dcm_00406] [SWS_Dcm_01063]
ControlOptionRecord as part of UDS
service ControlDTCSetting shall be
limited to GroupOfDTC
[RS_Diag_04119] Handle the execution of diagnostic [SWS_Dcm_00628] [SWS_Dcm_00858]
services according to the assigned [SWS_Dcm_00859] [SWS_Dcm_01435]
diagnostic session
[RS_Diag_04147] Communication with the transport [SWS_Dcm_00642] [SWS_Dcm_01186]
layers to receive and send diagnostic
data
[RS_Diag_04153] Support generic connections [SWS_Dcm_00849] [SWS_Dcm_01347]
[SWS_Dcm_01348]
[RS_Diag_04159] Control of DTC storage [SWS_Dcm_00249] [SWS_Dcm_01399]
[RS_Diag_04160] ResponseOnEvent according to ISO [SWS_Dcm_00135] [SWS_Dcm_00894]
14229-1 [SWS_Dcm_01410] [SWS_Dcm_01625]
[SWS_Dcm_01626] [SWS_Dcm_01627]
[SWS_Dcm_01628] [SWS_Dcm_01629]
[SWS_Dcm_01630] [SWS_Dcm_01631]
[SWS_Dcm_01632]
[RS_Diag_04162] Parallel fault memory access [SWS_Dcm_01369] [SWS_Dcm_01370]
[SWS_Dcm_01371] [SWS_Dcm_01372]
[RS_Diag_04163] Parallel OBD and UDS processing [SWS_Dcm_01367]
[RS_Diag_04180] Process all UDS Services related to [SWS_Dcm_01623]
diagnostic fault memory of ISO
14229-1 internally
[RS_Diag_04196] UDS Service handling for all [SWS_Dcm_01622] [SWS_Dcm_01671]
diagnostic services defined in ISO [SWS_Dcm_01672] [SWS_Dcm_01673]
14229-2
[RS_Diag_04203] Common checks on all supported [SWS_Dcm_01622]
UDS Services Requests
[RS_Diag_04205] Support of SnapshotRecords [SWS_Dcm_01623] [SWS_Dcm_01624]
[RS_Diag_04209] Pseudo parallel client interaction [SWS_Dcm_01674] [SWS_Dcm_01675]
according to ISO [SWS_Dcm_01676] [SWS_Dcm_01677]
[SWS_Dcm_01678]
[RS_Diag_04215] Support of UDS service ReadDataBy [SWS_Dcm_00721] [SWS_Dcm_00722]
PeriodicIdentifier (0x2A) [SWS_Dcm_00820] [SWS_Dcm_00843]
[SWS_Dcm_01096] [SWS_Dcm_01097]
[SWS_Dcm_01098] [SWS_Dcm_01099]
[SWS_Dcm_01101] [SWS_Dcm_01103]
[SWS_Dcm_01104] [SWS_Dcm_01105]
[SWS_Dcm_01106] [SWS_Dcm_01111]
[SWS_Dcm_01112] [SWS_Dcm_01115]
[SWS_Dcm_01117] [SWS_Dcm_01118]
[SWS_Dcm_01568] [SWS_Dcm_01569]
[SWS_Dcm_01570] [SWS_Dcm_01571]
[SWS_Dcm_01572] [SWS_Dcm_01573]
[SWS_Dcm_01574] [SWS_Dcm_01575]
[SWS_Dcm_01576] [SWS_Dcm_01577]
[SWS_Dcm_01578] [SWS_Dcm_01613]
5
4
Requirement Description Satisfied by
[RS_Diag_04218] Support of UDS service 0x2F Input [SWS_Dcm_00256] [SWS_Dcm_00396]
OutputControlByIDentifier [SWS_Dcm_00397] [SWS_Dcm_00398]
[SWS_Dcm_00399] [SWS_Dcm_00563]
[SWS_Dcm_00564] [SWS_Dcm_00565]
[SWS_Dcm_00579] [SWS_Dcm_00580]
[SWS_Dcm_00581] [SWS_Dcm_00640]
[SWS_Dcm_00680] [SWS_Dcm_00682]
[SWS_Dcm_01273] [SWS_Dcm_01274]
[SWS_Dcm_01275] [SWS_Dcm_01277]
[SWS_Dcm_01313] [SWS_Dcm_01434]
[SWS_Dcm_01436] [SWS_Dcm_01437]
[SWS_Dcm_01438] [SWS_Dcm_01439]
[SWS_Dcm_01440] [SWS_Dcm_01441]
[SWS_Dcm_01554] [SWS_Dcm_01600]
[SWS_Dcm_91057] [SWS_Dcm_91058]
[SWS_Dcm_91059] [SWS_Dcm_91060]
[SWS_Dcm_91061] [SWS_Dcm_CONSTR_06084]
[SWS_Dcm_CONSTR_06085]
[SWS_Dcm_CONSTR_06086]
[RS_Diag_04224] Support the UDS service 0x31 [SWS_Dcm_01442] [SWS_Dcm_01443]
(RoutineControl) according to ISO [SWS_Dcm_01580] [SWS_Dcm_01581]
14229-1
[RS_Diag_04230] Support of UDS service 0x29 [SWS_Dcm_01459] [SWS_Dcm_01460]
(Authentication) [SWS_Dcm_01461] [SWS_Dcm_01463]
[SWS_Dcm_01464] [SWS_Dcm_01465]
[SWS_Dcm_01466] [SWS_Dcm_01467]
[SWS_Dcm_01468] [SWS_Dcm_01469]
[SWS_Dcm_01477] [SWS_Dcm_01478]
[SWS_Dcm_01479] [SWS_Dcm_01480]
[SWS_Dcm_01481] [SWS_Dcm_01482]
[SWS_Dcm_01483] [SWS_Dcm_01484]
[SWS_Dcm_01485] [SWS_Dcm_01486]
[SWS_Dcm_01487] [SWS_Dcm_01488]
[SWS_Dcm_01489] [SWS_Dcm_01493]
[SWS_Dcm_01503] [SWS_Dcm_01504]
[SWS_Dcm_01506] [SWS_Dcm_01507]
[SWS_Dcm_01508] [SWS_Dcm_01509]
[SWS_Dcm_01510] [SWS_Dcm_01511]
[SWS_Dcm_01512] [SWS_Dcm_01513]
[SWS_Dcm_01515] [SWS_Dcm_01518]
[SWS_Dcm_01528] [SWS_Dcm_01529]
[SWS_Dcm_01530] [SWS_Dcm_01532]
[SWS_Dcm_01533] [SWS_Dcm_01534]
[SWS_Dcm_01535] [SWS_Dcm_01536]
[SWS_Dcm_01537] [SWS_Dcm_01538]
[SWS_Dcm_01542] [SWS_Dcm_01544]
[SWS_Dcm_01551] [SWS_Dcm_01558]
[SWS_Dcm_01559] [SWS_Dcm_01560]
[SWS_Dcm_01561] [SWS_Dcm_01565]
[SWS_Dcm_01579] [SWS_Dcm_01588]
[SWS_Dcm_CONSTR_06094]
[SWS_Dcm_CONSTR_06096]
[RS_Diag_04232] Access rights in client certificates [SWS_Dcm_01516] [SWS_Dcm_CONSTR_06087]
[SWS_Dcm_CONSTR_06089]
5
4
Requirement Description Satisfied by
[RS_Diag_04233] Access granularity of diagnostic [SWS_Dcm_01496] [SWS_Dcm_01514]
services [SWS_Dcm_01522] [SWS_Dcm_01523]
[SWS_Dcm_01524] [SWS_Dcm_01525]
[SWS_Dcm_01526] [SWS_Dcm_01527]
[SWS_Dcm_01539] [SWS_Dcm_01540]
[SWS_Dcm_01541] [SWS_Dcm_01545]
[SWS_Dcm_01546] [SWS_Dcm_01547]
[SWS_Dcm_01548] [SWS_Dcm_01549]
[SWS_Dcm_01552] [SWS_Dcm_01553]
[SWS_Dcm_01555] [SWS_Dcm_01556]
[SWS_Dcm_01557] [SWS_Dcm_01562]
[SWS_Dcm_CONSTR_06088]
[RS_Diag_04234] Binary compatibility of white list for [SWS_Dcm_01521] [SWS_Dcm_01522]
individual access [SWS_Dcm_01523] [SWS_Dcm_01524]
[SWS_Dcm_01525] [SWS_Dcm_01526]
[SWS_Dcm_01527]
[RS_Diag_04235] Client certificate validity [SWS_Dcm_01470] [SWS_Dcm_01471]
[SWS_Dcm_01472] [SWS_Dcm_01473]
[SWS_Dcm_01474] [SWS_Dcm_01475]
[SWS_Dcm_01476]
[RS_Diag_04243] Update of constant parameters [SWS_Dcm_01582] [SWS_Dcm_01583]
through diagnostics [SWS_Dcm_01584] [SWS_Dcm_01585]
[SWS_Dcm_01586] [SWS_Dcm_01587]
[SWS_Dcm_91088]
[RS_Diag_04248] Support of session control service [SWS_Dcm_00311]
[RS_Diag_04249] Support of session layer service [SWS_Dcm_00024] [SWS_Dcm_00027]
[SWS_Dcm_00111] [SWS_Dcm_00114]
[SWS_Dcm_00115] [SWS_Dcm_00117]
[SWS_Dcm_00143] [SWS_Dcm_00654]
[SWS_Dcm_00703] [SWS_Dcm_00837]
[SWS_Dcm_00839] [SWS_Dcm_01073]
[SWS_Dcm_01425] [SWS_Dcm_01666]
[SWS_Dcm_01667] [SWS_Dcm_01668]
[SWS_Dcm_01669] [SWS_Dcm_01670]
[SWS_Dcm_01679]
[RS_Diag_04250] Support subfunction 0x1A and 0x56 [SWS_Dcm_01607] [SWS_Dcm_01608]
of UDS service 0x19 [SWS_Dcm_01609] [SWS_Dcm_01610]
[SWS_Dcm_01611] [SWS_Dcm_01612]
[SWS_Dcm_01640]
[RS_Diag_04253] Support separated DTCs for UDS [SWS_Dcm_01618] [SWS_Dcm_01619]
and OBD based on J1979-2
[RS_Diag_04254] Independent CP Software Cluster [SWS_Dcm_91090] [SWS_Dcm_91091]
development [SWS_Dcm_91092] [SWS_Dcm_91093]
[SWS_Dcm_91094] [SWS_Dcm_91095]
[SWS_Dcm_91098] [SWS_Dcm_91099]
[SWS_Dcm_91100] [SWS_Dcm_91101]
[SWS_Dcm_91102] [SWS_Dcm_91103]
[SWS_Dcm_91104] [SWS_Dcm_91105]
[SWS_Dcm_91106] [SWS_Dcm_91107]
[RS_Diag_04271] Support of Transmit Certificate [SWS_Dcm_01682] [SWS_Dcm_01683]
[RS_Diag_04272] Support of secure data coding [SWS_Dcm_01684] [SWS_Dcm_01685]
[SWS_Dcm_01686] [SWS_Dcm_01687]
[SWS_Dcm_01688] [SWS_Dcm_01689]
[SWS_Dcm_01690] [SWS_Dcm_01691]
[SWS_Dcm_01692] [SWS_Dcm_01693]
[SWS_Dcm_01694] [SWS_Dcm_01695]
5
4
Requirement Description Satisfied by
[RS_Ids_00810] Basic SW security events [SWS_Dcm_01589] [SWS_Dcm_01590]
[SWS_Dcm_01702] [SWS_Dcm_01703]
[SWS_Dcm_01704] [SWS_Dcm_01705]
[SWS_Dcm_01706] [SWS_Dcm_01707]
[SWS_Dcm_01708] [SWS_Dcm_01709]
[SWS_Dcm_01710] [SWS_Dcm_01711]
[SWS_Dcm_01712] [SWS_Dcm_01713]
[SWS_Dcm_01714] [SWS_Dcm_01715]
[SWS_Dcm_01716] [SWS_Dcm_01717]
[SWS_Dcm_01718] [SWS_Dcm_01719]
[SWS_Dcm_01720] [SWS_Dcm_01721]
[SWS_Dcm_01722] [SWS_Dcm_01723]
[SWS_Dcm_01724] [SWS_Dcm_01725]
[SWS_Dcm_01726] [SWS_Dcm_01727]
[SWS_Dcm_01728] [SWS_Dcm_01729]
[SWS_Dcm_01730] [SWS_Dcm_01731]
[SWS_Dcm_01732] [SWS_Dcm_01733]
[SWS_Dcm_01734] [SWS_Dcm_01735]
[SWS_Dcm_01736] [SWS_Dcm_01737]
[SWS_Dcm_01738] [SWS_Dcm_01739]
[SWS_Dcm_01740] [SWS_Dcm_01741]
[SWS_Dcm_01742] [SWS_Dcm_01743]
[SWS_Dcm_01744] [SWS_Dcm_01745]
[SWS_Dcm_01746] [SWS_Dcm_01747]
[SWS_Dcm_01748] [SWS_Dcm_01749]
[SWS_Dcm_01750] [SWS_Dcm_01751]
[SWS_Dcm_01752] [SWS_Dcm_01753]
[SRS_BSW_00003] All software modules shall provide [SWS_Dcm_00065]
version and identification information
[SRS_BSW_00101] The Basic Software Module shall be [SWS_Dcm_00033] [SWS_Dcm_00034]
able to initialize variables and [SWS_Dcm_00035] [SWS_Dcm_00037]
hardware in a separate initialization
function
[SRS_BSW_00337] Classification of development errors [SWS_Dcm_00040]
[SRS_BSW_00369] All AUTOSAR Basic Software [SWS_Dcm_00044]
Modules shall not return specific
development error codes via the API
[SRS_BSW_00373] The main processing function of each [SWS_Dcm_00053]
AUTOSAR Basic Software Module
shall be named according the defined
convention
[SRS_BSW_00407] Each BSW module shall provide a [SWS_Dcm_00065]
function to read out the version
information of a dedicated module
implementation
[SRS_BSW_00424] BSW module main processing [SWS_Dcm_00053]
functions shall not be allowed to enter
a wait state
[SRS_BSW_00438] Configuration data shall be defined in [SWS_Dcm_00037]
a structure
[SRS_BSW_00452] Classification of runtime errors [SWS_Dcm_01416]
[SRS_BSW_00482] Get version information function shall [SWS_Dcm_00065]
follow a naming rule
7 Functional specification
To define the functionality of the Dcm module, The Dcm SWS models the Dcm module
as consisting of the following submodules:
• Diagnostic Session Layer (DSL) submodule: The DSL submodule ensures data
flow concerning diagnostic requests and responses, supervises and guarantees
diagnostic protocol timing and manages diagnostic states (especially diagnostic
session and security).
• Diagnostic Service Dispatcher (DSD) submodule: The DSD submodule pro-
cesses a stream of diagnostic data. The submodule:
– Receives a new diagnostic request over a network and forwards it to a data
processor.
– Transmits a diagnostic response over a network when triggered by the data
processor (e.g. by the DSP submodule).
• Diagnostic Service Processing (DSP) submodule: The DSP submodule handles
the actual diagnostic service (respectively subservice) requests.
The next graphic gives an overview of the interfaces between the submodules DSP,
DSD, and DSL within the Dcm module.
Xxx_ReadData() DsdInternal_ProcessPage()
Xxx_WriteData() DspInternal_DcmUpdatePage()
Xxx_ReadDataLength() DsdInternal_StartPagedProcessing()
Xxx_ConditionCheckRead()
Xxx_GetScalingInformation()
DSD
Service Interpreter calls
Xxx_ReturnControlToECU()
Xxx_ResetToDefault() DSP DspInternal_DcmConfirmation()
Xxx_FreezeCurrentState() <Module>_<DiagnosticService>_<SubService>-
Xxx_ShortTermAdjustement()
<Module>_<DiagnosticService>()-
Xxx_GetInfoTypeValue()
Xxx_IsDidAvailable()
Xxx_WriteDidData()
Xxx_ReadDidData()
Transmit functionality
Xxx_Stop()
Xxx_RequestResults() External
Xxx_RequestControl()
Xxx_GetSeed() module
Xxx_CompareKey()
Xxx_Indication()
Xxx_Confirmation()
PDU Router
Dcm_StartOfReception ()
Dcm_CopyRxData ()
Dcm_CopyTxData()
Dcm_RxIndication()
DslInternal_GetSesCtrlType() Dcm_TxConfirmation()
PduR_DcmTransmit()
DslInternal_SetSecurityLevel()
DSL PduR_DcmCancelTransmitResqest()
PduR_DcmCancelReceiveResqest()
Dcm_ResetToDefaultSession()
Dcm_GetSecurityLevel() COM Manager
Dcm_GetSesCtrlTypel() *1 | see page
*2 | before
Dcm_Init()
Note: The implementation of these submodules and the interfaces between them is
not mandatory. They are introduced only to improve the readability of the specification.
The standards defining the UDS Services and OBD Services define the negative re-
sponse codes (NRCs). The Dcm SWS uses these NRCs in the interfaces between the
Dcm and other BSW modules and the SW-Cs. These NRCs are defined in the data
type Dcm_NegativeResponseCodeType.
[SWS_Dcm_01075] dThe order of the transmitted NRC shall be compliant with the one
described in ISO14229-1 [1].c
[SWS_Dcm_00870] dThe Dcm shall check if the NvM is read out correctly. If the non-
volatile information could not read out correct the Dcm shall start a default reaction.
The default reaction is described in the chapter were the usage of the non-volatile data
is described.c
[SWS_Dcm_01048] dIf the Dcm cancels a service with NvM access, it shall call
NvM_CancelJobs().c
The service is cancelled either by reaching the maximum number of RCRRP NRCs or
by protocol preemption.
7.1.4 Types
[SWS_Dcm_00969] dThe Dcm shall treat non-integer data types (e.g. uint8[n]) either
like integer data types of the matching size or leave their contents uninterpreted in case
DcmDspDataEndianness is configured to OPAQUE.c
[SWS_Dcm_00970] dThe Dcm module shall interpret opaque data as uint8[n] and shall
always map it to an n-bytes sized signal. For opaque data endianness, DcmDsp-
DataEndianness has to be configured to OPAQUE.c
[SWS_Dcm_00971] dThe Dcm shall extend the endianness conversion defined in [13],
to signed data types.c
In [13] (Chapter 2.4) the endianness conversion is defined for unsigned data types.
The associated configurations can be found in the configuration DcmDspData.
The data types used for DIDs and Diagnostic Routines may be defined in a nested way.
A DID or Routine Argument may consist of several elements, e.g. an array where each
array element is a structure, and that structure consists of several data elements typed
by primitives, arrays, or further structures.
In the configuration this represented by a dedicated pattern:
• the root data element defines a pool of nested elements (e.g. DcmDspDidSig-
nalCompositePool in DcmDspDid)
• the root data element has an anchor object (e.g. DcmDspDidSignal), this an-
chor object may represent primitive or array data, in this case there is no refer-
ence to a pool element defined (e.g. DcmDspDidSignalCompositeRef).
• if the anchor object represents a structure, then it defines one or more references
to pool elements (e.g. DcmDspDidSignalCompositeRef). This defines that
the referenced pool elements build the content of that structure.
A pool element may itself be a nested definition. This allows for an arbitrary nesting of
structured elements.
DcmDsp: DcmDspData:
EcucParamConfContainerDef +subContainerEcucParamConfContainerDef
lo w e rM ultiplicity = 0 lo w e rM ultiplicity = 0
+parameter
u p p e rMultiplicity = 1 u p p e rM ultiplicity = *
DcmDspDataByteSize:
EcucIntegerParamDef +destination
lo w e rM ultiplicity = 0
u p p e rMultiplicity = 1
m in = 0
max = 65535 A
+subContainer
+parameter
DcmDspDid:
EcucParamConfContainerDef DcmDspDidDataRef:
EcucReferenceDef
u p p e rM ultiplicity = *
lo w e rM ultiplicity = 0 +reference lo w e rM ultiplicity = 0
DcmDspDidSignal: EcucParamConfContainerDef u p p e rMultiplicity = 1
+subContainer
lo w e rM ultiplicity = 0
u p p e rM ultiplicity = * +parameter
DcmDspDidByteOffset:
EcucIntegerParamDef
+subContainer lo w e rM ultiplicity = 1
u p p e rMultiplicity = 1
+reference m in = 0
max = 65535
DcmDspDidSignalCompositeRef:
EcucReferenceDef
lo w e rM ultiplicity = 0
u p p e rM ultiplicity = *
+destination
DcmDspDidSignalCompositePool:
+subContainer
EcucParamConfContainerDef
lo w e rM ultiplicity = 0
u p p e rM ultiplicity = *
Specifically this means that DcmDspDidSignal shall not define any DcmDspDid-
DataRef, as this would give details about specific data type information of primitive or
array data types. If the DcmDspDidSignal contains a DcmDspDidSignalCompos-
iteRef then this DcmDspDidSignal is a nested data type.
[SWS_Dcm_01635] dAll of the data types that are defined in the scope of the nested
data type shall be placed inside the area defined by DcmDspDataByteSize and
DcmDspDidByteOffset.c
The specification above has been defined on the basis of the DcmDspDid. The same
pattern for the definition of nested data types has been applied to further parts of the
configuration. The following list gives the respective correspondence between the con-
figuration items used above and the further configuration items used for the definition
of nested data types.
[SWS_Dcm_01639] dThe nesting of data types does not only apply to DcmDspDid,
but is also supported for the following definitions:
• DcmDspDid corresponds to
– DcmDspStartRoutineIn
– DcmDspStartRoutineOut
– DcmDspStopRoutineIn
– DcmDspStopRoutineOut
– DcmDspRequestRoutineResultsIn
– DcmDspRequestRoutineResultsOut
• DcmDspDidSignal corresponds to
– DcmDspStartRoutineInSignal
– DcmDspStartRoutineOutSignal
– DcmDspStopRoutineInSignal
– DcmDspStopRoutineOutSignal
– DcmDspRequestRoutineResultsInSignal
– DcmDspRequestRoutineResultsOutSignal
• DcmDspDidSignalCompositePool corresponds to
– DcmDspStartRoutineInSignalCompositePool
– DcmDspStartRoutineOutSignalCompositePool
– DcmDspStopRoutineInSignalCompositePool
– DcmDspStopRoutineOutSignalCompositePool
– DcmDspRequestRoutineResultsInSignalCompositePool
– DcmDspRequestRoutineResultsOutSignalCompositePool
• DcmDspDidSignalCompositeRef corresponds to
– DcmDspStartRoutineInSignalCompositeSignalRef
– DcmDspStartRoutineOutSignalCompositeSignalRef
– DcmDspStopRoutineInSignalCompositeSignalRef
– DcmDspStopRoutineOutSignalCompositeSignalRef
– DcmDspRequestRoutineResultsInSignalCompositeSignalRef
– DcmDspRequestRoutineResultsOutSignalCompositeSignalRef
c
The example nested data type in figure 7.5 is defined as A which consists of X and Y
defined as primitive types.
0 1 2 3 4 5 6 7 8
A
X Y
DcmDspStartRoutineIn: DcmDspRoutineParameterSize_Signal_A:
EcucContainerValue EcucNumericalParamValue
value = 4
DcmDspRoutineSignalPos_Signal_A:
EcucNumericalParamValue
value = 2
DcmDspStartRoutineInSignal_Signal_A: DcmDspStartRoutineInSignalCompositeSignalRef_Y:
EcucContainerValue EcucReferenceValue
DcmDspStartRoutineInSignalCompositeSignalRef_X:
EcucReferenceValue
DcmDspStartRoutineInSignalContainedPool_Y:
EcucContainerValue
DcmDspStartRoutineInSignalContainedPool_X:
EcucContainerValue
DcmDspStartRoutineInSignal_Signal_X: DcmDspStartRoutineInSignal_Signal_Y:
EcucContainerValue EcucContainerValue
DcmDspRoutineSignalPos_Signal_X:
DcmDspRoutineSignalPos_Signal_Y:
EcucNumericalParamValue
EcucNumericalParamValue
value = 2
value = 4
DcmDspRoutineParameterSize_Signal_X: DcmDspRoutineParameterSize_Signal_Y:
EcucNumericalParamValue
EcucNumericalParamValue
value = 1 value = 2
DcmDspRoutineSignalType_Signal_X: DcmDspRoutineSignalType_Signal_Y:
EcucTextualParamValue EcucTextualParamValue
value = UINT8 value = UINT16
In figure 7.6 an example configuration is shown for a nested data type of figure 7.5.
The container DcmDspStartRoutineIn holds the definition of the root element
DcmDspStartRoutineInSignal_Signal_A as well as the two pool elements DcmDsp-
StartRoutineInSignalContainedPool_X and DcmDspStartRoutineInSignalContained-
Pool_Y.
The root element DcmDspStartRoutineInSignal_Signal_A defines its absolute start
position as 2 (DcmDspRoutineSignalPos_Signal_A) and its size in byte as
4 (DcmDspRoutineParameterSize_Signal_A). The root element DcmDspStartRou-
tineInSignal_Signal_A also defines that there are two nested elements part of that
root element using the references DcmDspStartRoutineInSignalContainedPool_X and
DcmDspStartRoutineInSignalContainedPool_Y. These references point to pool ele-
ments defined in the scope of the same DcmDspStartRoutineIn.
The referenced pool elements define each their absolute position (DcmDspRoutineS-
ignalPos_Signal_X ) as well as their size (DcmDspRoutineParameterSize_Signal_X )
and primitive type (DcmDspRoutineSignalType_Signal_X ).
UINT8 shall be used as (implementation) data type for bit lengths between 1 and 8
Note: Variable data length is only possible with UINT8 arrays with DcmDspDataType
set to UINT8_DYN.
7.1.4.5 Dcm_OpStatusType
For the operation using the Dcm_OpStatusType, the Dcm shall work as follow :
7.1.4.6 Dcm_Cemr_{DID}Type
For ease of use in SWC, the Dcm generates a symbolic name to access the CEMR bit
according to Dcm_Cemr_{DID}Type (see [SWS_Dcm_91087]) for each data element
used in a DID with IO control. The SWC can work only with the generated symbolic
value of the bitfield text table to mask out a certain bit. This helps to avoid confusion,
while the first RID bit on the network controls the first parameter of the DID but that Bit
is the most significant Bit in the MSB. The symbolic name also helps if the size of the
RID is changing. In that case the bitmask changes as well, but the symbolic value is
always updated.
7.2.1 Introduction
[SWS_Dcm_00030]
Upstream requirements: RS_Diag_04003, RS_Diag_04015
dAll functional areas of the DSL submodule shall be in conformance with the specifica-
tions ISO14229-1 [1], ISO14229-2 [3] and the network-independent part of ISO15765-3
[5].c
There is no network-dependent functional area in the DSL submodule. Within the con-
figuration, some parameters can be set dependent on the network.
7.2.4.1 Overview
Authentication
• Manage authentication state per diagnostic connection
Session State Handling
• Manage session state.
• Keep track of active non-default sessions.
• Allows modifying timings.
Diagnostic Protocol Handling
• Handling of different diagnostic protocols.
• Manage resources.
Communication Mode Handling
• Handling of communication requirements (Full- / Silent- / No Communication).
• Indicating of active / inactive diagnostic.
• Enabling / disabling all kinds of diagnostic transmissions.
7.2.4.2 Forward requests from the PduR module to the DSD submodule
The PduR module indicates the Dcm module whenever a reception of new diagnostic
request content is started on a DcmDslProtocolRxPduId, which is assigned to the
Dcm module. This is done by calling Dcm_StartOfReception, which inform the Dcm
module of the data size to be received and provides the data of the first frame or single
frame, and allows the Dcm to reject the reception if the data size overflows its buffer
size, or if the requested service is not available. The further call to Dcm_CopyRxData
request the Dcm module to copy the data from the provided buffer to the Dcm buffer.
If the reception of a diagnostic request is finished (when Dcm_StartOfReception
succeeded) the PduR module will call Dcm_TpRxIndication to give a receive indi-
cation to the Dcm module. The Dcm shall be able to use generic connections, where
the addressing information is provided to Dcm by Dcm_StartOfReception via the
MetaData of the DcmRxPdu. This addressing information must be stored and used for
the response and for detection of requests from the same tester. see section 7.2.4.5
Generic Connection Handling for further details.
[SWS_Dcm_00111]
Upstream requirements: RS_Diag_04249
dThe DSL submodule shall forward received data to the DSD submodule only after a call
of Dcm_TpRxIndication with parameter Result = E_OK (see [SWS_Dcm_00093]).c
More descriptions of the APIs (prototype, input/output parameter) can be found in the
interface description of PduR module [14].
It is allowed to have different DcmPduIds for different diagnostic communication appli-
cations. For example:
• OBD DcmDslProtocolRxPduId: for reception of OBD requests,
• OBD DcmTxPduId: for transmission of OBD responses,
• UDS phys DcmDslProtocolRxPduId: for reception of UDS physically addressed
requests,
• UDS func DcmDslProtocolRxPduId: for reception of UDS functionally ad-
dressed requests,
• UDS DcmTxPduId: for transmission of UDS responses.
Address type (physical/functional addressing) is configured per DcmDslProtocol-
RxPduId. A configuration per DcmDslProtocolRxPduId is possible because there
will always be different DcmDslProtocolRxPduId values for functional and physi-
cal receptions, independent of the addressing format of the Transport Layer (extended
addressing, normal addressing).
7.2.4.2.1 Dcm_StartOfReception
[SWS_Dcm_00444] dIf the requested size is large than the buffer available in the
DCM, the function Dcm_StartOfReception shall return BUFREQ_E_OVFL (see
[SWS_Dcm_00094]).c
[SWS_Dcm_00642]
Upstream requirements: RS_Diag_04147
dThe Dcm shall receive and handle diagnostic messages according to the session layer
services of ISO14229-2 [3].c
dThe Dcm shall handle requests from multiple clients according to ISO14229-1 [1] An-
nex J.c
”Figure J.2 - Multiple client handling flow” of ISO14229-1 [1] gives a comprehensive
overview of parallel client request handling. A major aspect is the support of additional
protocol resources. The Dcm follows this flow chart and provides protocol resources per
configured DcmDslProtocolRow. In default session this allows the Dcm to process
requests in parallel.
dThe Dcm shall assign additional protocol resource to each configured DcmDslPro-
tocolRow with a own DcmDslBuffer.c
dIf the Dcm is rejecting a second received request according to ISO14229-1 [1] Annex
J and DcmDslDiagRespOnSecondDeclinedRequest is set to TRUE, the Dcm shall
return a NRC 0x21 as response for the rejected second received request.c
dIf the Dcm is rejecting a second received request according to ISO14229-1 [1] Annex J
and DcmDslDiagRespOnSecondDeclinedRequest is set to FALSE, the Dcm shall
ignore the new request. .c
ISO14229-1 [1] Annex J misses a definition of the server in case a second diagnostic
request is received from the same connection, while the server is still processing a
request on that connection. The Dcm fills this gap by not accepting further diagnostic
requests for processing. In that case no response is send, even no NRC 0x21.
dIf the Dcm receives a further diagnostic request for processing and the Dcm is still
processing an ongoing request on the same connection, the Dcm shall decline the new
received request.c
7.2.4.2.2 Dcm_CopyRxData
Note: The size of the Rx buffer is based on the buffer length, which is returned in the
parameter RxBufferSizePtr of API Dcm_StartOfReception.
7.2.4.2.3 Dcm_TpRxIndication
Rationale for [SWS_Dcm_00344]: It is undefined which part of the buffer contains valid
data in this case
The Concurrent TesterPresent is defined by ISO14229-1 [1] and also called ”by-
pass logic” or ”keep alive logic”. The purpose is to keep the non-default session active
and reset the S3 timer defined by ISO14229-2 [3]. Concurrent TesterPresent
are only received by functional addressing and are processed independent from any
activity on a physical request and service processing.
dThe Dcm shall handle and process the Concurrent TesterPresent according to
ISO14229-1 [1].c
In addition to ISO14229-1 [1] the Dcm limits the processing for received Concurrent
TesterPresent messages to the connection from where the request to enter a non-
default session was received. This avoids that a tester that did not request the non-
default session can influence the protocol and timing behavior of another tester.
dThe Dcm shall only process and handle Concurrent TesterPresent messages
received on the same DcmDslConnection that requested the Dcm to enter the non-
default session.c
7.2.4.3.1 Dcm_CopyTxData
If the copied data is smaller than the length requested to transmit within the service
PduR_DcmTransmit() the Dcm module will be requested by the service Dcm_CopyTx-
Data to provide another data when the current copied data have been transmitted.
[SWS_Dcm_00346] dIf the function Dcm_CopyTxData is called and the Dcm module
successfully copied the data in the buffer provided in info parameter, then the function
shall return BUFREQ_OK.c
7.2.4.3.2 Dcm_TpTxConfirmation
For transmission via FlexRay the following restriction has to be considered: Since the
FlexRay Specification does not mandate the existence of a transmit interrupt, the exact
meaning of this confirmation (i.e. "transfer into the FlexRay controller’s send buffer" OR
"transmission onto the FlexRay network") depends on the capabilities of the FlexRay
communication controller and the configuration of the FlexRay Interface.
7.2.4.4 Forward responses from the DSD submodule to the PduR module
[SWS_Dcm_00114]
Upstream requirements: RS_Diag_04249
dThe DSD submodule shall request the DSL submodule for transmission of responses.c
[SWS_Dcm_00115]
Upstream requirements: RS_Diag_04249
[SWS_Dcm_01073]
Upstream requirements: RS_Diag_04249
dIn case of PeriodicTransmission, the Dcm will be called for periodic transmission with
Dcm_TxConfirmation to indicate the transmission result.c
Responses are sent with the DcmTxPduId, which is linked in the Dcm module configura-
tion to the DcmDslProtocolRxPduId, i.e. the ID the request was received with (see
configuration parameter DcmDslProtocolTx) Within PduR_DcmTransmit() only the
length information and, for generic connections, the addressing information, is given to
the PduR module. After the Dcm module has called successfully PduR_DcmTransmit(),
the PduR module will call Dcm_CopyTxData to request the Dcm module to provide the
data to be transmitted and will call Dcm_TpTxConfirmation after the complete PDU
has successfully been transmitted or an error occurred. see section 7.2.4.5 "Generic
Connection Handling for further details on address information handling within generic
connections".
[SWS_Dcm_00117]
Upstream requirements: RS_Diag_04249
dIf the DSL submodule receives a confirmation after the complete Dcm PDU has suc-
cessfully been transmitted or an error occurred by a call of Dcm_TpTxConfirmation,
then the DSL submodule shall forward this confirmation to the DSD submodule.c
More descriptions of the APIs (prototype, input/output parameter) can be found in the
interface description of the PduR module [14].
The Dcm shall be able to handle generic connections, identified by DcmPdus with Meta-
DataItems of type SOURCE_ADDRESS_16 and TARGET_ADDRESS_16. These con-
nections carry the actual tester address at run time. Generic connections are sup-
ported for diagnostics over IP and FlexRay diagnostics, and CAN diagnostics using
normal fixed or mixed 29 bit addressing formats according to ISO15765-2 [15]. De-
pending on the actual layout of the CAN IDs, generic connections could also be used
for extended or normal and mixed 11 bit addressing formats. The Dcm is not aware of
the actual addressing format used by CanTp. Several connections may reference the
same DcmPdus.
dIf the Dcm is about to send a response, response on event, or periodic message for a
generic connection request, the Dcm shall set TARGET_ADDRESS_16 to the value of
the stored source address in the MetaDataPtr in the PduR_DcmTransmit().c
[SWS_Dcm_01347]
Upstream requirements: RS_Diag_04153
[SWS_Dcm_01348]
Upstream requirements: RS_Diag_04153
dThe source address of the response transmitted via generic connections can be read
from the configuration parameter DcmDspProtocolEcuAddr. It shall be provided to
PduR_DcmTransmit() in the MetaDataItem SOURCE_ADDRESS_16, if that is config-
ured for the transmit PDU.c
Note: If different source addresses are required for certain transmitted di-
agnostic messages of the same DcmDslProtocolRow, the MetaDataItem
SOURCE_ADDRESS_16 can be omitted from the PDUs, and the address can then
be configured in the lower layers. The same is possible for physical requests, where
the TARGET_ADDRESS_16 can be omitted from the PDUs.
[SWS_Dcm_00024]
Upstream requirements: RS_Diag_04016, RS_Diag_04249
dIf the Application (or the DSP submodule) is able to perform a requested diagnos-
tic task, but needs additional time to finish the task and prepare the response, then
the DSL submodule shall send a negative response with NRC 0x78 (Response pend-
ing) when reaching the response time (DcmDspSessionP2ServerMax - DcmTim-
StrP2ServerAdjust respectively DcmDspSessionP2StarServerMax - DcmTim-
StrP2StarServerAdjust).c
Rationale for [SWS_Dcm_00024]: The DSL submodule guarantees the response tim-
ing to tester.
Rationale for [SWS_Dcm_00119]: This is needed in order to avoid overwriting the on-
going processing of requests, e.g. the application already prepared response contents
in the diagnostic buffer. The number of negative responses with NRC 0x78 (response
pending) for one diagnostic request can be limited by the configuration parameter
DcmDslDiagRespMaxNumRespPend to avoid endless NRC 0x78 transmission in case
of an application deadlock.
[SWS_Dcm_01567] dThe maximum number of negative responses with NRC 0x78 can
be configured using the optional configuration parameter DcmDslDiagRespMaxNum-
RespPend (see ECUC_Dcm_00693). If this parameter is not configured, the default
amount of negative responses with NRC 0x78 is infinite.c
The UDS service ReadDataByPeriodicIdentifier (0x2A) allows the tester to request the
periodic transmission of data record values from the ECU identified by one or more
periodicDataIdentifiers.
[SWS_Dcm_00122] dThe Dcm module shall send responses for periodic transmissions
using a separate protocol and a separate buffer of configurable size.c
Periodic transmission events can occur when not in Full Communication Mode. So the
following requirement exists:
[SWS_Dcm_00125] dThe Dcm module shall discard periodic transmission events be-
side Full Communication Mode and shall not queue it for transmission.c
[SWS_Dcm_00126] dPeriodic transmission events shall not activate the Full Commu-
nication Mode.c
With paged-buffer handling the ECU is not forced to provide a buffer, which is as large
as the maximum length of response. Please note:
• paged-buffer handling is for transmit only - no support for reception.
• paged-buffer handling is not available for the Application (DCM-internal use only).
[SWS_Dcm_01186]
Upstream requirements: RS_Diag_04147
dThe Dcm shall provide the correct amount of Data requested by the TP or return
BUFREQ_E_BUSY in case the requested amount of data is not available.c
Note: In case the requested amount of data is not available, the Dcm should fill up the
paged buffer immediately.
In some cases, e.g. in case of routine execution, the Application needs to request an
immediate NRC 0x78 (Response pending), which shall be sent immediately and not
just before reaching the response time (P2ServerMax respectively P2*ServerMax).
When the Dcm module calls an operation and gets an error status
DCM_E_FORCE_RCRRP, the DSL submodule will trigger the transmission of a
negative response with NRC 0x78 (Response pending). This response needs to be
sent from a separate buffer, in order to avoid overwriting the ongoing processing of the
request.
[SWS_Dcm_00020]
Upstream requirements: RS_Diag_04005
dThe DSL submodule shall save the level of the current active security level.c
For accessing this level, the DSL submodule provides interfaces to:
• get the current active security level: Dcm_GetSecurityLevel
• set a new security level: DslInternal_SetSecurityLevel()
[SWS_Dcm_00033]
Upstream requirements: SRS_BSW_00101, RS_Diag_04005
dDuring Dcm initialization the security level is set to the value 0x00
(DCM_SEC_LEV_LOCKED).c
[SWS_Dcm_00139] dThe DSL shall reset the security level to the value 0x00 (i.e. the
security is enabled) under one of the following conditions: - if a transition from any
diagnostic session other than the defaultSession to another session other than the de-
faultSession (including the currently active diagnostic session) is performed or - if a
transition from any diagnostic session other than the defaultSession to the defaultSes-
sion (DslInternal_SetSecurityLevel()) (initiated by UDS Service DiagnosticSessionCon-
trol (0x10) or S3Server timeout) is performed.c
[SWS_Dcm_01329] dOn every security level change the Dcm shall update the Mod-
eDeclarationGroup DcmSecurityAccess with the new security level.c
[SWS_Dcm_CONSTR_06101] dDcmDspSecurityResetAttemptCounterOnTimeout
shall be present only if the DcmDspSecurityAttemptCounterEnabled for
DcmDspSecurityRow is set to TRUE.c
Note: this may be the case when these values are stored within some specific non-
volatile memory.
[SWS_Dcm_01352] dIf the delay after the first call of the Dcm_MainFunction() which
is configured in DcmDspSecurityMaxAttemptCounterReadoutTime has been
reached and all the Xxx_GetSecurityAttemptCounter have not been called
yet (i.e. one operation has returned a DCM_E_PENDING status in the previous
Dcm_MainFunction() cycle), the pending operation shall be cancelled by a call with
the OpStatus set to DCM_CANCEL.c
[SWS_Dcm_00022]
Upstream requirements: RS_Diag_04006
dThe DSL submodule shall save the state of the current active session.c
For accessing this variable, the DSL submodule provides interfaces to:
• get the current active session: Dcm_GetSesCtrlType
• set a new session: DslInternal_SetSesCtrlType()
[SWS_Dcm_00034]
Upstream requirements: SRS_BSW_00101
dDuring Dcm initialization, the session state is set to the value 0x01 ("DefaultSession").c
The Dcm provides means for authenticated diagnostics. The DSL sub-module provides
an authentication state per diagnostic connection. It initializes this state upon startup
and takes care about fallback into non-authenticated states if the connection is idle for
some time.
dThe Dcm shall provide the authentication state of each connection via the ModeDec-
larationGroupPrototype DcmAuthenticationState_<ConnectionName>.c
The Dcm maintains an authentication state and mirrors this state to the mode dec-
laration group DcmAuthentication_<ConnectionName>. This mode declaration group
is intended to be changed only by the Dcm, however applications changing this state
have no influence on the Dcm authentication state.
dThe Dcm shall support per connection the two authentication states:c
• deauthenticated
• authenticated
Upon startup, the Dcm is in deauthenticated state or restores the persisted state. A
transition to authenticated state can only be done after the client successfully exe-
cuted the authentication sequence. In some use cases as in production, a frequent
power-on/power off sequence is performed. To keep the achieved authentication state
over the power off, there is a dedicated mode rule requesting the Dcm to persist the
authenticated state.
Transitions between authenticated states are controlled by both DSL and DSP sub-
modules. The DSL sub-module is in charge for fallback of authenticated state into
deauthenticated state. The DSP sub-module is in charge for transition changes trig-
gered from a client by diagnostic services.
dThe Dcm shall make a transition from authenticated into deauthenticated state for a
configured connection if the following conditions apply:
• The Dcm was in default session when the last diagnostic response was sent on
that connection and
• DcmDspAuthenticationDefaultSessionTimeOut is configured and no di-
agnostic request was received on that connection for DcmDspAuthentica-
tionDefaultSessionTimeOut seconds after the last Dcm_TpTxConfirma-
tion on that connection.
c
dIf the Dcm is in a non-default session and a S3server timeout occurs, the Dcm shall
perform a transition from authenticated into deauthenticated state on the authentication
state assigned to that connection which was in a non-default session.c
dUpon a transition from authenticated into deauthenticated state, the Dcm shall dis-
card the current role, white list and use the configured deauthentication role from
DcmDspAuthenticationDeauthenticatedRoleRef.c
In some use cases, it is desirable that the application set the role instead of using
a diagnostic service with its potentially time-consuming certificate parsing. The Dcm
provides the API Dcm_SetDeauthenticatedRole to overwrite the configured deau-
thentication role. The overwritten role is only valid in deauthenticated state will not be
persisted and is overwritten by a role provided by certificates via service 0x29.
dIf the authentication state is not persisted, at startup the Dcm shall always be in the
deauthenticated state and use the default role configured in DcmDspAuthentica-
tionDeauthenticatedRoleRef.c
The Dcm supports the ISO14229-1 [1] defined sessions. There are two kind of ses-
sions, the default session and the non-default sessions. In a non-default session the
S3 timer is used to detect inactive testers and if the timer elapses the default session
is entered.
dThe Dcm shall support the S3Server and start and stop this timer according to
ISO14229-2 [3].c
dThe Dcm shall start or stop the S3Server according to ISO14229-2 [3] but only for the
client on the DcmDslConnection that requested the non-default session.c
dIf the S3Server elapses, the Dcm shall switch back to default session.c
[SWS_Dcm_00027]
Upstream requirements: RS_Diag_04015, RS_Diag_04249
dThe Dcm module shall handle the following protocol timing parameters in compli-
ance with ISO14229-2 [3]: P2ServerMin, P2ServerMax, P2*ServerMin, P2*ServerMax,
S3Serverc
[SWS_Dcm_00143]
Upstream requirements: RS_Diag_04015, RS_Diag_04249
dP2min / P2*min shall be set to defined values: P2min = 0ms, P2*min = 0ms.c
These protocol timing parameters have influence on the session layer timing (no influ-
ence on Transport Layer timing). Some of these timing parameters can be modified
while protocol is active with the following means:
• UDS Service DiagnosticSessionControl (0x10)
• UDS Service AccessTimingParameter (0x83)
The DSL submodule provides the following functionalities to modify the timing parame-
ters:
• Provide the active timing parameters,
• Set the new timing parameters. Activation of new timing values is only allowed
after sending the response.
For the different protocols a different set of allowed diagnostic services is valid (e.g.
the UDS commands for the enhanced diagnosis, the OBD mode services for the OBD
protocol). It is possible to create different service tables and link them to the diagnostic
protocol.
[SWS_Dcm_00035]
Upstream requirements: SRS_BSW_00101
dWith every protocol initialization, the DSL submodule sets a link to the corresponding
service table (see configuration parameter DcmDslProtocolSIDTable).c
The DSD submodule uses this link for further processing of diagnostic requests.
[SWS_Dcm_00015]
Upstream requirements: RS_Diag_04021
dA protocol with higher priority is allowed to preempt the already running protocol.c
[SWS_Dcm_00079]
Upstream requirements: RS_Diag_04021
dIf a protocol is preempted and this protocol has a running pending response trans-
mission, the Dcm shall call PduR_DcmCancelTransmit () for this transmission with the
following parameters: PduId: the id of the Pdu to be canceledc
[SWS_Dcm_00460]
Upstream requirements: RS_Diag_04021
[SWS_Dcm_01046]
Upstream requirements: RS_Diag_04021
dIf a running diagnostic request is preempted by a higher priority request, the Dcm shall
cancel all external pending operations on the preempted protocol with Dcm_OpStatus
set to DCM_CANCEL.c
[SWS_Dcm_01047] dIn case an operation to the Dem is pending and the new request
also requires an interaction with the Dem, the Dcm shall accept the new request and
call the corresponding Dem API with the parameters from the new request.c
[SWS_Dcm_00575]
Upstream requirements: RS_Diag_04021
dIf the Dcm is preempting a protocol with a pending reception, the Dcm module shall
call cancel that reception with PduR_DcmCancelReceive().c
[SWS_Dcm_00576]
Upstream requirements: RS_Diag_04021
dIf PduR_DcmCancelReceive () returns E_NOT_OK, the Dcm shall stop the current
protocol.c
[SWS_Dcm_00727]
Upstream requirements: RS_Diag_04021
dIf a diagnostic request cannot be processed due to a higher priority protocol and
DcmDslDiagRespOnSecondDeclinedRequest is set to True, the Dcm shall send
NRC 0x21 (BusyRepeatRequest) for the not processed request.c
[SWS_Dcm_01605]
Upstream requirements: RS_Diag_04021
dIf a diagnostic cannot be processed due to a higher priority protocol and DcmDslDia-
gRespOnSecondDeclinedRequest is set to False, the Dcm shall ignore the request.
In this case no response message at all is generated.c
[SWS_Dcm_00729] dIn case of multiple clients with different PduIDs which are re-
questing the same protocol, as all the connections of the same protocol are having the
same priority, a second request (with the different RxPduId) will not be processed. If the
configuration parameter DcmDslDiagRespOnSecondDeclinedRequest is TRUE, a
negative response with NRC 0x21 (BusyRepeatRequest) shall be issued for the second
request. If the configuration parameter is FALSE, no response shall be issued.c
Note:
[SWS_Dcm_01050] dIn case of diagnostic parallel requests, with same / lower pri-
ority than the active request then the ComM APIs (ComM_DCM_ActiveDiagnostic,
ComM_DCM_InactiveDiagnostic) shall not be called.c
Multiple testers are a common scenario in today’s vehicles. In order to reduce the in-
terference between concurrent tester requests to a minimum the Dcm supports parallel
diagnostic service processing. This behavior is according to recommended practice
of ISO 14229-1 Appendix J. There are certain restrictions, that in non-default session
only diagnostic communication from one tester is allowed. In default session and for
OBD-II communication it is possible to process diagnostic requests in parallel. Parallel
OBD and UDS communication is particularly important if vehicles are equipped with
so called ’OBD dongles’ or with electronical logging devices. These devices are in-
stalled by the vehicle owner and do diagnostic communication over standardized OBD
services. The presence of such devices shall interfere as little as possible with vehi-
cle internal UDS communication. Therefore, whenever it is possible, the Dcm supports
parallel processing.
dIf the Dcm receives a request and no further protocol with a higher priority is currently
in a non-default session, the Dcm shall accept the new incoming request and process
it.c
dIf the Dcm receives a request and a further protocol with a higher priority is currently
in a non-default session, the Dcm shall decline the new received request according to
[SWS_Dcm_00727].c
Some Dcm interfaces provide access to different diagnostic services, e.g. interface
RoutineService for subfunctions Start, Stop and Request Result of a RoutineControl
(0x31) or the interface DataServices for the Read and Write operations. On these
interfaces only a single client shall access to the data at any point in time.
dIf the Dcm receives a request and the service processing of this request requires a
call to the same application interface that is currently processing another request, the
Dcm shall delay the call to the interface until the running operation on that application
interface has finished.c
If the Dcm delays the service processing due to [SWS_Dcm_01604] the standard timing
behavior with P2 and NRC 0x78 apply. From an outside perspective, the delayed call
to the application looks like that the application itself is taking more time for execution.
[SWS_Dcm_01367]
Upstream requirements: RS_Diag_04163
dThe Dcm shall process incoming OBD-II requests in parallel to a running UDS request.
In this case the protocol priority check according to [SWS_Dcm_00015] is skipped and
no protocol pre-emption is done.c
With the container DcmDslProtocolRow, the Dcm configuration supports multiple pro-
tocols. Each protocol has a configured DcmDemClientRef defining the Dem client in-
teracting with the Dem. This client Id allows the Dem to distinguish between concurrent
calls of the Dcm of the same function or set of functions to process a certain request.
[SWS_Dcm_01369]
Upstream requirements: RS_Diag_04162
dWhile processing a diagnostic request received from a given protocol, the Dcm shall
determine the DcmDemClientRef of the DcmDslProtocolRow of the processed pro-
tocol. The Dcm shall use this value in all Dem API calls that have a ClientId as parame-
ter.c
dThe Dcm shall internally serialize all asynchronous C/S interface or C function calls
to the same port interface or C function during parallel diagnostic services processing
and return a pending to the re-entrant caller.c
[SWS_Dcm_01371]
Upstream requirements: RS_Diag_04162
dIf the Dcm receives a request on a higher priority protocol than the currently processed
request and a diagnostic service in a non-default session is currently processed, the
Dcm shall cancel the running diagnostic request, make a transition into default session
and process the new received request.c
Integrators will assign OBD protocols the highest priority to meet the legislated response
and timing requirements. Therefore, all definitions of ’higher priority protocols’ apply to
the use case where OBD is used.
[SWS_Dcm_01372]
Upstream requirements: RS_Diag_04162
dIf the Dcm processes a request from a high priority protocol in default session and
the Dcm is receiving a diagnostic request to change in a non-default session, the Dcm
shall delay the session change request until the high priority protocol service is finished
according to [SWS_Dcm_01371] and make a transition into the requested non-default
session.c
Due to limited resources, the following points should be considered as hints for the
design:
• It is allowed to use and allocate only one diagnostic buffer in the Dcm module.
This buffer is then used for processing the diagnostic requests and responses.
• Output of NRC 0x78 (Response pending) responses is done with a separate
buffer.
• paged-buffer handling (see [SWS_Dcm_00028]).
Communication Mode Handling is an interface between Dcm and ComM. The ComM
informs the Dcm about the current communication state of a channel. The Dcm is calling
the ComM about active Diagnostic which shall prevent an Ecu shutdown/sleep.
The status ActiveDiagnostic shows if diagnostic requests shall keep the ECU awake
(ActiveDiagnostic ==’DCM_COMM_ACTIVE’) or if diagnostic requests shall not pre-
vent an Ecu shutdown/sleep (ActiveDiagnostic ==’DCM_COMM_NOT_ACTIVE’). Ap-
plication can change the status ActiveDiagnostic regarding to system conditions.
[SWS_Dcm_01071] dIf Xxx_SetActiveDiagnostic() is called with ’true’ the Dcm set Ac-
tiveDiagnostic to ’DCM_COMM_ACTIVE’.c
[SWS_Dcm_01142] dThe Dcm shall wait the Full Communication mode indication from
the ComM (call to Dcm_ComM_FullComModeEntered) before initiating the trans-
mission of the diagnostic answer. The time to wait should be no longer than the
P2ServerMax calculated from the moment the request was received.c
Note : On the reception side a silent communication mode can lead to the lost of the
request in case of segmented transmission.
7.2.4.16.1 No Communication
The ComM module will indicate the No Communication Mode to the Dcm module by
calling Dcm_ComM_NoComModeEntered. In response, the Dcm will immediately dis-
able all transmissions (see the definition of Dcm_ComM_NoComModeEntered for de-
tails).
The ComM module will indicate the Silent Communication Mode to the Dcm module by
calling Dcm_ComM_SilentComModeEntered. In response, the Dcm will immediately
disable all transmissions (see the definition of Dcm_ComM_SilentComModeEntered
for details).
The ComM module will indicate the Full Communication Mode to the Dcm module by
calling Dcm_ComM_FullComModeEntered. In response, the Dcm will enable all trans-
missions (see the definition of Dcm_ComM_FullComModeEntered for details).
The Dcm notifies the ComM module about the internal diagnostic state for all networks.
There are two options for the diagnostic state on a network. In ’active’ diagnostic state,
the Dcm is processing one or more diagnostic requests from this network or the Dcm is
in a non-default session. In ’inactive’ diagnostic state, the Dcm is in default session and
is not processing a diagnostic request on that network.
When a network has no communication in progress, the Dcm will set the diagnostic ac-
tivation state to ’inactive’. When there is a diagnostic communication on a network the
Dcm sets the diagnostic state to ’active’. In any non-default session, the diagnostic state
remains in state ’active’. The communication state can also be controlled by the API
Xxx_SetActiveDiagnostic according to [SWS_Dcm_01070] and [SWS_Dcm_01071].
[SWS_Dcm_01373]
Upstream requirements: RS_Diag_04006
dThe Dcm shall go into ’active’ diagnostic state on a network, if a diagnostic request
is received on a network or the diagnostic session is changed to any non-default ses-
sion.c
[SWS_Dcm_01374]
Upstream requirements: RS_Diag_04006
dThe Dcm shall go into ’inactive’ diagnostic state on a network when the current di-
agnostic request processing is finished and the Dcm is not processing a diagnostic
request of another protocol on this network and if the Dcm is in default session.c
[SWS_Dcm_01375]
Upstream requirements: RS_Diag_04006
dThe Dcm shall go into ’inactive’ diagnostic state on all networks if a S3Server timeout
occurs and the Dcm makes a transition into default session.c
[SWS_Dcm_01376]
Upstream requirements: RS_Diag_04006
[SWS_Dcm_01377]
Upstream requirements: RS_Diag_04006
dUpon a diagnostic state transition into ’inactive’, the Dcm shall notify the
ComM module about an inactive diagnostic state on a network by calling
ComM_DCM_InactiveDiagnostic(NetworkId), with the networkId associated to the re-
ceived Pdu (see DcmDslProtocolComMChannelRef).c
[SWS_Dcm_01378]
Upstream requirements: RS_Diag_04006
7.3.1 Introduction
The DSD submodule is responsible to check the validity of an incoming diagnostic re-
quest (Verification of Diagnostic Session/Security Access levels/Application permis-
sion) and keeps track of the progress of a service request execution.
[SWS_Dcm_00178] dThe DSD submodule shall only process valid requests and shall
reject invalid ones.c
The following use cases are relevant and are described in detail in the following:
• Receive a request message and transmit a positive response message
• Receive a request message and suppress a positive response
This is the standard use case of normal communication ("ping-pong"). The server
receives a diagnostic request message. The DSD submodule ensures the validity of
the request message. In this use case, the request is valid and the response will be
positive. The request will be forwarded to the appropriate data processor in the DSP
submodule. When the data processor has finished all actions of data processing, it
triggers the transmission of the response message by the DSD submodule.
If the data processor processes the service immediately as part of the request indica-
tion function, the data processor can trigger the transmission inside this indication func-
tion ("synchronous"). If the processing takes a longer time (e. g. waiting on EEPROM
driver), the data processor defers some processing ("asynchronous"). The response
pending mechanism is covered by the DSL submodule. The data processor triggers
the transmission explicitly, but from within the data processor’s context.
As soon as a request message is received, the corresponding DcmPduId is blocked by
the DSL submodule (see [SWS_Dcm_00241]). During the processing of this request,
no other request of the same protocol type (e.g. an enhanced session can be ended
by a OBD session) can be received, until the corresponding response message is sent
and the DcmPduId is released again.
This is a sub-use-case of the previous one. Within the UDS protocol it is possible
to suppress the positive response by setting a special bit in the request message
(see [SWS_Dcm_00200]). This special suppression handling is completely performed
within the DSD submodule.
In case of functional addressing the DSD submodule shall suppress the negative re-
sponse for NRC 0x11, 0x12, 0x31, 0x7E and 0x7F (see [SWS_Dcm_00001]).
There are a many different reasons why a request message is rejected and a negative
response is to be sent. If a diagnostic request is not valid or if a request may not be
executed in the current session, the DSD submodule will reject the processing and a
negative response will be returned.
But there are even many reasons to reject the execution of a well-formed request mes-
sage, e.g. if the ECU or system state does not allow the execution. In this case, the
DSP submodule will trigger a negative response including an NRC supplying additional
information why this request was rejected.
In case of a request composed of several parameters (e.g. a UDS Service Read-
DataByIdentifier (0x22) request with more than one identifier to read), each parameter
is treated separately. And each of these parameters can return an error. This kind of
request returns a positive response if at least one of the parameters was processed
successfully.
[SWS_Dcm_00827] dThe DSD sub-module shall check the received diagnostic request
in the order given by ISO14229-1 [1]. If one of the computations failed the Dcm shall
stop the execution of the NRC check sequence then stop or do not start the execution of
the received diagnostic request and finally transmit the NRC for which the computation
failed.c
There are two services within the UDS protocol, where multiple responses are sent for
only one request. In general, one service is used to enable (and disable) an event- or
time-triggered transmission of another service, which again is sent by the ECU without
a corresponding request (see ISO14229-1 [1]). These services are:
• UDS Service ReadDataByPeriodicIdentifier (0x2A). This service allows the client
to request the periodic transmission of data record values from the server identi-
fied by one or more periodicDataIdentifiers.
Type 2 = UUDT message on a separate DcmTxPduId.
• ResponseOnEvent (0x86). This service requests a server to start or stop trans-
mission of responses on a specified event.
Type 1 = USDT messages on the DcmTxPduId already used for normal diagnos-
tic responses,
Type 2 = USDT messages on separate DcmTxPduId.
For Type 1, the outgoing messages must be synchronized with "normal outgoing
messages", which have a higher priority.
This handling is especially controlled by the DSL submodule. However, the DSD sub-
module also provides the possibility to generate a response without a corresponding
request.
Within the diagnostic protocol, some services allow to exchange a significant amount
of data, e.g. UDS Service ReadDTCInformation (0x19) and UDS Service TransferData
(0x36).
In the conventional approach, the ECU internal buffer must be large enough to keep
the longest data message which is to be exchanged (worst-case) and the complete
buffer is filled before the transmission is started.
RAM memory in an ECU often is a critical resource, especially in smaller micros. In
a more memory-saving approach, the buffer is filled only partly, transmitted partly and
then refilled partly - and so on. This paging mechanism requires only a significantly re-
duced amount of memory, but demands a well-defined reaction time for buffer refilling.
The user can decide whether to use the "linear buffer" or paged-buffer for diagnostics.
The DSD submodule is called by the DSL submodule when receiving a diagnostic mes-
sage and performs the following operations:
• delegates processing of request to the DSP submodule or external modules out-
side the Dcm
• keeps track of request processing (Return the status on <Module>_<Diagnos-
ticService>() and <Module>_<DiagnosticService>_<SubService>() APIs call or
"Service Interpreter calls")
• transmits the response of the Application to the DSL submodule (Transmit func-
tionality)
Direction Explanation
Bidirectional Exchange of the Diagnostic Messages (receive/transmit).
DSD submodule to DSL Obtain latest diagnostic session and latest security level.
submodule
DSL submodule to DSD Confirmation of transmission of Diagnostic Message.
submodule
Table 7.1: Interaction between the DSD submodule and the DSL submodule
Direction Explanation
DSD submodule to DSP - Delegate processing of request.
submodule - Confirmation of transmission of Diagnostic Message.
DSP submodule to DSD - Signal that processing is finished.
submodule
7.3.4.1 Support checking the diagnostic service identifier and adapting the di-
agnostic message
The DSD submodule shall be triggered by the DSL submodule if a new diagnostic mes-
sage is recognized. The DSD submodule will start processing by analyzing the diag-
nostic service identifier contained in the received diagnostic message.
[SWS_Dcm_00193] dDuring this check, the DSD submodule shall search the newly
received diagnostic service identifier in the "Service Identifier Table".c
For performance reasons it might be necessary that the support check is done with a
"lookup table" functionality. In this "Service Identifier Table" all supported Service IDs
of the ECU are predefined.
[SWS_Dcm_00195] dThe DSL submodule shall provide the current "Service Identifier
Table"c
Rationale for [SWS_Dcm_00195]: The "Service Identifier Table" and the information
about the supported services will be generated out of the configuration. More than one
Service Identifier Table can be configured for selection. At one time only one Service
Identifier Table can be active.
[SWS_Dcm_00196] dFor the check, the DSD submodule shall scan the active "Ser-
vice Identifier Table" for a newly received diagnostic service identifier. If this service
identifier is supported and if the configuration parameter DcmDsdSidTabFnc (see
ECUC_Dcm_00777) is not empty, the DSD submodule shall call the configured service
interface (<Module>_<DiagnosticService>). If the configuration parameter is empty,
the Dcm shall call the internally implemented service interface.c
The diagnostic service identifier is not supported when it is not included in the "Service
Identifier Table".
[SWS_Dcm_00197] dIf the newly received diagnostic service identifier is not sup-
ported, the DSD submodule shall transmit a negative response with NRC 0x11 (Service
not supported) to the DSL submodule.c
[SWS_Dcm_00198] dThe DSD submodule shall store the newly received diagnostic
service identifier for later use.c
[SWS_Dcm_00733] dThe Dcm shall not accept further requests (on same or lower
priority) while <Module>_<DiagnosticService>() returns DCM_E_PENDING. Dcm-
internal timeout handling (based on RCR-RP limitation) may lead to a cancellation
of the external diagnostic service processing.c
[SWS_Dcm_00200]
Upstream requirements: RS_Diag_04020
[SWS_Dcm_00203] dIn case of responsePending the Dcm module shall clear the "sup-
pressPosRspMsgIndicationBit."c
Rationale for [SWS_Dcm_00203]: In the described case the final response (negative/-
positive) is required.
Prior of execution of a received diagnostic service, the DSD performs a set of verifica-
tions. The DSD will only accept a service, if all verifications are successfully passed.
dThe Dcm shall only accept a diagnostic request, if the following verifications have
been passed in the following order:c
[SWS_Dcm_01474]
Upstream requirements: RS_Diag_04235
dIn case the DSD generates a NRC, the Dcm shall only call XXX_Confirmation.c
The UDS service Authentication (0x29) is used to change the authentication state of a
diagnostic connection and to provide the access rights. Depending on the reached role
and provided white list a dynamic set of diagnostic services is available for the tester
on that connection. The DSD submodule verifies on service ID (SID) and sub-function
(SF) level, if a service can be executed or not.
dThe Dcm shall only verify the authentication for UDS services. A UDS service has a
service ID within the range of 0x10 and 0xFF.c
OBD services are explicitly excluded from authentication checks. By legislation the
OBD services need to be always available, independent from active authentication
state. If WWH-OBD is used the system engineer must ensure that these services are
always accessible.
dThe Dcm shall only verify and check the configured access rights of a diagnostic
service, if the container DcmDspAuthentication is configured.c
dIf the current connection is in deauthenticated state, the Dcm shall use the role con-
figured by DcmDspAuthenticationDeauthenticatedRoleRef as current role for
all role based access verification checks.c
dThe Dcm shall allow the service execution, if a role verification was successful or the
service is allowed by the white list.c
dThe Dcm shall check if a service execution is permitted in the current authentication
check or not. The Dcm shall perform the following checks in the given order below. If
a check grants access to a service, the remaining checks are skipped:
1. Checks on service ID level
2. Checks on service ID and sub-function level
dUpon processing a diagnostic service, the Dcm shall grant access to the diagnostic
service if:
1. for that service a service role is configured via DcmDsdServiceRoleRef and
the verification according to [SWS_Dcm_01522] was successful or
2. the active white list on that connection has one entry for a SID (1-byte element)
which matches that service.
c
dUpon processing a diagnostic service with sub-function, the Dcm shall grant access
to the diagnostic service if:
1. for that service and subfunction a subservice service role is config-
ured via DcmDsdSubServiceRoleRef and the verification according to
[SWS_Dcm_01522] was successful or
2. the active white list on that connection has one entry for a SID with sub-function
(2-byte element) that matches that service and sub-function.
c
dFor 3 and 4 bytes white list for services entries, the Dcm shall verify on the full length
of the configured white list service element. The service is granted access if the first
bytes of the received request match the entire white list entry.c
Verification of byte 3 and 4 within the Dsd is beyond the scope of a typical Dsd opera-
tion. It provides means to extend the capabilities of white list service verifications and
gives means to adapt to legacy authentication solutions.
dIf the service execution verification fails due to a failed check in scope of
[SWS_Dcm_01540], the Dcm shall send a NRC 0x34 authenticationRequired and stop
the service processing.c
[SWS_Dcm_00211] dIf the newly received diagnostic service is not allowed in the cur-
rent Diagnostic Session (according to the configuration parameter DcmDsdSidTab-
SessionLevelRef), the DSD submodule shall transmit a negative response with NRC
0x7F (serviceNotSupportedInActiveSession) to the DSL submodule.c
[SWS_Dcm_00616] dIf the newly received diagnostic service is allowed in the current
Diagnostic Session ( see [SWS_Dcm_00211]), but the requested subservice is not
allowed in the current Diagnostic Session (according to the configuration parameter
DcmDsdSubServiceSessionLevelRef), the DSD submodule shall transmit a neg-
ative response with NRC 0x7E (subFunctionNotSupportedInActiveSession) to the DSL
submodule.c
The purpose of the Security Access level handling is to provide a possibility to access
data and/or diagnostic services, which have restricted access for security, emissions, or
safety reasons. The DSD submodule shall perform this handling with the UDS Service
SecurityAccess (0x27). The DSD submodule will perform a verification whether the
execution of the requested service (NOT the UDS Service SecurityAccess (0x27)) is
allowed in the current Security level by asking for the current security level, using the
DSL function Dcm_GetSecurityLevel.
The management of the security level is not part of the DSD submodule.
Note: For some use cases (e.g. UDS Service ReadDataByIdentifier (0x22), where
some DataIdentifier can be secure) it will be necessary for the Application to call also
the function Dcm_GetSecurityLevel.
[SWS_Dcm_00217] dIf the newly received diagnostic service is not allowed in the
current Security level (according to the configuration parameter DcmDsdSidTabSe-
curityLevelRef), the DSD submodule shall transmit a negative response with NRC
0x33 (Security access denied) to the DSL submodule.c
[SWS_Dcm_00617] dIf the newly received diagnostic service is allowed in the current
Security level ( see [SWS_Dcm_00217]), but the requested subservice is not allowed in
the current Security level (according to the configuration parameter DcmDsdSubSer-
viceSecurityLevelRef), the DSD submodule shall transmit a negative response
with NRC 0x33 (Security access denied) to the DSL submodule.c
[SWS_Dcm_00773] dIf the newly received diagnostic service is not allowed in the
current mode condition (according to the configuration parameter DcmDsdSidTab-
ModeRuleRef), the DSD submodule shall transmit the calculated negative response
of the referenced DcmModeRule to the DSL submodule.c
[SWS_Dcm_00774] dIf the newly received diagnostic service is allowed in the cur-
rent mode condition [SWS_Dcm_00773], but the requested subservice is not allowed
in the current mode condition (according to the configuration parameter DcmDsdSub-
ServiceModeRuleRef), the DSD submodule shall transmit the calculated negative
response of the referenced DcmModeRule to the DSL submodule.c
The DSD submodule checks whether a specific subfunction is supported before exe-
cuting the requested command.
The DSD submodule will check for the minimum message length before executing the
requested command.
[SWS_Dcm_00696] dThe DSD submodule shall trigger a negative response with NRC
0x13 (Incorrect message length or invalid format), if the length of the request is inferior
to the minimum length of the request.c
The purpose of this functionality is that, just after receiving the diagnostic request, the
Manufacturer Application is requested to check permission/environment.
E.g. in after-run ECU state, it might be not allowed to process OBD requests.
[SWS_Dcm_01321]
Upstream requirements: RS_Diag_04011
The purpose of this functionality is that, right before processing the diagnostic mes-
sage, the Supplier Application is requested to check permission/environment.
E.g. in after-run ECU state, it might be not allowed to process OBD requests.
[SWS_Dcm_01322]
Upstream requirements: RS_Diag_04011
[SWS_Dcm_00221] dThe DSD submodule shall search for the executable functionality
of the DSP submodule for newly received diagnostic service identifier and shall call the
corresponding DSP service interpreter.c
[SWS_Dcm_00222] dWhen the DSP submodule has finished the execution of the re-
quested Diagnostic Service the DSD submodule shall assemble the response.c
The execution of the DSP service interpreter can have the results:
• positive Result or
• negative Result.
Following possible Responses can be assembled:
• positive Response,
• negative Response, or
• no Response (in the case of suppression of responses).
[SWS_Dcm_00223] dThe DSD submodule shall add the response service identi-
fier and the response data stream (returned by the Application) in the parameter
"Dcm_MsgContextType".c
The DSP submodule can trigger the transmission of a negative response with a specific
NRC to the DSD submodule. For the allowed NRC of the executed Service ID please
refer to the specification of the service in ISO14229-1 [1] (Response code parame-
ter definition Table 18 of ISO 14229-1:2020) and ISO15031-5 [2]. The DSP and the
Application have to take care of the correct use of NRC of the executed Service ID.
[SWS_Dcm_00228] dThe DSD submodule shall handle all NRCs supported from the
Application and defined in Dcm_NegativeResponseCodeType.c
[SWS_Dcm_00001]
Upstream requirements: RS_Diag_04020
dIn the case of a Negative Result of the execution and active Functional Address-
ing the DSD submodule shall activate the suppression of the following Negative Re-
sponses:
• NRC 0x11 (Service not supported),
• NRC 0x12 (SubFunction not supported),
• NRC 0x31 (Request out of range),
• NRC 0x7E (Subfunction not supported in active session),
• NRC 0x7F (Service not supported in active session)
c
The DSL submodule will receive a confirmation by the PduR module upon forwarding
the data.
[SWS_Dcm_00235] dThe DSL submodule shall forward the received confirmation from
the PduR module to the DSD submodule.c
[SWS_Dcm_00236] dThe DSD submodule shall forward the confirmation via the inter-
nal function DspInternal_DcmConfirmation() to the DSP submodule.c
[SWS_Dcm_00238] dIn the case that no diagnostic (response) message shall be sent
(Suppression of Responses) the DSL submodule shall not transmit any response.c
In this case no Data Confirmation is sent from the DSL submodule to the
DSD submodule but the DSD submodule will still call internal function DspInter-
nal_DcmConfirmation().
[SWS_Dcm_00240] dIn case the request has been fully processed by the Dcm, The
DSD submodule shall finish the processing of one Diagnostic Message of the Diagnos-
tic Service Dispatcher by calling DspInternal_DcmConfirmation().c
Rationale for [SWS_Dcm_00240]: The DSP submodule is waiting for the execution of
the DspInternal_DcmConfirmation() functionality. So it has to be sent, also when no
Data Confirmation is provided. Altogether this means that in any of the following cases:
• Positive Response,
• Negative Response,
• Suppressed Positive Response, and
• Suppressed Negative Response
The DSD submodule will finish by calling DspInternal_DcmConfirmation() (refer to
8.10.3 DspInternal_DcmConfirmation).
[SWS_Dcm_00742] dThe call of Xxx_Confirmation() shall be done right after the call
of DspInternal_DcmConfirmation()c
[SWS_Dcm_00678] dIf the operation Indication() returns value E_NOT_OK, the Dcm
module shall send a negative response with NRC value equal to ErrorCode parameter
value.c
7.4.1 General
When receiving a function call from the DSD submodule requiring the DSP submodule
to process a diagnostic service request, the DSP always carries out following basic
process steps:
• analyze the received request message,
• check format and whether the addressed subfunction is supported,
• acquire data or execute the required function call on the DEM, SW-Cs or other
BSW modules
• assemble the response
The following sections are some general clarifications.
The DSP submodule will check for appropriate message length and structure before
executing the requested command.
[SWS_Dcm_00272] dThe DSP submodule shall trigger a negative response with NRC
0x13 (Incorrect message length or invalid format), when the analysis of the request
message results in formatting or length failure.c
Note: It is up to the implementation in which detail the format check might be executed
and depends on the level of detail the diagnostic data description provides at compile
time.
[SWS_Dcm_00039] dThe DSP submodule shall assemble the response message ex-
cluding response service identifier and determine the response message length.c
[SWS_Dcm_00038] dIf the paged-buffer mechanism is used, the DSP submodule shall
determine the overall response length before any data is passed to the DSD submodule
or the DSL submodule respectively.c
[SWS_Dcm_00275] dThe DSP submodule shall trigger a negative response with NRC
0x31 (Request out of range), when the analysis of the request message results in other
unsupported message parameters.c
The Dcm shall act as a mode manager for the diagnostic modes:
• 1. DcmDiagnosticSessionControl (service 0x10)
[SWS_Dcm_01328] d
1 ModeSwitchInterface SchM_Switch_<bsnp>_DcmSecurityAccess {
2 isService = true;
3 SecLevel currentMode;
4 };
[SWS_Dcm_00780] dThe Dcm shall define for each network which is consid-
ered in the CommunicationControl service a separate ModeDeclarationGroupProto-
type DcmCommunicationControl_<symbolic name of ComMChannelId> as provided-
ModeGroup in its Basic Software Module instance based on the ModeDeclara-
tionGroup DcmCommunicationControl.c
[SWS_Dcm_00933] dThe Dcm shall define for each RoeEvent a separate ModeDec-
larationGroupPrototype DcmResponseOnEvent_<Symbolic name of RoeEventId> as
provided-ModeGroup in its Basic Software Module instance based on the ModeDecla-
rationGroup DcmResponseOnEvent.c
The Dcm provides a state machine for each RoeEvent. The state for a RoeEvent is
needed by SWC to activate event reporting or report the Roe status to a Did. Therefore
the Dcm provides for each state of each RoeEvent a ModeDeclarationGroupPrototype
which reports the current state of the state machine as mode.
[SWS_Dcm_01119] Mode condition evaluation dFor each mode condition, the Dcm
shall compare a compare value with a S/R data element. The compare value is pro-
vided by DcmSwcSRDataElementValueRef or DcmModeConditionConnectionCertifi-
cateCompareElementRef and the S/R Element is by DcmSwcSRDataElementRef. The
mode condition is evaluated to true if the S/R data element value is:
• equal to the compare value in case of DcmConditionType is set to
DCM_EQUALS
• unequal to the compare value in case of DcmConditionType is set to
DCM_EQUALS_NOT
• greater than the compare value in case of DcmConditionType is set to
DCM_GREATER_THAN
• greater or equal than the compare value in case of DcmConditionType is set
to DCM_GREATER_OR_EQUAL
• less than the compare value in case of DcmConditionType is set to
DCM_LESS_THAN
• less or equal than the compare value in case of DcmConditionType is set to
DCM_LESS_OR_EQUAL.
c
Mode rules for DcmDspAuthenticationConnection are not part of the NRC eval-
uation.
Note: The difference in the AND and OR logical operation is to allow an optimized
implementation.
[SWS_Dcm_00815] dIn case the complete evaluation result in no specific NRC the NRC
0x22 (ConditionsNotCorrect) shall be used.c
Example 2:
1) DcmModeRule1 uses an AND combination (DcmModeCondition1 AND Dcm-
ModeRule2 AND DcmModeRule3)
a) DcmModeCondition1 is failing
–> NRC 0x22 is returned
b) DcmModeRule2 is failing
–> NRC 0x72 is returned
c) DcmModeRule3 is failing
–> NRC 0x22 is returned
d) DcmModeCondition1, DcmModeRule2 and DcmModeRule3 are failing
–> NRC 0x22 is returned
e) DcmModeCondition1 and DcmModeRule3 are failing
–> NRC 0x22 is returned
e) DcmModeRule2 and DcmModeRule3 are failing
–> NRC 0x72 is returned
7.4.1.7 Passing SwDataDefProps properties from DEXT file to the Dcm Service
SW-C
[SWS_Dcm_01412] dIf a Dem function returns DEM_PENDING, the Dcm shall call this
function again at a later point in time as long as DEM_PENDING is returned.c
dThe Dcm shall execute the diagnostic request validation, negative response code (
NRC) determination and processing according to ISO 14229-1 [1].c
[SWS_Dcm_00442] dThe Dcm module shall implement the services of UDS according
to [SWS_Dcm_01641].c
Fault memory related diagnostic services are by default processed directly within the
Dcm. The Dcm uses the Dem module to clear, query, and read diagnostic fault codes,
status, and related data. The option to process such a diagnostic via the callout of the
DSD sub-module, e.g. DcmDsdSubServiceFnc for service 0x19, is considered an
exceptional use case.
This chapter describes general rules, and how the Dcm interacts with the Dem to fulfill
the task to process the fault memory related UDS services.
The UDS defined DTC status availability mask is managed by the Dem module and
therefore not configured in the Dcm. When this mask is required the Dcm uses the
Dem_GetDTCStatusAvailabilityMask API to read this information.
The UDS defined severity DTC severity availability mask is also managed
by the Dem and therefore not configured by the Dcm. The Dcm uses
Dem_GetDTCStatusAvailabilityMask to retrieve this mask information.
To ensure consistent event related data during the reading sequence, the Dcm module
will lock the update of event related data during the read operation. The Dem provides
Dem_DisableDTCRecordUpdate and Dem_EnableDTCRecordUpdate to temporarily
stop updating the event memory. In particular, this happens during the use of the
following Dem APIs.
• Dem_SelectExtendedDataRecord()
• Dem_GetSizeOfExtendedDataRecordSelection()
• Dem_GetNextExtendedDataRecord()
• Dem_SelectFreezeFrameData()
• Dem_GetSizeOfFreezeFrameSelection() and
• Dem_GetNextFreezeFrameData()
Potentially time consuming API calls in the Dem are designed asynchronous so that the
call can return and the caller can call again at a later time to retrieve the requested
data. These APIs have DEM_PENDING as a possible return value. If this return value
is detected, the Dcm will call again with the same parameters. The time of the next call
is implementation specific, but mostly this will occur in the next Dcm_MainFunction.
Repeated occurring DEM_PENDING as the return value from the Dem can result in
ResponsePending NRC 0x78 sent by the Dcm.
UDS Service 0x10 allows an external tester to enable different diagnostic sessions in
the server. A diagnostic session enables a specific set of diagnostic services and/or
functionality in the server. The service request contains the parameter:
• diagnosticSessionType
[SWS_Dcm_00250]
Upstream requirements: RS_Diag_04006
dThe Dcm module shall implement the UDS Service 0x10 according to ISO 14229-
1:2020 [9]c
If the requested subfunction value is configured, the following steps are processed
even if the requested session type is equal to the already running session type (see
ISO14229-1 [1] Section 9.2).
[SWS_Dcm_00311]
Upstream requirements: RS_Diag_04248
dThe send confirmation function shall set the new diagnostic session type
with DslInternal_SetSesCtrlType() and shall set the new timing parameters
(P2ServerMax, P2ServerMax*) (see configuration parameters DcmDspSes-
sionP2ServerMax and DcmDspSessionP2StarServerMax) and do the mode switch
of the ModeDeclarationGroupPrototype DcmDiagnosticSessionControl by calling
SchM_Switch_<bsnp>_DcmDiagnosticSessionControl() with the new diagnostic
session type (see [SWS_Dcm_91019]).c
UDS Service ECUReset (0x11) allows an external tester to request a server reset. The
service request contains parameter:
• resetType
[SWS_Dcm_00260] dThe Dcm module shall implement the UDS Service ECUReset
(0x11).c
[SWS_Dcm_00373] dOn reception of a request for UDS Service 0x11 with the sub
functions other than enableRapidPowerShutDown (0x04) or disableRapidPowerShut-
Down (0x05), the Dcm module shall trigger the mode switch of ModeDeclarationGroup-
Prototype DcmEcuReset equal to the received resetType. After the mode switch is
requested the Dcm shall trigger the start of the positive response message transmis-
sion. Sub function hardReset (0x01) to HARD Sub function keyOffOnReset (0x02) to
KEYONOFF Sub function softReset (0x03) to SOFTc
Note: By this mode switch the Dcm informs the BswM to carry out necessary actions
for the handling of this individual reset type. These actions can be configured within
the BswM action list corresponding to the requested reset type. Here the integrator can
also define if an ECU reset will finally be performed or not.
Note: By this mode switch the Dcm requests the BswM to perform the final processing
on the reset type according to the configured action list.
[SWS_Dcm_00818] dOn reception of a request for UDS Service 0x11 with the
sub functions enableRapidPowerShutdown (0x04) or disableRapidPowerShutdown
(0x05), the Dcm module shall trigger the mode switch of ModeDeclarationGroupPro-
totype DcmRapidPowerShutDown: Sub function enableRapidPowerShutDown (0x04)
to ENABLE_RAPIDPOWERSHUTDOWN, Sub function disableRapidPowerShutDown
(0x05) to DISABLE_RAPIDPOWERSHUTDOWNc
[SWS_Dcm_01263]
Upstream requirements: RS_Diag_04058
[SWS_Dcm_01269] dIn case application allows to clear the DTC, the Dcm module
shall check if the DTC can be cleared in the current mode condition (according to the
configuration parameter DcmDspClearDTCModeRuleRef). If not, the Dcm module
shall send the calculated negative response code of the referenced DcmModeRule.c
[SWS_Dcm_00005]
Upstream requirements: RS_Diag_04058
dIf the condition checks are successfully done, the Dcm module shall call
Dem_ClearDTC with the following parameter values:
• ClientId = Client Id for this Dcm instance (see DcmDemClientRef)
c
[SWS_Dcm_00705] dIn case Dem_ClearDTC() returns E_OK, the Dcm module shall
send a positive response.c
Service 0x19 allows a client to read the status of server resident Diagnostic Trouble
Code (DTC) information.
[SWS_Dcm_00248] dThe Dcm module shall implement the UDS Service 0x19.c
To setup the retrieval of specific data from the Dem module, the Dcm will
call different filter APIs (Dem_SetDTCFilter(), Dem_SetFreezeFrameRecordFilter(),
Dem_SelectFreezeFrameData() and Dem_SelectExtendedDataRecord()).
The Dcm service processor for UDS service ReadDTCInformation (0x19) can be used
in configurations where SAE J1979-2 is supported, so that reported DTC values of
SAE J1979-2 services have different DTC values than used for UDS DTCs.
Some manufacturers don’t want to fully change to SAE J1979-2 support with UDS and
will only support the J1979-2 functionality on the limited UDS subset defined by J1979-
2, wherefore the feature OBD UDS DTC separation was added.
[SWS_Dcm_01619]
Upstream requirements: RS_Diag_04253
UDS Service 0x19 with subfunctions 0x01 or 0x12 requests the ECU to report the
number of DTCs matching tester-defined criteria. The service request contains the
parameter:
• DTCStatusMask
UDS Service 0x19 with subfunction 0x07 requests the ECU to report the num-
ber of DTCs matching tester-defined criteria. The service request contains the
parameters:
• DTCSeverityMask
• DTCStatusMask
[SWS_Dcm_00293]
Upstream requirements: RS_Diag_04058, RS_Diag_04067
dWhen responding to UDS Service 0x19 with subfunction 0x01, 0x07 or 0x12, the Dcm
module shall calculate the number of DTCs using Dem_GetNumberOfFilteredDTC()
after having set the DEM-filter with Dem_SetDTCFilter() using the parameter values
according to [SWS_Dcm_01643].c
UDS Service 0x19 with subfunctions 0x02 or 0x13 requests the DTCs (and their associ-
ated status) that match certain conditions. The service request contains the parameter:
• DTCStatusMask
UDS Service 0x19 with subfunction 0x0A requests all supported DTCs and their associ-
ated status. UDS Service 0x19 with subfunction 0x15 requests all DTCs with permanent
status.
[SWS_Dcm_01644] Subfunction 0x02, 0x0A, 0x13, 0x15 and 0x17 response val-
ues d
Parameter name Value
DTCStatusAvailabilityMask DTCStatusAvailabilityMask
DTCAndStatusRecord As defined in [SWS_Dcm_00008] and
[SWS_Dcm_00378]
MemorySelection (subservice 0x17 From request
only)
dOn reception of the UDS Service ReadDTCInformation (0x19) with sub-function re-
portUserDefMemoryDTCByStatusMask (0x17), the Dcm shall check if the access to
the selected user defined memory in parameter MemorySelection is authenticated and
read the DTC information only if:
• a DcmDspReadDTCInformationUserDefinedFaultMemoryRoleRef is
configured with DcmDspReadDTCInformationUserDefinedFaultMem-
oryId matching the MemorySelection and the verification according to
[SWS_Dcm_01479] was successful or
• the active white list on that connection has an entry for that requested user de-
fined memory selection one entry.
c
[SWS_Dcm_00378]
Upstream requirements: RS_Diag_04058, RS_Diag_04067
dWhen responding to UDS Service 0x19 with subfunctions 0x02, 0x0A, 0x13, 0x15 or
0x17, the Dcm module shall obtain the records with DTCs (and their associated status)
by repeatedly calling Dem_GetNextFilteredDTC() after having configured the filter with
Dem_SetDTCFilter() using the parameter values according to [SWS_Dcm_01645].c
Note:
• The Dcm module can get an indication of the number of records that will be found
using Dem_GetNextFilteredDTC() by using Dem_GetNumberOfFilteredDTC().
This allows the implementation to calculate the total size of the response before
cycling through the DTCs.
• The value 0x00 used as DTCStatusMask for the subfunctions 0x0A and 0x15
disables the status byte filtering in Dem_SetDTCFilter().
[SWS_Dcm_00828] dIn case of paged buffer support is disabled, the Dcm module shall
not insert zero-padded DTCs to the response of UDS Service 0x19 with subfunctions
0x02, 0x0A, 0x13, 0x15 or 0x17.c
When using paged buffer mechanism, in some case, it’s possible that the number of
DTC matching the filter change between the calculation of the total size, needed for
the first page transmission, and the sending of the further pages. For this reason, the
following requirement apply :
[SWS_Dcm_00587] dIn case of paged buffer support is enabled, The Dcm shall limit
the response size to the size calculated when sending the first page. If more DTCs
match the filter after this sending, the additional DTCs shall not be considered.c
[SWS_Dcm_00588] dIn case of paged buffer support is enabled,The Dcm shall pad
the response with the size calculated when sending the first page. If less DTC match
the filter after this sending, the missing DTCs shall be padded with 0 value as defined
in 15031-6 [16].c
UDS Service 0x19 with subfunction 0x08 requests the DTCs and the associated status
that match a tester-defined severity mask record. The service request contains the
following parameters:
• DTCSeverityMask
• DTCStatusMask
[SWS_Dcm_00379] dWhen sending a positive response to UDS Service 0x19 with sub-
function 0x08, the Dcm module shall use the data in the response message according
to [SWS_Dcm_01646].c
Note: The Dcm module can get an indication of the number of records
that will be found using Dem_GetNextFilteredDTCAndSeverity() by using
Dem_GetNumberOfFilteredDTC().
UDS Service 0x19 with subfunction 0x09 requests the severity information of a DTC.
The service request contains the parameter:
• DTCMaskRecord
[SWS_Dcm_00381] dWhen sending a positive response to UDS Service 0x19 with sub-
function 0x09, the Dcm module shall use the data in the response message according
to [SWS_Dcm_01648].c
[SWS_Dcm_01402] dTo select the DTC, the Dcm module shall call the API
Dem_SelectDTC() with the following parameter values:
• ClientId: Client Id for this Dcm instance (see DcmDemClientRef)
• DTC: DTC from the service request
• DTCFormat: DEM_DTC_FORMAT_UDS
• DTCOrigin: DEM_DTC_ORIGIN_PRIMARY_MEMORY
c
[SWS_Dcm_01403] dTo retrieve the DTCSeverityMask of the selected DTC, the Dcm
shall call Dem_GetSeverityOfDTC() with the following parameter value:
• ClientId: Client Id for this Dcm instance (see DcmDemClientRef)
c
[SWS_Dcm_01404] dTo retrieve the DTCFunctionalUnit of the selected DTC, the Dcm
shall call Dem_GetFunctionalUnitOfDTC() with the following parameter value:
• ClientId: Client Id for this Dcm instance (see DcmDemClientRef)
c
[SWS_Dcm_01405] dTo retrieve the statusOfDTC of the selected DTC, the Dcm shall
call Dem_GetStatusOfDTC() with the following parameter value:
• ClientId: Client Id for this Dcm instance (see DcmDemClientRef)
c
The UDS Service 0x19 with subfunction 0x06 or 0x19 requests a specific Extended
Data Records for a specific DTC. The service request contains the parameters:
• DTCMaskRecord
• DTCExtendedDataRecordNumber
dOn reception of the UDS Service ReadDTCInformation (0x19) with sub-function re-
portUserDefMemoryDTCExtDataRecordByDTCNumber (0x19), the Dcm shall check
if the access to the selected user defined memory in parameter MemorySelection is
authenticated and read the DTC information only if:
• a DcmDspReadDTCInformationUserDefinedFaultMemoryRoleRef is
configured with DcmDspReadDTCInformationUserDefinedFaultMem-
oryId matching the MemorySelection and the verification according to
[SWS_Dcm_01522] was successful or
• the active white list on that connection has an entry for that requested user de-
fined memory selection.
c
[SWS_Dcm_00295]
Upstream requirements: RS_Diag_04058
dWhen responding to UDS Service 0x19 with subfunction 0x06 or 0x19, the Dcm module
shall calculate the statusOfDTC by first calling Dem_SelectDTC() with the parameters
values set according to [SWS_Dcm_01649] and then Dem_GetStatusOfDTC() with
ClientId = Client Id for this Dcm instance (see DcmDemClientRef).c
reportDTCExtendedData reportUserDefMemoryDTC
RecordByDTCNumber ExtDataRecord
ByDTCNumber
0x06 0x19
ClientId Client Id for this Dcm instance Client Id for this Dcm instance
(see DcmDemClientRef) (see DcmDemClientRef)
DTC DTCMaskRecord from DTCMaskRecord from
request request
DTCOrigin PRIMARY_MEMORY MemorySelection from
request + 0x0100
The Dcm module shall obtain the size of the extended data record by using
Dem_GetSizeOfExtendedDataRecordSelection().
UDS Service 0x19 with subfunction 0x03 allows an external tester to request all stored
snapshot records for all DTCs in an ECU.
dThe Dcm shall support UDS Service 0x19 with subfunction 0x03 according to ISO
14229-1:2020 [9].c
When using paged buffer mechanism, in some case, it’s possible that the number of
DTC matching the filter change between the calculation of the total size, needed for
the first page transmission, and the sending of the further pages. For this reason, the
requirement [SWS_Dcm_00587] and [SWS_Dcm_00588] define the behavior in these
situations.
Using UDS Service 0x19 with subfunction 0x04 or 0x18, an external tester can request
snapshot record data for one or all snapshot records of a specific DTC.
To process the UDS Service 0x19 04 or 0x19 18, the Dcm supports the option to process
the entire service BSW internally while interacting with the Dem and the option to leave
the service processing to an external service processor.
dOn reception of the UDS Service ReadDTCInformation (0x19) with sub-function re-
portUserDefMemoryDTCSnapshotRecordByDTCNumber (0x18), the Dcm shall check
if the access to the selected user defined memory in parameter MemorySelection is
authenticated and read the DTC information only if:
• a DcmDspReadDTCInformationUserDefinedFaultMemoryRoleRef is
configured with DcmDspReadDTCInformationUserDefinedFaultMem-
oryId matching the MemorySelection and the verification according to
[SWS_Dcm_01522] was successful or
• the active white list on that connection has an entry for that requested user de-
fined memory selection.
c
UDS Service 0x19 with subfunction 0x05 allows an external tester to request Freeze-
Frame information for a specific FreezeFrame record number. The service request
contains parameter:
• DTCStoredDataRecordNumber
Due to Dem limitation, the diagnostic service $19 05 is limited to the OBD legislative
freeze frame.
[SWS_Dcm_00632] dOn reception of service 0x19 with subfunction 0x05, if the record
number of the diagnostic request is different from 0x00, the Dcm module shall send a
negative response with NRC 0x31 (request out of range).c
[SWS_Dcm_00388]
Upstream requirements: RS_Diag_04058
dWhen responding to UDS Service 0x19 with subfunction 0x05 and DTCStored-
DataRecordNumber is 0x00, the Dcm shall compose the OBD Freezeframe by looping
all DcmDspPid and collecting all DcmDspPidData which are configured for service
0x02 by calling Dem_DcmReadDataOfOBDFreezeFrame() for the Data Element. The
Dcm shall compose the DidId by adding 0xF400 to the Pid, and calculate padding and
supported informations.c
[SWS_Dcm_00389]
Upstream requirements: RS_Diag_04058
dWhen responding to UDS Service 0x19 with subfunction 0x05 and DTCStored-
DataRecordNumber is 0x00, the Dcm module shall obtain the status of the DTC by
first calling Dem_SelectDTC() with the following parameters:
• ClientId: Client Id for this Dcm instance (see DcmDemClientRef)
• DTC: DTC as defined in [SWS_Dcm_00388]
• DTCOrigin: DEM_DTC_ORIGIN_PRIMARY_MEMORY
and then Dem_GetStatusOfDTC() with the following parameter:
• ClientId: Client Id for this Dcm instance (see DcmDemClientRef)
c
An external test tool can request the first occurred or most recent failed or confirmed
DTC and associated status, by sending the UDS Service request 0x19 including one of
the following sub-functions 0x0B, 0x0C, 0x0D, 0x0E
[SWS_Dcm_00392] dWhen sending a positive response to UDS Service 0x19 with sub-
function 0x0B, 0x0C, 0x0D or 0x0E, the Dcm module shall use the data in the response
message according to [SWS_Dcm_01652].c
[SWS_Dcm_00393]
Upstream requirements: RS_Diag_04058
dFor the purpose of responding to UDS Service 0x19 with subfunctions 0x0B,
0x0C, 0x0D or 0x0E, the Dcm module shall obtain the StatusOfDtc by calling
Dem_GetStatusOfDTC() with the following parameter values:
• ClientId :Client Id for this Dcm instance (see DcmDemClientRef
• DTC: the DTC value as defined in [SWS_Dcm_00466]
• DTCOrigin: DEM_DTC_ORIGIN_PRIMARY_MEMORY
c
An external test tool may request an ECU to report the FaultDetectionCounter for all
DTCs with a "Prefailed" status, by sending a UDS Service request 0x19 with subfunction
0x14.
[SWS_Dcm_00464] dWhen sending a positive response to UDS Service 0x19 with sub-
function 0x14, the Dcm module shall use the data in the response message according
to [SWS_Dcm_01654].c
[SWS_Dcm_00465]
Upstream requirements: RS_Diag_04058
dWhen responding to UDS Service 0x19 with subfunctions 0x14, the Dcm module
shall obtain the DTCFaultCounter of every DTCs with status "prefailed" by repeat-
edly calling Dem_GetNextFilteredDTCAndFDC() after having configured the filter with
Dem_SetDTCFilter() using the parameter values according to [SWS_Dcm_01655].c
This allows the implementation to calculate the total size of the response before cycling
through the DTCs.
When using paged buffer mechanism, in some case, it’s possible that the number of
DTC matching the filter change between the calculation of the total size, needed for
the first page transmission, and the sending of the further pages. For this reason, the
requirement [SWS_Dcm_00587] and [SWS_Dcm_00588] shall be considered for the
implementation of this subservice.
UDS Service 0x19 with subfunction 0x1A request the Dcm to retrieve all DTCs that sup-
port an extended data record.
dThe Dcm shall support UDS Service 0x19 with subfunction 0x1A according to ISO
14229-1:2020 [9].c
To retrieve the DTCs that support an extended data record, the Dem provides the API
Dem_SetDTCFilterByExtendedDataRecordNumber that allows to set a filter for an ex-
tended data record. Subsequent calls to Dem_GetNextFilteredDTC provide the re-
quested data.
The positive response consists of an enumeration of DTC number and DTC status. The
Dcm does not define any specific order in which the DTCs are reported in the positive
response message.
dIf one or more extended data record is/are supported for the requested DTCExt-
DataRecordNumber, the Dcm shall send a positive response including all DTCs and
the DTC status.c
UDS Service 0x19 with subfunction 0x42 requests WWH OBD DTCs matching a DTC
status mask a severity mask record. The service request contains the following pa-
rameters:
• FunctionalGroupIdentifier
• DTCSeverityMask
• DTCStatusMask
[SWS_Dcm_01129] dWhen sending a positive response to UDS Service 0x19 with sub-
function 0x42, the Dcm module shall use the data in the response message according
to [SWS_Dcm_01656].c
Note: The Dcm module can get an indication of the number of records
that will be found using Dem_GetNextFilteredDTCAndSeverity() by using
Dem_GetNumberOfFilteredDTC().
With UDS Service 0x19 with sub-function 0x55 a client can retrieve a list of OBD
DTCs with the "permanent DTC" status. The service request contains the following
parameter:
• FunctionalGroupIdentifier
[SWS_Dcm_01345] dWhen sending a positive response to UDS Service 0x19 with sub-
function 0x55, the Dcm module shall use the following data in the response message
according to [SWS_Dcm_01659].c
Note : When responding to UDS Service 0x19 with sub-function 0x55, the
Dcm module could obtain the DTCAndStatusRecords by repeatedly calling
Dem_GetNextFilteredDTC() after having configured the filter with Dem_SetDTCFilter()
using the parameter values according to [SWS_Dcm_01660].
The Dcm module can get an indication of the number of records that will be found using
Dem_GetNextFilteredDTC() by using Dem_GetNumberOfFilteredDTC().
UDS Service 0x19 with subfunction 0x56 request the Dcm to retrieve all DTCs that are
assigned to an DTC readiness group identifier.
dThe Dcm shall support UDS Service 0x19 with subfunction 0x56 according to ISO
14229-1:2020 [9].c
To retrieve the DTCs that are assigned to an DTC readiness group, the Dem provides
the API Dem_SetDTCFilterByReadinessGroup that allows to set a filter for a readiness
group. Subsequent calls to Dem_GetNextFilteredDTC provide the requested data.
The positive response consists of an enumeration of DTC number and DTC status. The
Dcm does not define any specific order in which the DTCs are reported in the positive
response message.
dIf one or more DTCs support the requested DTC readiness group identifier, the Dcm
shall send a positive response including all DTCs and the DTC status.c
dIf no DTC supports the requested DTC readiness group, the Dcm shall send a negative
response with NRC 0x31 (requestOutOfRange).c
[SWS_Dcm_00253] dThe Dcm module shall implement the UDS Service ReadDataByI-
dentifier (0x22)c
With UDS Service 0x22, the tester can request the value of one or more DIDs.
dOn reception of the UDS Service ReadDataByIdentifier (0x22), the Dcm shall check
if the access to all requested DIDs outside the range 0xF200-0xF8FF is authenticated
and read the data identifiers only if:
• for that read DID a role is configured via DcmDspDidReadRoleRef and the ver-
ification according to [SWS_Dcm_01522] was successful or
• the active white list on that connection has for each requested DID one entry with
read access that matches that DID.
c
dOn reception of the UDS Service ReadDataByIdentifier (0x22), the Dcm shall check
for all requested DIDs inside the range 0xF200-0xF3FF if the content is based of DIDs
or parts of DIDs that are authenticated and read the data identifiers only if:
• for those read DIDs a role is configured via DcmDspDidReadRoleRef and the
verification according to [SWS_Dcm_01522] was successful or
• the active white list on that connection has for each requested DID one entry with
read access that matches those DIDs.
c
Note: In case there is a need to validate the session or security dependencies always,
the DDDID should be cleared by any security and session transitions.
the Dcm module shall send a negative response with NRC set to value from the pa-
rameter "ErrorCode" of DcmDspDataConditionCheckReadFnc function or Condi-
tionCheckRead operation.c
[SWS_Dcm_00440] dIf the requested DID references other DID using DcmDsp-
DidRef, the Dcm module shall process the verification and the reading of every ref-
erenced DID and concatenate the response data without any gaps based on the se-
quence in the configuration.c
[SWS_Dcm_01385] dIf the DID dataRecord has bytes, not defined by any data ele-
ment, the Dcm shall fill these bytes with the value 0x00.c
[SWS_Dcm_00638] dTo serialize the required AUTOSAR data types (signed- and un-
signed integer) into the response message of ReadDataByIdentifier responses, the
target endianness configured in DcmDspDataEndianness shall be considered for
DcmDspData elements having DcmDspDataUsePort set to USE_DATA_SENDER_-
RECEIVER, USE_DATA_SENDER_RECEIVER_AS_SERVICE, USE_ECU_SIGNAL.c
[SWS_Dcm_01386] dTo serialize the required AUTOSAR data types (signed and
unsigned integer) into the response message of ReadDataByIdentifier (0x22) OBD-
DataIdentifier responses the target endianness configured in DcmDspDataEndian-
ness shall be considered for DcmDspData elements having DcmDspDataUsePort
set to {USE_DATA_SENDER_RECEIVER, USE_DATA_SENDER_RECEIVER_AS_SER-
VICE, USE_ECU_SIGNAL}. In case DcmDspDataEndianness is not present, the
DcmDspDataDefaultEndianness shall be used instead.c
[SWS_Dcm_00258] dThe Dcm module shall implement the UDS Service ReadScaling-
DataByIdentifier (0x24)c
To obtain scaling information, the tester can invoke UDS Service 0x24 with the 2-byte
DID as parameter. The configuration of the Dcm contains for each configured DID:
• The 2-byte DID (see configuration parameter DcmDspDidIdentifier)
• For every data of the DID :
• The function GetScalingInformation (see configuration parameters DcmDsp-
DataGetScalingInfoFnc and DcmDspDataUsePort)
[SWS_Dcm_01601] dIn the context of [SWS_Dcm_00490], the Dcm shall place the
received scaling information for every data of a DcmDspDid in the same order as
specified by DcmDspDidByteOffset.c
[SWS_Dcm_00252]
Upstream requirements: RS_Diag_04005
dThe Dcm module shall implement the UDS Service SecurityAccess (0x27)c
The purpose of this service is to provide a means to access data and/or diagnostic
services, which have restricted access for security, emissions, or safety reasons.
[SWS_Dcm_00321] dIf the request length is correct, the DSP submodule shall check
if the requested subfunction value (access type) is configured in the ECU (see con-
figuration parameter DcmDspSecurityLevel). If the requested subfunction value is
not configured, the DSP submodule shall trigger a negative response with NRC 0x12
(SubFunction not supported).c
[SWS_Dcm_00324] dIn the other case than the one described in [SWS_Dcm_00323]
(access type is not active or "send key" request), if DcmDspSecurityUsePort is
set to USE_ASYNCH_CLIENT_SERVER, the DSP submodule shall call the configured
operation Xxx_GetSeed() (in case "request seed" is received) or Xxx_CompareKey()
(in case "send key" is received).c
[SWS_Dcm_00862] dOn reception of the UDS Service SecurityAccess (0x27) with sub-
function type "requestSeed" and if the requested access type is not already active, the
Dcm module shall request a seed by calling the configured Xxx_GetSeed() function (if
the configuration parameter DcmDspSecurityUsePort is set to USE_ASYNCH_FNC,
refer to configuration parameter DcmDspSecurityGetSeedFnc).c
Note : If the static seed mechanism is used, the processing needs to be done by the
application implementing the Xxx_GetSeed() and Xxx_CompareKey() functions.
The following list gives as an example, which errors can be detected by the security
access service and stored in the error code information:
• RequestSequenceError (NRC 0x24), when invalid access type is send at "send
key",
• RequiredTimeDelayNotExpired (NRC 0x37), when time delay is active (see con-
figuration parameter DcmDspSecurityDelayTime),
[SWS_Dcm_00325] dIf the operation CompareKey() returns E_OK, the DSP submod-
ule shall set the new access type with DslInternal_SetSecurityLevel()(see the conver-
sion formula given in ECUC_Dcm_00754 DcmDspSecurityLevel).c
[SWS_Dcm_01397]
Upstream requirements: RS_Diag_04005
[SWS_Dcm_00512] dOn invocation of the sent confirmation function of the UDS Ser-
vice CommunicationControl (0x28) from DSD with the subnet parameter of the request
equal to 0x00, the Dcm shall do for each NetworkHandle (see DcmDspAllComMChan-
nelRef) which is configured in DcmDspComControlAllChannel:
1. trigger the mode switch Dcm_CommunicationControl_<Network> ModeDeclara-
tionGroupPrototype to the mode corresponding the communicationType and con-
trolType parameter from the CommunicationControl request.
2. call the Api BswM_Dcm_CommunicationMode_CurrentState with the parameters
NetworkHandleType and Dcm_CommunicationModeType corresponding to the
communicationType and controlType parameter from the CommunicationControl
request (see Dcm_CommunicationModeType definition).
c
[SWS_Dcm_00785] dOn invocation of the sent confirmation function of the UDS Ser-
vice CommunicationControl (0x28) from DSD with the subnet parameter of the request
equal to 0x0F(CommunicationControl on the network which request is received on),
the Dcm shall do for the NetworkHandle (see DcmDslProtocolComMChannelRef) of
the current received DcmDslProtocolRxPduRef:
1. trigger the mode switch Dcm_CommunicationControl_<Network> ModeDeclara-
tionGroupPrototype to the mode corresponding to the communicationType and
controlType parameter from the CommunicationControl request.
2. call the Api BswM_Dcm_CommunicationMode_CurrentState with the parameters
NetworkHandleType and Dcm_CommunicationModeType corresponding to the
communicationType and controlType parameter from the CommunicationControl
request (see Dcm_CommunicationModeType definition)
c
[SWS_Dcm_00786] dOn invocation of the sent confirmation function of the UDS Ser-
vice CommunicationControl (0x28) from DSD with the subnet parameter of the request
between 0x01 and 0x0E, the Dcm shall check if the received subnet parameter (see
For some use-cases the Dcm may re-enable the CommunicationControl due to external
changed mode conditions:
Note: the NetworkHandles to be considered are all ComM channels which are refer-
enced from either DcmDspSpecificComMChannelRef, DcmDspAllComMChannel-
Ref or DcmDspComControlSubNodeComMChannelRef.
[SWS_Dcm_01078] dThe Dcm shall trigger a negative response with NRC 0x31
(RequestOutOfRange), if a CommunicationControl Request with the sub-function
"enableRxAndDisableTxWithEnhancedAddressInformation" and a "nodeIdentification-
Number" which is not listed as DcmDspComControlSubNodeId is received.c
The analogue controlType enableRxAndTx shall be used with this the following existing
Dcm_CommunicationType values :
• DCM_ENABLE_RX_TX_NORM
• DCM_ENABLE_RX_TX_NM
• DCM_ENABLE_RX_TX_NORM_NM.
c
[SWS_Dcm_01080] dThe Dcm shall trigger a negative response with NRC 0x31 (Re-
questOutOfRange), if a CommunicationControl Request with the sub-function "en-
ableRxAndTxWithEnhancedAddressInformation" and a "nodeIdentification-Number"
which is not listed as DcmDspComControlSubNodeId is received.c
The UDS service Authentication (0x29) is used to provide dynamic means to control
the access to diagnostic services. Execution of certain diagnostic services might have
impact on safety, emissions or the vehicle. Controlling the access to diagnostic ser-
vices via certificates provide means to control the access to diagnostic services after
production. The access to these resources can be limited in time or bound to certain
vehicles or ECUs only. AUTOSAR Dcm provides an out of the box solution for authen-
ticated diagnostics with a given semantics of the UDS service Authentication. Even
ISO14229-1 [9] leaves more freedom, the Dcm will use only the functionality specified
in this chapter. Further interpretations, certificate types or certificate content are out of
scope of the AUTOSAR Dcm module.
dThe Dcm shall implement the UDS service Authentication (0x29) for sub-functions:
• deAuthenticate
• verifyCertificateUnidirectional
• verifyCertificateBidirectional
• proofOfOwnership
• authenticationConfiguration
c
Note: AUTOSAR Dcm only implements the authentication via PKI certificated ex-
change. Authentication with challenge-response (ACR) is out of scope of AUTOSAR.
If it is required it needs a full custom implementation using existing Dcm callouts for
custom service processing.
dThe Dcm shall follow the NRC handling as defined for ISO 14229-1:2018 for UDS
service authentication. This includes the NRC codes as well as the order of individual
NRC checks.c
The Dcm is using the Csm and KeyM for certificate management. Parsing the certifi-
cate is a potential time-consuming operation and needs to be executed asynchronous.
There are opinions that security shall not reveal any cause of failed authentication and
thus have no dedicated NRCs for different certificate failures. To respect this use case
the Dcm provides a general security NRC handling.
7.4.2.10.1 De-authentication
The de-authenticate sub-function shall be always available if service 0x29 is used. This
service set the authentication state to deauthenticated for the diagnostic connection the
request was received on.
[SWS_Dcm_01565]
Upstream requirements: RS_Diag_04230
The support of a COCO with constant value of 0x00 implies that no session key is
supported by the Dcm. Upon receiving an authentication request with sub-function ver-
ifyCertificateUniDirectional and the communicationConfiguration (COCO) set to 0x00,
the Dcm starts to verify the certificate. This service is implemented on BSW level by in-
tention, to reduce the possible dialects of service 0x29 to what is natively supported by
AUTOSAR. The Csm [17] and KeyM [18] modules allow to use different cryptographic
methods. It is part of the Dcm strategy to explicitly require that certificates and all kind
of access to information inside are handled by the Csm and its configuration. This
allows to map different kind of certificates with different levels of security to the Dcm,
thus abstracting the certificate complexity from Dcm.
Diagnostic certificate configuration is a task that is mainly executed in the Csm and
KeyM modules. The Dcm provides an abstraction from these modules and only keeps
symbolic references to containers that keep the information. Please take attention
while configuring the Csm and KeyM ’in spirit of Dcm certificates’.
dIf any of the Csm or KeyM APIs called by the Dcm is returning CRYPTO_E_BUSY or
KEYM_E_BUSY, the Dcm shall return the NRC 0x21 (busyRepeat).c
dThroughout this chapter the Csm or KeyM are used to process the authentication
requests. These APIs have return values for failures. Unless there is no dedicated
requirement for a given return value and if the return value is different to E_OK, the
Dcm shall return a NRC 0x10 ’GeneralReject’.c
The cryptographic operations have potential long execution times and are called asyn-
chronously.
dFor all asynchronous Csm or KeyM operations, the Dcm shall wait until the call-
back has been called, indicating a successful job termination. If the result (e.g.
KeyM_CertificateStatusType) is E_OK, the Dcm shall continue to process the 0x29 re-
quest, if the result is different to E_OK, the Dcm shall skip the further processing and
return a negative response with NRC ’GeneralReject’.c
dAfter the Dcm has set the certificate according to [SWS_Dcm_01463], the Dcm shall
verify the certificate by calling KeyM_VerifyCertificate with the following parameters:
• CertificateId = DcmDspAuthenticationConnectionCertificateRef ->
KeyMMCertificate.KeyMCertificateId
c
Note: While most of the KeyM return values can be mapped 1:1 on UDS NRC values, this
does not apply for KEYM_E_CERTIFICATE_INVALID_CONTENT. An invalid content
from KeyM indicates that a key element verification has failed. A failed key element
verification means that the certificate itself is valid, but the KeyM refuses the certificate
as the data does not fit to the server’s required value. In UDS this is expressed by
’Certificate verification failed - Invalid Scope’. As result invalid content from KeyM will
trigger the NRC invalid scope.
dThe Dcm shall create a server challenge with the length configured in DcmDspAu-
thenticationEcuChallengeLength.c
dAfter successfully validating the client certificate in [SWS_Dcm_01463], the Dcm shall
create a server challenge by using the Csm in the following sequence:
1) Call of Csm_RandomGenerate with parameters
a. jobId : DcmDspAuthenticationRandomJobRef -> CsmJobId
2) Wait until the asynchronous job has terminated according to [SWS_Dcm_01467].
c
dIf the Dcm has successfully calculated server challenge the Dcm shall send a positive
response for the verifyCertificateUniDirectional request with the following parameter
values:
authenticationReturnParameter : ’Certificate verified, Ownership verification neces-
sary’
lengtfOfChallengeServer: length of the challenge generated in [SWS_Dcm_01493]
challengeServer: challenge generated in [SWS_Dcm_01493]
lengthOfEphemeralPublicKeyServer: 0x0000
c
dIf the Dcm has successfully calculated client challenge, the server challenge and the
server certificate, the Dcm shall send a positive response for the verifyCertificateBidi-
rectional request with the following parameter values:
dIf the proof of ownership verification in [SWS_Dcm_01511] was successful and re-
sulted in CRYPTO_E_VER_OK, the Dcm shall use the value read from the certificate
extension DcmDspAuthenticationRoleElementRef as new role for the current
authenticated state.c
dIf the size of the read role information in [SWS_Dcm_01514] is different than the size
in DcmDspAuthenticationRoleSize, the Dcm shall send a negative response with
NRC ’Certificate verification failed - Invalid Content’.c
dIf the proof of ownership verification in [SWS_Dcm_01511] was successful and re-
sulted in CRYPTO_E_VER_OK, the Dcm shall use the white list read from the certifi-
cate according to [SWS_Dcm_01517] as new white list for the current authenticated
state.c
[SWS_Dcm_01517] White list access dTo read the white list from a certificate,
the Dcm shall read all child elements from the referenced DcmDspAuthentica-
tionWhiteListServicesElementRef, DcmDspAuthenticationWhiteList-
DIDElementRef, DcmDspAuthenticationWhiteListRIDElementRef and
DcmDspAuthenticationWhiteListMemorySelectionElementRef certificate
data.c
dIf the size of the read white list information in [SWS_Dcm_01516] is larger
than the size in DcmDspAuthenticationWhiteListServicesMaxSize or
DcmDspAuthenticationWhiteListDIDMaxSize or DcmDspAuthentication-
WhiteListRIDMaxSize or DcmDspAuthenticationWhiteListMaxSize , the
Dcm shall send a negative response with NRC ’Certificate verification failed - Invalid
Content’ (0x25).c
The roles transmitted inside the certificates are used to assign a tester on one con-
nection one or more roles. A single role itself is presented by a certain bit within the
bitfield representation of the role. Within the Dcm there is static role assignment to each
diagnostic service. A service can be executed if at least one role (bit) assigned to a
service matches a role (bit) in the certificate.
dThe Dcm shall interpret all configured role integer values in the little endian format.c
dUpon each role verification, the Dcm shall make a bitwise ’and’ operation on the value
provided by the role in the certificate for that connection and the role value assigned
to the service. The value that is assigned to the service is calculated by setting all the
bits referred by each DcmDspAuthenticationRow. If the result is greater than 0, the
Dcm shall treat the service as allowed to be executed.c
dUpon each role verification, the Dcm shall make a bitwise ’and’ operation on the role
provided in the certificate for that connection and the role assigned to the service. If
the result is equal to 0, the Dcm shall stop the processing of that service and send a
negative response ’authenticationRequired’.c
Besides the use of roles, the certificates can get extended with optional white lists
for service execution. This allows the issuer of the certificate to extend the range of
allowed services without updating the access lists in the ECU.
The white list is build out of the following elements:
• List of allowed services, 1-4 byte each
• List of allowed data identifiers (DID) and access information, 3 byte each
• List of allowed routine identifiers (RID) and access information, 3 byte each
• List of allowed user defined fault memories, 1 byte each
Parsing and access to the different elements of the white lists is done by
invoking KeyM_CertElementGetFirst and KeyM_CertElementGetNext according to
[SWS_Dcm_01517].
dThe white list for services is a set of values, each consisting of up to 4 bytes. Each
value itself contains the first bytes of a diagnostic service that is allowed be executed.c
Example:
In the following example, a white list section within a certificate is shown. It contains 5
additional services that can be executed:
1 ...
2 SEQUENCE (1 elem)
3 SEQUENCE (2 elem)
dThe white list for DIDs defines the set of data identifiers that are allowed to be read,
written and controlled. Each entry shall contain in the first two bytes the DID number
and in the third byte the following access definitions:
• Bit 0: Read access
• Bit1: Write access
• Bit2: Control access (by InputOutputControlByIdentifier)
A bit value of 0 means that the operation is forbidden, a bit value of 1 means that the
operation is allowed. All not used bits (3-7) shall be set to zero.
DID numbers are always in big endian format (MSB first).c
Example:
DID read operations are performed from various UDS services. Dcm checks on each
DID read the access to that DID.
dThe white list for RIDs defines the set of routine identifiers that have access to the
sub-functions startRoutine, stopRoutine and requestRoutineResult. Each entry shall
contain in the first two bytes the RID number and in the third byte the following access
definitions:
• Bit 0: Access to sub-function ’startRoutine’
• Bit1: Access to sub-function ’stopRoutine’
• Bit2: Access to sub-function ’requestRoutineResult’
A bit value of 0 means that the sub-function is forbidden, a bit value of 1 means that
the sub-function is allowed. All not used bits (3-7) shall be set to zero.
RID numbers are always in big endian format (MSB first).c
Example:
dThe white list memory selection is used for the UDS service 0x19 with sub-functions
0x17, 0x18 and 0x19. The value in the white list defines the accepted parameter values
for MemorySelection in the UDS request.c
dIf the proof of ownership verification in [SWS_Dcm_01511] was successful and re-
sulted in CRYPTO_E_VER_OK and after the role and white list setting was done, the
Dcm shall set the DcmAuthenticationState_<ConnectionName> on that connection into
DCM_AUTHENTICATED.c
[SWS_Dcm_01531] Activation of role and white list dThe Dcm shall consider the
role and white list for access control only, if the Dcm is in authenticated state.c
dIf the Dcm is already in authenticated state while a transition to authentication stated
is requested according to [SWS_Dcm_01529], the Dcm shall overwrite the roles and
white list and use only the role and white last from the last received certificate.c
7.4.2.10.6 AuthenticationConfiguration
7.4.2.10.7 TransmitCertificate
dIf the UDS service Authentication (0x29) service with sub-function equal to trans-
mitCertificate is received and the certificateEvaluationId has no configured DcmDspAu-
thenticationTransmitCertificateEvaluationId in any DcmDspAuthenti-
cationTransmitCertificate containers, the Dcm shall return a NRC 0x31 (re-
questOutOfRange).c
The Dcm uses the KeyM for all certificate management operations. This document does
only mention the KeyM and a configuration reference to a KeyMCertificate. For details
on how the KeyM module is used please read the KeyM SWS document. Be aware that
cryptographic operations have potentially long execution times and are called asyn-
chronously.
dThe Dcm shall store, parse, and verify a certificate in the KeyM module, using the
KeyM destination DcmDspAuthenticationTransmitCertificateRef for the re-
ceived certificateEvaluationId.c
[SWS_Dcm_01613]
Upstream requirements: RS_Diag_04215
dThe Dcm shall support the UDS service ReadDataByPeriodicIdentfier (0x2A) with all
transmissionMode types according to ISO 14229-1:2020 [9].c
dOn reception of the UDS Service ReadDataByPeriodicIdentifier (0x2A), the Dcm shall
check if the access to all static defined requested DIDs is authenticated and read the
data identifiers periodically only if:
• a DID read role is configured via DcmDspDidReadRoleRef for that DID and the
verification according to [SWS_Dcm_01522] was successful or
• the active white list on that connection has for each requested DID one entry with
read access that matches that DID.
c
dOn reception of the UDS Service ReadDataByPeriodicIdentifier (0x2A), the Dcm shall
check if the access to all dynamically defined requested DIDs if the content is based of
DIDs or parts of DIDs is authenticated and read the data identifiers periodically only if:
• a DID read role is configured via DcmDspDidReadRoleRef for that DID and the
verification according to [SWS_Dcm_01522] was successful or
• the active white list on that connection has for each requested DID one entry with
read access that matches that DID.
c
dOn reception of the UDS Service ReadDataByPeriodicIdentifier (0x2A), for every re-
quested periodicDIDs, the Dcm module shall check if the periodicDID can be read in
the current session (see configuration parameter DcmDspDidReadSessionRef). If
none of the periodicDID can be read in the current session, the Dcm module shall send
a NRC 0x31 (RequestOutOfRange).c
dOn reception of the UDS Service ReadDataByPeriodicIdentifier (0x2A), for every re-
quested periodicDIDs, the Dcm module shall check if the periodicDID can be read
in the current security level (see configuration parameter DcmDspDidReadSecu-
rityLevelRef). If not, the Dcm module shall send NRC 0x33 (Security access de-
nied).c
Note: To evaluate the session and security assignements the Dcm evaluates the con-
figuration that is used for ReadDataByIdentifier, e.g. DcmDspDidReadSessionRef or
DcmDspDidReadSecurityLevelRef.
dOn reception of the UDS Service ReadDataByPeriodicIdentifier (0x2A), for every re-
quested periodicDIDs, the Dcm module shall invoke the ConditionCheckRead operation
(or the respective C-Function) if configured. In case of a negative result, the returned
ErrorCode shall be used as final negative response code.c
dOn reception of the UDS Service ReadDataByPeriodicIdentifier (0x2A), for every re-
quested periodicDIDs, with a configured dynamic length the Dcm module shall invoke
the ReadDataLength operation (or the respective C-Function) to retrieve the length of
the periodicDID. This length is valid for each ReadData operation till the periodicDID is
removed from the scheduler or updated via a new request. This length shall further be
used to check against the UUDT size.c
dIf DcmDspDidUsed is set to FALSE, the Dcm shall consider the DID as not sup-
ported.c
Note: The periodic response message layout is according to ISO 14229-1:2020 [9]. It
contains the periodic data identifier and the data. The service ID and A_PCI byte is
not part of the periodic response message.
[SWS_Dcm_01101]
Upstream requirements: RS_Diag_04215
dThe Dcm shall send all periodic scheduled response by using the configured DcmD-
slPeriodicConnections.c
ISO 14229-1:2020 [9] defines two distinct scheduler types for ReadDataByPeriodicI-
dentifier. Depending on the scheduler type, the Dcm has different transmission strate-
gies. The used scheduler type of the server is selected by setting DcmDspPeriodic-
TransmissionSchedulerType to one of the two types.
the Dcm has finished sending the scheduled PDIDs according to [SWS_Dcm_01570],
the Dcm shall continue to transmit PDIDs according to [SWS_Dcm_01570] and
schedule the PDIDs of the new trigger after the last previous PDID has been
transmitted.c
dFor scheduler type 2 transmission of PDIDs within a single elapse of the scheduler,
the Dcm shall start to transmit the first configured PDID and continue to transmit con-
secutively all other configured PDIDs. If the last PDID is transmitted, the Dcm restarts
the sequence with the first configured PDID. If a PDID is sent more than once within
a single elapse of the scheduler then the PDIDs contents shall be reloaded with the
applicable DID / Memory data for every re-transmission.c
The following example gives an overview about scheduler type 1 and type 2. They use
PDIDs starting at 0xF201 and having all PDID data set to zero. The PDIDs are send
on CAN 2.0, using the CAN-IDs 0x6A0, 0x6A1.
Example 1: Scheduler Type 1
1 SchedulerRate: 1000ms
2
3 PeriodicRate: 4000ms
4
5 NumPeriodicAddr: 1
6
7 NumPDID 2
8
9 1017.02 6A0 01 00 00 00 00 00 00 00
10
11 2016.97 6A0 02 00 00 00 00 00 00 00
12
13
14
15 5016.87 6A0 01 00 00 00 00 00 00 00
16
17 6016.78 6A0 02 00 00 00 00 00 00 00
18
19
20
21 9016.67 6A0 01 00 00 00 00 00 00 00
22
23 10016.63 6A0 02 00 00 00 00 00 00 00
24
25
26
27 13016.52 6A0 01 00 00 00 00 00 00 00
28
29 14016.46 6A0 02 00 00 00 00 00 00 00
5 NumPeriodicAddr: 1
6
7 NumPDID 2
8
9 945.01 6A0 01 00 00 00 00 00 00 00
10
11 4944.78 6A0 02 00 00 00 00 00 00 00
12
13 8944.66 6A0 01 00 00 00 00 00 00 00
14
15 12944.49 6A0 02 00 00 00 00 00 00 00
16
17 16944.33 6A0 01 00 00 00 00 00 00 00
18
19 20944.28 6A0 02 00 00 00 00 00 00 00
20
21 24944.01 6A0 01 00 00 00 00 00 00 00
7 NumPDID 5
8
9
10 529.89 6A0 01 00 00 00 00 00 00 00
11
12 1529.70 6A0 02 00 00 00 00 00 00 00
13
14 2529.59 6A0 03 00 00 00 00 00 00 00
15
16 3529.35 6A0 04 00 00 00 00 00 00 00
17
18
19
20 4529.16 6A0 05 00 00 00 00 00 00 00 <-- Alias (should start over at
01)
21
22 5529.02 6A0 01 00 00 00 00 00 00 00
23
24 6529.15 6A0 02 00 00 00 00 00 00 00
25
26 7529.03 6A0 03 00 00 00 00 00 00 00
27
28
29
30 8528.92 6A0 04 00 00 00 00 00 00 00 <-- Alias (should start over at
01)
31
32 9528.82 6A0 05 00 00 00 00 00 00 00
33
34 10528.46 6A0 01 00 00 00 00 00 00 00
35
36 11528.60 6A0 02 00 00 00 00 00 00 00
37
38
39
40 12528.47 6A0 03 00 00 00 00 00 00 00 <-- Alias (should start over at
01)
41
42 13528.36 6A0 04 00 00 00 00 00 00 00
43
44 14528.27 6A0 05 00 00 00 00 00 00 00
5 NumPeriodicAddr: 1
6
7 NumPDID 5
8
9
10 592.03 6A0 01 00 00 00 00 00 00 00
11
12 4591.56 6A0 02 00 00 00 00 00 00 00
13
14 8591.13 6A0 03 00 00 00 00 00 00 00
15
16 12590.69 6A0 04 00 00 00 00 00 00 00
17
18 16590.26 6A0 05 00 00 00 00 00 00 00
19
20 20589.78 6A0 01 00 00 00 00 00 00 00
21
22 24589.23 6A0 02 00 00 00 00 00 00 00
23
24 28588.90 6A0 03 00 00 00 00 00 00 00
25
26 32588.45 6A0 04 00 00 00 00 00 00 00
27
28 36588.05 6A0 05 00 00 00 00 00 00 00
7 NumPDID 5
8
9
10
11 778.69 6A0 01 00 00 00 00 00 00 00
12
13 778.73 6A1 02 00 00 00 00 00 00 00
14
15
16
17 1778.56 6A0 03 00 00 00 00 00 00 00
18
19 1778.61 6A1 04 00 00 00 00 00 00 00
20
21
22
23 2778.44 6A0 05 00 00 00 00 00 00 00
24
25
26
27 4778.24 6A0 01 00 00 00 00 00 00 00
28
29 4778.27 6A1 02 00 00 00 00 00 00 00
30
31
32
33 5778.08 6A0 03 00 00 00 00 00 00 00
34
35 5778.12 6A1 04 00 00 00 00 00 00 00
36
37
38
39 6778.12 6A0 05 00 00 00 00 00 00 00
40
41
42 8777.90 6A0 01 00 00 00 00 00 00 00
43
44 8777.93 6A1 02 00 00 00 00 00 00 00
45
46
47
48 9777.70 6A0 03 00 00 00 00 00 00 00
49
50 9777.73 6A1 04 00 00 00 00 00 00 00
51
52
53
54 10777.57 6A0 05 00 00 00 00 00 00 00
11
12 764.64 6A0 01 00 00 00 00 00 00 00
13
14 764.69 6A1 02 00 00 00 00 00 00 00
15
16
17
18 4762.79 6A0 03 00 00 00 00 00 00 00
19
20 4762.82 6A1 04 00 00 00 00 00 00 00
21
22
23
24 8762.35 6A0 05 00 00 00 00 00 00 00
25
26 8762.36 6A1 01 00 00 00 00 00 00 00
27
28
29
30 12762.01 6A0 02 00 00 00 00 00 00 00
31
32 12762.04 6A1 03 00 00 00 00 00 00 00
7 NumPDID 1
8
9
10
11 7.19 6A0 01 00 00 00 00 00 00 00
12
13 77.21 6A1 01 00 00 00 00 00 00 00
14
15
16
17 1077.61 6A0 01 00 00 00 00 00 00 00
18
19 1077.68 6A1 01 00 00 00 00 00 00 00
20
21
22
23 2078.29 6A0 01 00 00 00 00 00 00 00
24
25 2078.40 6A1 01 00 00 00 00 00 00 00
26
27
28
29 3078.26 6A0 01 00 00 00 00 00 00 00
30
31 3078.33 6A1 01 00 00 00 00 00 00 00
32
33
34
35 4079.13 6A0 01 00 00 00 00 00 00 00
36
37 4079.19 6A1 01 00 00 00 00 00 00 00
38
39
40
41 5079.17 6A0 01 00 00 00 00 00 00 00
42
43 5079.24 6A1 01 00 00 00 00 00 00 00
44
45
46
47 6079.75 6A0 01 00 00 00 00 00 00 00
48
49 6079.82 6A1 01 00 00 00 00 00 00 00
50
51
52
53 7080.77 6A0 01 00 00 00 00 00 00 00
54
55 7080.91 6A1 01 00 00 00 00 00 00 00
56
57
58
59 8080.90 6A0 01 00 00 00 00 00 00 00
60
61 8080.97 6A1 01 00 00 00 00 00 00 00
62
63
64
65 9081.09 6A0 01 00 00 00 00 00 00 00
66
67 9081.15 6A1 01 00 00 00 00 00 00 00
dIn case of a PDID transmission error, the Dcm shall use always the same order of
periodicDIDs per client. Transmission errors shall not influence this order, the Dcm
shall continue to retry the transmission and start the next PDID only after the PDID
was transmitted successfully.c
dAfter periodicDIDs are started and a positive response was sent, the Dcm shall start
to send the periodic DID.c
dEach time the counter of a periodicDataIdentifiers elapses, the Dcm shall retrieve the
DID data without validating further conditions (i.e. session, security, mode dependen-
cies, ConditionCheckRead and ReadDataLength).c
Note: The rate for a specific transmissionMode is defined as the time between any
two consecutive response messages with the same periodicDataIdentifier, when only
a single periodicDID is scheduled. If multiple periodicDIDs are scheduled concurrently,
the effective period between the same periodicDataIdentifier will vary based upon the
following design parameters:
• The main function recurrence DcmTaskTime
• The number of available periodic connections
• The number of periodicDIDs that can be scheduled concurrently (see configura-
tion parameter DcmDspMaxPeriodicDidScheduler).
dIf DcmDspPeriodicTransmissionMaxPeriodicMediumTransmissions
is configured, the Dcm shall limit the number of used periodic connections for
transmissionMode ’sendAtMediumRate’ to DcmDspPeriodicTransmissionMax-
PeriodicMediumTransmissions connections.c
dUpon stopping the periodical read of a data identifier while a pending asynchronous
ReadData operation is still in progress, the Dcm shall cancel the pending read operation
by calling ReadData with OpStatus=DCM_CANCEL.c
dUpon stopping the periodical read of a data identifier, the Dcm shall cancel pending
transmissions of that DID.c
dUpon stopping the periodical read of a data identifier the Dcm shall finalize already
initiated transmissions of that DID.c
[SWS_Dcm_00255] dThe Dcm module shall implement the UDS Service WriteDataByI-
dentifier (0x2E) of the Unified Diagnostic Services.c
When using Service 0x2E, the request of the tester contains a 2-byte DID and a
dataRecord with the data to be written. The configuration of the Dcm contains a list
of supported DIDs and defines for each configured DID:
• The 2-byte DID (see configuration parameter DcmDspDidIdentifier)
• For every data of the DID:
– The function WriteData to be used for this data (see configuration parame-
ters DcmDspDataWriteFnc and DcmDspDataUsePort)
dOn reception of the UDS Service WriteDataByIdentifier (0x2E), the Dcm shall check
if the write access to the requested DID is authenticated and write the data identifier
only if:
• for that write DID a role is configured via DcmDspDidWriteRoleRef and the
verification according to [SWS_Dcm_01522] was successful or
• the active white list on that connection has for the requested DID one entry with
write access that matches that DID.
In other case the Dcm won’t be able to split the data from the request.
Note: The BndM needs to be set into writing mode as a precondition. This is either
done by the coding sub-module in Dcm or by a CDD.
dIf the Dcm has triggered an atomic BndM write operation according to
[SWS_Dcm_01582], the Dcm shall return a positive response if the write operation
of the BndM has called Dcm_BndMWriteBlockFinish with the parameter result set to
E_OK.c
dIf the Dcm has triggered an atomic BndM write operation according to
[SWS_Dcm_01582], the Dcm shall return a negative response 0x72 (generalProgram-
mingFailure) if the write operation of the BndM has called Dcm_BndMWriteBlockFinish
with the parameter result set to E_NOT_OK.c
[SWS_Dcm_01586]
Upstream requirements: RS_Diag_04243
[SWS_Dcm_00256]
Upstream requirements: RS_Diag_04218
When using Service 0x2F, the request of the tester contains a 2-byte DID.
The configuration of the Dcm contains a list of supported DID’s. For each DID, the Dcm
configuration specifies:
• The 2-bytes DID (see configuration parameter DcmDspDidIdentifier)
• For every data of the DID :
– The function Xxx_ReturnControlToECU() for this data (see configuration pa-
rameters DcmDspDataReturnControlToEcuFnc and DcmDspDataUse-
Port)
– The function Xxx_ResetToDefault() for this data (see configuration parame-
ters DcmDspDataResetToDefaultFnc and DcmDspDataUsePort)
– The function Xxx_FreezeCurrentState() for this DID (see configuration pa-
rameters DcmDspDataFreezeCurrentStateFnc and DcmDspDataUse-
Port)
[SWS_Dcm_00579]
Upstream requirements: RS_Diag_04218
dOn reception of the UDS Service InputOutputControlByIdentifier (0x2F), the Dcm shall
check if the control access to the requested DID is authenticated and control the IO only
if:
• for that IO control a role is configured via DcmDspDidControlRoleRef and the
verification according to [SWS_Dcm_01522] was successful or
• the active white list on that connection has for the requested DID one entry with
control access that matches that DID.
c
[SWS_Dcm_00563]
Upstream requirements: RS_Diag_04218
dOn reception of the UDS Service InputOutputControlByIdentifier (0x2F), the Dcm mod-
ule shall check if the DID is supported (see configuration parameter DcmDspDid) If
not, the Dcm module shall send NRC 0x31 (Request out of range).c
[SWS_Dcm_00564]
Upstream requirements: RS_Diag_04218
dIf a DID is set as unused (DcmDspDidUsed set to FALSE), the Dcm shall consider the
DID as not supported (according to [SWS_Dcm_00563])c
[SWS_Dcm_00565]
Upstream requirements: RS_Diag_04218
dOn reception of the UDS Service InputOutputControlByIdentifier (0x2F), the Dcm mod-
ule shall check if the DID has a Control access configured (see configuration parame-
ter DcmDspDidControl in DcmDspDidInfo). If not, the Dcm module shall send NRC
0x31 (Request out of range).c
[SWS_Dcm_01600] CEMR on SR interface for DIDs with no CEMR in the UDS re-
quest
Upstream requirements: RS_Diag_04218
dIf the IOC DID has no CEMR in the UDS request message, the Dcm shall use a Dcm_-
Cemr_Type that has a bit for each DcmDspData of the DID on the interface IOCon-
trolRequest that has each bit set to 1.c
[SWS_Dcm_00580]
Upstream requirements: RS_Diag_04218
[SWS_Dcm_00581]
Upstream requirements: RS_Diag_04218
dIn case of more than one supported I/O signal per DataIdentifier and the configuration
parameter DcmDspDidControlMask is set to DCM_CONTROLMASK_INTERNAL, the
Dcm shall internally consider the parameter controlEnableMaskRecord and control only
the included signals in the request message.c
[SWS_Dcm_01273]
Upstream requirements: RS_Diag_04218
[SWS_Dcm_01274]
Upstream requirements: RS_Diag_04218
[SWS_Dcm_CONSTR_06086] Signals for DIDs with Atomic S/R are not shared
with other DIDs
Upstream requirements: RS_Diag_04218
[SWS_Dcm_00396]
Upstream requirements: RS_Diag_04218
[SWS_Dcm_00397]
Upstream requirements: RS_Diag_04218
[SWS_Dcm_00398]
Upstream requirements: RS_Diag_04218
[SWS_Dcm_00399]
Upstream requirements: RS_Diag_04218
dOn any session transition, the Dcm shall stop all active IO controls according to
[SWS_Dcm_01435] which are not supported by the new session.c
dOn a session transition to default session, the Dcm shall stop all active IO controls
according to [SWS_Dcm_01435].c
dOn any security level change, the Dcm shall stop all active IO controls according to
[SWS_Dcm_01435] which are not support by the new security level anymore.c
[SWS_Dcm_00640]
Upstream requirements: RS_Diag_04218
dTo serialize the required AUTOSAR data types (signed- and unsigned integer) from
the request message (in case of inputOutputControlParameter is set to ’short-
TermAdjustment’) / into the response message of UDS Service InputOutputControlByI-
dentifier responses, the target endianness configured in DcmDspDataEndianness
shall be considered for DcmDspData elements having DcmDspDataUsePort set to
1
The size of the mask depends on the parameter DcmDspDidControlMaskSize
[SWS_Dcm_00682]
Upstream requirements: RS_Diag_04218
Beside the Client/Server interface, the Dcm provides the SenderReceiver interface IO-
ControlRequest_DID. The underControl data element of this interface is calculated by
the Dcm with one state bit for each data element identical to the CEMR. Applications
can directly derive the active control enable status without the need to maintain inter-
nal states.
The bit-mask underControl contains the accumulated status about which data elements
of this particular I/O is currently under diagnostic control. The normal operation state
could be derived if the value of underControl is set to 0x00 (which is the initial value).
Each set bit indicates a data element which is under diagnostic control via FreezeCur-
rentState, ’ResetToDefault’ or ’ShortTermAdjustment’.
dThe Dcm shall calculate the underControl data element of the S/R interface IOCon-
trolRequest_{DID}. The underControl is a bitfield of the same size than the CEMR of
the controlled DID. Each bit represents the same data element as in the CEMR. A value
of 0 indicates, that the corresponding data element is currently not controlled by the
Dcm, a value of 1 indicates that it is controlled. The initial value is 0, each control
request for a data element with inputOutputControlParameter equal to Reset-
ToDefault, FreezeCurrentState or ShortTermAdjustment will set the corresponding bit
value to 1, and each control request with inputOutputControlParameter set to
ReturnControlToECU will set the bit value to 0.c
Note: The use of the RTE functionality ”IsUpdated” is a possible mechanism for the
Dcm to detect a write from SW-C to the S/R data element.
Note: The controlState is a separate data elment that it can be optionally pro-
cessed by a data transformer to transform the byte stream into a composite type (see
Figure 7.12: IO-Control with Sender/Receiver interfaces).
An example of the Dcm S/R interaction is given in Figure 9.22, Figure 9.23 and Figure
9.24. For ReturnControlToECU the data from the request is provided to the application,
the Dcm will continue to finalize the request after writing the data into the S/R ports. All
other sub-functions will wait for the application providing the response 0x00 or an NRC
code.
[SWS_Dcm_00257] dThe Dcm module shall implement the UDS Service RoutineCon-
trol (0x31) for subFunctions startRoutine, stopRoutine and requestsRoutineResults.c
A tester can use UDS Service 0x31 to start, stop or obtain the results of a routine
identified by a 2-byte routineIdentifier. The Dcm module configuration contains a list
of the routineIdentifiers (see configuration parameter DcmDspRoutineIdentifier)
supported by the DCM. For each routineIdentifier, the Dcm configuration specifies:
• The function Xxx_Start() associated with this routineIdentifier (see configuration
parameters DcmDspStartRoutineFnc, DcmDspRoutineUsePort and DcmD-
spRoutineFncSignature)
• List of signal available in the request and in the response (see configuration pa-
rameters DcmDspStartRoutineIn and DcmDspStartRoutineOut)
[SWS_Dcm_01442]
Upstream requirements: RS_Diag_04224
dIf DcmDspRoutineUsePort is set to true, the Dcm shall call the corresponding oper-
ation of the C/S interfaces RoutineServices_RoutineName to process this routine.c
A routine handler processes the diagnostic routine control request. The Dcm passes the
routineControlOption as input parameters to the routine handler. The routine processes
the request and writes the result to the output parameters of the routine handler call.
In case of shared Rx and Tx buffer, there are two cases where writing to the output
parameters of the routine control can cause overwriting of the input parameters:
• a routine control uses arrays as output parameters (call by reference)
• a routine control writes to output parameters and returns DCM_E_PENDING. It
is called again with DcmOpstatus set to DCM_PENDING. The input parameters
are derived from the Rx buffer that was overwritten by the previous write to the
output parameters
For efficient memory consumption it is controllable, if the Dcm applies further strategies
to separate input and output parameters in those situations.
[SWS_Dcm_01580] Input and output consistency during C/S based routine han-
dling
Upstream requirements: RS_Diag_04224
[SWS_Dcm_01443]
Upstream requirements: RS_Diag_04224
dIf DcmDspRoutineUsePort is set to false, the Dcm shall use the configured callout
functions for routine operations.c
[SWS_Dcm_00568] dOn reception of the UDS Service RoutineControl (0x31), the Dcm
module shall check if the Routine is supported (see configuration parameter DcmD-
spRoutine) If not, the Dcm module shall send NRC 0x31 (Request out of range).c
dOn reception of the UDS Service RoutineControl (0x31) with sub-function startRou-
tine, the Dcm shall check if the access to the requested routine identifier is authenti-
cated and process the routine only if:
• for this start routine service a role is configured via DcmDspStartRoutineRol-
eRef and the verification according to [SWS_Dcm_01522] was successful or
• the active white list on that connection has one RID entry with sub-function ac-
cess set to startRoutine that matches that service and sub-function.
c
dOn reception of the UDS Service RoutineControl (0x31) with sub-function stopRou-
tine, the Dcm shall check if the access to the requested routine identifier is authenti-
cated and process the routine only if:
• for this stop routine service a role is configured via DcmDspStopRoutineRol-
eRef and the verification according to [SWS_Dcm_01522] was successful or
• the active white list on that connection has one RID entry with sub-function ac-
cess set to stopRoutine that matches that service and sub-function.
c
dOn reception of the UDS Service RoutineControl (0x31) with sub-function reque-
stRoutineResult, the Dcm shall check if the access to the requested routine identifier
is authenticated and process the routine only if:
• for this request routine results service a role is configured via DcmD-
spRequestRoutineResultsRoleRef and the verification according to
[SWS_Dcm_01522] was successful or
• the active white list on that connection has one RID entry with sub-function ac-
cess set to requestRoutineResults that matches that service and sub-function.
c
[SWS_Dcm_00570] dOn reception of the UDS Service RoutineControl (0x31), the Dcm
module shall check if the Routine can be executed in the current session (see con-
figuration parameters DcmDspStartRoutineCommonAuthorizationRef, DcmD-
spStopRoutineCommonAuthorizationRef and DcmDspRequestRoutineRe-
sultsCommonAuthorizationRef). If not, the Dcm module shall send a NRC 0x31
(Request Out of Range).c
[SWS_Dcm_01169] dOn reception of the UDS Service RoutineControl (0x31) with Sub-
Function startRoutine, the Dcm module shall check if the Routine can be executed in
the current mode condition (see configuration parameter DcmDspStartRoutineCom-
monAuthorizationRef). If not, the Dcm module shall send the calculated negative
response code of the referenced DcmModeRule.c
[SWS_Dcm_01170] dOn reception of the UDS Service RoutineControl (0x31) with Sub-
Function stopRoutine, the Dcm module shall check if the Routine can be executed in
the current mode condition (see configuration parameter DcmDspStopRoutineCom-
monAuthorizationRef). If not, the Dcm module shall send the calculated negative
response code of the referenced DcmModeRule.c
[SWS_Dcm_01171] dOn reception of the UDS Service RoutineControl (0x31) with Sub-
Function requestRoutineResults, the Dcm module shall check if the Routine can be
executed in the current mode condition (see configuration parameter DcmDspReque-
stRoutineResultsCommonAuthorizationRef). If not, the Dcm module shall send
the calculated negative response code of the referenced DcmModeRule.c
Routines have different input and output parameters depending on the routine con-
figuration (e.g. DcmDspStartRoutineIn for input parameter for the routine start
service). The signature of the called routine operations Xxx_Start, Xxx_Stop and
Xxx_RequestResults is depending on this configuration. The defined parameters for
input and output routine data are optional, and marked in brackets ’[]’ in the definition
in [SWS_Dcm_01203], [SWS_Dcm_01204] and [SWS_Dcm_91013].
Note: The ’currentDataLength’ parameter as in/out parameter contains the data length
in bytes of the ’dataInVar’ while calling the operation and it returns the length in bytes
of the ’dataOutVar’. As ’dataInVar’ and ’dataOutVar’ are optional, ’currentDataLength’
is only present if at least one of this optional parameter is used.
[SWS_Dcm_00641] dTo serialize the required AUTOSAR data types (signed- and un-
signed integer) from the request message / into the response message of UDS Service
RoutineControl, the target endianness configured in DcmDspRoutineSignalEndi-
anness shall be considered for DcmDspRoutine signals having DcmDspRoutineS-
ignalType set to fixed length (DcmDspRoutineSignalType set to other value than
VARIABLE_LENGTH).c
[SWS_Dcm_01139] dThe Dcm shall follow the NRC handling for RoutineControlService
according to ISO 14229-1 [1].c
[SWS_Dcm_01140] dOn reception of the UDS Service RoutineControl (0x31), the Dcm
module shall check the overall length of the request. If length of the request is wrong,
the Dcm module shall send NRC 0x13 (Incorrect message length or invalid format) to
the tester.c
[SWS_Dcm_01141] dThe Dcm shall call the appropriate routine functions of the SWC
after having performed the total length check and the Mode rules, security level
and session checks (DcmDspStartRoutineCommonAuthorizationRef, DcmD-
spStopRoutineCommonAuthorizationRef and DcmDspRequestRoutineRe-
sultsCommonAuthorizationRef).c
[SWS_Dcm_00701] dOn reception of the UDS Service RoutineControl (0x31), for every
requested RID inside the OBD range (E000-E0FF) and usage of UDS interface, the Dcm
module shall use the routineInfo byte value from DcmDspRoutineInfoByte in the
response to the tester.c
[SWS_Dcm_01332] dOn reception of the UDS Service RoutineControl (0x31), for every
requested RID inside the OBD range (E000-E0FF), the Dcm module shall handle the
RID as defined for OBD Service $08 (see [SWS_Dcm_00418], [SWS_Dcm_00947],
[SWS_Dcm_00419], [SWS_Dcm_00420], [SWS_Dcm_00948], [SWS_Dcm_01192]) if
DcmDspEnableObdMirror is set to true and RID not explicitly configured.c
[SWS_Dcm_01333] dOn reception of the UDS Service RoutineControl (0x31), for every
requested RID inside the OBD range (E000-E0FF) and usage of OBD interface, the Dcm
shall use the routineInfo byte value from DcmDspRequestControlInfoByte in the
response to the tester.c
[SWS_Dcm_01393] dAs specified in [4, SAE J1979], unused data bytes shall be filled
with $00.c
[SWS_Dcm_00251] dThe Dcm module shall implement the Tester Present (service
0x3E, diagnostic communication and security) of the Unified Diagnostic Services for
the subfunction values 0x00 and 0x80.c
dThe Dcm shall process the UDS service 0x3E (TesterPresent) independently from the
current authentication state.c
This service is used to keep one or multiple servers in a diagnostic session being
different than the defaultSession.
[SWS_Dcm_00837]
Upstream requirements: RS_Diag_04249
[SWS_Dcm_00839]
Upstream requirements: RS_Diag_04249
[SWS_Dcm_00496]
Upstream requirements: RS_Diag_04033
dThe Dcm module shall implement the RequestDownload (service 0x34) of the Unified
Diagnostic Services.c
Note: the callout function can, if needed, return also other NRC but the ones above
won’t be treated by the Dcm module.
[SWS_Dcm_01417]
Upstream requirements: RS_Diag_04033
[SWS_Dcm_01418]
Upstream requirements: RS_Diag_04033
[SWS_Dcm_01419]
Upstream requirements: RS_Diag_04033
[SWS_Dcm_00499]
Upstream requirements: RS_Diag_04033
dThe Dcm module shall implement the RequestUpload (service 0x35) of the Unified
Diagnostic Services.c
[SWS_Dcm_00857] dOn reception of the UDS RequestUpload (0x35), the Dcm shall
check if the requested AddressAndLengthFormatIdentifier is supported (refer
to configuration parameter DcmDspSupportedAddressAndLengthFormatIden-
tifier), Otherwise the NRC 0x31 (requestOutOfRange) shall be responded. In case
the container AddressAndLengthFormatIdentifier is not present, the Dcm shall
accept all possible AddressAndLengthFormatIdentifiers.c
Note: the callout function can, if needed, return also other NRC but the ones above
won’t be treated by the Dcm module.
[SWS_Dcm_01420]
Upstream requirements: RS_Diag_04033
dUpon calling Dcm_ProcessRequestUpload, the Dcm shall write the maximum pos-
sible buffer size into the BlockLength parameter.c
[SWS_Dcm_01421]
Upstream requirements: RS_Diag_04033
[SWS_Dcm_01422]
Upstream requirements: RS_Diag_04033
[SWS_Dcm_00502]
Upstream requirements: RS_Diag_04033
dThe Dcm module shall implement the TransferData (service 0x36) of the Unified Diag-
nostic Services.c
To execute the transfer data request, it is mandatory to have a previous received Re-
questDownload or RequestUpload according to ISO14229-1 [1]. The Dcm will follow
this requirements and track internally if such a request was received before the Trans-
ferData request. This is relevant to check if a NRC 0x24 sequence error has occurred
and to reset the block sequence counter.
[SWS_Dcm_01620] Request sequence error check dThe Dcm shall implement the
requestSequenceErrorCheck (NRC 0x24) for RequestDownload, RequestUpload and
RequestFileTransfer operations according to ISO14229-1 [1].c
The Dcm does not track if the data transfer is completed by the memory size parameter.
The NRC 0x24 check for this has to be done in the application. This is a deviation to
ISO14229-1 [1] where the NRC 0x24 check is done on only one place.
[SWS_Dcm_00645] Block sequence counter check dThe Dcm shall realize the block
sequence counter error verification according to ISO14229-1 [1] before the Read or
Write Data calls are realized and return the NRC 0x73 if the block sequence counter of
the request is wrong.c
dOn reception of the UDS Service TransferData (0x36), if a download process is running
(RequestDownload service has been previously received), the request format is correct
and DcmDspMemoryTransferUsePort is set to FALSE, the Dcm module shall call the
callout Dcm_ProcessTransferDataWrite.c
dOn reception of the UDS Service TransferData (0x36), if an upload process is running
(RequestUpload service has been previously received),the request format is correct
and DcmDspMemoryTransferUsePort is set to FALSE, the Dcm module shall call
the callout Dcm_ProcessTransferDataRead.c
Note: the callout function can, if needed, return also other NRCs but the ones above
won’t be treated by the Dcm module.
[SWS_Dcm_00505]
Upstream requirements: RS_Diag_04033
dThe Dcm module shall implement the RequestTransferExit (service 0x37) of the Uni-
fied Diagnostic Services.c
Note: the callout function can, if needed, return also other NRC but the ones above
won’t be treated by the Dcm module.
dIf DcmDspMemoryTransferUsePort is set to false, the Dcm shall use the API
Dcm_ProcessRequestTransferExit to process the RequestTransferExit request.c
dIf DcmDspMemoryTransferUsePort is set to true, the Dcm shall use the operation
ProcessRequestTransferExit of the C/S interface UploadDownloadServices to pro-
cess the RequestTransferExit request.c
This service is used to request the start of a file transfer process according to ISO-
14229-1.
[SWS_Dcm_01457] dIf the maxNumberOfBlockLength does not fit into the requested
lengthFormatIdentifier number of bytes, the Dcm shall send NRC 0x10 (generalReject).c
An external test tool can request an ECU to either disable or enable DTC storage in the
ECUs error memory by sending a UDS Service 0x85 request with sub-function 0x01
("ON") or 0x02 ("OFF").
[SWS_Dcm_00249]
Upstream requirements: RS_Diag_04159
dThe Dcm module shall implement UDS Service ControlDTCSetting (0x85) to enable or
disable the storage of DTCs in the ECUs error memory.c
[SWS_Dcm_01399]
Upstream requirements: RS_Diag_04159
[SWS_Dcm_01063]
Upstream requirements: RS_Diag_04115
dOn reception of UDS Service 0x85 with subfunction 0x01 (DTCSettingType "ON"), the
Dcm shall call Dem_EnableDTCSetting() with ClientId = Client Id for this Dcm instance
(see DcmDemClientRef).c
[SWS_Dcm_00406]
Upstream requirements: RS_Diag_04115
dOn reception of UDS Service 0x85 with subfunction 0x02 (DTCSettingType "OFF"), the
Dcm shall call Dem_DisableDTCSetting() with ClientId = Client Id for this Dcm instance
(see DcmDemClientRef).c
For some use-cases the Dcm may re-enable the controlDTCsetting due to external
changed mode conditions:
[SWS_Dcm_00752] dIn case the DTCSetting is disabled and at least one ref-
erenced arbitrary ModeDeclarationGroupPrototypes (see configuration parameter
DcmDspControlDTCSettingReEnableModeRuleRef) for service ControlDTCSet-
ting (0x85) with DTCSettingType "OFF" (0x02) are not fulfilled anymore, the Dcm mod-
ule shall call Dem_EnableDTCSetting() with the following parameters:
• ClientId: Client Id for this Dcm instance (see DcmDemClientRef)
and switch the mode DcmControlDTCSetting to DCM_ENABLEDTCSETTINGc
With the UDS Service ResponseOnEvent (0x86), a tester requests the server to start
or stop transmission of responses initiated by a specified server event.
dThe Dcm shall support the UDS service ResponseOnEvent (0x86) and all subfunc-
tions of this service according to ISO 14229-1:2020 [9].c
dWhile the Dcm is processing a ClearDiagnosticInformation request, the Dcm shall ig-
nore the callback Dcm_DemTriggerOnDTCStatus.c
dThe Dcm shall discard all serviceToRespondTo messages that could not be send due
to transmission errors.c
There is not queuing for failed RoE responses for later transmission.
dOn transmission of the service to respond to, the Dcm shall perform the service au-
thentication checks and send a positive response only for services that have granted
access to that connection.c
dThe Dcm shall implement the RoE scheduler according to ISO 14229-1:2020 [9]
and map the configured scheduler rate DcmDspRoeSchedulerRate to ResponseOn-
EventSchedulerRate from ISO 14229-1:2020 [9].c
dThe Dcm shall provide the maximum number of changed DIDs per RoE scheduler
by mapping DcmDspRoeMaxNumChangeOfDataIdentfierEvents to MaxNum-
ChangeOfDataIdentfierEvents from ISO 14229-1:2020 [9].c
[SWS_Dcm_CONSTR_06104] dDcmDspRoeMaxNumChangeOfDataIdent-
fierEvents shall be configured, if the Dcm is configured to support service
ResponseOnEvent with subfunction onChangeOfDataIdentifier.c
dThe Dcm shall provide the maximum number of comparison of DIDs per RoE
scheduler by mapping DcmDspRoeMaxNumChangeOfDataIdentfierEvents to
MaxNumComparisonOfValueEvents from ISO 14229-1:2020 [9].c
[SWS_Dcm_CONSTR_06105] dDcmDspRoeMaxNumChangeOfDataIdent-
fierEvents shall be configured, if the Dcm is configured to support service
ResponseOnEvent with subfunction onComparisonOfValues.c
dThe Dcm shall provide the maximum length of a DID as input for a ResponseOn-
Event event by mapping DcmDspRoeMaxSupportedDIDLength to MaxSupported-
DIDLength from ISO 14229-1:2020 [9].c
dThe Dcm shall provide the maximum number of DTC status change events by map-
ping DcmDspRoeMaxNumOfStoredDTCStatusChangedEvents to MaxNumberOfS-
toredDTCStatusChangedEvents from ISO 14229-1:2020 [9].c
[SWS_Dcm_CONSTR_06107] dDcmDspRoeMaxNumOfStoredDTCSta-
tusChangedEvents shall be configured, if the Dcm is configured to support the
service ResponseOnEvent with subfunction onDTCStatusChange.c
7.4.3.1 Overview
The following table defines the OBD Services supported by the DCM.
Relevant OBD Ser- Support in the DCM
vice Identifier
$01 Supported
$02 Supported
$03 Supported
$04 Supported
In many cases, the Dcm protocol allows the bundling of several requests (for example
several "PIDs") and the corresponding bundling of the responses. The descriptions of
the behavior for the individual services do not explicitly consider this. As the Dcm needs
to comply with OBD standard (as is defined through various requirements below), the
Dcm might need to repeat the steps defined below to parse a request and assemble a
valid response.
In a vehicle there can be 3 different types of OBD ECUs:
• Master ECU (one per vehicle)
• Primary ECU (several per vehicle)
• Dependent / Secondary ECUs (several per vehicle)
From the Basic Software point of view Dependent / Secondary ECUs doesn’t need any
specific OBD functionality. In Dependent / Secondary ECUs OBD-relevant information
will not be stored in the Basic Software (e.g. no direct communication with the scan
tool). The respective OBD functionality might be handled in Dependent / Secondary
ECUs by a SWC.
The following OBD requirements are only valid for Master and Primary ECUs. If neces-
sary the OBD requirements differentiate between Master and Primary Requirement.
The following table gives an overview about which OBD functionality must be supported
in a Master ECU, Primary ECU or Dependent / Secondary ECU:
Functionality Master ECU Primary ECU Dependent /
Secondary ECU
OBD Scantool Yes Yes No
Communication
[SWS_Dcm_00077]
Upstream requirements: RS_Diag_04058
dWhen calling the DEM module for OBD services, the Dcm module shall use the follow-
ing values for the parameter DTCOrigin:
Service $0A uses DEM_DTC_ORIGIN_PERMANENT_MEMORY
All other services use DEM_DTC_ORIGIN_OBD_RELEVANT_MEMORYc
SAE-J1979 [4] states that the external test equipment shall not request OBD Service
$01/$06/$09 with a mixture of "availability identifiers" and "data containing identifiers".
Therefore the AUTOSAR standard does not define the Dcm behavior in this situation.
[SWS_Dcm_00243] dThe Dcm module shall implement the OBD service $01 (Request
Current Powertrain diagnostic Data) in compliance to all provisions of the OBD stan-
dard.c
Using Service $01, an external test tool can request an emission-related ECU to return
PID-values or to return the supported PIDs. OBD reserves certain PIDs for the special
purpose of obtaining the list of available PIDs in a certain range. These PIDs are called
"availability PIDs" and are $00, $20, $40, $60, $80, $A0, $C0 an $E0.
The Dcm collects the PID information from 1 to n SW-Cs. This applies in particular
for PIDs which contain several data values for potentially different sources. Example:
PID$83 reports Nox Sensor Data for sensor 1 and sensor 2 in one composed PID
which might come from different SW-C.
The Dcm configuration defines the PIDs that are available on the ECU. The Dcm con-
figuration defines for each such PID:
• The PID Identifier (see configuration parameter DcmDspPidIdentifier)
• Indication of the PID is used or not (for postbuild configuration) (see configuration
parameter DcmDspPidUsed)
• The size of the PID (see configuration parameter DcmDspPidSize)
• The supported information for this PID (see configuration parameter DcmDsp-
PidSupportInfo)
• List of data (DcmDspPidData) for the PID with the following configuration for
every data
– The length of the data associated with the PID (see configuration parameter
DcmDspPidDataByteSize)
– The position of the data in the PID (see configuration parameter DcmDsp-
PidByteOffset)
– The reference to the supported information container (see configuration pa-
rameter DcmDspPidDataSupportInfo)
– The Xxx_ReadData() function that the Dcm must call to obtain the current
value of the data or the name of the port that the Dcm uses to obtain the
current value through the RTE from a SW-C (see configuration parameters
DcmDspPidDataReadFnc and DcmDspPidDataUsePort)
[SWS_Dcm_00407] dOn reception of an OBD Service $01 request with only "avail-
ability PIDs" as parameter, the Dcm shall respond with the corresponding supported
(=configured) PIDs encoded according to the OBD standard.c
To obtain the value for a PID, the Dcm uses the configured Xxx_ReadData() functions
for every data of the PID. To provide OBD Service $01, the Dcm relies on external
functions that allow it to obtain the value of the PIDs. There is one such function per
data of every PID that is needed by the DCM.
When using a Xxx_ReadData() function, the Dcm provides a buffer of the correct length,
which is filled by the function with the data PID value.
[SWS_Dcm_00408] dOn reception of an OBD Service $01 request with only PIDs that
are not "availability PIDs", the Dcm shall obtain the current value of these PIDs by
invoking the configured Xxx_ReadData() functions for every data of the PID and shall
return these values as response to Service $01.c
The entity providing the actual implementation of the Xxx_ReadData() function for a
specific signal of a PID might be a SW-C or another basic software module. The origin
of the function is not known to the Dcm but is part of the Dcm configuration. Some
PIDs are provided by the DEM. These PIDs are also explicitly configured in the Dcm
configuration and it is the responsibility of a correct Dcm configuration to make the
Xxx_ReadData() function point to the correct function provided by the DEM.
For certain PIDs, the Dem provides the function to obtain the PID value. Which PIDs
come from the Dem are part of the Dcm configuration.
Note: For PIDs where Dem provides the function, DcmDspPidDataUsePort for that
PID should be set to USE_DATA_SYNCH_FNC and DcmDspPidDataReadFnc shall
point to the function Dem_DcmReadDataOfPID<NN> where <NN> represents the Id
of the PID.
The data byte A of the PIDs contain the support status of the subsequent data bytes.
Since not all data values might be available due to the particular vehicle configuration
(e.g. there is only a Nox-sensor 1 available in the vehicle in the example above), the
PID response contains in this data byte A the information about the support status of
the following data values. Note, that the PIDs always contain the same number of bytes
- even if not all values are really available.
The response to the OBD-tester needs to be composed out of the available data values.
Data bytes that are not provided by an SW-C need to be replaced with fill-byte to obtain
a complete PID contents.
[SWS_Dcm_00623] dWhen responding to OBD Service $01, the Dcm shall put fill-bytes
between DcmDspPidData in the PID whenever content bytes are missing in order to
fit to the PID size (see configuration parameter DcmDspPidSize).c
Note: If other fill-bytes than 0x00 are needed by legistlation, the application has to
provide the value of the fill-byte.
[SWS_Dcm_00718] dTo serialize the required AUTOSAR data types (signed- and
unsigned integer) into the response message of OBD Service $01 responses
the target endianness configured in DcmDspPidDataEndianness shall be con-
sidered for DcmDspPidData elements having DcmDspPidDataUsePort set to
USE_DATA_SENDER_RECEIVER or USE_DATA_SENDER_RECEIVER_AS_SERVICE.
In case DcmDspPidDataEndianness is not present, the DcmDspDataDefault-
Endianness shall be used instead.c
[SWS_Dcm_00244] dThe Dcm shall implement OBD Service $02 (Request Power Train
FreezeFrame Data) in compliance to all provisions of the OBD standard.c
For OBD-relevant FreezeFrames AUTOSAR only supports frame 0, which is the mini-
mum required by legislation.
[SWS_Dcm_00409] dThe Dcm shall ignore all requests regarding record-numbers that
are not 0c
[SWS_Dcm_00973] dWhen responding to OBD Service $02, the Dcm shall put fill-bytes
between DcmDspPidData in the PID whenever content bytes are missing in order to
fit to the PID size (see configuration parameter DcmDspPidSize).c
Note: If other fill-bytes than 0x00 are needed by legislation, the application has to
provide the value of the fill-byte.
The following sections define how specific PIDs are handled by the Dcm.
An external tester can request the DTC that caused a FreezeFrame to be stored by
using the Service $02 with the PID value $02.
[SWS_Dcm_00279]
Upstream requirements: RS_Diag_04058
dOn reception of a request for Service $02 with PID $02, the Dcm shall call
Dem_DcmGetDTCOfOBDFreezeFrame() with FrameNumber set to 0x00 to get the
DTC number.c
The Dem module returns the corresponding DTC. Note that this 2-byte DTC is packed
into the 4-byte data returned by the call to Dem_DcmGetDTCOfOBDFreezeFrame ().
see Dem specification on how this is done.
Using Service $02, an external tester may request the supported PIDs for a specific
freeze-frame by using the "availability PIDs".
Using Service $02, an external tester may request the values of specific PIDs in specific
FreezeFrames.
Note that is not necessary for the Dcm module to lock or unlock the record updates of
the Dem module.
[SWS_Dcm_00245] dThe Dcm module shall implement OBD Service $03 (Request
emission-related diagnostic trouble codes) in compliance to all provisions of the OBD
standard.c
[SWS_Dcm_00410] dThe Dcm module shall implement OBD Service $07 (Request
Emission-Related Diagnostic Trouble Codes Detected during Current or Last Com-
pleted Driving Cycle) in compliance to all provisions of the OBD standard.c
[SWS_Dcm_00411] dThe Dcm module shall implement OBD Service $0A (Request
Emission-Related Diagnostic Trouble Codes with Permanent Status) in compliance to
all provisions of the OBD standard.c
An external test tool can request an emission-related ECU to report all stored, pending
or permanent emission-related DTCs by sending the request $03, $07, $0A respec-
tively.
[SWS_Dcm_00289] dWhen receiving a request for OBD Service $03, the Dcm module
shall obtain from the DEM all DTCs in primary memory and with a "confirmed" status
using the functions Dem_SetDTCFilter() and Dem_GetNextFilteredDTC().c
Note: The Dcm module can get an indication of the number of records that will be
found using Dem_GetNextFilteredDTC() by using Dem_GetNumberOfFilteredDTC().
This allows the implementation to calculate the total size of the response before cycling
through the DTCs.
[SWS_Dcm_00412] dWhen receiving a request for OBD Service $07, the Dcm module
shall obtain from the DEM module all DTCs in primary memory with a "pending" status
using the functions Dem_SetDTCFilter() and Dem_GetNextFilteredDTC().c
Note: The Dcm module can get an indication of the number of records that will be
found using Dem_GetNextFilteredDTC() by using Dem_GetNumberOfFilteredDTC().
This allows the implementation to calculate the total size of the response before cycling
through the DTCs.
[SWS_Dcm_00330] dWhen receiving a request for OBD Service $0A, the Dcm module
shall obtain from the DEM all DTCs stored in permanent memory using the functions
Dem_SetDTCFilter() and Dem_GetNextFilteredDTC().c
Note: The Dcm module can get an indication of the number of records that will be
found using Dem_GetNextFilteredDTC() by using Dem_GetNumberOfFilteredDTC().
This allows the implementation to calculate the total size of the response before cycling
through the DTCs.
The following table illustrates the parameters the Dcm module must use when calling
Dem_SetDTCFilter() in response to a request for OBD Service $03, $07 or $0A.
Parameters to Dem_SetDTCFilter
OBD Service $03 $07 $0A
ClientId Client Id for this Dcm Client Id for this Dcm Client Id for this Dcm
instance (see instance (see instance (see
DcmDemClientRef) DcmDemClientRef) DcmDemClientRef)
DTCStatusMask 0x08 (confirmed bit 0x04(pending bit set) 0x00
set)
DTCFormat DEM_DTC_ DEM_DTC_ DEM_DTC_
FORMAT_OBD FORMAT_OBD FORMAT_OBD
DTCOrigin DEM_DTC_ORIGIN_ DEM_DTC_ORIGIN_ DEM_DTC_ORIGIN_
OBD_RELEVANT_ OBD_RELEVANT_ PERMANENT
MEMORY MEMORY
FilterWithSeverity FALSE FALSE FALSE
DTCSeverityMask Not relevant Not relevant Not relevant
FilterForFaultDetec- FALSE FALSE FALSE
tionCounter
When using paged buffer mechanism, in some case, it’s possible that the number of
DTC matching the filter change between the calculation of the total size, needed for
the first page transmission, and the sending of the further pages. For this reason, the
requirement [SWS_Dcm_00587] and [SWS_Dcm_00588] shall be considered for the
implementation of this service.
[SWS_Dcm_00246] dThe Dcm module shall implement OBD Service $04 (Clear/re-
set emission-related diagnostic information) in compliance to all provisions of the OBD
standard.c
An external test tool can request an emission-related ECU to clear the error memory
by sending the request $04.
[SWS_Dcm_00004]
Upstream requirements: RS_Diag_04058
dWhen receiving a request for OBD Service $04, the Dcm module shall call the interface
Dem_SelectDTC with the following parameter values:
• ClientId: Client Id for this Dcm instance (see DcmDemClientRef)
• DTC = DEM_DTC_GROUP_ALL_DTCS
• DTCFormat = DEM_DTC_FORMAT_OBD
• DTCOrigin = DEM_DTC_ORIGIN_OBD_RELEVANT_MEMORY
c
[SWS_Dcm_00413] dIn case Dem_ClearDTC() returns E_OK, the Dcm module shall
send a positive response.c
[SWS_Dcm_00703]
Upstream requirements: RS_Diag_04249
[SWS_Dcm_00414] dThe Dcm module shall implement OBD Service $06 (Request On-
Board Monitoring Test-results for Specific Monitored Systems) in compliance to all pro-
visions of the OBD standard.c
Using Service $06, an external test tool can request an emission-related ECU to return
the DTR’s associated with the OBDMID or to return the supported OBDMIDs. OBD
reserves certain OBDMIDs for the special purpose of obtaining the list of supported
OBDMIDs in a certain range. These OBDMIDs are called "availability OBDMIDs" and
are $00, $20, $40, $60, $80, $A0, $C0 an $E0.
A tester request for supported OBDMIDs may contain up to six (6) "availability OBD-
MIDs".
[SWS_Dcm_00956] dOn reception of an OBD Service $06 request with multiple non-
availability OBDMIDs, the Dcm module shall ignore the request.c
The maintenance of the DTRs lies within the responsibility of the DEM. SW-Cs report-
ing DTRs use dedicated interfaces offered by the DEM. Upon requests from the tester
the Dcm retrieves the information from the DEM using dedicated DEM interfaces. There
is no direct interaction between the Dcm and SW-Cs.
[SWS_Dcm_00957] dOn reception of an OBD Service $06 request with only "avail-
ability OBDMID(s)" as parameter(s), the Dcm module shall obtain the supported OB-
DMIDs by calling the Dem interface Dem_DcmGetAvailableOBDMIDs()for each "avail-
ability OBDMID ($00, $20, ...)" contained within the request and concatenate the re-
sults within the response message according to ISO-15031-5 [2].c
[SWS_Dcm_00417] dThe Dcm module shall implement OBD Service $08 (Request
Control of On-Board System, Test or Component) in compliance to all provisions of
the OBD standard.c
Using Service $08, an external test tool can control an on-board system, test or com-
ponent using a TID. OBD reserves certain TIDs for the special purpose of obtaining the
list of supported TIDs in a certain range. These TIDs are called "availability TIDs" and
are $00, $20, $40, $60, $80, $A0, $C0 an $E0.
The Dcm module’s configuration defines the TIDs that are available on the ECU for
the purpose of OBD Service $08. The configuration defines for each such TID (see
configuration parameter DcmDspRequestControlTestId):
• the name of the port the Dcm uses to access the RequestControlServices inter-
face (see configuration parameter DcmDspRequestControl)
• the number of bytes this function takes as input (see configuration parameter
DcmDspRequestControlInBufferSize)
• the number of bytes this function writes as output (see configuration parameter
DcmDspRequestControlOutBufferSize)
To provide OBD Service $08, the Dcm relies on external functions configured per TID.
[SWS_Dcm_00418] dOn reception of an OBD Service $08 request with one or more
"availability TIDs" as parameter, the Dcm module shall respond with the corresponding
supported (=configured) TIDs.c
[SWS_Dcm_00419] dOn reception of an OBD Service $08 request with a TID that is not
an "availability TID", the Dcm module shall invoke the configured Xxx_RequestControl()
function with the following parameters values: InBuffer: data contained in the OBD
request (the size of which must correspond to the size configured in the Dcm module’s
configuration) OutBuffer: space in which the RequestControl function can store its
result (the size of the buffer is taken from the Dcm module’s configuration)c
[SWS_Dcm_00948] dAs specified in [4, SAE J1979], unused data bytes shall be filled
with $00.c
[SWS_Dcm_01192] dIf Xxx_RequestControl() doesn’t return E_OK, the Dcm shall re-
turn NRC 0x22.c
[SWS_Dcm_00421] dThe Dcm module shall implement OBD Service $09 (Request Ve-
hicle Information) in compliance to all provisions of the OBD standard.c
Using Service $09, an external test tool can request vehicle information or can obtain
lists of supported vehicle information. OBD reserves certain InfoTypes for the special
purpose of obtaining the list of supported InfoTypes in a certain range. These Infotypes
are called "availability InfoTypes" and are $00, $20, $40, $60, $80, $A0, $C0 an $E0.
The Dcm module’s configuration defines the InfoTypes and associated data that are
available on one or several SW-C. The configuration defines for each such InfoType:
• The value of InfoType (see configuration parameter DcmDspVehInfoInfoType)
• For every data of the InfoType:
– The position of this data in the InfoType (see configuration parameter DcmD-
spVehInfoDataOrder)
– the size of the value of the InfoType data (see configuration parameter
DcmDspVehInfoDataSize)
– the function that the Dcm module must call to obtain the value for this Info-
Type data OR the port-name through which the Dcm module can obtain the
value for this InfoType data (see configuration parameter DcmDspVehInfo-
DataReadFnc and DcmDspVehInfoDataUsePort).
To provide OBD Service $09, the Dcm relies on external functions that allow it to obtain
the value of an InfoType data. There is one such function per InfoType data that is
needed by the DCM.
When invoking a Xxx_GetInfotypeValueData() function, the Dcm module provides a
buffer of the correct size in which the value of the InfoType data can be stored. The
entity providing the actual implementation of the Xxx_GetInfotypeValueData() function
for a specific InfoType data might be a SW-C or another basic software module. The
origin of the function is part of the Dcm module’s configuration.
Certain InfoTypes needed by the Dcm to provide Service $09 are provided by the DEM.
This is handled in the Dcm configuration.
[SWS_Dcm_00422] dOn reception of an OBD Service $09 request with one or more
"availability InfoTypes" as parameter, the Dcm module shall respond with the corre-
sponding supported (=configured) InfoTypes.c
[SWS_Dcm_00423] dOn reception of an OBD Service $09 request for an InfoType that
is not an "availability InfoType", the Dcm module shall obtain the value of this InfoType
by invoking all the configured Xxx_GetInfotypeValueData() function for every data of
this InfoType and shall return the value as response to Service $09c
Note: The Calculation of the Calibration Identification (CAL-ID) and Calibration Verifi-
cation Number (CVN) is not a BSW Task and will not handled within the DCM.
Note : The integrator has to make sure that the buffer determined by the DcmDspVe-
hInfoDataSize is sufficiently sized to receive the data returned by the provider of
the data.
The Dcm shall be able to manage a jump to the bootloader / jump due to ECUReset
request. Due to the diversity of possibility to realize this jump, this will be done using
callout call.
4 different use cases have been identified for the jump to the bootloader, if all precon-
ditions are fulfilled and assuming the ’suppressPosRspMsgIndicationBit ’ flag is set to
’false’:
1. The application immediately sends a final positive response and then jumps to
the bootloader
2. The application first sends a NRC 0x78 response, then the final positive response
and afterwards jumps to the bootloader
3. The application immediately jumps to the bootloader and the bootloader sends
the final positive response
4. The application first sends a NRC 0x78 response, then jumps to the bootloader
and the bootloader sends the final positive response
Note: In case the ’suppressPosRspMsgIndicationBit’ flag is set to ’true’, use case ’1’
and use case ’3’ will not issue a positive response.
[SWS_Dcm_00532]
Upstream requirements: RS_Diag_04098
Note: By this mode switch the Dcm informs the BswM to prepare the jump to the boot-
loader.
[SWS_Dcm_00592]
Upstream requirements: RS_Diag_04098
Note: By this mode switch the Dcm informs the BswM to prepare the jump to the boot-
loader.
[SWS_Dcm_00654]
Upstream requirements: RS_Diag_04098, RS_Diag_04249
Note: This final transmission of NRC 0x78 before switching to Bootloader shall reload
the P2* timeout in the client.
[SWS_Dcm_00535]
Upstream requirements: RS_Diag_04098
This will allow to store all relevant information prior to jumping to the bootloader.
Note: It is up to the software integrator to decide where to store that data. Usually it
will be stored in non-volatile memory like e.g. data flash. It is also acceptable to "store"
this data in a RAM section which is not initialized out of reset.
[SWS_Dcm_01163]
Upstream requirements: RS_Diag_04098
[SWS_Dcm_01177]
Upstream requirements: RS_Diag_04098
Note: If the NRC 0x78 (Response Pending) response has not been sent correctly the
Dcm will stay in the application and wait for the next request from the Client.
[SWS_Dcm_01179] dIn case the final response has been successfully sent according
to [SWS_Dcm_01177] or [SWS_Dcm_01178], the Dcm shall call Dcm_SetProgCon-
ditionsc
dIf the Dcm intiates a reset and DcmSendRespPendOnRestart is set to TRUE, the
Dcm shall trigger transmission of NRC 0x78 (Response pending) before the reset.c
[SWS_Dcm_00536]
Upstream requirements: RS_Diag_04098
dAt Dcm initialization, the Dcm shall call Dcm_GetProgConditions to know if the
initialization is the consequence of a jump from the bootloader / ECUReset.c
Note: It is the responsibility of the software integrator to ensure that the data contained
in Dcm_ProgConditionsType is valid when Dcm_Init is called. E.g. if this data is
stored in non-volatile memory, it may take some time to make it available after an ECU
reset. This has to be taken into account when designing the ECU’s startup process.
[SWS_Dcm_00767]
Upstream requirements: RS_Diag_04098
dWhen the ComM reports full communication to the Dcm, the Dcm shall send the Re-
sponse to the Service Id passed in the Dcm_ProgConditionsType.c
After successful reprograming of the application software, the bootloader will update
the ApplUpdated flag and the ResponseRequired flags.
After an ECU reset, when the newly programmed application is started for the first time,
the Dcm will read the ApplUpdated and ResponseRequired flag by calling Dcm_Get-
ProgConditions. During this function call the ApplUpdated and ResponseRequired
flags are cleared by the integration code.
[SWS_Dcm_01187] dIf an asynchronous interface is used, the Dcm shall consider the
Output data (OUT) only valid after the last call to the interface that returns E_OK.c
[SWS_Dcm_01188] dIf an asynchronous interface is used, the Dcm shall consider the
OUT-parameter ErrorCode only valid after the last call to the interface that returns
E_NOT_OKc
Note : The "last call" to the interface is the call that returns with a value that indicates
that processing has finished, i.e. E_OK or E_NOT_OK.
Note : INOUT parameter are a combination of the requirements above, i.e. on each
call of the interface the parameters shall have a valid in-value, and the Dcm considers
the out-value valid only after the last call of the interface.
[SWS_Dcm_01189] dIf an asynchronous interface is used, the Dcm shall provide the
values originating from the request for the Input data (IN) on every call to the interface.c
[SWS_Dcm_01174] dIf DcmVinRef is configured then the VIN shall be fetched once
by the Dcm during startup by calling Dcm_GetVin.c
The individual DID can be configured in DcmDspDid. A unique DID identifier is config-
ured on 2 bytes in DcmDspDidIdentifier. In case the DID refers to other DIDs, the
link between them can be configured in DcmDspDidRef2 . Each DID allows to access
to signal data values (by reading and/or writing). The signal reference (to DcmDsp-
Data) and the position of the data in the diagnostic answer (for reading) or request (for
writing) can be configured in DcmDspDidSignal.
The configuration of the data belonging to the DID can be provided in the container
DcmDspData (ECUC_Dcm_00869). This container collects the following information:
• The Data endianness of the data belonging to the DID (ECUC_Dcm_00986:
DcmDspDataEndianness)
• The length and the type of the data (ECUC_Dcm_00605: DcmDspDataByte-
Size, ECUC_Dcm_00985 : DcmDspDataType)
• The interface to be used to access to the data (ECUC_Dcm_00713: DcmDsp-
DataUsePort)
• The interfaces to the application in order to :
2
Overview of DcmDspDid container is described in chapter 10.2.5.8.1
DID ranges are in general the same as the ’normal’ DID read and write function, except
that the DID is also passed as a parameter. This allows to treat the DID range in a
switch/case in the read or the write function.
The ranges can be applied for reading (ReadDataByIdentifier 0x22) and writing (Write-
DataByIdentifier 0x2E) DIDs.
The ranges can be configured in ECUC_Dcm_00937 : DcmDspDidRange. Each con-
figured range is by default accessible by service 0x22 and 0x2E. In case the range
should be limited to reading or writing, the referenced DcmDspDidInfo container
should be defined accordingly.
It is also possible to define gaps within the range (DcmDspDidRangeHasGaps). By
activating this feature, the Dcm invokes each time a DID is requested within the config-
ured range, the operation IsDidAvailable has to check the current availability. And as
the DIDs of the specified range can have different length, the length of the longest DID
has to be configured (DcmDspDidRangeMaxDataLength) in order to reserve enough
buffer passed to the respective function.
In general, the range functionality can also be used for a single DID if you specifically
want to pass the DID as a parameter. Then lower DID and upper DID should be the
same.
ReadDidRangeDataLength operation allows to request the application to return the
data length of a DID Range.
typical environments, the data is signed by the manufacturer’s backend. The manufac-
turer can control which data can be written.
From a high level this sequence consists of:
• Bringing in a certificate that authenticates the content that shall be written
• Writing the parameter data
• Provide a signature of the data that matches the certificate public key
• Update the data in the server.
The secure coding sequence is always started by transmitting a certificate using the
UDS service Authentication with the sub-function transmitCertificate.
dUpon receiving a certificate via the UDS service transmitCertificate with a certifica-
teEvaluationId mapped to a DcmDspAuthenticationTransmitCertificate with
DcmDspAuthenticationTransmitCertificateFunction that is set to = SE-
CURE_CODING, the Dcm shall (re-)start the secure coding mechanism and use this
certificate to validate the secure coding data.c
Special attention needs to be given to the mechanism to buffer the coding data until
it is protected. The secure coding procedure can contain multiple consecutively sent
WriteDataByIdentifier requests. The written data can only be applied and forwarded to
the application of the signature calculated over all the data is valid. In the meantime, the
data is buffered. There are various approaches for resource-efficient buffer handling.
AUTOSAR does not have the goal of providing solutions for all possible strategies.
Rather two strategies are taken into consideration:
1. Buffer all coding data within the Dcm prior to persisting. This approach works fine
for smaller write data but scales less well for larger coding data.
2. This strategy is an outlook to use the BndM module. It might be part of future
AUTOSAR releases. The BndM allows direct a/b partition NV memory access
and does not require a further RAM buffer.
The Dcm derives the used strategy directly from the configured used port interfaces
DcmDspDataUsePort for the DID data elements. In the current version only strat-
egy 1) is supported which means that all configured port interfaces are valid with the
exception of [SWS_Dcm_CONSTR_06108].
The data that is stored during the secure coding process is a sequential chain of stored
data identifiers as shown in Figure 7.13. For each data identifier, the 2-byte data iden-
tifier number followed by the data record of the data identifier is stored. This is sequen-
tially repeated for each secure data identifier. The signature validation is run over the
entire buffer.
The data identifier number in the signature check ensures that the written data matches
the intended write operation of the manufacturer and avoids misuse to a data record
as data of a different DID. The signature validation over the entire buffer only allows
one explicit order of DIDs in which the data has to be written. Even if the order might
be irrelevant for coding data for some users, the order needs to be kept.
[SWS_Dcm_01685] Write Secure Coding DID for started secure coding sequence
Upstream requirements: RS_Diag_04272
dIf the Dcm receives a write data by identifier request for a data identifier referenced
by DcmSecureCodingDataIdentifier and the secure coding sequence has been
started according to [SWS_Dcm_01684], the Dcm shall sequentially store the data in
the buffer defined by DcmSecureCodingDataBufferSize and store the 2 byte DID
number followed by the data in it.c
With [SWS_Dcm_01685] the Dcm stores the data in a temporary local buffer that is
not visible to the outside. Applications have therefore no access to the data at this
point. This also implies that the configured callouts in DcmDspDataUsePort are not
yet invoked.
Apart from this local data storage, the Dcm processes a secure coding DID diagnostic
request in the same way as any other diagnostic request. In particular, all service
validation checks are executed.
dIf the Dcm receives a write data by identifier request for a data identifier referenced by
DcmSecureCodingDataIdentifier and the secure coding sequence has not been
started according to [SWS_Dcm_01684], the Dcm shall return an NRC 0x22 (condition-
sNotCorrect) as a response to the write data by identifier request.c
dIf the Dcm is storing secured coding DID data within the buffer provided by Dcm-
SecureCodingDataBufferSize and the data of the DID written to it exceeds the
configured size, the Dcm shall send an NRC 0x22 (conditionsNotCorrect) and stop the
secure coding sequence.c
dIf the Dcm receives the routine control service referred by DcmSecureCodingVali-
dationRoutine and the secure coding sequence has not been started according to
[SWS_Dcm_01684], the Dcm shall return an NRC 0x22 (conditionsNotCorrect).c
dIf the Dcm receives the routine control service referred by DcmSecureCodingVali-
dationRoutine and no secure data according to [SWS_Dcm_01685] has been writ-
ten so far, the Dcm shall return an NRC 0x22 (conditionsNotCorrect).c
A secure coding validation routine control service is processed entirely Dcm internal
without calling an SWC via C/S calls or a CDD via a C-Function.
dIf the Dcm receives the routine control service referred by DcmSecureCodingVali-
dationRoutine, the Dcm shall process the routine control inside the Dcm and does
neither create nor call the external C-Function interface [SWS_Dcm_01203].c
dIf the Dcm receives the routine control service referred by DcmSecureCodingVal-
idationRoutine it shall verify if the signature matches the authentication provided
by the secure coding certificate by using the crypto job configured by DcmSecure-
CodingAuthenticationJobRef with a signature obtained by the one and only rou-
tine control request parameter and the secure coding data buffer as data to verify.c
The crypto job from [SWS_Dcm_01691] securely authenticates the data that has been
written into the secure data buffer. This is done by verifying this data with the signature
that is provided by the client as a request parameter of the secure coding authentication
routine control service with the public key of the certificate. The certificate’s public key
is mandatory input data for the verification. In the AUTOSAR architecture, the crypto
job directly accesses the public key of the certificate. The integrator of the Csm and
KeyM modules links the public key to the crypto job.
A successful authentication of the secure data ensures from a security point of view,
that the client is authenticated to write exactly that data to the corresponding data iden-
tifiers. After this successful authentication, the Dcm will call the same configured write
APIs as it would do for write operations without the secure coding procedure. It can be
seen as a delay of the write operations to the point that all write data is authenticated.
For the application, it is a write operation and it does not need to distinguish between
a normal or secured coding write operation.
dIf the secure coding data has been successfully validated according to
[SWS_Dcm_01691], the Dcm shall call the configured write operations for all secured
coding data identifiers in the secure data buffer.c
The secure coding sequence can consist of more than one written data identifier. From
the Dcm side, there is no transaction system in place or any kind of rollback if a write
operation fails. In case of a failed write operation, the secure coding sequence is
canceled and a failure indication is sent as a parameter in the positive response of the
secure coding validation routine control service. It is the application’s responsibility to
design a sufficient stable mechanism to deal with this situation.
dIf all the called write operations from [SWS_Dcm_01691] have been completed
successfully, the Dcm shall set the positive response routine parameter DcmDsp-
StartRoutineOutSignal of the DcmSecureCodingValidationRoutine to the
value of 0x00 to indicate a successful completion of the secure coding procedure and
send a positive response for the DcmSecureCodingValidationRoutine.c
dIf a called write operation from [SWS_Dcm_01691] has failed, the Dcm shall cancel
all pending other secure coding write operations and set the positive response routine
parameter DcmDspStartRoutineOutSignal of the DcmSecureCodingValida-
tionRoutine to the value of 0x01 to indicate a failed secure coding write operation
and send a positive response for the DcmSecureCodingValidationRoutine.c
dIf the crypto job to authenticate the secure data has failed, the Dcm shall set the
positive response routine parameter DcmDspStartRoutineOutSignal of the Dcm-
SecureCodingValidationRoutine to the value of 0x02 to indicate a signature
validation failure and send a positive response for the DcmSecureCodingValida-
tionRoutine.c
[SWS_Dcm_01696] Behavior on too long signature validation dIf the execution time
of the routine control behind the DcmSecureCodingValidationRoutine exceeds
the maximum number of allowed response times due to [SWS_Dcm_00120], the Dcm
shall report the Runtime Error DCM_E_INTERFACE_TIMEOUT.c
[SWS_Dcm_00334] dDcm_Init shall initialize all Dcm global variables with the values
of the configurationc
[SWS_Dcm_00044]
Upstream requirements: SRS_BSW_00369
dThe error values shall be the unique for all error types. The Dcm shall use only the
values given in this chapter.c
d
Type of error Related error code Error value
The Dcm is getting called with an invalid input DCM_E_INVALID_VALUE 0x02
parameter value or the Dcm has called an function
and this function returns an invalid out parameter
or return value.
Interface return-value is out of range DCM_E_INTERFACE_RETURN_VALUE 0x02
Internal:Dcm not initialized DCM_E_UNINIT 0x05
Dcm API function with invalid input parameter DCM_E_PARAM 0x06
Dcm API service invoked with NULL POINTER as DCM_E_PARAM_POINTER 0x07
parameter
Dcm initialisation failed DCM_E_INIT_FAILED 0x08
Storing the ProgConditions failed DCM_E_SET_PROG_CONDITIONS_FAIL 0x09
d
Type of error Related error code Error value
Interface: Timeout occurred during interaction with DCM_E_INTERFACE_TIMEOUT 0x01
another module (e.g. maximum number of
response pending is reached, refer to
[SWS_Dcm_00120])
Interface: Boundary check of buffers provided by DCM_E_INTERFACE_BUFFER_OVERFLOW 0x03
the Dcm failed during interaction with another
module (application, Dem,PduR, etc.)
[SWS_Dcm_01589]
Upstream requirements: RS_Ids_00810
dIf security event reporting has been enabled for the Dcm module ( DcmEnableSecu-
rityEventReporting = true) the respective security events shall be reported to the
IdsM via the interfaces defined in AUTOSAR_SWS_BSWGeneral.c
d
Name Description ID
SEV_UDS_SECURITY_ACCESS_NEEDED Tester has sent a diagnostic request without meeting the 100
server’s security level requirements for that service. NRC
0x33 (securityAccessDenied) was returned.
5
4
Name Description ID
SEV_UDS_AUTHENTICATION_NEEDED A diagnostic request was received while the required 101
authentication to execute this service is not given. NRC
0x34 (authenticationRequired) was returned.
SEV_UDS_SECURITY_ACCESS_ Successful unlocked the ECU (via Security Access SID 102
SUCCESSFUL 0x27)
SEV_UDS_SECURITY_ACCESS_FAILED Unlocking of the ECU (via Security Access SID 0x27) failed 103
SEV_UDS_AUTHENTICATION_SUCCESSFUL Succesfully authenticated (via Authentication SID 0x29) 104
SEV_UDS_AUTHENTICATION_FAILED Authentication (via Authentication SID 0x29) failed 105
SEV_UDS_WRITE_DATA_SUCCESSFUL Diagnostic data identifier has been written by SID 0x2E 106
WriteDataByIdentifier
SEV_UDS_WRITE_DATA_FAILED Change of Diagnostic data identifier has been requested 107
by SID 0x2E WriteDataByIdentifier, but failed
SEV_UDS_WRITE_MEMORY_SUCCESSFUL Data has been written into memory by SID 0x3D Write 108
MemoryByAddress
SEV_UDS_WRITE_MEMORY_FAILED Writting of Data into memory has been requested by SID 109
0x3D WriteMemoryByAddress, but failed
SEV_UDS_REQUEST_UP_DOWNLOAD_ An upload / download sequence has been requested 110
SUCCESSFUL successfully with SID 0x34 or SID 0x35
SEV_UDS_REQUEST_UP_DOWNLOAD_ An upload / download sequence has been requested with 111
FAILED SID 0x34 or SID 0x35, but failed
SEV_UDS_REQUEST_FILE_TRANSFER_ A file transfer sequence has been requested successfully 112
SUCCESSFUL with SID 0x38.
SEV_UDS_REQUEST_FILE_TRANSFER_ A file transfer sequence has been requested with SID 113
FAILED 0x38, but failed
SEV_UDS_COMMUNICATION_CONTROL_ The control of a communication has been requested by 114
SUCCESSFUL service SID 0x28 CommunicationControl successfully.
SEV_UDS_COMMUNICATION_CONTROL_ The control of a communication has been requested by 115
FAILED service SID 0x28 CommunicationControl, but failed.
SEV_UDS_CLEAR_DTC_SUCCESSFUL DTC information has been cleared by SID 0x14 Clear 116
DiagnosticInformation.
SEV_UDS_CLEAR_DTC_FAILED Clearing DTC information has been requested by SID 0x14 117
ClearDiagnosticInformation, but failed.
SEV_UDS_CONTROL_DTC_SETTING_ The control of a DTC setting has been requested by 118
SUCCESSFUL service SID 0x85 ControlDTCSetting successfully.
SEV_UDS_CONTROL_DTC_SETTING_FAILED Control of DTC setting has been requested by service SID 119
0x85 ControlDTCSetting, but failed.
SEV_UDS_ECU_RESET_SUCCESSFUL ECU has been reset by SID 0x11 ECUReset. 120
SEV_UDS_ECU_RESET_FAILED ECU Reset has been requested by SID 0x11 ECUReset, 121
but failed.
SEV_UDS_ROUTINE_CONTROL_ The control of a routine has been requested by service SID 122
SUCCESSFUL 0x31 RoutineControl successfully.
SEV_UDS_ROUTINE_CONTROL_FAILED The control of a routine has been requested by service SID 123
0x31 RoutineControl, but failed.
SEV_UDS_IO_CONTROL_SUCCESSFUL IOControl operation has been requested by service SID 124
0x2F InputOutputControlByIdentifier successfully.
SEV_UDS_IO_CONTROL_FAILED IOControl operation has been requested by service SID 125
0x2F InputOutputControlByIdentifier, but failed.
dIn case a diagnostic service request is not allowed in the current security level, which
results in a negative response with NRC 0x33 (securityAccessDenied), the Dcm shall
report a security event SEV_UDS_SECURITY_ACCESS_NEEDED to IdsM (see [11]
and table [SWS_Dcm_01703]) with the context data given in [SWS_Dcm_01703].c
d
SEV Name SEV_UDS_SECURITY_ACCESS_NEEDED
ID 100
Description Tester has sent a diagnostic request without meeting the server’s security level requirements
for that service. NRC 0x33 (securityAccessDenied) was returned.
Context Data Version 1
Context Data Data Type Allowed Values
SID uint8
Subfunction uint8 255: is filled in case the service is without Subfunction
DataIdentifier uint16 65535: is filled in case the service is without DID
RoutineIdentifier uint16 65535: is filled in case the service is without RID
ClientSourceAddress uint16
dIn case a diagnostic service request is not having the required authentication which
results in a negative response with NRC 0x34 (authenticationRequired), the Dcm shall
report a security event SEV_UDS_AUTHENTICATION_NEEDED to IdsM (see [11] and
table [SWS_Dcm_01705]) with the context data given in [SWS_Dcm_01705].c
d
SEV Name SEV_UDS_AUTHENTICATION_NEEDED
ID 101
Description A diagnostic request was received while the required authentication to execute this service
is not given. NRC 0x34 (authenticationRequired) was returned.
Context Data Version 1
Context Data Data Type Allowed Values
SID uint8
Subfunction uint8 255: is filled in case the service is without Subfunction
DataIdentifier uint16 65535: is filled in case the service is without DID
RoutineIdentifier uint16 65535: is filled in case the service is without RID
ClientSourceAddress uint16
d
SEV Name SEV_UDS_SECURITY_ACCESS_SUCCESSFUL
ID 102
Description Successful unlocked the ECU (via Security Access SID 0x27)
Context Data Version 1
Context Data Data Type Allowed Values
Subfunction uint8
ClientSourceAddress uint16
d
SEV Name SEV_UDS_SECURITY_ACCESS_FAILED
ID 103
Description Unlocking of the ECU (via Security Access SID 0x27) failed
Context Data Version 1
Context Data Data Type Allowed Values
Subfunction uint8
ClientSourceAddress uint16
NegativeResponseCode uint8
d
SEV Name SEV_UDS_AUTHENTICATION_SUCCESSFUL
ID 104
Description Succesfully authenticated (via Authentication SID 0x29)
Context Data Version 1
Context Data Data Type Allowed Values
Subfunction uint8
5
4
SEV Name SEV_UDS_AUTHENTICATION_SUCCESSFUL
ClientSourceAddress uint16
dIn case a diagnostic service Authentication is received, which results in a negative re-
sponse, the Dcm shall report a security event SEV_UDS_AUTHENTICATION_FAILED
to IdsM (see [11] and table [SWS_Dcm_01713]) with the context data given in
[SWS_Dcm_01713].c
d
SEV Name SEV_UDS_AUTHENTICATION_FAILED
ID 105
Description Authentication (via Authentication SID 0x29) failed
Context Data Version 1
Context Data Data Type Allowed Values
Subfunction uint8
ClientSourceAddress uint16
NegativeResponseCode uint8
d
SEV Name SEV_UDS_WRITE_DATA_SUCCESSFUL
ID 106
Description Diagnostic data identifier has been written by SID 0x2E WriteDataByIdentifier
Context Data Version 1
Context Data Data Type Allowed Values
DID uint16
ClientSourceAddress uint16
d
SEV Name SEV_UDS_WRITE_DATA_FAILED
ID 107
Description Change of Diagnostic data identifier has been requested by SID 0x2E WriteDataByIdentifier,
but failed
Context Data Version 1
Context Data Data Type Allowed Values
DID uint16
ClientSourceAddress uint16
NegativeResponseCode uint8
d
SEV Name SEV_UDS_REQUEST_UP_DOWNLOAD_SUCCESSFUL
ID 110
Description An upload / download sequence has been requested successfully with SID 0x34 or SID 0x35
Context Data Version 1
Context Data Data Type Allowed Values
SID uint8
MemoryAddress uint32
MemorySize uint32
ClientSourceAddress uint16
d
SEV Name SEV_UDS_REQUEST_UP_DOWNLOAD_FAILED
ID 111
Description An upload / download sequence has been requested with SID 0x34 or SID 0x35, but failed
Context Data Version 1
Context Data Data Type Allowed Values
SID uint8
MemoryAddress uint32
MemorySize uint32
ClientSourceAddress uint16
NegativeResponseCode uint8
d
SEV Name SEV_UDS_REQUEST_FILE_TRANSFER_SUCCESSFUL
ID 112
Description A file transfer sequence has been requested successfully with SID 0x38.
Context Data Version 1
Context Data Data Type Allowed Values
ModeOfOperation uint8 AddFile (0x01)
DeleteFile (0x02)
ReplaceFile (0x03)
ReadFile (0x04)
ReadDir (0x05)
ResumeFile (0x06)
FilePathAndName uint8 [50] Each byte of this parameter is encoded in ASCII format.
ClientSourceAddress uint16
d
SEV Name SEV_UDS_REQUEST_FILE_TRANSFER_FAILED
ID 113
Description A file transfer sequence has been requested with SID 0x38, but failed
Context Data Version 1
Context Data Data Type Allowed Values
ModeOfOperation uint8 AddFile (0x01)
DeleteFile (0x02)
ReplaceFile (0x03)
ReadFile (0x04)
ReadDir (0x05)
ResumeFile (0x06)
FilePathAndName uint8 [50] Each byte of this parameter is encoded in ASCII format.
ClientSourceAddress uint16
NegativeResponseCode uint8
d
SEV Name SEV_UDS_COMMUNICATION_CONTROL_SUCCESSFUL
ID 114
Description The control of a communication has been requested by service SID 0x28 Communication
Control successfully.
Context Data Version 1
Context Data Data Type Allowed Values
Subfunction uint8
ClientSourceAddress uint16
d
SEV Name SEV_UDS_COMMUNICATION_CONTROL_FAILED
ID 115
Description The control of a communication has been requested by service SID 0x28 Communication
Control, but failed.
Context Data Version 1
Context Data Data Type Allowed Values
Subfunction uint8
ClientSourceAddress uint16
NegativeResponseCode uint8
d
SEV Name SEV_UDS_CLEAR_DTC_SUCCESSFUL
ID 116
Description DTC information has been cleared by SID 0x14 ClearDiagnosticInformation.
Context Data Version 1
Context Data Data Type Allowed Values
5
4
SEV Name SEV_UDS_CLEAR_DTC_SUCCESSFUL
GroupOfDTC uint8 [3] given in the format: HighByte, MiddleByte, LowByte
MemorySelection uint16 0x0001: PrimaryMemory
0x01XX: XX is the address of the UserDefinedMemory
ClientSourceAddress uint16
d
SEV Name SEV_UDS_CLEAR_DTC_FAILED
ID 117
Description Clearing DTC information has been requested by SID 0x14 ClearDiagnosticInformation, but
failed.
Context Data Version 1
Context Data Data Type Allowed Values
GroupOfDTC uint8 [3] given in the format: HighByte, MiddleByte, LowByte
MemorySelection uint16 0x0001: PrimaryMemory
0x01XX: XX is the address of the UserDefinedMemory
ClientSourceAddress uint16
NegativeResponseCode uint8
d
SEV Name SEV_UDS_CONTROL_DTC_SETTING_SUCCESSFUL
ID 118
Description The control of a DTC setting has been requested by service SID 0x85 ControlDTCSetting
successfully.
Context Data Version 1
Context Data Data Type Allowed Values
Subfunction uint8
ClientSourceAddress uint16
d
SEV Name SEV_UDS_CONTROL_DTC_SETTING_FAILED
ID 119
Description Control of DTC setting has been requested by service SID 0x85 ControlDTCSetting, but
failed.
Context Data Version 1
Context Data Data Type Allowed Values
Subfunction uint8
ClientSourceAddress uint16
NegativeResponseCode uint8
d
SEV Name SEV_UDS_ECU_RESET_SUCCESSFUL
ID 120
Description ECU has been reset by SID 0x11 ECUReset.
Context Data Version 1
Context Data Data Type Allowed Values
Subfunction uint8
ClientSourceAddress uint16
d
SEV Name SEV_UDS_ECU_RESET_FAILED
ID 121
Description ECU Reset has been requested by SID 0x11 ECUReset, but failed.
Context Data Version 1
Context Data Data Type Allowed Values
Subfunction uint8
ClientSourceAddress uint16
NegativeResponseCode uint8
d
SEV Name SEV_UDS_ROUTINE_CONTROL_SUCCESSFUL
ID 122
Description The control of a routine has been requested by service SID 0x31 RoutineControl
successfully.
Context Data Version 1
Context Data Data Type Allowed Values
RID uint16
Subfunction uint8
ClientSourceAddress uint16
d
SEV Name SEV_UDS_ROUTINE_CONTROL_FAILED
ID 123
Description The control of a routine has been requested by service SID 0x31 RoutineControl, but failed.
Context Data Version 1
Context Data Data Type Allowed Values
5
4
SEV Name SEV_UDS_ROUTINE_CONTROL_FAILED
RID uint16
Subfunction uint8
ClientSourceAddress uint16
NegativeResponseCode uint8
d
SEV Name SEV_UDS_IO_CONTROL_SUCCESSFUL
ID 124
Description IOControl operation has been requested by service SID 0x2F InputOutputControlBy
Identifier successfully.
Context Data Version 1
Context Data Data Type Allowed Values
DID uint16
inputOutputControlParameter uint8
ClientSourceAddress uint16
dIn case a diagnostic service IOControl is received, which results in a negative re-
sponse, the Dcm shall report a security event SEV_UDS_IO_CONTROL_FAILED
to IdsM (see [11] and table [SWS_Dcm_01749]) with the context data given in
[SWS_Dcm_01749].c
d
SEV Name SEV_UDS_IO_CONTROL_FAILED
ID 125
Description IOControl operation has been requested by service SID 0x2F InputOutputControlBy
Identifier, but failed.
Context Data Version 1
Context Data Data Type Allowed Values
DID uint16
inputOutputControlParameter uint8
ClientSourceAddress uint16
NegativeResponseCode uint8
d
SEV Name SEV_UDS_WRITE_MEMORY_SUCCESSFUL
ID 108
Description Data has been written into memory by SID 0x3D WriteMemoryByAddress
Context Data Version 1
Context Data Data Type Allowed Values
MemoryAddress uint32
MemorySize uint32
ClientSourceAddress uint16
d
SEV Name SEV_UDS_WRITE_MEMORY_FAILED
ID 109
Description Writting of Data into memory has been requested by SID 0x3D WriteMemoryByAddress, but
failed
Context Data Version 1
Context Data Data Type Allowed Values
MemoryAddress uint32
MemorySize uint32
ClientSourceAddress uint16
NegativeResponseCode uint8
8 API specification
This section defines:
• The syntax and semantics of the functions that are provided and required from
other BSW modules. These take the form of "C"-APIs.
• The syntax and semantics of a subset of those functions which are used by
software-components through the RTE. These take the form of descriptions using
the concepts of the Software-Component Template.
8.2.1 Dcm_StatusType
8.2.2 Dcm_CommunicationModeType
4
DCM_ENABLE_RX_ 0x05 Enable Rx and disable the Tx for
DISABLE_TX_NM network management
communication
DCM_DISABLE_RX_ 0x06 Disable the Rx and enable the Tx
ENABLE_TX_NM for network management
communication
DCM_DISABLE_RX_TX_ 0x07 Disable Rx and Tx for network
NM management communication
DCM_ENABLE_RX_TX_ 0x08 Enable Rx and Tx for normal and
NORM_NM network management
communication
DCM_ENABLE_RX_ 0x09 Enable the Rx and disable the Tx
DISABLE_TX_NORM_NM for normal and network
management communication
DCM_DISABLE_RX_ 0x0A Disable the Rx and enable the Tx
ENABLE_TX_NORM_NM for normal and network
management communication
DCM_DISABLE_RX_TX_ 0x0B Disable Rx and Tx for normal and
NORM_NM network management
communication
Description –
Available via Dcm.h
8.2.3 Dcm_ConfigType
8.2.4 Dcm_ReturnReadMemoryType
8.2.5 Dcm_ReturnWriteMemoryType
8.2.6 Dcm_EcuStartModeType
8.2.7 Dcm_ProgConditionsType
4
Comment Set to true in case the flashloader or application shall send a response.
Description Used in Dcm_SetProgConditions() to allow the integrator to store relevant information prior to
jumping to bootloader / jump due to ECUReset request.
Available via Dcm.h
8.2.8 Dcm_MsgItemType
8.2.9 Dcm_MsgType
8.2.10 Dcm_MsgLenType
8.2.11 Dcm_MsgAddInfoType
Please note that the following table describes a struct type definition - including its
struct items "elements".
8.2.12 Dcm_IdContextType
8.2.13 Dcm_MsgContextType
Please note that the following table describes a struct type definition - including its
struct items "elements".
4
Comment The maximal length of a response is restricted by the size of the buffer.
The buffer size can depend on the diagnostic protocol identifier which
is assigned to this message, e. g. an OBD protocol id can obtain other
properties than the enhanced diagnostic protocol id. The resMaxData
Len is a property of the diagnostic protocol assigned by the DSL. The
value does not change during communication. It cannot be
implemented as a constant, because it can differ between different
diagnostic protocols.
idContext
Type Dcm_IdContextType
Comment This message context identifier can be used to determine the relation
between request and response confirmation. This identifier can be
stored within the application at request time, so that the response can
be assigned to the original request. Background: Within the
confirmation, the message context is no more valid, all message data
is lost. You need an additional information to determine the request to
which this confirmation belongs.
dcmRxPduId:
Type PduIdType
Comment Pdu identifier on which the request was received. The PduId of the
request can have consequences for message processing. E. g. an
OBD request will be received on the OBD PduId and will be processed
slightly different than an enhanced diagnostic request received on the
physical
Description This data structure contains all information which is necessary to process a diagnostic message
from request to response and response confirmation.
Available via Dcm.h
8.2.14 Dcm_ExtendedOpStatusType
4
DCM_NEG_RESPONSE_ 0x06 Indicates that a negative response
SENT has been sent successfully
DCM_NEG_RESPONSE_ 0x07 Indicates that a negative response
FAILED has not been sent successfully
Description –
Available via Dcm.h
8.3.1.1 Dcm_Init
d
Service Name Dcm_Init
Syntax void Dcm_Init (
const Dcm_ConfigType* ConfigPtr
)
Service ID [hex] 0x01
Sync/Async Synchronous
Reentrancy Non Reentrant
Parameters (in) ConfigPtr Pointer to configuration set in Variant Post-Build.
Parameters (inout) None
Parameters (out) None
Return value None
Description Service for basic initialization of DCM module.
Available via Dcm.h
The call of this service is mandatory before using the Dcm module for further process-
ing.
8.3.1.2 Dcm_GetVersionInfo
d
Service Name Dcm_GetVersionInfo
Syntax void Dcm_GetVersionInfo (
Std_VersionInfoType* versionInfo
)
Service ID [hex] 0x24
Sync/Async Synchronous
Reentrancy Reentrant
Parameters (in) None
Parameters (inout) None
Parameters (out) versionInfo Pointer to where to store the version information of this module.
Return value None
Description Returns the version information of this module
Available via Dcm.h
8.3.1.3 Dcm_DemTriggerOnDTCStatus
8.3.1.4 Dcm_GetVin
Note: After fetching the VIN, the Dcm can offer the data to all users without worrying
that the data is unavailable if a user asks for it. This is necessary because the VIN
could not be fetched synchronously for all settings of DcmDspDidDataUsePort.
Note: The invocation of functions BndM_WriteStart and BndM_WriteFinalize are not
part of Dcm Specification. The functions are called via project specific CDD implemen-
tation.
8.3.1.5 Dcm_BndMWriteBlockFinish
d
Service Name Dcm_BndMWriteBlockFinish
Syntax void Dcm_BndMWriteBlockFinish (
BndM_BlockIdType BlockId,
BndM_ResultType result
)
Service ID [hex] 0x7a
Sync/Async Synchronous
Reentrancy Non Reentrant
Parameters (in) BlockId –
result –
5
4
Parameters (inout) None
Parameters (out) None
Return value None
Description Called by BndM to indicate that a block write operation has finished.
Available via Dcm.h
The functions defined in this section can also be used by SW-Cs through the RTE.
8.3.2.1 Dcm_SetDeauthenticatedRole
8.3.2.2 Dcm_GetSecurityLevel
d
Service Name Dcm_GetSecurityLevel
Syntax Std_ReturnType Dcm_GetSecurityLevel (
Dcm_SecLevelType* SecLevel
)
Service ID [hex] 0x0d
Sync/Async Synchronous
Reentrancy Reentrant
Parameters (in) None
Parameters (inout) None
Parameters (out) SecLevel Active Security Level value Conversion formula to calculate
SecurityLevel out of tester requested SecurityAccessType
parameter: SecurityLevel = (SecurityAccessType + 1) / 2 Content
of SecurityAccessType is according to "securityAccessType"
parameter of SecurityAccess request (see [11])
Return value Std_ReturnType E_OK: this value is always returned.
Description This function provides the active security level value.
Available via Dcm.h
8.3.2.3 Dcm_GetSesCtrlType
d
Service Name Dcm_GetSesCtrlType
Syntax Std_ReturnType Dcm_GetSesCtrlType (
Dcm_SesCtrlType* SesCtrlType
)
Service ID [hex] 0x06
Sync/Async Synchronous
Reentrancy Reentrant
Parameters (in) None
Parameters (inout) None
Parameters (out) SesCtrlType Active Session Control Type value Content is according to
"diagnosticSessionType" parameter of DiagnosticSessionControl
request (see [11])
Return value Std_ReturnType E_OK: this value is always returned.
5
4
Description This function provides the active session control type value.
Available via Dcm.h
8.3.2.4 Dcm_ResetToDefaultSession
4
Return value Std_ReturnType E_OK: this value is always returned.
Description Allows to activate and deactivate the call of ComM_DCM_ActiveDiagnostic() function.
Available via Dcm.h
«module»
Dcm
«realize» «realize»
«interface» «interface»
Dcm_PduR Dcm_ComM
Dcm_CopyRxData() Dcm_ComMNoComModeEntered()
Dcm_CopyTxData() Dcm_ComMSilentComModeEntered()
Dcm_RxIndication() Dcm_ComMFullComModeEntered()
Dcm_TxConfirmation()
Dcm_StartOfReception()
«optional»
«module»
«module»
__PduR
ComM
8.4.1 Dcm_StartOfReception
8.4.2 Dcm_CopyRxData
8.4.3 Dcm_TpRxIndication
4
Description Called after an I-PDU has been received via the TP API, the result indicates whether the
transmission was successful or not. This function might be called in interrupt context.
Available via Dcm.h
8.4.4 Dcm_CopyTxData
4
Return value BufReq_ReturnType BUFREQ_OK: Data has been copied to the transmit buffer
completely as requested.
BUFREQ_E_BUSY: Request could not be fulfilled, because the
required amount of Tx data is not available. The lower layer
module may retry this call later on. No data has been copied.
BUFREQ_E_NOT_OK: Data has not been copied. Request failed.
Description This function is called to acquire the transmit data of an I-PDU segment (N-PDU). Each call to
this function provides the next part of the I-PDU data unless retry->TpDataState is TP_
DATARETRY. In this case the function restarts to copy the data beginning at the offset from the
current position indicated by retry->TxTpDataCnt. The size of the remaining data is written to
the position indicated by availableDataPtr. This function might be called in interrupt context.
Available via Dcm.h
8.4.5 Dcm_TpTxConfirmation
8.4.6 Dcm_TxConfirmation
8.4.7 Dcm_ComM_NoComModeEntered
8.4.8 Dcm_ComM_SilentComModeEntered
8.4.9 Dcm_ComM_FullComModeEntered
8.4.10 Dcm_CsmAsyncJobFinished
8.4.11 Dcm_KeyMAsyncCertificateVerifyFinished
4
Description Can be called from Key upon finishing an asynchronous certificate verification. The integrator
will configure this name as callback function within the KeyM ECUC configuration for
asynchronous jobs. Only one such callback is available, the Dcm detects the certificate that has
finished by evaluating the certId parameter. API availability: This API will be available only if
({ecuc(Dcm/DcmDsp/DcmDspAuthentication/DcmDspAuthenticationConnection} != null).
Available via
8.5.1 Dcm_ReadMemory
4
Parameters (in) OpStatus DCM_INITIAL DCM_PENDING DCM_CANCEL DCM_FORCE_
RCRRP_OK
MemoryIdentifier Identifier of the Memory Block (e.g. used if memory section
distinguishing is needed) Note: If it’s not used this parameter
shall be set to 0.
MemoryAddress Starting address of server memory from which data is to be
retrieved.
MemorySize Number of bytes in the MemoryData
Parameters (inout) None
Parameters (out) MemoryData Data read (Points to the diagnostic buffer in DCM)
ErrorCode If the operation Dcm_ReadMemory returns value DCM_READ_
FAILED, the Dcm module shall send a negative response with
NRC code equal to the parameter ErrorCode parameter value.
Return value Dcm_ReturnRead DCM_READ_OK: read was successful
MemoryType DCM_READ_FAILED: read was not successful
DCM_READ_PENDING: read is not yet finished
DCM_READ_FORCE_RCRRP: reading is pending, the Response
pending transmission starts immediately
Description The Dcm_ReadMemory callout is used to request memory data identified by the parameter
memoryAddress and memorySize from the UDS request message. This service is needed for
the implementation of UDS services:
• ReadMemoryByAddress
• RequestUpload
• ReadDataByIdentifier (in case of Dynamical DID defined by memory address)
• TransferData
Available via Dcm_Externals.h
8.5.2 Dcm_WriteMemory
4
MemoryAddress Starting address of server memory in which data is to be copied.
Note: If it’s not used (e.g. if the data is compressed) this
parameter shall be set to 0.
MemorySize Number of bytes in MemoryData
MemoryData Data to write (Points to the diagnostic buffer in DCM)
Parameters (inout) None
Parameters (out) ErrorCode If the operation Dcm_WriteMemory returns value DCM_WRITE_
FAILED, the Dcm module shall send a negative response with
NRC code equal to the parameter ErrorCode parameter value.
Return value Dcm_ReturnWrite DCM_WRITE_OK: write was successful
MemoryType DCM_WRITE_FAILED: write was not successful
DCM_WRITE_PENDING: write is not yet finished
DCM_WRITE_FORCE_RCRRP: writing is pending, the Response
pending transmission starts immediately
Description The Dcm_WriteMemory callout is used to write memory data identified by the parameter
memoryAddress and memorySize. This service is needed for the implementation of UDS
services :
• WriteMemoryByAddress
• RequestDownload
• TransferData
Available via Dcm_Externals.h
Note : The callout implementation shall take care of the following points :
• When writing data in NVRAM, take care to keep the consistency with data in the
mirror RAM
• When writing data in memory, take care that a SW-C won’t overwrite the data.
Maybe the SW-C should be informed of this writing
8.5.3 Dcm_SetProgConditions
4
Parameters (inout) None
Parameters (out) None
Return value Std_ReturnType E_OK: Conditions have correctly been set
E_NOT_OK: Conditions cannot be set
DCM_E_PENDING: Conditions set is in progress, a further call to
this API is needed to end the setting
DCM_E_FORCE_RCRRP: Application requests the transmission of
a response Response Pending (NRC 0x78)
Description The Dcm_SetProgConditions callout allows the integrator to store relevant information prior to
jumping to bootloader / jump due to ECUReset request. The context parameter are defined in
Dcm_ProgConditionsType.
Available via Dcm_Externals.h
8.5.4 Dcm_GetProgConditions
8.5.5 Dcm_ProcessRequestAddFile
Parameters (in) OpStatus DCM_INITIAL: All In-parameters are valid. DCM_PENDING: All
In-parameters are set to 0x00. DCM_CANCEL: All In-parameters
are set to 0x00. DCM_FORCE_RCRRP_OK: All In-parameters
are set to 0x00.
filePathAndNameLength Defines the length in bytes for the parameter filePathAndName.
filePathAndName Defines the file system location of the server where the file which
shall be added, deleted, replaced or read from depending on the
parameter modeOfOperation parameter. In addition this
parameter includes the file name of the file which shall be added,
deleted, replaced or read as part of the file path.
dataFormatIdentifier This data-parameter is a one byte value with each nibble
encoded separately. The high nibble specifies the "compression
Method", and the low nibble specifies the "encryptingMethod".
The value 0x00 specifies that neither compressionMethod nor
encryptingMethod is used. Values other than 0x00 are vehicle
manufacturer specific.
fileSizeUncompressed Defines the size of the uncompressed file to be download in
bytes.
fileSizeCompressed Defines the size of the compressed file to be downloaded in
bytes.
Parameters (inout) None
Parameters (out) maxNumberOfBlock Max number of bytes to be included in each TransferData request
Length excluding the SID and the blockSequenceCounter.
ErrorCode If the operation Dcm_ProcessRequestAddFile returns value E_
NOT_OK, the DCM module shall send a negative response with
NRC code equal to the parameter ErrorCode parameter value.
Return value Std_ReturnType E_OK: Request was successful
E_NOT_OK: Request was not successful
DCM_E_PENDING: Request is not yet finished
DCM_E_FORCE_RCRRP: Application request the transmission of a
response Response Pending (NRC 0x78)
Description Callout function. DCM shall call this function to start a RequestFileTransfer process with mode
OfOperation equal to 0x01 (AddFile).
Available via Dcm_Externals.h
8.5.6 Dcm_ProcessRequestDeleteFile
8.5.7 Dcm_ProcessRequestReplaceFile
Parameters (in) OpStatus DCM_INITIAL: All In-parameters are valid. DCM_PENDING: All
In-parameters are set to 0x00. DCM_CANCEL: All In-parameters
are set to 0x00. DCM_FORCE_RCRRP_OK: All In-parameters
are set to 0x00.
filePathAndNameLength Defines the length in bytes for the parameter filePathAndName.
filePathAndName Defines the file system location of the server where the file which
shall be added, deleted, replaced or read from depending on the
parameter modeOfOperation parameter. In addition this
parameter includes the file name of the file which shall be added,
deleted, replaced or read as part of the file path.
dataFormatIdentifier This data-parameter is a one byte value with each nibble
encoded separately. The high nibble specifies the "compression
Method", and the low nibble specifies the "encryptingMethod".
The value 0x00 specifies that neither compressionMethod nor
encryptingMethod is used. Values other than 0x00 are vehicle
manufacturer specific.
fileSizeUncompressed Defines the size of the uncompressed file to be download in
bytes.
fileSizeCompressed Defines the size of the compressed file to be downloaded in
bytes.
Parameters (inout) None
Parameters (out) maxNumberOfBlock Max number of bytes to be included in each TransferData request
Length excluding the SID and the blockSequenceCounter.
ErrorCode If the operation Dcm_ProcessRequestReplaceFile returns value
E_NOT_OK, the DCM module shall send a negative response
with NRC code equal to the parameter ErrorCode parameter
value.
Return value Std_ReturnType E_OK: Request was successful
E_NOT_OK: Request was not successful
DCM_E_PENDING: Request is not yet finished
DCM_E_FORCE_RCRRP: Application request the transmission of a
response Response Pending (NRC 0x78)
Description Callout function. DCM shall call this function to start a RequestFileTransfer process with mode
OfOperation equal to 0x03 (ReplaceFile).
Available via Dcm_Externals.h
8.5.8 Dcm_ProcessRequestReadFile
8.5.9 Dcm_ProcessRequestReadDir
8.5.10 Dcm_WriteFile
8.5.11 Dcm_ReadFileOrDir
4
Reentrancy Non Reentrant
Parameters (in) OpStatus DCM_INITIAL: All In-parameters are valid. DCM_PENDING: All
In-parameters are set to 0x00. DCM_CANCEL: All In-parameters
are set to 0x00. DCM_FORCE_RCRRP_OK: All In-parameters
are set to 0x00.
Data Pointer to the data to be written.
Parameters (inout) DataLength As in, the parameter defines the maximum block length to be
used, i.e. the value of maxNumberOfBlockLength sent to the
client in the response of RequestFileTransfer.
As out, the parameter defines the actual length in bytes for the
parameter Data. The value shall not exceed, but might be less,
the value provided as in parameter.
Parameters (out) ErrorCode If the operation Dcm_ReadFileOrDir returns value E_NOT_OK,
the DCM module shall send a negative response with NRC code
equal to the parameter ErrorCode parameter value.
Return value Std_ReturnType E_OK: Request was successful
E_NOT_OK: Request was not successful
DCM_E_PENDING: Request is not yet finished
DCM_E_FORCE_RCRRP: Application request the transmission of a
response Response Pending (NRC 0x78)
Description Callout function. DCM shall call this function when data shall be sent as a response to UDS
service TransferData if there’s an ongoing RequestFileTransfer process started with 0x04
(ReadFile) or 0x05 (ReadDir).
Available via Dcm_Externals.h
8.5.12 UploadDownloadServices
From the point of view of the DCM, the operations has the following signatures:
8.5.12.1 ProcessRequestDownload
4
Reentrancy Non Reentrant
Parameters (in) OpStatus DCM_INITIAL DCM_PENDING DCM_CANCEL
DataFormatIdentifier Bit 7 - 4: Compression Method
• 0x0: not compressed
• 0x1..F: vehicle-manufacturer-specific
Bit 3 - 0: Encrypting method
• 0x0: not encrypted
• 0x1..F: vehicle-manufacturer-specific
MemoryIdentifier Identifier of the Memory Block, if the parameter is not used it shall
be set to 0.
MemoryAddress Starting address of server memory to which data is to be written
MemorySize Uncompressed memory size in bytes
Parameters (inout) BlockLength Max. Number of bytes for one Dcm_WriteMemory
Parameters (out) ErrorCode If the operation Dcm_ProcessRequestDownload returns value E_
NOT_OK, the DCM module shall send a negative response with
NRC code equal to the parameter ErrorCode parameter value.
Return value Std_ReturnType E_OK: Request was successful
E_NOT_OK: Request was not successful
DCM_E_PENDING: Request is not yet finished
Description Callout function. DCM shall call this callout function to start a download process. This service is
needed for the implementation of UDS service RequestDownload.
Available via Dcm_Externals.h
8.5.12.2 ProcessRequestTransferExit
4
transferRequest Length of ParameterRecord in bytes
ParameterRecordSize
Parameters (inout) transferResponse When the function is called this parameter contains the maximum
ParameterRecordSize number of data bytes that can be written to the buffer. The
function returns the actual number of written data bytes in
transferResponseParameterRecord.
Parameters (out) transferResponse Pointer to vehicle manufacturer specific transferResponse
ParameterRecord ParameterRecord
ErrorCode see below
Return value Std_ReturnType E_OK: Transfer was successful
E_NOT_OK: Transfer was not successful or the response buffer is
too small
DCM_E_PENDING: Transfer is not yet finished
Description Callout function. DCM shall call this callout function to terminate a download or upload process.
This callout is needed for the implementation of UDS service RequestTransferExit.
Available via Dcm_Externals.h
8.5.12.3 ProcessRequestUpload
4
MemoryAddress Starting address of server memory from which data are to be
copied
MemorySize Uncompressed memory size in bytes
Parameters (inout) BlockLength Max. Number of bytes for one Dcm_ReadMemory
Parameters (out) ErrorCode If the operation Dcm_ProcessRequestUpload returns value E_
NOT_OK, the DCM module shall send a negative response with
NRC code equal to the parameter ErrorCode parameter value.
Return value Std_ReturnType E_OK: Request was successful
E_NOT_OK: Request was not successful
DCM_E_PENDING: Request is not yet finished
Description Callout function. DCM shall call this callout function to start an upload process. This service is
needed for the implementation of UDS service RequestUpload.
Available via Dcm_Externals.h
8.5.12.4 ProcessTransferDataRead
4
Return value Dcm_ReturnRead DCM_READ_OK: read was successful
MemoryType DCM_READ_FAILED: read was not successful
DCM_READ_PENDING: read is not yet finished
DCM_READ_FORCE_RCRRP: reading is pending, the Response
pending transmission starts immediately
Description The ProcessTransferDataRead callout is used to request memory data identified by the
parameter memoryAddress and memorySize from the UDS request message. This service is
needed for the implementation of UDS services:
• ReadMemoryByAddress
• RequestUpload
• ReadDataByIdentifier (in case of Dynamical DID defined by memory address)
• TransferData
Available via Dcm_Externals.h
8.5.12.5 ProcessTransferDataWrite
4
Return value Dcm_ReturnWrite DCM_WRITE_OK: write was successful
MemoryType DCM_WRITE_FAILED: write was not successful
DCM_WRITE_PENDING: write is not yet finished
DCM_WRITE_FORCE_RCRRP: writing is pending, the Response
pending transmission starts immediately
Description The ProcessTransferDataWrite callout is used to write memory data identified by the parameter
memoryAddress and memorySize. This service is needed for the implementation of UDS
services :
• WriteMemoryByAddress
• RequestDownload
• TransferData
Available via Dcm_Externals.h
8.6.1 Dcm_MainFunction
d
Service Name Dcm_MainFunction
Syntax void Dcm_MainFunction (
void
)
Service ID [hex] 0x25
Description This service is used for processing the tasks of the main loop.
Available via SchM_Dcm.h
This section defines all interfaces, which are required to fulfill the core functionality of
the module.
This section defines all interfaces, which are required to fulfill an optional functionality
of the module.
4
API Function Header File Description
Dem_DcmGetAvailableOBDMIDs Dem_Dcm.h Reports the value of a requested
"availability-OBDMID" to the DCM upon a Service
$06 request. Derived from that the tester displays
the supported tests a mechanic can select from. API
is needed in OBD-relevant ECUs only.
API Availability: This API will be available only if
({ecuc(Dem/DemGeneral.DemOBDSupport)} !=
DEM_OBD_NO_OBD_SUPPORT)
Dem_DcmGetDTCOfOBDFreeze Dem_Dcm.h Gets DTC by freeze frame record number. API is
Frame needed in OBD-relevant ECUs only.
API Availability: This API will be available only if
({ecuc(Dem/DemGeneral.DemOBDSupport)} !=
DEM_OBD_NO_OBD_SUPPORT)
Dem_DcmGetDTRData Dem_Dcm.h Reports a DTR data along with TID-value, UaSID,
test result with lower and upper limit. API is needed
in OBD-relevant ECUs only.
API Availability: This API will be available only if
({ecuc(Dem/DemGeneral.DemOBDSupport)} !=
DEM_OBD_NO_OBD_SUPPORT)
Dem_DcmGetNumTIDsOfOBDMID Dem_Dcm.h Gets the number of TIDs per (functional) OBDMID.
This can be used by the DCM to iteratively request
for OBD/TID result data within a loop from
0....numberOfTIDs-1 API is needed in OBD-relevant
ECUs only.
API Availability: This API will be available only if
({ecuc(Dem/DemGeneral.DemOBDSupport)} !=
DEM_OBD_NO_OBD_SUPPORT)
Dem_DcmReadDataOfOBDFreeze Dem_Dcm.h Gets data element per PID and index of the most
Frame important freeze frame being selected for the output
of service $02. The function stores the data in the
provided DestBuffer. API is needed in OBD-relevant
ECUs only.
API Availability: This API will be available only if
({ecuc(Dem/DemGeneral.DemOBDSupport)} !=
DEM_OBD_NO_OBD_SUPPORT)
Dem_DisableDTCRecordUpdate Dem.h Disables the event memory update of a specific
DTC (only one at one time).
Dem_DisableDTCSetting Dem.h Disables the DTC setting for all DTCs assigned to
the DemEventMemorySet of the addressed client.
Dem_EnableDTCRecordUpdate Dem.h Enables the event memory update of the DTC
disabled by Dem_DisableDTCRecordUpdate()
before.
Note: As the call to Dem_EnableDTCRecordUpdate
is the last action in the sequence of disabling/
enabling a DTC, the caller is not interested in the
return value. Therefore E_OK should be returned
even if the DTC is enabled asynchronously.
Dem_EnableDTCSetting Dem.h (Re)-Enables the DTC setting for all DTCs assigned
to the DemEventMemorySet of the addressed client.
Dem_GetDTCByOccurrenceTime Dem.h Gets the DTC by occurrence time. There is no
explicit parameter for the DTC-origin as the origin
always is DEM_DTC_ORIGIN_PRIMARY_
MEMORY.
Dem_GetDTCSeverityAvailabilityMask Dem.h Gets the DTC Severity availability mask.
5
4
API Function Header File Description
Dem_GetDTCStatusAvailabilityMask Dem.h Gets the DTC Status availability mask of the
selected fault memory.
Dem_GetFunctionalUnitOfDTC Dem.h Gets the functional unit of the requested DTC.
Dem_GetNextExtendedDataRecord Dem.h Gets extended data record for the DTC selected by
Dem_SelectExtendedDataRecord. The function
stores the data in the provided DestBuffer.
Dem_GetNextFilteredDTC Dem.h Gets the next filtered DTC matching the filter
criteria. For UDS services, the interface has an
asynchronous behavior, because a large number of
DTCs has to be processed.
Dem_GetNextFilteredDTCAndFDC Dem.h Gets the next filtered DTC and its associated Fault
Detection Counter (FDC) matching the filter criteria.
The interface has an asynchronous behavior,
because a large number of DTCs has to be
processed and the FDC might be received
asynchronously from a SW-C, too.
Dem_GetNextFilteredDTCAndSeverity Dem.h Gets the next filtered DTC and its associated
Severity matching the filter criteria. The interface
has an asynchronous behavior, because a large
number of DTCs has to be processed.
Dem_GetNextFilteredRecord Dem.h Gets the next freeze frame record number and its
associated DTC stored in the event memory. The
interface has an asynchronous behavior, because
NvRAM access might be required.
Dem_GetNextFreezeFrameData Dem.h Gets freeze frame data by the DTC selected by
Dem_SelectFreezeFrameData. The function stores
the data in the provided DestBuffer.
Dem_GetNumberOfFilteredDTC Dem.h Gets the number of a filtered DTC.
Dem_GetNumberOfFreezeFrame Dem.h This function returns the number of all freeze frame
Records records currently stored in the primary event
memory
Dem_GetSeverityOfDTC Dem.h Gets the severity of the requested DTC. For large
configurations and DTC-calibration, the interface
behavior can be asynchronous (splitting the
DTC-search into segments).
Dem_GetSizeOfExtendedDataRecord Dem.h Gets the size of Extended Data Record by DTC
Selection selected by the call of Dem_SelectExtendedData
Record.
Dem_GetSizeOfFreezeFrameSelection Dem.h Gets the size of freeze frame data by DTC selected
by the call of Dem_SelectFreezeFrameData.
Dem_GetStatusOfDTC Dem.h Gets the status of a DTC. For large configurations
and DTC-calibration, the interface behavior can be
asynchronous (splitting the DTC-search into
segments). The DTCs of OBD Events Suppression
shall be reported as Dem_WRONG_DTC.
Dem_GetTranslationType Dem.h Gets the supported DTC formats of the ECU.The
supported formats are configured via DemTypeOf
DTCSupported.
5
4
API Function Header File Description
Dem_SetDTCFilter Dem.h Sets the DTC Filter.
The server shall perform a bit-wise logical AND-ing
operation between the parameter DTCStatusMask
and the current UDS status in the server. In addition
to the DTCStatusAvailabilityMask, the server shall
return all DTCs for which the result of the AND-ing
operation is non-zero [i.e. (statusOfDTC &
DTCStatusMask) != 0]. The server shall process
only the DTC Status bits that it is supporting. OBD
Events Suppression shall be ignored for this
computation. If no DTCs within the server match the
masking criteria specified in the client’s request, no
DTC or status information shall be provided
following the DTCStatusAvailabilityMask byte in the
positive response message
(((statusOfDTC & DTCStatusMask) != 0) &&
((severity & DTCSeverityMask) != 0)) == TRUE
Dem_SetFreezeFrameRecordFilter Dem.h Sets a freeze frame record filter.
Det_ReportError Det.h Service to report development errors.
IdsM_SetSecurityEvent (obsolete) IdsM.h This API is the application interface to report
security events to the IdsM.
Tags: atp.Status=obsolete
IdsM_SetSecurityEventWithContext IdsM.h This API is the application interface to report
Data (obsolete) security events with context data to the IdsM.
Tags: atp.Status=obsolete
IoHwAb_Dcm_<EcuSignalName> IoHwAb_Dcm.h This function provides control access to a certain
ECU Signal to the DCM module (<EcuSignalname>
is the symbolic name of an ECU Signal). The ECU
signal can be locked and unlocked by this function.
Locking ’freezes’ the ECU signal to the current
value, the configured default value or a value given
by the parameter ’signal’.
IoHwAb_Dcm_Read<EcuSignal IoHwAb_Dcm.h This function provides read access to a certain ECU
Name> Signal to the DCM module (<EcuSignalname> is the
symbolic name of an ECU Signal).
NvM_ReadBlock NvM.h Service to copy the data of the NV block to its
corresponding RAM block.
NvM_SetRamBlockStatus NvM.h Service for setting the RAM block status of a
permanent RAM block or the status of the explicit
synchronization of a NVRAM block.
NvM_WriteBlock NvM.h Service to copy the data of the RAM block to its
corresponding NV block.
PduR_DcmCancelReceive PduR_Dcm.h Requests cancellation of an ongoing reception of a
PDU in a lower layer transport protocol module.
PduR_DcmCancelTransmit PduR_Dcm.h Requests cancellation of an ongoing transmission of
a PDU in a lower layer communication module.
SchM_ActMainFunction_Dcm <none> Invokes the SchM_ActMainFunction function to
trigger the activation of a corresponding main
processing function.
This section defines the interfaces where the Dcm configuration defines the actual func-
tions that the Dcm will use. Depending on the configuration, an implementation of these
functions could be provided by other BSW-modules (typically the DEM) or by software-
components (through the RTE).
8.7.3.1 SecurityAccess
From the point of view of the DCM, the operation has the following signature:
8.7.3.1.1 GetSeed
If DcmDspSecurityADRSize is present:
8.7.3.1.2 CompareKey
4
Description Request to application for asynchronous comparing key (DcmDspSecurityUsePort = USE_
ASYNCH_CLIENT_SERVER)
Available via Dcm_Externals.h
8.7.3.1.3 GetSecurityAttemptCounter
Note: In case the Security Access AttemptCounter needs to be shared between ap-
plication and bootloader, the application needs to consider this in the API-call Xxx_-
GetSecurityAttemptCounter (see chapter 7.4.4 Interaction). Further this has also
impact on the security delay timer which needs to be considered.
8.7.3.1.4 SetSecurityAttemptCounter
8.7.3.2 DataServices
From the point of view of the DCM, the operations have the following signatures:
Note : The OpStatus parameter exist only for asynchronous operations (if DcmD-
spDataUsePort is set to USE_DATA_ASYNCH_CLIENT_SERVER or USE_DATA_-
ASYNCH_CLIENT_SERVER_ERROR or USE_DATA_ASYNCH_FNC or USE_DATA_-
ASYNCH_FNC_ERROR or USE_DATA_ASYNCH_FNC_PROXY). In case of synchronous
operations (DcmDspDataUsePort is set to USE_DATA_SYNCH_CLIENT_SERVER or
USE_DATA_SYNCH_FNC or USE_DATA_ASYNCH_FNC_PROXY), the OpStatus parame-
ter does not exist.
8.7.3.2.1 ReadData
d
Service Name Xxx_ReadData (draft)
Syntax Std_ReturnType Xxx_ReadData (
uint8* Data,
uint16 DataLength,
Dcm_NegativeResponseCodeType* ErrorCode
)
Service ID [hex] 0x68
Sync/Async Synchronous
Reentrancy Non Reentrant
Parameters (in) DataLength Length in byte of the data to be read
Parameters (inout) None
Parameters (out) Data Buffer where the requested data shall be copied to
ErrorCode If the operation Xxx_ReadData returns value E_NOT_OK, the
Dcm module shall send a negative response with NRC code
equal to the parameter ErrorCode parameter value.
5
4
Return value Std_ReturnType E_OK: Request was successful.
E_NOT_OK: Request was not successful.
Description This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is
set to USE_DATA_SYNCH_FNC_PROXY.
Tags: atp.Status=draft
Available via Dcm_Externals.h
d
Service Name Xxx_ReadData (draft)
Syntax Std_ReturnType Xxx_ReadData (
Dcm_OpStatusType OpStatus,
uint8* Data,
uint16 DataLength,
Dcm_NegativeResponseCodeType* ErrorCode
)
Service ID [hex] 0x7d
Sync/Async Synchronous
Reentrancy Non Reentrant
Parameters (in) OpStatus Status of the current operation
DataLength Length in byte of the data to be read
Parameters (inout) None
Parameters (out) Data Buffer where the requested data shall be copied to
ErrorCode If the operation Xxx_ReadData returns value E_NOT_OK, the
Dcm module shall send a negative response with NRC code
equal to the parameter ErrorCode parameter value.
Return value Std_ReturnType E_OK: Request was successful.
E_NOT_OK: Request was not successful.
Description This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is
set to USE_DATA_ASYNCH_FNC_PROXY..
Tags: atp.Status=draft
Available via Dcm_Externals.h
8.7.3.2.2 WriteData
4
Parameters (out) ErrorCode If the operation Xxx_WriteData returns value E_NOT_OK, the
DCM module shall send a negative response with NRC code
equal to the parameter ErrorCode parameter value.
Return value Std_ReturnType E_OK: Request was successful.
E_NOT_OK: Request was not successful.
DCM_E_PENDING: Request is not yet finished. Further call(s)
required to finish.
Description This function requests the application to write a data value of a DID.
Available via Dcm_Externals.h
d
Service Name Xxx_WriteData (draft)
Syntax Std_ReturnType Xxx_WriteData (
const uint8* Data,
uint16 DataLength,
Dcm_NegativeResponseCodeType* ErrorCode
)
Service ID [hex] 0x85
Sync/Async Synchronous
Reentrancy Non Reentrant
Parameters (in) Data Buffer containing the data to be written
DataLength Length in byte of the data to be written
Parameters (inout) None
Parameters (out) ErrorCode If the operation Xxx_WriteData returns value E_NOT_OK, the
DCM module shall send a negative response with NRC code
equal to the parameter ErrorCode parameter value.
Return value Std_ReturnType E_OK: Request was successful.
E_NOT_OK: Request was not successful.
Description This function requests the application to write a data value of a DID if DcmDspDataUsePort is
set to USE_DATA_SYNCH_FNC_PROXY.
Tags: atp.Status=draft
Available via Dcm_Externals.h
d
Service Name Xxx_WriteData (draft)
Syntax Std_ReturnType Xxx_WriteData (
const uint8* Data,
uint16 DataLength,
Dcm_OpStatusType OpStatus,
Dcm_NegativeResponseCodeType* ErrorCode
)
Service ID [hex] 0x91
Sync/Async Asynchronous
Reentrancy Non Reentrant
Parameters (in) Data Buffer containing the data to be written
DataLength Length in byte of the data to be written
OpStatus Status of the current operation
Parameters (inout) None
Parameters (out) ErrorCode If the operation Xxx_WriteData returns value E_NOT_OK, the
DCM module shall send a negative response with NRC code
equal to the parameter ErrorCode parameter value.
Return value Std_ReturnType E_OK: Request was successful.
E_NOT_OK: Request was not successful.
DCM_E_PENDING: Request is not yet finished. Further call(s)
required to finish.
Description This function requests the application to write a data value of a DID if DcmDspDataUsePort is
set to USE_DATA_ASYNCH_FNC_PROXY.
Tags: atp.Status=draft
Available via Dcm_Externals.h
8.7.3.2.3 ReadDataLength
4
Parameters (in) None
Parameters (inout) None
Parameters (out) DataLength Length in byte of the data to be read
Return value Std_ReturnType E_OK: this value is always returned.
Description This function requests the application to return the data length in byte of a Data.
Available via Dcm_Externals.h
Please note that the function definition according [SWS_Dcm_00796] will become ob-
solete and gets replaced by [SWS_Dcm_91096]
Please note that the function definition according [SWS_Dcm_91010] will become ob-
solete and gets replaced by [SWS_Dcm_91097]
8.7.3.2.4 ConditionCheckRead
4
Return value Std_ReturnType E_OK: Request was successful.
E_NOT_OK: Request was not successful.
DCM_E_PENDING: Request is not yet finished. Further call(s)
required to finish.
Description This function requests to the application if the conditions to read the Data are correct.
Available via Dcm_Externals.h
8.7.3.2.5 GetScalingInformation
This function requests to the application for the scaling information of a Data (scaling-
Byte and scalingByteExtension).
If DcmDspDataUsePort is set to USE_DATA_SYNCH_CLIENT_SERVER or USE_-
DATA_SYNCH_FNC, the following definition is used:
d
Service Name Xxx_GetScalingInformation (draft)
Syntax Std_ReturnType Xxx_GetScalingInformation (
uint8* ScalingInfo,
uint8 ScalingInfoLength,
Dcm_NegativeResponseCodeType* ErrorCode
)
Service ID [hex] 0x90
Sync/Async Synchronous
Reentrancy Non Reentrant
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)}== (USE_DATA_
SYNCH_FNC_PROXY) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData/DcmDspData
InfoRef->DcmDspDataScalingInfoSize)} != NULL)
Parameters (in) ScalingInfoLength Length in byte of the scaling information to be read
Parameters (inout) None
5
4
Parameters (out) ScalingInfo Scaling information (scalingByte and scalingByteExtension)
ErrorCode If the operation Xxx_GetScalingInformation returns value E_
NOT_OK, the DCM module shall send a negative response with
NRC code equal to the parameter ErrorCode parameter value.
Return value Std_ReturnType E_OK: Request was successful.
E_NOT_OK: Request was not successful.
Description This function requests to the application for the scaling information of a Data.
Tags: atp.Status=draft
Available via Dcm_Externals.h
d
Service Name Xxx_GetScalingInformation (draft)
Syntax Std_ReturnType Xxx_GetScalingInformation (
Dcm_OpStatusType OpStatus,
uint8* ScalingInfo,
uint8 ScalingInfoLength,
Dcm_NegativeResponseCodeType* ErrorCode
)
Service ID [hex] 0x8f
Sync/Async Asynchronous
Reentrancy Non Reentrant
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)}== (USE_DATA_
ASYNCH_FNC_PROXY) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData/DcmDspData
InfoRef->DcmDspDataScalingInfoSize)} != NULL)
Parameters (in) OpStatus Status of the current operation
ScalingInfoLength Length in byte of the scaling information to be read
Parameters (inout) None
Parameters (out) ScalingInfo Scaling information (scalingByte and scalingByteExtension)
ErrorCode If the operation Xxx_GetScalingInformation returns value E_
NOT_OK, the DCM module shall send a negative response with
NRC code equal to the parameter ErrorCode parameter value.
Return value Std_ReturnType E_OK: Request was successful.
E_NOT_OK: Request was not successful.
DCM_E_PENDING: Request is not yet finished. Further call(s)
required to finish.
Description This function requests to the application for the scaling information of a Data.
Tags: atp.Status=draft
Available via Dcm_Externals.h
8.7.3.2.6 ReturnControlToECU
d
Service Name Xxx_ReturnControlToECU (draft)
Syntax Std_ReturnType Xxx_ReturnControlToECU (
uint8* controlMask,
uint8 controlMaskLength,
Dcm_NegativeResponseCodeType ErrorCode
)
Service ID [hex] 0x8e
Sync/Async Synchronous
Reentrancy Non Reentrant
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)}== (USE_DATA_
SYNCH_FNC_PROXY || USE_DATA_ASYNCH_FNC_PROXY) ) && ({ecuc(Dcm/DcmConfig
Set/DcmDsp/DcmDspDid/DcmDspDidInfoRef -> DcmDspDidInfo/DcmDspDidControl)} !=
NULL)
Parameters (in) controlMask Control enable mask
controlMaskLength Control enable mask length in byte
Parameters (inout) None
Parameters (out) ErrorCode If the operation Xxx_ReturnControlToECU returns value E_NOT_
OK, the DCM module shall send a negative response with NRC
code equal to the parameter ErrorCode parameter value.
Return value Std_ReturnType E_OK: Request was successful.
E_NOT_OK: Request was not successful.
Description This function requests to the application to return control to ECU of an IOControl.
Tags: atp.Status=draft
Available via Dcm_Externals.h
8.7.3.2.7 ResetToDefault
d
Service Name Xxx_ResetToDefault (draft)
Syntax Std_ReturnType Xxx_ResetToDefault (
uint8* controlMask,
uint8 controlMaskLength,
Dcm_NegativeResponseCodeType* ErrorCode
)
Service ID [hex] 0x8d
Sync/Async Synchronous
Reentrancy Non Reentrant
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)}== USE_DATA_
SYNCH_FNC_PROXY) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDid
Control/DcmDspDidResetToDefault)} == TRUE)
Parameters (in) controlMask Control enable mask
controlMaskLength Control enable mask length in byte
Parameters (inout) None
Parameters (out) ErrorCode If the operation Xxx_ResetToDefault returns value E_NOT_OK,
the DCM module shall send a negative response with NRC code
equal to the parameter ErrorCode parameter value.
Return value Std_ReturnType E_OK: Request was successful.
E_NOT_OK: Request was not successful.
Description This function requests to the application to reset an IOControl to default value.
Tags: atp.Status=draft
Available via Dcm_Externals.h
4
Reentrancy Non Reentrant
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == (USE_DATA_
ASYNCH_FNC || USE_DATA_ASYNCH_FNC_ERROR|| USE_DATA_ASYNCH_CLIENT_
SERVER || USE_DATA_ASYNCH_CLIENT_SERVER_ERROR|| )) && ({ecuc(Dcm/DcmConfig
Set/DcmDsp/DcmDspDidInfo/DcmDspDidControl/DcmDspDidResetToDefault)} == TRUE)
d
Service Name Xxx_ResetToDefault (draft)
Syntax Std_ReturnType Xxx_ResetToDefault (
Dcm_OpStatusType OpStatus,
uint8* controlMask,
uint8 controlMaskLength,
Dcm_NegativeResponseCodeType* ErrorCode
)
Service ID [hex] 0x7f
Sync/Async Asynchronous
Reentrancy Non Reentrant
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)}== USE_DATA_
ASYNCH_FNC_PROXY) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDid
Control/DcmDspDidResetToDefault)} == TRUE)
Parameters (in) OpStatus Status of the current operation
controlMask Control enable mask
controlMaskLength Control enable mask length in byte
Parameters (inout) None
Parameters (out) ErrorCode If the operation Xxx_ResetToDefault returns value E_NOT_OK,
the DCM module shall send a negative response with NRC code
equal to the parameter ErrorCode parameter value.
Return value Std_ReturnType E_OK: Request was successful.
E_NOT_OK: Request was not successful.
DCM_E_PENDING: Request is not yet finished. Further call(s)
required to finish.
Description This function requests to the application to reset an IOControl to default value.
Tags: atp.Status=draft
Available via Dcm_Externals.h
8.7.3.2.8 FreezeCurrentState
d
Service Name Xxx_FreezeCurrentState (draft)
Syntax Std_ReturnType Xxx_FreezeCurrentState (
uint8* controlMask,
uint8 controlMaskLength,
Dcm_NegativeResponseCodeType* ErrorCode
)
Service ID [hex] 0x77
Sync/Async Synchronous
Reentrancy Non Reentrant
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)}== USE_DATA_
SYNCH_FNC_PROXY) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDid
Control/DcmDspDidFreezeCurrentState)} == TRUE)
Parameters (in) controlMask Control enable mask
controlMaskLength Control enable mask length in byte
Parameters (inout) None
Parameters (out) ErrorCode If the operation Xxx_FreezeCurrentState returns value E_NOT_
OK, the DCM module shall send a negative response with NRC
code equal to the parameter ErrorCode parameter value.
Return value Std_ReturnType E_OK: Request was successful.
E_NOT_OK: Request was not successful.
Description This function requests to the application to freeze the current state of an IOControl.
Tags: atp.Status=draft
Available via Dcm_Externals.h
4
Sync/Async Asynchronous
Reentrancy Non Reentrant
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == (USE_DATA_
ASYNCH_FNC || USE_DATA_ASYNCH_FNC_ERROR|| USE_DATA_ASYNCH_CLIENT_
SERVER || USE_DATA_ASYNCH_CLIENT_SERVER_ERROR))&& ({ecuc(Dcm/DcmConfig
Set/DcmDsp/DcmDspDidInfo/DcmDspDidControl/DcmDspDidFreezeCurrentState)} == TRUE)
d
Service Name Xxx_FreezeCurrentState (draft)
Syntax Std_ReturnType Xxx_FreezeCurrentState (
Dcm_OpStatusType OpStatus,
uint8* controlMask,
uint8 controlMaskLength,
Dcm_NegativeResponseCodeType* ErrorCode
)
Service ID [hex] 0x88
Sync/Async Asynchronous
Reentrancy Non Reentrant
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)}== USE_DATA_
ASYNCH_FNC_PROXY) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDid
Control/DcmDspDidFreezeCurrentState)} == TRUE)
Parameters (in) OpStatus Status of the current operation
controlMask Control enable mask
controlMaskLength Control enable mask length in byte
Parameters (inout) None
Parameters (out) ErrorCode If the operation Xxx_FreezeCurrentState returns value E_NOT_
OK, the DCM module shall send a negative response with NRC
code equal to the parameter ErrorCode parameter value.
Return value Std_ReturnType E_OK: Request was successful.
E_NOT_OK: Request was not successful.
DCM_E_PENDING: Request is not yet finished. Further call(s)
required to finish.
Description This function requests to the application to freeze the current state of an IOControl.
Tags: atp.Status=draft
Available via Dcm_Externals.h
8.7.3.2.9 ShortTermAdjustment
d
Service Name Xxx_ShortTermAdjustment (draft)
Syntax Std_ReturnType Xxx_ShortTermAdjustment (
const uint8* ControlStateInfo,
uint16 DataLength,
uint8* controlMask,
uint8 controlMaskLength,
Dcm_NegativeResponseCodeType* ErrorCode
)
Service ID [hex] 0x87
Sync/Async Synchronous
Reentrancy Non Reentrant
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)}== USE_DATA_
SYNCH_FNC_PROXY) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDid
Control/DcmDspDidShortTermAdjustment)} == TRUE)
Parameters (in) ControlStateInfo ControlState information contained in the ControlOptionRecord
parameter of the InputOutputControlByIdentifier diagnostic
request
DataLength ControlState information length in byte
controlMask Control enable mask
controlMaskLength Control enable mask length in byte
Parameters (inout) None
Parameters (out) ErrorCode If the operation Xxx_ShortTermAdjustment returns value E_NOT_
OK, the DCM module shall send a negative response with NRC
code equal to the parameter ErrorCode parameter value.
Return value Std_ReturnType E_OK: Request was successful.
E_NOT_OK: Request was not successful.
Description This function requests to the application to adjust the IO signal.
Tags: atp.Status=draft
Available via Dcm_Externals.h
d
Service Name Xxx_ShortTermAdjustment (draft)
Syntax Std_ReturnType Xxx_ShortTermAdjustment (
const uint8* ControlStateInfo,
uint16 DataLength,
Dcm_OpStatusType OpStatus,
uint8* controlMask,
uint8 controlMaskLength,
Dcm_NegativeResponseCodeType* ErrorCode
)
Service ID [hex] 0x83
Sync/Async Synchronous
Reentrancy Non Reentrant
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)}== USE_DATA_
ASYNCH_FNC_PROXY) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDid
Control/DcmDspDidShortTermAdjustment)} == TRUE)
8.7.3.3 DataServices_DIDRange
From the point of view of the DCM, the operations have the following signatures:
Note : The OpStatus parameter should only be used for asynchronous operations
(if DcmDspDataUsePort is set to USE_DATA_ASYNCH_CLIENT_SERVER or USE_-
DATA_ASYNCH_FNC or USE_DATA_ASYNCH_CLIENT_SERVER_ERROR USE_DATA_-
ASYNCH_FNC_ERROR). In case of synchronous operations (DcmDspDataUsePort is
set to USE_DATA_SYNCH_CLIENT_SERVER or USE_DATA_SYNCH_FNC), the OpSta-
tus parameter should not be used.
8.7.3.3.1 IsDidAvailable
8.7.3.3.2 ReadDidData
8.7.3.3.3 WriteDidData
4
Data Buffer containing the data to be written
OpStatus Status of the current operation
DataLength Length of the data to be written
Parameters (inout) None
Parameters (out) ErrorCode If the operation Xxx_WriteDidData returns value E_NOT_OK, the
DCM module shall send a negative response with NRC code
equal to the parameter ErrorCode parameter value.
Return value Std_ReturnType E_OK: Request was successful.
E_NOT_OK: Request was not successful.
DCM_E_PENDING: Request is not yet finished. Further call(s)
required to finish.
Description This function requests the application to write a data value of a DID.
Available via Dcm_Externals.h
8.7.3.3.4 ReadDidRangeDataLength
8.7.3.4 InfoTypesServices
8.7.3.4.1 GetInfotypeValueData
8.7.3.5 RoutineServices
The operations mentioned in the following sub-chapters are only general examples,
because the number of In and OUT parameters can be variable from 0 to an arbitrary
number.It is therefore not possible to list all variations of operation prototypes.
Parameters (out) dataOut_1 Fixed-length output data to provide in the routine control response
... ...
dataOut_n Fixed-length output data to provide in the routine control response
dataOutVar Variable-length output data to provide in the routine control
response
ErrorCode If the operation Xxx_Start returns value E_NOT_OK, the Dcm
module shall send a negative response with NRC code equal to
the parameter ErrorCode parameter value.
Return value Std_ReturnType E_OK: Request was successful.
E_NOT_OK: Request was not successful.
DCM_E_PENDING: Request is not yet finished. Further call(s)
required to finish.
DCM_E_FORCE_RCRRP: application requests the transmission of
a response Pending (NRC 0x78)
Description This function requests to the application to start the execution of a routine.
Available via Dcm_Externals.h
d
Service Name Xxx_Start (draft)
Syntax Std_ReturnType Xxx_Start (
Dcm_OpStatusType OpStatus,
uint8* dataInOut,
uint16* currentDataLength,
Dcm_NegativeResponseCodeType* ErrorCode
)
Service ID [hex] 0x80
Sync/Async Asynchronous
Reentrancy Non Reentrant
Parameters (in) OpStatus Status of the current operation
Parameters (inout) dataInOut Input and output data in the routine control request / response
currentDataLength This parameter contains the length in bytes of the dataInOut
array. It include fixed length and variable length data.
Parameters (out) ErrorCode If the operation Xxx_Start returns value E_NOT_OK, the Dcm
module shall send a negative response with NRC code equal to
the parameter ErrorCode parameter value.
Return value Std_ReturnType E_OK: Request was successful.
E_NOT_OK: Request was not successful.
DCM_E_PENDING: Request is not yet finished. Further call(s)
required to finish.
DCM_E_FORCE_RCRRP: application requests the transmission
of a response Pending (NRC 0x78)
Description This function requests to the application to start the execution of a routine.
Tags: atp.Status=draft
Available via Dcm_Externals.h
4
Parameters (inout) None
Parameters (out) None
Return value Std_ReturnType E_OK: Request was successful.
E_NOT_OK: Request was not successful.
Description This function indicates the transmission of a response to a StartRoutine request
Available via Dcm_Externals.h
4
ErrorCode If the operation Xxx_Stop returns value E_NOT_OK, the Dcm
module shall send a negative response with NRC code equal to
the parameter ErrorCode parameter value.
Return value Std_ReturnType E_OK: Request was successful.
E_NOT_OK: Request was not successful.
DCM_E_PENDING: Request is not yet finished. Further call(s)
required to finish
DCM_E_FORCE_RCRRP: application requests the transmission of
a response Pending (NRC 0x78)
Description This function requests to the application to stop the execution of a routine
Available via Dcm_Externals.h
d
Service Name Xxx_Stop (draft)
Syntax Std_ReturnType Xxx_Stop (
Dcm_OpStatusType OpStatus,
uint8* dataInOut,
uint16* currentDataLength,
Dcm_NegativeResponseCodeType* ErrorCode
)
Service ID [hex] 0x81
Sync/Async Asynchronous
Reentrancy Non Reentrant
Parameters (in) OpStatus Status of the current operation
Parameters (inout) dataInOut Input and output data in the routine control request / response
currentDataLength This parameter contains the length in bytes of the dataInOut
array. It include fixed length and variable length data.
Parameters (out) ErrorCode If the operation Xxx_Stop returns value E_NOT_OK, the Dcm
module shall send a negative response with NRC code equal to
the parameter ErrorCode parameter value.
Return value Std_ReturnType E_OK: Request was successful.
E_NOT_OK: Request was not successful.
DCM_E_PENDING: Request is not yet finished. Further call(s)
required to finish
DCM_E_FORCE_RCRRP: application requests the transmission
of a response Pending (NRC 0x78)
Description This function requests to the application to stop the execution of a routine
Tags: atp.Status=draft
Available via Dcm_Externals.h
4
Reentrancy Non Reentrant
Parameters (in) dataIn_1 Fixed-length input data provided in the routine control request
... ...
dataIn_n Fixed-length input data provided in the routine control request
dataInVar Variable-length input data provided in the routine control request
OpStatus Move to be mentioned after dataInVar.
Parameters (inout) currentDataLength If variable length routine input data is used, this parameter
contains the length in bytes of the dataInVar array. If variable
length routine output data is used, this parameter contains the
length in bytes of the dataOutVar parameter.
Parameters (out) dataOut_1 Fixed-length Output data to provide in the routine control
response
... ...
dataOut_n Fixed-length Output data to provide in the routine control
response
dataOutVar Variable-length Output data to provide in the routine control
response
ErrorCode If the operation Xxx_RequestResults returns value E_NOT_OK,
the Dcm module shall send a negative response with NRC code
equal to the parameter ErrorCode parameter value.
Return value Std_ReturnType E_OK: Request was successful.
E_NOT_OK: Request was not successful.
DCM_E_PENDING: Request is not yet finished. Further call(s)
required to finish
DCM_E_FORCE_RCRRP: application requests the transmission of
a response Pending (NRC 0x78)
Description This function requests to the application the result of a routine execution
Available via Dcm_Externals.h
d
Service Name Xxx_RequestResults (draft)
Syntax Std_ReturnType Xxx_RequestResults (
Dcm_OpStatusType OpStatus,
uint8* dataInOut,
uint16* currentDataLength,
Dcm_NegativeResponseCodeType* ErrorCode
)
Service ID [hex] 0x82
Sync/Async Asynchronous
5
4
Reentrancy Non Reentrant
Parameters (in) OpStatus Status of the current operation
Parameters (inout) dataInOut Input and output data in the routine control request / response If
variable length routine input data is used, this parameter contains
the length in bytes of the dataInVar array. If variable length
routine output data is used, this parameter contains the length in
bytes of the dataOutVar parameter.
currentDataLength This parameter contains the length in bytes of the dataInOut
array. It include fixed length and variable length data.
Parameters (out) ErrorCode If the operation Xxx_RequestResults returns value E_NOT_OK,
the Dcm module shall send a negative response with N
Return value Std_ReturnType E_OK: Request was successful.
E_NOT_OK: Request was not successful.
DCM_E_PENDING: Request is not yet finished. Further call(s)
required to finish
DCM_E_FORCE_RCRRP: application requests the transmission
of a response Pending (NRC 0x78)
Description This function requests to the application the result of a routine execution
Tags: atp.Status=draft
Available via Dcm_Externals.h
8.7.3.6 RequestControlServices
From the point of view of the DCM, the operation has the following signature:
8.7.3.7 ServiceRequestNotification
From the point of view of the DCM, the operations has the following signatures:
8.7.3.7.1 Indication
8.7.3.7.2 Confirmation
8.7.3.8 ClearDTCCheckFnc
From the point of view of the Dcm, the operation has the following signature:
4
Sync/Async Synchronous
Reentrancy Non Reentrant
Parameters (in) GoDTC requested groupOfDTC
Parameters (inout) None
Parameters (out) ErrorCode If the operation Xxx_ClearDTCCheckFnc returns value E_NOT_
OK, the DCM module shall send a negative response with NRC
code equal to the parameter ErrorCode parameter value.
Return value Std_ReturnType E_OK: application allows to clear the requested groupOfDTC
E_NOT_OK: application does not allow to clear the requested
groupOfDTC. Dcm shall send a negative response with the NRC
returned in the ErrorCode
Description Callout function for condition check, manufacturer / supplier specific checks on the groupOf
DTC, which is requested to clear.
Available via Dcm_Externals.h
8.8.1.1 Dcm_OpStatusType
8.8.1.2 Dcm_ConfirmationStatusType
8.8.1.3 Dcm_SecLevelType
8.8.1.4 Dcm_SesCtrlType
8.8.1.5 Dcm_ProtocolType
4
DCM_ROE_ON_IP 0x08 (Response on Event on Internet
Protocol)
DCM_PERIODICTRANS_ 0x09 Periodic Transmission on CAN
ON_CAN
DCM_PERIODICTRANS_ 0x0A Periodic Transmission on FlexRay
ON_FLEXRAY
DCM_PERIODICTRANS_ 0x0B (Periodic Transmission on Internet
ON_IP Protocol)
DCM_NO_ACTIVE_ 0x0C No protocol has been started
PROTOCOL
DCM_UDS_ON_LIN 0x0D UDS on LIN (ISO14229-1;
ISO14229-7)
Reserved for further 0x0E..0xEF –
AUTOSAR implementation
DCM_SUPPLIER_1 0xF0 Reserved for SW supplier
specific.
DCM_SUPPLIER_2 0xF1 Reserved for SW supplier
specific.
DCM_SUPPLIER_3 0xF2 Reserved for SW supplier
specific.
DCM_SUPPLIER_4 0xF3 Reserved for SW supplier
specific.
DCM_SUPPLIER_5 0xF4 Reserved for SW supplier
specific.
DCM_SUPPLIER_6 0xF5 Reserved for SW supplier
specific.
DCM_SUPPLIER_7 0xF6 Reserved for SW supplier
specific.
DCM_SUPPLIER_8 0xF7 Reserved for SW supplier
specific.
DCM_SUPPLIER_9 0xF8 Reserved for SW supplier
specific.
DCM_SUPPLIER_10 0xF9 Reserved for SW supplier
specific.
DCM_SUPPLIER_11 0xFA Reserved for SW supplier
specific.
DCM_SUPPLIER_12 0xFB Reserved for SW supplier
specific.
DCM_SUPPLIER_13 0xFC Reserved for SW supplier
specific.
DCM_SUPPLIER_14 0xFD Reserved for SW supplier
specific.
DCM_SUPPLIER_15 0xFE Reserved for SW supplier
specific.
Description Protocol type definition
Variation –
Available via Rte_Dcm_Type.h
8.8.1.6 Dcm_NegativeResponseCodeType
4
DCM_E_REQUIRED- 0x37 RTDNE
TIMEDELAYNOTEXPIRED
range of values 0x38..0x4F 0x38..0x4F RBEDLSD
reserved by ISO 15764
range of values 0x50..0x6F 0x50..0x6F ISOSAERESRVD
reserved by ISO 14229
DCM_E_UPLOADDOWN- 0x70 UDNA
LOADNOTACCEPTED
DCM_E_TRANSFERDATA- 0x71 TDS
SUSPENDED
DCM_E_GENERALPRO- 0x72 GPF
GRAMMINGFAILURE
DCM_E_WRONGBLOCK- 0x73 WBSC
SEQUENCECOUNTER
range of values 0x74..0x77 0x74..0x77 ISOSAERESRVD
reserved by ISO 14229
range of values 0x79..0x7D 0x79..0x7D ISOSAERESRVD
reserved by ISO 14229
DCM_E_SUBFUNCTION- 0x7E SFNSIAS
NOTSUPPORTEDINAC-
TIVESESSION
DCM_E_ 0x7F SNSIAS
SERVICENOTSUPPORTE-
DINACTIVESESSION
value 0x80 reserved by ISO 0x80 ISOSAERESRVD
14229
DCM_E_RPMTOOHIGH 0x81 RPMTH
DCM_E_RPMTOOLOW 0x82 RPMTL
DCM_E_ 0x83 EIR
ENGINEISRUNNING
DCM_E_ 0x84 EINR
ENGINEISNOTRUNNING
DCM_E_ENGINERUN- 0x85 ERTTL
TIMETOOLOW
DCM_E_ 0x86 TEMPTH
TEMPERATURETOOHIGH
DCM_E_ 0x87 TEMPTL
TEMPERATURETOOLOW
DCM_E_ 0x88 VSTH
VEHICLESPEEDTOOHIGH
DCM_E_ 0x89 VSTL
VEHICLESPEEDTOOLOW
DCM_E_THROTTLE_ 0x8A TPTH
PEDALTOOHIGH
DCM_E_THROTTLE_ 0x8B TPTL
PEDALTOOLOW
DCM_E_TRANSMISSION- 0x8C TRNIN
RANGENOTINNEUTRAL
DCM_E_TRANSMISSION- 0x8D TRNIG
RANGENOTINGEAR
value 0x8E reserved by ISO 0x8E ISOSAERESRVD
14229
DCM_E_BRAKESWITCH_ 0x8F BSNC
NOTCLOSED
DCM_E_SHIFTERLEVER- 0x90 SLNIP
NOTINPARK
5
4
DCM_E_TORQUECON- 0x91 TCCL
VERTERCLUTCHLOCKED
DCM_E_ 0x92 VTH
VOLTAGETOOHIGH
DCM_E_ 0x93 VTL
VOLTAGETOOLOW
range of values 0x94..0xEF 0x94..0xEF RFSCNC
reserved by ISO 14229
DCM_E_VMSCNC_0 0xF0 VMSCNC
DCM_E_VMSCNC_1 0xF1 VMSCNC1
DCM_E_VMSCNC_2 0xF2 VMSCNC2
DCM_E_VMSCNC_3 0xF3 VMSCNC3
DCM_E_VMSCNC_4 0xF4 VMSCNC4
DCM_E_VMSCNC_5 0xF5 VMSCNC5
DCM_E_VMSCNC_6 0xF6 VMSCNC6
DCM_E_VMSCNC_7 0xF7 VMSCNC7
DCM_E_VMSCNC_8 0xF8 VMSCNC8
DCM_E_VMSCNC_9 0xF9 VMSCNC9
DCM_E_VMSCNC_A 0xFA VMSCNCA
DCM_E_VMSCNC_B 0xFB VMSCNCB
DCM_E_VMSCNC_C 0xFC VMSCNCC
DCM_E_VMSCNC_D 0xFD VMSCNCD
DCM_E_VMSCNC_E 0xFE VMSCNCE
value 0xFF reserved by ISO 0xFF ISOSAERESRVD
14229
Description This Table of available Negative Response Codes represents the allowed Response Codes an
AUTOSAR SW Component shall return after a function call. For the allowed NRC of the executed
Service ID please refer to the specification of the service in ISO14229-1 (UDS) and ISO15031-5
(OBD/CARB) (Response code parameter definition Table 18 of ISO 14229-1:2020).
Variation –
Available via Rte_Dcm_Type.h
8.8.1.7 Dcm_DataElementType_{Data}Type
4
Dcm_DataElement_{Data} (({ecuc(Dcm/?DcmConfigSet/?DcmDsp/?DcmDspData.?DcmDsp
_ArrayType DataType)} == ([S|U]INT[8|16|32]|FLOAT)_N) || ({ecuc(Dcm/?Dcm
ConfigSet/?DcmDsp/?DcmDspPid/?DcmDspPidData/?DcmDsp
PidService01.?DcmDspPidDataType)} ==
([S|U]INT[8|16|32]|FLOAT)_N))
Dcm_DataElement_{Data} (({ecuc(Dcm/?DcmConfigSet/?DcmDsp/?DcmDspData.?DcmDsp
_PrimitiveType DataType)} == (BOOLEAN|[S|U]INT[8|16|32]|FLOAT)) ||
({ecuc(Dcm/?DcmConfigSet/?DcmDsp/?DcmDspPid/?DcmDspPid
Data/?DcmDspPidService01.?DcmDspPidDataType)} ==
(BOOLEAN|[S|U]INT[8|16|32]|FLOAT)))
Dcm_DataElement_{Data} DcmDspDidSignal with at least one DcmDspDidSignalComposite
_StructuredType Ref.
Description Common description for S/R and C/S data elements.
Variation (({Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDidUsePort == USE_DATA_ELEMENT_
SPECIFIC_INTERFACES}) && ( ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData/DcmDspData
UsePort)} == USE_DATA_SENDER_RECEIVER) || ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Pid/DcmDspPidData/DcmDspPidService01/DcmDspPidDataUsePort)} == USE_DATA_SENDER_
RECEIVER) || ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspPid/DcmDspPidData/DcmDspPid
Service01/DcmDspPidDataUsePort)} == USE_DATA_SENDER_RECEIVER_AS_SERVICE) ||
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData/DcmDspDataUsePort)} == USE_DATA_
SENDER_RECEIVER_AS_SERVICE) ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDsp
DataUsePort)} == USE_DATA_SYNCH_CLIENT_SERVER) || ({ecuc(Dcm/DcmConfigSet/DcmDsp/
DcmDspData.DcmDspDataUsePort)} == USE_DATA_ASYNCH_CLIENT_SERVER) || ({ecuc(Dcm/
DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == USE_DATA_ASYNCH_CLIENT_
SERVER_ERROR) || ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspPid/DcmDspPidData/DcmDsp
PidService01.DcmDspPidDataUsePort)} == USE_DATA_SYNCH_CLIENT_SERVER) ))
Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)}) || ({ecuc(Dcm/Dcm
ConfigSet/DcmDsp/DcmDspPid/DcmDspPidData.SHORT-NAME)})
Available via Rte_Dcm_Type.h
8.8.1.8 Dcm_DataElement_{Data}StructuredType
8.8.1.9 Dcm_DataElementType_{Data}ArrayType
4
Available via Rte_Dcm_Type.h
8.8.1.10 Dcm_DataElementType_{Data}PrimitiveType
4
Variation ((({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataType)} ==
(BOOLEAN|[S|U]INT[8|16|32]|FLOAT)) || ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspPid/Dcm
DspPidData/DcmDspPidService01.DcmDspPidDataType)} ==
(BOOLEAN|[S|U]INT[8|16|32]|FLOAT))) && ({Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDsp
DidUsePort == USE_DATA_ELEMENT_SPECIFIC_INTERFACES}) && (({ecuc(Dcm/DcmConfig
Set/DcmDsp/DcmDspData/DcmDspDataUsePort)} == USE_DATA_SENDER_RECEIVER) ||
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspPid/DcmDspPidData/DcmDspPidService01/DcmDsp
PidDataUsePort)} == USE_DATA_SENDER_RECEIVER) || ({ecuc(Dcm/DcmConfigSet/DcmDsp/
DcmDspPid/DcmDspPidData/DcmDspPidService01/DcmDspPidDataUsePort)} == USE_DATA_
SENDER_RECEIVER_AS_SERVICE) || ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData/Dcm
DspDataUsePort)} == USE_DATA_SENDER_RECEIVER_AS_SERVICE) || ({ecuc(Dcm/Dcm
ConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == USE_DATA_SYNCH_CLIENT_
SERVER) || ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == USE_
DATA_ASYNCH_CLIENT_SERVER) || ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.Dcm
DspDataUsePort)} == USE_DATA_ASYNCH_CLIENT_SERVER_ERROR) || ({ecuc(Dcm/Dcm
ConfigSet/DcmDsp/DcmDspPid/DcmDspPidData/DcmDspPidService01.DcmDspPidDataUse
Port)} == USE_DATA_SYNCH_CLIENT_SERVER)))
Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)}) || ({ecuc(Dcm/Dcm
ConfigSet/DcmDsp/DcmDspPid/DcmDspPidData.SHORT-NAME)})
Available via Rte_Dcm_Type.h
8.8.1.11 Dcm_DataArrayTypeUint8_{Data}Type
8.8.1.12 {DID}_Struct_DataType
This data type has a different modeling as other data types. The
{DID}_Struct_DataType datatype is modeled as prosa text only. At the time this
specification was created there are no means to visualize this datatype with existing
AUTOSAR tooling as table as all the other data types. Still AUTOSAR allows modeling
such data types. Simply that they cannot be shown here as table.
8.8.1.13 Dcm_RangeArray_{Range}Type
8.8.1.14 Dcm_InfoTypeServicesArray_{VehInfoData}Type
8.8.1.15 Dcm_RequestControlServicesInArray_{Tid}Type
8.8.1.16 Dcm_RequestControlServicesOutArray_{Tid}Type
8.8.1.17 Dcm_ScalingInfoArray_{Data}Type
8.8.1.18 Dcm_RequestDataOut_{Routine}_{Signal}PrimitivType
8.8.1.19 Dcm_RequestDataIn_{Routine}_{Signal}PrimitiveType
8.8.1.20 Dcm_RequestDataOut_{Routine}_{Signal}Type
8.8.1.21 Dcm_RequestDataOut_{Routine}_{Signal}StructuredType
8.8.1.22 Dcm_RequestDataIn_{Routine}_{Signal}Type
8.8.1.23 Dcm_RequestDataIn_{Routine}_{Signal}StructuredType
8.8.1.24 Dcm_RequestDataOut_{Routine}_{Signal}ArrayType
8.8.1.25 Dcm_RequestDataIn_{Routine}_{Signal}ArrayType
8.8.1.26 Dcm_RequestFlexibleOutArrayData_{Routine}_{Signal}Type
8.8.1.27 Dcm_RequestFlexibleInArrayData_{Routine}_{Signal}Type
8.8.1.28 Dcm_StartDataIn_{Routine}_{Signal}PrimitivType
8.8.1.29 Dcm_StartDataIn_{Routine}_{Signal}Type
4
Dcm_StartDataIn_{Routine} ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDsp
_{Signal}PrimitivType StartRoutine/DcmDspStartRoutineIn/DcmDspStartRoutineIn
Signal.DcmDspRoutineSignalType)} ==
([U|S]INT[8|16|32]|FLOAT))
Dcm_StartDataIn_{Routine} ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDsp
_{Signal}ArrayType StartRoutine/DcmDspStartRoutineIn/DcmDspStartRoutineIn
Signal.DcmDspRoutineSignalType)} ==
([U|S]INT[8|16|32]|FLOAT)_N)
Dcm_StartDataIn_{Routine} DcmDspStartRoutineInSignal with at least one DcmDspStart
_{Signal}StructuredType RoutineInSignalCompositeSignalRef.
Description –
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspRoutineUsePort)} == TRUE)
Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStartRoutine/DcmDspStart
RoutineIn/DcmDspStartRoutineInSignal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine.SHORT-NAME)}
Available via Rte_Dcm_Type.h
8.8.1.30 Dcm_StartDataIn_{Routine}_{Signal}StructuredType
8.8.1.31 Dcm_StartDataIn_{Routine}_{Signal}ArrayType
8.8.1.32 Dcm_StartDataOut_{Routine}_{Signal}PrimitivType
8.8.1.33 Dcm_StartDataOut_{Routine}_{Signal}Type
4
Dcm_StartDataOut_{ ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDsp
Routine}_{Signal}Primitiv StartRoutine/DcmDspStartRoutineOut/DcmDspStartRoutineOut
Type Signal.DcmDspRoutineSignalType)} ==
([U|S]INT[8|16|32]|FLOAT))
Dcm_StartDataOut_{ ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDsp
Routine}_{Signal}ArrayType StartRoutine/DcmDspStartRoutineOut/DcmDspStartRoutineOut
Signal.DcmDspRoutineSignalType)} ==
([U|S]INT[8|16|32]|FLOAT)_N)
Dcm_StartDataOut_{ DcmDspStartRoutineOutSignal with at least one DcmDspStart
Routine}_{Signal}Structured RoutineOutSignalCompositeSignalRef.
Type
Description –
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspRoutineUsePort)} == TRUE)
Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStartRoutine/DcmDspStart
RoutineOut/DcmDspStartRoutineOutSignal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine.SHORT-NAME)}
Available via Rte_Dcm_Type.h
8.8.1.34 Dcm_StartDataOut_{Routine}_{Signal}StructuredType
8.8.1.35 Dcm_StartDataOut_{Routine}_{Signal}ArrayType
8.8.1.36 Dcm_StartFlexibleInArrayData_{Routine}_{Signal}Type
8.8.1.37 Dcm_StartFlexibleOutArrayData_{Routine}_{Signal}Type
8.8.1.38 Dcm_StopDataIn_{Routine}_{Signal}PrimitivType
8.8.1.39 Dcm_StopDataIn_{Routine}_{Signal}Type
4
Dcm_StopDataIn_{Routine} ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDsp
_{Signal}PrimitivType StopRoutine/DcmDspStopRoutineIn/DcmDspStopRoutineIn
Signal.DcmDspRoutineSignalType)} ==
([U|S]INT[8|16|32]|FLOAT))
Dcm_StopDataIn_{Routine} ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDsp
_{Signal}ArrayType StopRoutine/DcmDspStopRoutineIn/DcmDspStopRoutineIn
Signal.DcmDspRoutineSignalType)} ==
([U|S]INT[8|16|32]|FLOAT)_N)
Dcm_StopDataIn_{Routine} DcmDspStopRoutineInSignal with at least one DcmDspStop
_{Signal}StructuredType RoutineInSignalCompositeSignalRef.
Description –
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspRoutineUsePort)} == TRUE)
Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStopRoutine/DcmDspStop
RoutineIn/DcmDspStopRoutineInSignal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine.SHORT-NAME)}
Available via Rte_Dcm_Type.h
8.8.1.40 Dcm_StopDataIn_{Routine}_{Signal}StructuredType
8.8.1.41 Dcm_StopDataIn_{Routine}_{Signal}ArrayType
8.8.1.42 Dcm_StopDataOut_{Routine}_{Signal}PrimitivType
8.8.1.43 Dcm_StopDataOut_{Routine}_{Signal}Type
4
Dcm_StopDataOut_{ ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDsp
Routine}_{Signal}Primitiv StopRoutine/DcmDspStopRoutineOut/DcmDspStopRoutineOut
Type Signal.DcmDspRoutineSignalType)} ==
([U|S]INT[8|16|32]|FLOAT))
Dcm_StopDataOut_{ ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDsp
Routine}_{Signal}ArrayType StopRoutine/DcmDspStopRoutineOut/DcmDspStopRoutineOut
Signal.DcmDspRoutineSignalType)} ==
([U|S]INT[8|16|32]|FLOAT)_N)
Dcm_StopDataOut_{ DcmDspStopRoutineOutSignal with at least one DcmDspStop
Routine}_{Signal}Structured RoutineOutSignalCompositeSignalRef.
Type
Description –
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspRoutineUsePort)} == TRUE)
Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStopRoutine/DcmDspStop
RoutineOut/DcmDspStopRoutineOutSignal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine.SHORT-NAME)}
Available via Rte_Dcm_Type.h
8.8.1.44 Dcm_StopDataOut_{Routine}_{Signal}StructuredType
8.8.1.45 Dcm_StopDataOut_{Routine}_{Signal}ArrayType
8.8.1.46 Dcm_StopFlexibleInArrayData_{Routine}_{Signal}Type
8.8.1.47 Dcm_StopFlexibleOutArrayData_{Routine}_{Signal}Type
8.8.1.48 Dcm_KeyArray_{SecurityLevel}Type
8.8.1.49 Dcm_SeedArray_{SecurityLevel}Type
8.8.1.50 Dcm_SecurityAccessDataRecordArray_{SecurityLevel}Type
8.8.1.51 Dcm_RequestDataArrayType
8.8.1.52 Dcm_ControlMask_{DID}Type
8.8.1.53 Dcm_inputOutputControlParameterType
4
Variation –
Available via Rte_Dcm_Type.h
8.8.1.54 Dcm_IOOperationRequest_{DID}Type
8.8.1.55 Dcm_IOOperationResponseType
4
DCM_CONDITIONS_NOT_ 0x22 NRC conditionsNotCorrect
CORRECT
DCM_FAILURE_ 0x26 NRC FailurePreventsExecutionOf
PREVENTS_EXECUTION RequestedAction
DCM_REQUEST_OUT_ 0x31 NRC requestOutOfRange
OF_RANGE
DCM_RESPONSE_ 0x78 ResponsePending (similar to E_
PENDING PENDING)
Description –
Variation –
Available via Rte_Dcm_Type.h
8.8.1.56 Dcm_DidSupportedType
8.8.1.57 Dcm_FileAndDirNameType
4
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRequestFileTransfer/DcmRequestFileTransferUse
Port)} == TRUE)
Available via Rte_Dcm_Type.h
8.8.1.58 Dcm_ResponseDataArrayType
8.8.1.59 Dcm_AuthenticationRoleType
8.8.1.60 Dcm_ControlMask_{Data}ArrayType
8.8.1.61 Dcm_ControlMask_{Data}PrimitiveType
8.8.1.62 Dcm_Cemr_{DID}Type
The Dcm_Cemr_Type data type defines a bitfield text table with a single mask entry
for each valid bit in the control enable mask record. A value of 0 in the DcmDspDid-
ControlMaskBitPosition represents the most significant bit in the most significant
byte of the control enable mask. Therefore it is mapped to Bit 7 (0x80) of the first byte
of the control enable mask. In a two byte CEMR the bit position 0 would map to 0x8000,
the bit position 1 would map to 0x4000, ... . Also this is a unusual representation it
helps to keep the bits stable if the size of the CEMR is changed. The definition of the
bits is directly defined by DcmDspDidControlEnableMask.
8.8.2 Sender-Receiver-Interfaces
Using the concepts of the SW-C template, the interface is defined as follows if Sender-
Receiver interface is used (DcmDspDataUsePort set to
USE_DATA_SENDER_RECEIVER ||USE_DATA_SENDER_RECEIVER_AS_SERVICE):
8.8.2.1 DataServices_{DID}
d
Name DataServices_{DID}
Comment –
IsService ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDidUsePort)} == USE_ATOMIC_
SENDER_RECEIVER_INTERFACE_AS_SERVICE)
Variation (({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDidUsePort)} == (USE_ATOMIC_
SENDER_RECEIVER_INTERFACE) || ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/Dcm
DspDidUsePort)} == (USE_ATOMIC_SENDER_RECEIVER_INTERFACE_AS_SERVICE))
DID = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid.SHORT-NAME)}
Data Elements data
Type {DID}_Struct_DataType
Variation DID = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid.SHORT-NAME)}
8.8.2.2 DataServices_{Data}
8.8.2.3 IOControlRequest_{DID}
8.8.2.4 IOControlResponse_{DID}
4
Type Dcm_IOOperationResponseType
Variation –
8.8.3 Client-Server-Interfaces
8.8.3.1 SecurityAccess_{SecurityLevel}
Operation CompareKey
Comment –
Mapped to API Xxx_CompareKey
Variation –
Parameters Key
Type Dcm_KeyArray_{SecurityLevel}Type
Direction IN
Comment Key, which needs to be compared
Variation SecurityLevel = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspSecurity/DcmDsp
SecurityRow.SHORT-NAME)}
OpStatus
Type Dcm_OpStatusType
5
4
Direction IN
Comment –
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment return Error Code
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
DCM_E_COMPARE_KEY_FAILED
Operation GetSecurityAttemptCounter
Comment Restore the attempt counter from the application
Mapped to API Xxx_GetSecurityAttemptCounter
Variation {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspSecurity/DcmDspSecurityRow.DcmDspSecurity
AttemptCounterEnabled)} == TRUE
OpStatus
Parameters
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
AttemptCounter
Type uint8
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation GetSeed
Comment –
Mapped to API Xxx_GetSeed
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspSecurity/DcmDspSecurityRow.DcmDspSecurity
ADRSize)} == NULL)
OpStatus
Parameters
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
Seed
Type Dcm_SeedArray_{SecurityLevel}Type
Direction OUT
Comment Pointer for provided seed
Variation SecurityLevel = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspSecurity/DcmDsp
SecurityRow.SHORT-NAME)}
ErrorCode
5
4
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation GetSeed
Comment –
Mapped to API Xxx_GetSeed
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspSecurity/DcmDspSecurityRow.DcmDspSecurity
ADRSize)} != NULL)
SecurityAccessDataRecord
Parameters
Type Dcm_SecurityAccessDataRecordArray_{SecurityLevel}Type
Direction IN
Comment –
Variation SecurityLevel = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspSecurity/DcmDsp
SecurityRow.SHORT-NAME)}
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
Seed
Type Dcm_SeedArray_{SecurityLevel}Type
Direction OUT
Comment Pointer for provided seed
Variation SecurityLevel = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspSecurity/DcmDsp
SecurityRow.SHORT-NAME)}
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation SetSecurityAttemptCounter
Comment Store the attempt counter in the application
Mapped to API Xxx_SetSecurityAttemptCounter
Variation {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspSecurity/DcmDspSecurityRow.DcmDspSecurity
AttemptCounterEnabled)} == TRUE
Parameters OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
5
4
Variation –
AttemptCounter
Type uint8
Direction IN
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
8.8.3.2 DataServices_{Data}
Using the concepts of the SW-C template, the interface is defined as fol-
lows if ClientServer interface is used (DcmDspDataUsePort set to USE_-
DATA_SYNCH_CLIENT_SERVER or USE_DATA_ASYNCH_CLIENT_SERVER or
USE_DATA_ASYNCH_CLIENT_SERVER_ERROR):
Operation ConditionCheckRead
Comment –
Mapped to API Xxx_ConditionCheckRead
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == (USE_DATA_
ASYNCH_CLIENT_SERVER || USE_DATA_ASYNCH_CLIENT_SERVER_ERROR)) &&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDidRead)} != NULL) &&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataConditionCheckReadFnc
Used)} == TRUE)
5
4
OpStatus
Parameters
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation ConditionCheckRead
Comment –
Mapped to API Xxx_ConditionCheckRead
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == USE_DATA_
SYNCH_CLIENT_SERVER) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDsp
DidRead)} != NULL) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspData
ConditionCheckReadFncUsed)} == TRUE)
Parameters ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
Operation FreezeCurrentState
Comment –
Mapped to API Xxx_FreezeCurrentState
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == (USE_DATA_
ASYNCH_CLIENT_SERVER || USE_DATA_ASYNCH_CLIENT_SERVER_ERROR)) &&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDidControl/DcmDspDidFreeze
CurrentState)} == TRUE) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDidInfo
Ref->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMask)} != DCM_
CONTROLMASK_EXTERNAL)
OpStatus
Parameters
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
5
4
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation FreezeCurrentState
Comment –
Mapped to API Xxx_FreezeCurrentState
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == (USE_DATA_
ASYNCH_CLIENT_SERVER || USE_DATA_ASYNCH_CLIENT_SERVER_ERROR)) &&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDidControl/DcmDspDidFreeze
CurrentState)} == TRUE) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDidInfo
Ref->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMask)} == DCM_
CONTROLMASK_EXTERNAL) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDsp
DidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMaskSize)} <= 0x04)
OpStatus
Parameters
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
controlMask
Type Dcm_ControlMask_{DID}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation FreezeCurrentState
Comment –
Mapped to API Xxx_FreezeCurrentState
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == (USE_DATA_
ASYNCH_CLIENT_SERVER || USE_DATA_ASYNCH_CLIENT_SERVER_ERROR)) &&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDidControl/DcmDspDidFreeze
CurrentState)} == TRUE) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDidInfo
Ref->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMask)} == DCM_
CONTROLMASK_EXTERNAL) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDsp
DidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMaskSize)} >= 0x05)
Parameters OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
controlMask
Type Dcm_ControlMask_{DID}Type
Direction IN
5
4
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation FreezeCurrentState
Comment –
Mapped to API Xxx_FreezeCurrentState
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == USE_DATA_
SYNCH_CLIENT_SERVER) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDsp
DidControl/DcmDspDidFreezeCurrentState)} == TRUE) && ({ecuc(Dcm/DcmConfigSet/Dcm
Dsp/DcmDspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControl
Mask)} != DCM_CONTROLMASK_EXTERNAL)
Parameters ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
Operation FreezeCurrentState
Comment –
Mapped to API Xxx_FreezeCurrentState
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == USE_DATA_
SYNCH_CLIENT_SERVER) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDsp
DidControl/DcmDspDidFreezeCurrentState)} == TRUE) && ({ecuc(Dcm/DcmConfigSet/Dcm
Dsp/DcmDspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControl
Mask)} == DCM_CONTROLMASK_EXTERNAL) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/Dcm
DspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMask
Size)} <= 0x04)
controlMask
Parameters
Type Dcm_ControlMask_{DID}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
Operation FreezeCurrentState
Comment –
Mapped to API Xxx_FreezeCurrentState
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == USE_DATA_
SYNCH_CLIENT_SERVER) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDsp
DidControl/DcmDspDidFreezeCurrentState)} == TRUE) && ({ecuc(Dcm/DcmConfigSet/Dcm
Dsp/DcmDspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControl
Mask)} == DCM_CONTROLMASK_EXTERNAL) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/Dcm
DspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMask
Size)} >= 0x05)
controlMask
Parameters
Type Dcm_ControlMask_{DID}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
Operation GetScalingInformation
Comment –
Mapped to API Xxx_GetScalingInformation
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == (USE_DATA_
ASYNCH_CLIENT_SERVER || USE_DATA_ASYNCH_CLIENT_SERVER_ERROR)) &&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData/DcmDspDataInfoRef->DcmDspDataScaling
InfoSize)} != NULL)
OpStatus
Parameters
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
ScalingInfo
Type Dcm_ScalingInfoArray_{Data}Type
Direction OUT
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation GetScalingInformation
Comment –
Mapped to API Xxx_GetScalingInformation
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == USE_DATA_
SYNCH_CLIENT_SERVER) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData/DcmDsp
DataInfoRef->DcmDspDataScalingInfoSize)} != NULL)
ScalingInfo
Parameters
Type Dcm_ScalingInfoArray_{Data}Type
Direction OUT
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
Operation ReadData
Comment The server is not allowed to return E_NOT_OK, but shall always provide a valid data value (e.g.
a default/replacement value in an error-case) to Dcm/Dem nevertheless the signature of the
operation includes E_NOT_OK to ensure compatibility between server runnable and RTE Call
API, since the RTE may return negative Std_Return values in certain cases (e.g. partition of
server stopped)
Mapped to API Xxx_ReadData
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == USE_DATA_
ASYNCH_CLIENT_SERVER) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/Dcm
DspDidRead)} != NULL)
OpStatus
Parameters
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
Data
Type Dcm_DataElement_{Data}Type
Direction OUT
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)}) ||
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspPid/DcmDspPid
Data.SHORT-NAME)})
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation ReadData
Comment The server is not allowed to return E_NOT_OK, but shall always provide a valid data value (e.g.
a default/replacement value in an error-case) to Dcm/Dem nevertheless the signature of the
operation includes E_NOT_OK to ensure compatibility between server runnable and RTE Call
API, since the RTE may return negative Std_Return values in certain cases (e.g. partition of
server stopped)
5
4
Mapped to API Xxx_ReadData
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == USE_DATA_
ASYNCH_CLIENT_SERVER_ERROR) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid
Info/DcmDspDidRead)} != NULL)
OpStatus
Parameters
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
Data
Type Dcm_DataElement_{Data}Type
Direction OUT
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)}) ||
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspPid/DcmDspPid
Data.SHORT-NAME)})
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation ReadData
Comment The server is not allowed to return E_NOT_OK, but shall always provide a valid data value (e.g.
a default/replacement value in an error-case) to Dcm/Dem nevertheless the signature of the
operation includes E_NOT_OK to ensure compatibility between server runnable and RTE Call
API, since the RTE may return negative Std_Return values in certain cases (e.g. partition of
server stopped)
Mapped to API Xxx_ReadData
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == USE_DATA_
SYNCH_CLIENT_SERVER) && (({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/Dcm
DspDidRead)} != NULL) || ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspPid/DcmDspPidData/
DcmDspPidService01.DcmDspPidDataUsePort)} == USE_DATA_SYNCH_CLIENT_SERVER))
Parameters Data
Type Dcm_DataElement_{Data}Type
Direction OUT
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)}) ||
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspPid/DcmDspPid
Data.SHORT-NAME)})
Possible Errors E_OK
E_NOT_OK
Operation ReadDataLength
Comment –
Mapped to API Xxx_ReadDataLength
5
4
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == (USE_DATA_
ASYNCH_CLIENT_SERVER || USE_DATA_ASYNCH_CLIENT_SERVER_ERROR)) &&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDidRead)} != NULL) &&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataType} == UINT8_DYN)
OpStatus
Parameters
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
DataLength
Type uint16
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation ReadDataLength
Comment –
Mapped to API Xxx_ReadDataLength
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == USE_DATA_
SYNCH_CLIENT_SERVER) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDsp
DidRead)} != NULL) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataType}
== UINT8_DYN)
Parameters DataLength
Type uint16
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
Operation ResetToDefault
Comment –
Mapped to API Xxx_ResetToDefault
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == (USE_DATA_
ASYNCH_CLIENT_SERVER || USE_DATA_ASYNCH_CLIENT_SERVER_ERROR)) &&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDidControl/DcmDspDidResetTo
Default)} == TRUE) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDidInfo
Ref->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMask)} != DCM_
CONTROLMASK_EXTERNAL)
Parameters OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
5
4
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation ResetToDefault
Comment –
Mapped to API Xxx_ResetToDefault
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == (USE_DATA_
ASYNCH_CLIENT_SERVER || USE_DATA_ASYNCH_CLIENT_SERVER_ERROR)) &&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDidControl/DcmDspDidResetTo
Default)} == TRUE) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDidInfo
Ref->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMask)} == DCM_
CONTROLMASK_EXTERNAL) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDsp
DidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMaskSize)} <= 0x04)
OpStatus
Parameters
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
controlMask
Type Dcm_ControlMask_{DID}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation ResetToDefault
Comment –
Mapped to API Xxx_ResetToDefault
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == (USE_DATA_
ASYNCH_CLIENT_SERVER || USE_DATA_ASYNCH_CLIENT_SERVER_ERROR)) &&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDidControl/DcmDspDidResetTo
Default)} == TRUE) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDidInfo
Ref->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMask)} == DCM_
CONTROLMASK_EXTERNAL) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDsp
DidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMaskSize)} >= 0x05)
Parameters OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
controlMask
5
4
Type Dcm_ControlMask_{DID}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation ResetToDefault
Comment –
Mapped to API Xxx_ResetToDefault
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == USE_DATA_
SYNCH_CLIENT_SERVER) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDsp
DidControl/DcmDspDidResetToDefault)} == TRUE) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/
DcmDspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControl
Mask)} != DCM_CONTROLMASK_EXTERNAL)
Parameters ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
Operation ResetToDefault
Comment –
Mapped to API Xxx_ResetToDefault
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == USE_DATA_
SYNCH_CLIENT_SERVER) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDsp
DidControl/DcmDspDidResetToDefault)} == TRUE) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/
DcmDspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControl
Mask)} == DCM_CONTROLMASK_EXTERNAL) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/Dcm
DspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMask
Size)} <= 0x04)
controlMask
Parameters
Type Dcm_ControlMask_{DID}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
Operation ResetToDefault
Comment –
Mapped to API Xxx_ResetToDefault
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == USE_DATA_
SYNCH_CLIENT_SERVER) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDsp
DidControl/DcmDspDidResetToDefault)} == TRUE) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/
DcmDspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControl
Mask)} == DCM_CONTROLMASK_EXTERNAL) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/Dcm
DspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMask
Size)} >= 0x05)
controlMask
Parameters
Type Dcm_ControlMask_{DID}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
Operation ReturnControlToECU
Comment –
Mapped to API Xxx_ReturnControlToECU
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == (USE_DATA_
SYNCH_CLIENT_SERVER || USE_DATA_ASYNCH_CLIENT_SERVER || USE_DATA_
ASYNCH_CLIENT_SERVER_ERROR)) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid
Info/DcmDspDidControl/DcmDspDidFreezeCurrentState)} == TRUE) || ({ecuc(Dcm/DcmConfig
Set/DcmDsp/DcmDspDidInfo/DcmDspDidControl/DcmDspDidResetToDefault)} == TRUE) ||
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDidControl/DcmDspDidShort
TermAdjustment)} == TRUE) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDid
InfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMask)} != DCM_
CONTROLMASK_EXTERNAL)
Parameters ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
Operation ReturnControlToECU
Comment –
Mapped to API Xxx_ReturnControlToECU
5
4
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDidControl/DcmDspDidFreeze
CurrentState)} == TRUE) || ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDid
Control/DcmDspDidResetToDefault)} == TRUE) || ({ecuc(Dcm/DcmConfigSet/DcmDsp/Dcm
DspDidInfo/DcmDspDidControl/DcmDspDidShortTermAdjustment)} == TRUE) && ({ecuc(Dcm/
DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidControl/
DcmDspDidControlMask)} == DCM_CONTROLMASK_EXTERNAL) && ({ecuc(Dcm/Dcm
ConfigSet/DcmDsp/DcmDspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidControl/Dcm
DspDidControlMaskSize)} <= 0x04)
controlMask
Parameters
Type Dcm_ControlMask_{DID}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
Operation ReturnControlToECU
Comment –
Mapped to API Xxx_ReturnControlToECU
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDidControl/DcmDspDidFreeze
CurrentState)} == TRUE) || ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDid
Control/DcmDspDidResetToDefault)} == TRUE) || ({ecuc(Dcm/DcmConfigSet/DcmDsp/Dcm
DspDidInfo/DcmDspDidControl/DcmDspDidShortTermAdjustment)} == TRUE) && ({ecuc(Dcm/
DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidControl/
DcmDspDidControlMask)} == DCM_CONTROLMASK_EXTERNAL) && ({ecuc(Dcm/Dcm
ConfigSet/DcmDsp/DcmDspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidControl/Dcm
DspDidControlMaskSize)} >= 0x05)
controlMask
Parameters
Type Dcm_ControlMask_{DID}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
Operation ShortTermAdjustment
Comment –
Mapped to API Xxx_ShortTermAdjustment
5
4
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == (USE_DATA_
ASYNCH_CLIENT_SERVER || USE_DATA_ASYNCH_CLIENT_SERVER_ERROR)) &&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDidControl/DcmDspDidShort
TermAdjustment)} == TRUE) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDsp
DataType} != UINT8_DYN) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDid
InfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMask)} != DCM_
CONTROLMASK_EXTERNAL)
ControlStateInfo
Parameters
Type Dcm_DataArrayTypeUint8_{Data}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation ShortTermAdjustment
Comment –
Mapped to API Xxx_ShortTermAdjustment
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == (USE_DATA_
ASYNCH_CLIENT_SERVER || USE_DATA_ASYNCH_CLIENT_SERVER_ERROR)) &&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDidControl/DcmDspDidShort
TermAdjustment)} == TRUE) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDsp
DataType} != UINT8_DYN) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDid
InfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMask)} == DCM_
CONTROLMASK_EXTERNAL) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDsp
DidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMaskSize)} <= 0x04)
ControlStateInfo
Parameters
Type Dcm_DataArrayTypeUint8_{Data}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
controlMask
Type Dcm_ControlMask_{DID}Type
Direction IN
Comment –
5
4
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation ShortTermAdjustment
Comment –
Mapped to API Xxx_ShortTermAdjustment
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == (USE_DATA_
ASYNCH_CLIENT_SERVER || USE_DATA_ASYNCH_CLIENT_SERVER_ERROR)) &&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDidControl/DcmDspDidShort
TermAdjustment)} == TRUE) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDsp
DataType} != UINT8_DYN) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDid
InfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMask)} == DCM_
CONTROLMASK_EXTERNAL) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDsp
DidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMaskSize)} >= 0x05)
ControlStateInfo
Parameters Type Dcm_DataArrayTypeUint8_{Data}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
controlMask
Type Dcm_ControlMask_{DID}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation ShortTermAdjustment
Comment –
Mapped to API Xxx_ShortTermAdjustment
5
4
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == (USE_DATA_
ASYNCH_CLIENT_SERVER || USE_DATA_ASYNCH_CLIENT_SERVER_ERROR)) &&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDidControl/DcmDspDidShort
TermAdjustment)} == TRUE) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDsp
DataType} == UINT8_DYN) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDid
InfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMask)} != DCM_
CONTROLMASK_EXTERNAL)
ControlStateInfo
Parameters Type Dcm_DataArrayTypeUint8_{Data}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
DataLength
Type uint16
Direction IN
Comment –
Variation –
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation ShortTermAdjustment
Comment –
Mapped to API Xxx_ShortTermAdjustment
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == (USE_DATA_
ASYNCH_CLIENT_SERVER || USE_DATA_ASYNCH_CLIENT_SERVER_ERROR)) &&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDidControl/DcmDspDidShort
TermAdjustment)} == TRUE) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDsp
DataType} == UINT8_DYN) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDid
InfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMask)} == DCM_
CONTROLMASK_EXTERNAL) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDsp
DidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMaskSize)} <= 0x04)
Parameters ControlStateInfo
Type Dcm_DataArrayTypeUint8_{Data}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
DataLength
Type uint16
Direction IN
Comment –
5
4
Variation –
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
controlMask
Type Dcm_ControlMask_{DID}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation ShortTermAdjustment
Comment –
Mapped to API Xxx_ShortTermAdjustment
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == (USE_DATA_
ASYNCH_CLIENT_SERVER || USE_DATA_ASYNCH_CLIENT_SERVER_ERROR)) &&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDidControl/DcmDspDidShort
TermAdjustment)} == TRUE) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDsp
DataType} == UINT8_DYN) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDid
InfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMask)} == DCM_
CONTROLMASK_EXTERNAL) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDsp
DidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMaskSize)} >= 0x05)
ControlStateInfo
Parameters
Type Dcm_DataArrayTypeUint8_{Data}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
DataLength
Type uint16
Direction IN
Comment –
Variation –
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
controlMask
Type Dcm_ControlMask_{DID}Type
Direction IN
5
4
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation ShortTermAdjustment
Comment –
Mapped to API Xxx_ShortTermAdjustment
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == USE_DATA_
SYNCH_CLIENT_SERVER) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDsp
DidControl/DcmDspDidShortTermAdjustment)} == TRUE) && ({ecuc(Dcm/DcmConfigSet/Dcm
Dsp/DcmDspData.DcmDspDataType} != UINT8_DYN) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/
DcmDspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControl
Mask)} != DCM_CONTROLMASK_EXTERNAL)
ControlStateInfo
Parameters
Type Dcm_DataArrayTypeUint8_{Data}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
Operation ShortTermAdjustment
Comment –
Mapped to API Xxx_ShortTermAdjustment
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == USE_DATA_
SYNCH_CLIENT_SERVER) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDsp
DidControl/DcmDspDidShortTermAdjustment)} == TRUE) && ({ecuc(Dcm/DcmConfigSet/Dcm
Dsp/DcmDspData.DcmDspDataType} != UINT8_DYN) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/
DcmDspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControl
Mask)} == DCM_CONTROLMASK_EXTERNAL) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/Dcm
DspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMask
Size)} <= 0x04)
Parameters ControlStateInfo
Type Dcm_DataArrayTypeUint8_{Data}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
controlMask
Type Dcm_ControlMask_{DID}Type
5
4
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
Operation ShortTermAdjustment
Comment –
Mapped to API Xxx_ShortTermAdjustment
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == USE_DATA_
SYNCH_CLIENT_SERVER) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDsp
DidControl/DcmDspDidShortTermAdjustment)} == TRUE) && ({ecuc(Dcm/DcmConfigSet/Dcm
Dsp/DcmDspData.DcmDspDataType} == UINT8_DYN) && ({ecuc(Dcm/DcmConfigSet/Dcm
Dsp/DcmDspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControl
Mask)} != DCM_CONTROLMASK_EXTERNAL)
ControlStateInfo
Parameters
Type Dcm_DataArrayTypeUint8_{Data}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
DataLength
Type uint16
Direction IN
Comment –
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
Operation ShortTermAdjustment
Comment –
Mapped to API Xxx_ShortTermAdjustment
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == USE_DATA_
SYNCH_CLIENT_SERVER) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDsp
DidControl/DcmDspDidShortTermAdjustment)} == TRUE) && ({ecuc(Dcm/DcmConfigSet/Dcm
Dsp/DcmDspData.DcmDspDataType} == UINT8_DYN) && ({ecuc(Dcm/DcmConfigSet/Dcm
Dsp/DcmDspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControl
Mask)} == DCM_CONTROLMASK_EXTERNAL) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/Dcm
DspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMask
Size)} <= 0x04)
Parameters ControlStateInfo
Type Dcm_DataArrayTypeUint8_{Data}Type
5
4
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
DataLength
Type uint16
Direction IN
Comment –
Variation –
controlMask
Type Dcm_ControlMask_{DID}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
Operation ShortTermAdjustment
Comment –
Mapped to API Xxx_ShortTermAdjustment
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == USE_DATA_
SYNCH_CLIENT_SERVER) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDsp
DidControl/DcmDspDidShortTermAdjustment)} == TRUE) && ({ecuc(Dcm/DcmConfigSet/Dcm
Dsp/DcmDspData.DcmDspDataType} == UINT8_DYN) && ({ecuc(Dcm/DcmConfigSet/Dcm
Dsp/DcmDspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControl
Mask)} == DCM_CONTROLMASK_EXTERNAL) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/Dcm
DspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidControl/DcmDspDidControlMask
Size)} >= 0x05)
ControlStateInfo
Parameters
Type Dcm_DataArrayTypeUint8_{Data}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
DataLength
Type uint16
Direction IN
Comment –
Variation –
controlMask
Type Dcm_ControlMask_{DID}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
ErrorCode
Type Dcm_NegativeResponseCodeType
5
4
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
Operation WriteData
Comment –
Mapped to API Xxx_WriteData
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == (USE_DATA_
ASYNCH_CLIENT_SERVER || USE_DATA_ASYNCH_CLIENT_SERVER_ERROR)) &&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDidWrite)} != NULL) &&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataType} != UINT8_DYN)
Data
Parameters
Type Dcm_DataElement_{Data}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation WriteData
Comment –
Mapped to API Xxx_WriteData
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == (USE_DATA_
ASYNCH_CLIENT_SERVER || USE_DATA_ASYNCH_CLIENT_SERVER_ERROR)) &&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDspDidWrite)} != NULL) &&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataType} == UINT8_DYN)
Data
Parameters
Type Dcm_DataElement_{Data}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
DataLength
Type uint16
Direction IN
Comment –
Variation –
5
4
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation WriteData
Comment –
Mapped to API Xxx_WriteData
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == USE_DATA_
SYNCH_CLIENT_SERVER) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDsp
DidWrite)} != NULL) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataType}
!= UINT8_DYN)
Data
Parameters
Type Dcm_DataElement_{Data}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
Operation WriteData
Comment –
Mapped to API Xxx_WriteData
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataUsePort)} == USE_DATA_
SYNCH_CLIENT_SERVER) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidInfo/DcmDsp
DidWrite)} != NULL) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataType}
== UINT8_DYN)
Parameters Data
Type Dcm_DataElement_{Data}Type
Direction IN
Comment –
Variation Data = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)})
DataLength
Type uint16
Direction IN
5
4
Comment –
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
One DataServices interface will be generated for each Data of each DID/PID, with
following possible operations:
8.8.3.2.1 ReadData
8.8.3.2.2 WriteData
WriteData requests the application to write a data value of a DID. The Data specific type
is an array of uint8 which represent either the fix length of this Data or the maximum
possible length of this Data. A WriteData interface is defined for every data of each
DID with write access. This interface is used for the UDS Service WriteDataByIdentifier
(0x2E).
8.8.3.2.3 ReadDataLength
ReadDataLength requests the application to return the data length of a Data. A Read-
DataLength interface is defined for every data of each DID with variable data length.
This interface is used for UDS Service ReadDataByIdentifier and for UDS Service Read-
DataByPeriodicIdentifier (0x2A).
8.8.3.2.4 ConditionCheckRead
8.8.3.2.5 GetScalingInformation
8.8.3.2.6 ReturnControlToEcu
8.8.3.2.7 ResetToDefault
8.8.3.2.8 FreezeCurrentState
8.8.3.2.9 ShortTermAdjustment
8.8.3.3 DataServices_DIDRange_{Range}
The following interface defines an operation needed to get the DID range. Using the
concepts of the SW-C template, the interface is defined as follows:
Operation IsDidAvailable
Comment –
Mapped to API Xxx_IsDidAvailable
Variation {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidRange.DcmDspDidRangeHasGaps)} == TRUE
DID
Parameters
Type uint16
Direction IN
Comment –
Variation –
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
supported
Type Dcm_DidSupportedType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
DCM_E_PENDING
Operation ReadDidData
Comment –
Mapped to API Xxx_ReadDidData
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidRange/DcmDspDidRangeInfoRef->DcmDsp
DidRead)} != NULL)
Parameters DID
Type uint16
Direction IN
Comment –
Variation –
Data
Type Dcm_RangeArray_{Range}Type
Direction OUT
Comment –
5
4
Variation Range = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid
Range.SHORT-NAME)})
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
DataLength
Type uint16
Direction OUT
Comment –
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation ReadDidRangeDataLength
Comment –
Mapped to API Xxx_ReadDidRangeDataLength
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidRange/DcmDspDidRangeInfoRef->DcmDsp
DidRead)} != NULL)
DID
Parameters
Type uint16
Direction IN
Comment –
Variation –
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
DataLength
Type uint16
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation WriteDidData
Comment –
Mapped to API Xxx_WriteDidData
5
4
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDidRange/DcmDspDidRangeInfoRef->DcmDsp
DidWrite)} != NULL)
DID
Parameters Type uint16
Direction IN
Comment –
Variation –
Data
Type Dcm_RangeArray_{Range}Type
Direction IN
Comment –
Variation Range = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid
Range.SHORT-NAME)})
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
DataLength
Type uint16
Direction IN
Comment –
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
8.8.3.4 InfotypeServices_{VehInfoData}
The following interface defines an operation needed to get data from one or several
SW-C in order to supply OBD Service $09 (see [SWS_Dcm_00423]).
Using the concepts of the SW-C template, the interface is defined as follows:
Name InfotypeServices_{VehInfoData}
Comment –
IsService true
Variation {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspVehInfo/DcmDspVehInfoData/DcmDspVehInfo
DataUsePort)}==TRUE
VehInfoData = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspVehInfo/DcmDspVehInfo
Data.SHORT-NAME)}
Possible Errors 0 E_OK Operation successful
1 E_NOT_OK Operation failed
10 DCM_E_PENDING Request is not yet finished. Further call(s) required
to finish.
Operation GetInfotypeValueData
Comment –
Mapped to API Xxx_GetInfotypeValueData
Variation –
OpStatus
Parameters
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
DataValueBuffer
Type Dcm_InfoTypeServicesArray_{VehInfoData}Type
Direction OUT
Comment –
Variation VehInfoData = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspVehInfo/DcmDsp
VehInfoData.SHORT-NAME)}
DataValueBufferSize
Type uint8
Direction INOUT
Comment When the function is called this parameter contains the maximum number of
data bytes that can be written to the buffer. The function returns the actual
number of written data bytes in DataValueBuffer
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
8.8.3.5 RoutineServices_{RoutineName}
The following interface defines operations needed for the UDS Service Rou-
tineControl (0x31) (see [SWS_Dcm_00400], [SWS_Dcm_00401], [SWS_Dcm_00402],
[SWS_Dcm_00403], [SWS_Dcm_00404], [SWS_Dcm_00405]).
Using the concepts of the SW-C template, the interface is defined as follows:
Operation RequestResults
Comment –
Mapped to API Xxx_RequestResults
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspRequestRoutineResults/Dcm
DspRequestRoutineResultsOut/DcmDspRequestRoutineResultsOutSignal.DcmDspRoutine
SignalType)} != VARIABLE_LENGTH) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine/DcmDspRequestRoutineResults/DcmDspRequestRoutineResultsIn/DcmDspRequest
RoutineResultsInSignal.DcmDspRoutineSignalType)} != VARIABLE_LENGTH)
DataIn_{Signal}
Parameters
Type Dcm_RequestDataIn_{Routine}_{Signal}Type
Direction IN
Comment –
Variation Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDsp
RequestRoutineResults/DcmDspRequestRoutineResultsIn/DcmDspRequest
RoutineResultsInSignal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
DataOut_{Signal}
Type Dcm_RequestDataOut_{Routine}_{Signal}Type
Direction OUT
Comment –
Variation Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDsp
RequestRoutineResults/DcmDspRequestRoutineResultsOut/DcmDspRequest
RoutineResultsOutSignal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
5
4
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
DCM_E_FORCE_RCRRP
Operation RequestResults
Comment –
Mapped to API Xxx_RequestResults
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspRequestRoutineResults/Dcm
DspRequestRoutineResultsOut/DcmDspRequestRoutineResultsOutSignal.DcmDspRoutine
SignalType)} == VARIABLE_LENGTH) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine/DcmDspRequestRoutineResults/DcmDspRequestRoutineResultsIn/DcmDspRequest
RoutineResultsInSignal.DcmDspRoutineSignalType)} != VARIABLE_LENGTH)
DataIn_{Signal}
Parameters
Type Dcm_RequestDataIn_{Routine}_{Signal}Type
Direction IN
Comment –
Variation Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDsp
RequestRoutineResults/DcmDspRequestRoutineResultsIn/DcmDspRequest
RoutineResultsInSignal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
DataOut_{Signal}
Type Dcm_RequestDataOut_{Routine}_{Signal}Type
Direction OUT
Comment –
Variation {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspRequestRoutine
Results/DcmDspRequestRoutineResultsOut/DcmDspRequestRoutineResults
OutSignal.DcmDspRoutineSignalType)} != VARIABLE_LENGTH
Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDsp
RequestRoutineResults/DcmDspRequestRoutineResultsOut/DcmDspRequest
RoutineResultsOutSignal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
DataOut_{Signal}
Type Dcm_RequestFlexibleOutArrayData_{Routine}_{Signal}Type
Direction OUT
Comment –
Variation {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspRequestRoutine
Results/DcmDspRequestRoutineResultsOut/DcmDspRequestRoutineResults
OutSignal.DcmDspRoutineSignalType)} == VARIABLE_LENGTH
Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDsp
RequestRoutineResults/DcmDspRequestRoutineResultsOut/DcmDspRequest
RoutineResultsOutSignal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
currentDataLength
Type uint16
5
4
Direction OUT
Comment –
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors –
Operation RequestResults
Comment –
Mapped to API Xxx_RequestResults
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspRequestRoutineResults/Dcm
DspRequestRoutineResultsOut/DcmDspRequestRoutineResultsOutSignal.DcmDspRoutine
SignalType)} != VARIABLE_LENGTH) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine/DcmDspRequestRoutineResults/DcmDspRequestRoutineResultsIn/DcmDspRequest
RoutineResultsInSignal.DcmDspRoutineSignalType)} == VARIABLE_LENGTH)
DataIn_{Signal}
Parameters
Type Dcm_RequestDataIn_{Routine}_{Signal}Type
Direction IN
Comment –
Variation Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDsp
RequestRoutineResults/DcmDspRequestRoutineResultsIn/DcmDspRequest
RoutineResultsInSignal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
DataIn_{Signal}
Type Dcm_RequestFlexibleInArrayData_{Routine}_{Signal}Type
Direction IN
Comment –
Variation Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDsp
RequestRoutineResults/DcmDspRequestRoutineResultsIn/DcmDspRequest
RoutineResultsInSignal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
DataOut_{Signal}
Type Dcm_RequestDataOut_{Routine}_{Signal}Type
Direction OUT
Comment –
Variation Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDsp
RequestRoutineResults/DcmDspRequestRoutineResultsOut/DcmDspRequest
RoutineResultsOutSignal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
ErrorCode
5
4
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors –
Operation RequestResults
Comment –
Mapped to API Xxx_RequestResults
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspRequestRoutineResults/Dcm
DspRequestRoutineResultsOut/DcmDspRequestRoutineResultsOutSignal.DcmDspRoutine
SignalType)} == VARIABLE_LENGTH) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine/DcmDspRequestRoutineResults/DcmDspRequestRoutineResultsIn/DcmDspRequest
RoutineResultsInSignal.DcmDspRoutineSignalType)} == VARIABLE_LENGTH)
DataIn_{Signal}
Parameters Type Dcm_RequestDataIn_{Routine}_{Signal}Type
Direction IN
Comment –
Variation Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDsp
RequestRoutineResults/DcmDspRequestRoutineResultsIn/DcmDspRequest
RoutineResultsInSignal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
DataIn_{Signal}
Type Dcm_StartFlexibleInArrayData_{Routine}_{Signal}Type
Direction IN
Comment –
Variation –
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
DataOut_{Signal}
Type Dcm_RequestDataOut_{Routine}_{Signal}Type
Direction OUT
Comment –
Variation {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspRequestRoutine
Results/DcmDspRequestRoutineResultsOut/DcmDspRequestRoutineResults
OutSignal.DcmDspRoutineSignalType)} != VARIABLE_LENGTH
Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDsp
RequestRoutineResults/DcmDspRequestRoutineResultsOut/DcmDspRequest
RoutineResultsOutSignal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
DataOut_{Signal}
Type Dcm_RequestFlexibleOutArrayData_{Routine}_{Signal}Type
Direction OUT
Comment –
5
4
Variation {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspRequestRoutine
Results/DcmDspRequestRoutineResultsOut/DcmDspRequestRoutineResults
OutSignal.DcmDspRoutineSignalType)} == VARIABLE_LENGTH
Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDsp
RequestRoutineResults/DcmDspRequestRoutineResultsOut/DcmDspRequest
RoutineResultsOutSignal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
currentDataLength
Type uint16
Direction OUT
Comment –
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
DCM_E_FORCE_RCRRP
Operation RequestResultsConfirmation
Comment This operation indicates the transmission of a response to a RequestResultsRoutine request
Mapped to API Xxx_RequestResultsConfirmation
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspRequestRoutineResults/Dcm
DspRequestRoutineResultsConfirmationEnabled)}==TRUE)
Parameters ConfirmationStatus
Type Dcm_ConfirmationStatusType
Direction IN
Comment Confirmation status of a RequestResultsRoutinerequest
Variation –
Possible Errors E_OK
E_NOT_OK
Operation Start
Comment –
Mapped to API Xxx_Start
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStartRoutine/DcmDspStart
RoutineIn/DcmDspStartRoutineInSignal.DcmDspRoutineSignalType)} != VARIABLE_LENGTH)
&&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStartRoutine/DcmDspStart
RoutineOut/DcmDspStartRoutineOutSignal.DcmDspRoutineSignalType)} != VARIABLE_
LENGTH)
Parameters DataIn_{Signal}
Type Dcm_StartDataIn_{Routine}_{Signal}Type
Direction IN
Comment –
5
4
Variation Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStart
Routine/DcmDspStartRoutineIn/DcmDspStartRoutineIn
Signal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
DataOut_{Signal}
Type Dcm_StartDataOut_{Routine}_{Signal}Type
Direction OUT
Comment –
Variation Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStart
Routine/DcmDspStartRoutineOut/DcmDspStartRoutineOut
Signal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
DCM_E_FORCE_RCRRP
Operation Start
Comment –
Mapped to API Xxx_Start
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStartRoutine/DcmDspStart
RoutineIn/DcmDspStartRoutineInSignal.DcmDspRoutineSignalType)} != VARIABLE_LENGTH)
&&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStartRoutine/DcmDspStart
RoutineOut/DcmDspStartRoutineOutSignal.DcmDspRoutineSignalType)} == VARIABLE_
LENGTH)
DataIn_{Signal}
Parameters
Type Dcm_StartDataIn_{Routine}_{Signal}Type
Direction IN
Comment –
Variation Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStart
Routine/DcmDspStartRoutineIn/DcmDspStartRoutineIn
Signal.SHORT-NAME)}
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
5
4
DataOut_{Signal}
Type Dcm_StartDataOut_{Routine}_{Signal}Type
Direction OUT
Comment –
Variation Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStart
Routine/DcmDspStartRoutineOut/DcmDspStartRoutineOut
Signal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)
DataOut_{Signal}
Type Dcm_StartFlexibleOutArrayData_{Routine}_{Signal}Type
Direction OUT
Comment –
Variation –
currentDataLength
Type uint16
Direction OUT
Comment –
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
DCM_E_FORCE_RCRRP
Operation Start
Comment –
Mapped to API Xxx_Start
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStartRoutine/DcmDspStart
RoutineIn/DcmDspStartRoutineInSignal.DcmDspRoutineSignalType)} == VARIABLE_
LENGTH) &&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStartRoutine/DcmDspStart
RoutineOut/DcmDspStartRoutineOutSignal.DcmDspRoutineSignalType)} != VARIABLE_
LENGTH)
Parameters DataIn_{Signal}
Type Dcm_StartDataIn_{Routine}_{Signal}Type
Direction IN
Comment –
Variation Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStart
Routine/DcmDspStartRoutineIn/DcmDspStartRoutineIn
Signal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
DataIn_{Signal}
Type Dcm_StartFlexibleInArrayData_{Routine}_{Signal}Type
Direction IN
Comment –
5
4
Variation –
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
DataOut_{Signal}
Type Dcm_StartDataOut_{Routine}_{Signal}Type
Direction OUT
Comment –
Variation Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStart
Routine/DcmDspStartRoutineOut/DcmDspStartRoutineOut
Signal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
currentDataLength
Type uint16
Direction IN
Comment –
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
DCM_E_FORCE_RCRRP
Operation Start
Comment –
Mapped to API Xxx_Start
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStartRoutine/DcmDspStart
RoutineIn/DcmDspStartRoutineInSignal.DcmDspRoutineSignalType)} == VARIABLE_
LENGTH) &&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStartRoutine/DcmDspStart
RoutineOut/DcmDspStartRoutineOutSignal.DcmDspRoutineSignalType)} == VARIABLE_
LENGTH)
Parameters DataIn_{Signal}
Type Dcm_StartDataIn_{Routine}_{Signal}Type
Direction IN
Comment –
Variation {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStartRoutine/
DcmDspStartRoutineIn/DcmDspStartRoutineInSignal.DcmDspRoutineSignal
Type)} != VARIABLE_LENGTH
Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStart
Routine/DcmDspStartRoutineIn/DcmDspStartRoutineIn
Signal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
DataIn_{Signal}
5
4
Type Dcm_StartFlexibleInArrayData_{Routine}_{Signal}Type
Direction IN
Comment –
Variation {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStartRoutine/
DcmDspStartRoutineIn/DcmDspStartRoutineInSignal.DcmDspRoutineSignal
Type)} == VARIABLE_LENGTH
Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStart
Routine/DcmDspStartRoutineIn/DcmDspStartRoutineIn
Signal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
DataOut_{Signal}
Type Dcm_StartDataOut_{Routine}_{Signal}Type
Direction OUT
Comment –
Variation {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStartRoutine/
DcmDspStartRoutineOut/DcmDspStartRoutineOutSignal.DcmDspRoutine
SignalType)} != VARIABLE_LENGTH
Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStart
Routine/DcmDspStartRoutineOut/DcmDspStartRoutineOut
Signal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
DataOut_{Signal}
Type Dcm_StartFlexibleOutArrayData_{Routine}_{Signal}Type
Direction OUT
Comment –
Variation {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStartRoutine/
DcmDspStartRoutineOut/DcmDspStartRoutineOutSignal.DcmDspRoutine
SignalType)} == VARIABLE_LENGTH
Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStart
Routine/DcmDspStartRoutineOut/DcmDspStartRoutineOut
Signal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
currentDataLength
Type uint16
Direction INOUT
Comment –
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
DCM_E_FORCE_RCRRP
Operation StartConfirmation
Comment This operation indicates the transmission of a response to a StartRoutine request
Mapped to API Xxx_StartConfirmation
Variation {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStartRoutine/DcmDspStart
RoutineConfirmationEnabled)}==TRUE
Parameters ConfirmationStatus
Type Dcm_ConfirmationStatusType
Direction IN
Comment Confirmation status of a StartRoutine request
Variation –
Possible Errors E_OK
E_NOT_OK
Operation Stop
Comment –
Mapped to API Xxx_Stop
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStopRoutine/DcmDspStop
RoutineIn/DcmDspStopRoutineInSignal.DcmDspRoutineSignalType)} != VARIABLE_LENGTH)
&&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStopRoutine/DcmDspStop
RoutineOut/DcmDspStopRoutineOutSignal.DcmDspRoutineSignalType)} != VARIABLE_
LENGTH)
DataIn_{Signal}
Parameters
Type Dcm_StopDataIn_{Routine}_{Signal}Type
Direction IN
Comment –
Variation Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStop
Routine/DcmDspStopRoutineIn/DcmDspStopRoutineInSignal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
DataOut_{Signal}
Type Dcm_StopDataOut_{Routine}_{Signal}Type
Direction OUT
Comment –
Variation Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStop
Routine/DcmDspStopRoutineOut/DcmDspStopRoutineOut
Signal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
5
4
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
DCM_E_FORCE_RCRRP
Operation Stop
Comment –
Mapped to API Xxx_Stop
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStopRoutine/DcmDspStop
RoutineIn/DcmDspStopRoutineInSignal.DcmDspRoutineSignalType)} != VARIABLE_LENGTH)
&&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStopRoutine/DcmDspStop
RoutineOut/DcmDspStopRoutineOutSignal.DcmDspRoutineSignalType)} == VARIABLE_
LENGTH)
DataIn_{Signal}
Parameters Type Dcm_StopDataIn_{Routine}_{Signal}Type
Direction IN
Comment –
Variation Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStop
Routine/DcmDspStopRoutineIn/DcmDspStopRoutineInSignal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
DataOut_{Signal}
Type Dcm_StopDataOut_{Routine}_{Signal}Type
Direction OUT
Comment –
Variation Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStop
Routine/DcmDspStopRoutineOut/DcmDspStopRoutineOut
Signal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
DataOut_{Signal}
Type Dcm_StopFlexibleOutArrayData_{Routine}_{Signal}Type
Direction OUT
Comment –
Variation –
currentDataLength
Type uint16
Direction OUT
Comment –
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
5
4
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
DCM_E_FORCE_RCRRP
Operation Stop
Comment –
Mapped to API Xxx_Stop
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStopRoutine/DcmDspStop
RoutineIn/DcmDspStopRoutineInSignal.DcmDspRoutineSignalType)} == VARIABLE_LENGTH)
&&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStopRoutine/DcmDspStop
RoutineOut/DcmDspStopRoutineOutSignal.DcmDspRoutineSignalType)} != VARIABLE_
LENGTH)
DataIn_{Signal}
Parameters Type Dcm_StopDataIn_{Routine}_{Signal}Type
Direction IN
Comment –
Variation Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStop
Routine/DcmDspStopRoutineIn/DcmDspStopRoutineInSignal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
DataIn_{Signal}
Type Dcm_StopFlexibleInArrayData_{Routine}_{Signal}Type
Direction IN
Comment –
Variation –
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
DataOut_{Signal}
Type Dcm_StopDataOut_{Routine}_{Signal}Type
Direction OUT
Comment –
Variation Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStop
Routine/DcmDspStopRoutineOut/DcmDspStopRoutineOut
Signal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
currentDataLength
Type uint16
Direction IN
Comment –
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
5
4
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
DCM_E_FORCE_RCRRP
Operation Stop
Comment –
Mapped to API Xxx_Stop
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStopRoutine/DcmDspStop
RoutineIn/DcmDspStopRoutineInSignal.DcmDspRoutineSignalType)} == VARIABLE_LENGTH)
&&
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStopRoutine/DcmDspStop
RoutineOut/DcmDspStopRoutineOutSignal.DcmDspRoutineSignalType)} == VARIABLE_
LENGTH)
DataIn_{Signal}
Parameters
Type Dcm_StopDataIn_{Routine}_{Signal}Type
Direction IN
Comment –
Variation {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStopRoutine/
DcmDspStopRoutineIn/DcmDspStopRoutineInSignal.DcmDspRoutineSignal
Type)} != VARIABLE_LENGTH
Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStop
Routine/DcmDspStopRoutineIn/DcmDspStopRoutineInSignal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
DataIn_{Signal}
Type Dcm_StopFlexibleInArrayData_{Routine}_{Signal}Type
Direction IN
Comment –
Variation {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStopRoutine/
DcmDspStopRoutineIn/DcmDspStopRoutineInSignal.DcmDspRoutineSignal
Type)} == VARIABLE_LENGTH
Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStop
Routine/DcmDspStopRoutineIn/DcmDspStopRoutineInSignal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
OpStatus
Type Dcm_OpStatusType
Direction IN
Comment –
Variation –
DataOut_{Signal}
Type Dcm_StopDataOut_{Routine}_{Signal}Type
Direction OUT
Comment –
5
4
Variation {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStopRoutine/
DcmDspStopRoutineOut/DcmDspStopRoutineOutSignal.DcmDspRoutine
SignalType)} != VARIABLE_LENGTH
Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStop
Routine/DcmDspStopRoutineOut/DcmDspStopRoutineOut
Signal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
DataOut_{Signal}
Type Dcm_StopFlexibleOutArrayData_{Routine}_{Signal}Type
Direction OUT
Comment –
Variation {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStopRoutine/
DcmDspStopRoutineOut/DcmDspStopRoutineOutSignal.DcmDspRoutine
SignalType)} == VARIABLE_LENGTH
Signal = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStop
Routine/DcmDspStopRoutineOut/DcmDspStopRoutineOut
Signal.SHORT-NAME)}
Routine = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Routine.SHORT-NAME)}
currentDataLength
Type uint16
Direction INOUT
Comment –
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
DCM_E_FORCE_RCRRP
Operation StopConfirmation
Comment This operation indicates the transmission of a response to a StopRoutine request
Mapped to API Xxx_StopConfirmation
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRoutine/DcmDspStopRoutine/DcmDspStop
RoutineConfirmationEnabled)}==TRUE)
Parameters ConfirmationStatus
Type Dcm_ConfirmationStatusType
Direction IN
Comment Confirmation status of a StopRoutine request
Variation –
Possible Errors E_OK
E_NOT_OK
From the point of view of the DCM, the operations have the following signatures:
8.8.3.6 RequestControlServices_{Tid}
The following interface allows the Dcm to provide OBD Service $08 (see
[SWS_Dcm_00419]).
Using the concepts of the SW-C template, the interface is defined as follows:
Operation RequestControl
Comment –
Mapped to API Xxx_RequestControl
Variation –
OutBuffer
Parameters
Type Dcm_RequestControlServicesOutArray_{Tid}Type
Direction OUT
Comment –
Variation Tid = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRequest
Control.SHORT-NAME)}
InBuffer
Type Dcm_RequestControlServicesInArray_{Tid}Type
Direction IN
Comment –
Variation Tid = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRequest
Control.SHORT-NAME)}
Possible Errors E_OK
E_NOT_OK
8.8.3.7 ServiceRequestNotification
The following interface indicates to the Application that a service is about to be ex-
ecuted and allows the Application to reject the execution of the service request (see
[SWS_Dcm_00218], [SWS_Dcm_00462], [SWS_Dcm_00463]).
Using the concepts of the SW-C template, the interface is defined as follows:
Operation Confirmation
Comment –
Mapped to API Xxx_Confirmation
Variation –
SID
Parameters Type uint8
Direction IN
Comment Value of service identifier
Variation –
ReqType
Type uint8
Direction IN
Comment Addressing type of the request(0=physical request, 1=functional request)
Variation –
ConnectionId
Type uint16
Direction IN
Comment Unique connection identifier
Variation –
ConfirmationStatus
Type Dcm_ConfirmationStatusType
Direction IN
Comment Confirmation of a successful transmission or a transmission error of a
diagnostic service.
Variation –
ProtocolType
Type Dcm_ProtocolType
Direction IN
Comment –
Variation –
TesterSourceAddress
Type uint16
Direction IN
Comment –
Variation –
5
4
Possible Errors E_OK
E_NOT_OK
Operation Indication
Comment –
Mapped to API Xxx_Indication
Variation –
SID
Type uint8
Parameters
Direction IN
Comment Value of service identifier
Variation –
RequestData
Type Dcm_RequestDataArrayType
Direction IN
Comment This parameter contains the complete request data (diagnostic buffer), except
the service ID
Variation –
DataSize
Type uint32
Direction IN
Comment This parameter defines how many bytes in the RequestData parameter are
valid
Variation –
ReqType
Type uint8
Direction IN
Comment Addressing type of the request(0=physical request, 1=functional request
Variation –
ConnectionId
Type uint16
Direction IN
Comment Unique connection identifier
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment –
Variation –
ProtocolType
Type Dcm_ProtocolType
Direction IN
Comment –
Variation –
TesterSourceAddress
Type uint16
Direction IN
5
4
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
E_REQUEST_NOT_ACCEPTED
8.8.3.8 UploadDownloadServices
Operation ProcessRequestAddFile
Comment Callout function.
DCM shall call this function to start a RequestFileTransfer process with modeOfOperation equal
to 0x01 (AddFile).
Mapped to API Dcm_ProcessRequestAddFile
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRequestFileTransfer/DcmRequestFileTransferUse
Port)} == TRUE)
Parameters OpStatus
Type Dcm_OpStatusType
Direction IN
Comment DCM_INITIAL: All In-parameters are valid.
DCM_PENDING: All In-parameters are set to 0x00.
DCM_CANCEL: All In-parameters are set to 0x00.
DCM_FORCE_RCRRP_OK: All In-parameters are set to 0x00.
Variation –
filePathAndNameLength
Type uint16
Direction IN
Comment Defines the length in bytes for the parameter filePathAndName.
5
4
Variation –
filePathAndName
Type const Dcm_FileAndDirNameType
Direction IN
Comment Defines the file system location of the server where the file which shall be
added, deleted, replaced or read from depending on the parameter modeOf
Operation parameter. In addition this parameter includes the file name of the
file which shall be added, deleted, replaced or read as part of the file path.
Variation –
dataFormatIdentifier
Type uint8
Direction IN
Comment This data-parameter is a one byte value with each nibble encoded separately.
The high nibble specifies the "compressionMethod", and the low nibble
specifies the "encryptingMethod". The value 0x00 specifies that neither
compressionMethod nor encryptingMethod is used. Values other than 0x00
are vehicle manufacturer specific.
Variation –
fileSizeUncompressed
Type uint64
Direction IN
Comment Defines the size of the uncompressed file to be download in bytes.
Variation –
fileSizeCompressed
Type uint64
Direction IN
Comment Defines the size of the compressed file to be downloaded in bytes.
Variation –
maxNumberOfBlockLength
Type uint64
Direction OUT
Comment Max number of bytes to be included in each TransferData request excluding
the SID and the blockSequenceCounter.
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment If the operation Dcm_ProcessRequestAddFile returns value E_NOT_OK, the
DCM module shall send a negative response with NRC code equal to the
parameter ErrorCode parameter value.
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
DCM_E_FORCE_RCRRP
Operation ProcessRequestDeleteFile
Comment Callout function.
DCM shall call this function to start a RequestFileTransfer process with modeOfOperation equal
to 0x02 (DeleteFile).
Mapped to API Dcm_ProcessRequestDeleteFile
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRequestFileTransfer/DcmRequestFileTransferUse
Port)} == TRUE)
OpStatus
Parameters
Type Dcm_OpStatusType
Direction IN
Comment DCM_INITIAL: All In-parameters are valid.
DCM_PENDING: All In-parameters are set to 0x00.
DCM_CANCEL: All In-parameters are set to 0x00.
DCM_FORCE_RCRRP_OK: All In-parameters are set to 0x00.
Variation –
filePathAndNameLength
Type uint16
Direction IN
Comment Defines the length in bytes for the parameter filePathAndName.
Variation –
filePathAndName
Type const Dcm_FileAndDirNameType
Direction IN
Comment Defines the file system location of the server where the file which shall be
added, deleted, replaced or read from depending on the parameter modeOf
Operation parameter. In addition this parameter includes the file name of the
file which shall be added, deleted, replaced or read as part of the file path.
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment If the operation Dcm_ProcessRequestDeleteFile returns value E_NOT_OK,
the DCM module shall send a negative response with NRC code equal to the
parameter ErrorCode parameter value.
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
DCM_E_FORCE_RCRRP
Operation ProcessRequestDownload
Comment Callout function.
DCM shall call this callout function to start a download process.
This service is needed for the implementation of UDS service RequestDownload.
Mapped to API Dcm_ProcessRequestDownload
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspMemoryTransfer.DcmDspMemoryTransferUse
Port)}
Parameters OpStatus
Type Dcm_OpStatusType
Direction IN
5
4
Comment DCM_INITIAL
DCM_PENDING
DCM_CANCEL
Variation –
DataFormatIdentifier
Type uint8
Direction IN
Comment Bit 7 - 4: Compression Method
• 0x0: not compressed
• 0x1..F: vehicle-manufacturer-specific
Bit 3 - 0: Encrypting method
• 0x0: not encrypted
• 0x1..F: vehicle-manufacturer-specific
Variation –
MemoryIdentifier
Type uint8
Direction IN
Comment Identifier of the Memory Block, if the parameter is not used it shall be set to 0.
Variation –
MemoryAddress
Type uint32
Direction IN
Comment Starting address of server memory to which data is to be written
Variation –
MemorySize
Type uint32
Direction IN
Comment Uncompressed memory size in bytes
Variation –
BlockLength
Type uint32
Direction INOUT
Comment Max. Number of bytes for one Dcm_WriteMemory
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment If the operation Dcm_ProcessRequestDownload returns value E_NOT_OK,
the DCM module shall send a negative response with NRC code equal to the
parameter ErrorCode parameter value.
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation ProcessRequestReadDir
Comment Callout function.
DCM shall call this function to start a RequestFileTransfer process with modeOfOperation equal
to 0x05 (ReadDir).
Mapped to API Dcm_ProcessRequestReadDir
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRequestFileTransfer/DcmRequestFileTransferUse
Port)} == TRUE)
OpStatus
Parameters Type Dcm_OpStatusType
Direction IN
Comment DCM_INITIAL: All In-parameters are valid.
DCM_PENDING: All In-parameters are set to 0x00.
DCM_CANCEL: All In-parameters are set to 0x00.
DCM_FORCE_RCRRP_OK: All In-parameters are set to 0x00.
Variation –
filePathAndNameLength
Type uint16
Direction IN
Comment Defines the length in bytes for the parameter filePathAndName.
Variation –
filePathAndName
Type const Dcm_FileAndDirNameType
Direction IN
Comment Defines the file system location of the server where the file which shall be
added, deleted, replaced or read from depending on the parameter modeOf
Operation parameter. In addition this parameter includes the file name of the
file which shall be added, deleted, replaced or read as part of the file path.
Variation –
dirInfoLength
Type uint64
Direction OUT
Comment Defines the size of directory information to be uploaded in bytes.
Variation –
maxNumberOfBlockLength
Type uint64
Direction OUT
Comment Max number of bytes to be included in each TransferData request excluding
the SID and the blockSequenceCounter.
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment If the operation Dcm_ProcessRequestReadDir returns value E_NOT_OK, the
DCM module shall send a negative response with NRC code equal to the
parameter ErrorCode parameter value.
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
DCM_E_FORCE_RCRRP
Operation ProcessRequestReadFile
Comment Callout function.
DCM shall call this function to start a RequestFileTransfer process with modeOfOperation equal
to 0x04 (ReadFile).
Mapped to API Dcm_ProcessRequestReadFile
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRequestFileTransfer/DcmRequestFileTransferUse
Port)} == TRUE)
OpStatus
Parameters Type Dcm_OpStatusType
Direction IN
Comment DCM_INITIAL: All In-parameters are valid.
DCM_PENDING: All In-parameters are set to 0x00.
DCM_CANCEL: All In-parameters are set to 0x00.
DCM_FORCE_RCRRP_OK: All In-parameters are set to 0x00.
Variation –
filePathAndNameLength
Type uint16
Direction IN
Comment Defines the length in bytes for the parameter filePathAndName.
Variation –
filePathAndName
Type const Dcm_FileAndDirNameType
Direction IN
Comment Defines the file system location of the server where the file which shall be
added, deleted, replaced or read from depending on the parameter modeOf
Operation parameter. In addition this parameter includes the file name of the
file which shall be added, deleted, replaced or read as part of the file path.
Variation –
dataFormatIdentifier
Type uint8
Direction IN
Comment This data-parameter is a one byte value with each nibble encoded separately.
The high nibble specifies the "compressionMethod", and the low nibble
specifies the "encryptingMethod". The value 0x00 specifies that neither
compressionMethod nor encryptingMethod is used. Values other than 0x00
are vehicle manufacturer specific.
Variation –
fileSizeUncompressed
Type uint64
Direction OUT
Comment Defines the size of the uncompressed file to be uploaded in bytes.
Variation –
fileSizeCompressed
Type uint64
Direction OUT
Comment Defines the size of the compressed file to be uploaded in bytes.
Variation –
maxNumberOfBlockLength
Type uint64
Direction OUT
5
4
Comment Max number of bytes to be included in each TransferData response excluding
the SID and the blockSequenceCounter.
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment If the operation Dcm_ProcessRequestReadFile returns value E_NOT_OK, the
DCM module shall send a negative response with NRC code equal to the
parameter ErrorCode parameter value.
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
DCM_E_FORCE_RCRRP
Operation ProcessRequestReplaceFile
Comment Callout function.
DCM shall call this function to start a RequestFileTransfer process with modeOfOperation equal
to 0x03 (ReplaceFile).
Mapped to API Dcm_ProcessRequestReplaceFile
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRequestFileTransfer/DcmRequestFileTransferUse
Port)} == TRUE)
OpStatus
Parameters
Type Dcm_OpStatusType
Direction IN
Comment DCM_INITIAL: All In-parameters are valid.
DCM_PENDING: All In-parameters are set to 0x00.
DCM_CANCEL: All In-parameters are set to 0x00.
DCM_FORCE_RCRRP_OK: All In-parameters are set to 0x00.
Variation –
filePathAndNameLength
Type uint16
Direction IN
Comment Defines the length in bytes for the parameter filePathAndName.
Variation –
filePathAndName
Type const Dcm_FileAndDirNameType
Direction IN
Comment Defines the file system location of the server where the file which shall be
added, deleted, replaced or read from depending on the parameter modeOf
Operation parameter. In addition this parameter includes the file name of the
file which shall be added, deleted, replaced or read as part of the file path.
Variation –
dataFormatIdentifier
Type uint8
Direction IN
Comment This data-parameter is a one byte value with each nibble encoded separately.
The high nibble specifies the "compressionMethod", and the low nibble
specifies the "encryptingMethod". The value 0x00 specifies that neither
compressionMethod nor encryptingMethod is used. Values other than 0x00
are vehicle manufacturer specific.
5
4
Variation –
fileSizeUncompressed
Type uint64
Direction IN
Comment Defines the size of the uncompressed file to be download in bytes.
Variation –
fileSizeCompressed
Type uint64
Direction IN
Comment Defines the size of the compressed file to be downloaded in bytes.
Variation –
maxNumberOfBlockLength
Type uint64
Direction OUT
Comment Max number of bytes to be included in each TransferData request excluding
the SID and the blockSequenceCounter.
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment If the operation Dcm_ProcessRequestReplaceFile returns value E_NOT_OK,
the DCM module shall send a negative response with NRC code equal to the
parameter ErrorCode parameter value.
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
DCM_E_FORCE_RCRRP
Operation ProcessRequestTransferExit
Comment Callout function.
DCM shall call this callout function to terminate a download or upload process.
This callout is needed for the implementation of UDS service RequestTransferExit.
Mapped to API Dcm_ProcessRequestTransferExit
Variation –
OpStatus
Parameters
Type Dcm_OpStatusType
Direction IN
Comment DCM_INITIAL
DCM_PENDING
DCM_CANCEL
Variation –
transferRequestParameterRecord
Type Dcm_RequestDataArrayType
Direction IN
Comment Vehicle manufacturer specific transferRequestParameterRecord
Variation –
transferRequestParameterRecordSize
5
4
Type uint32
Direction IN
Comment Length of transferRequestParameterRecord in bytes
Variation –
transferResponseParameterRecord
Type Dcm_RequestDataArrayType
Direction OUT
Comment Vehicle manufacturer specific transferResponseParameterRecord
Variation –
transferResponseParameterRecordSize
Type uint32
Direction INOUT
Comment When the function is called this parameter contains the maximum number of
data bytes that can be written to the buffer. The function returns the actual
number of written data bytes in transferResponseParameterRecord.
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment see below
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation ProcessRequestUpload
Comment Callout function.
DCM shall call this callout function to start an upload process.
This service is needed for the implementation of UDS service RequestUpload.
Mapped to API Dcm_ProcessRequestUpload
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspMemoryTransfer.DcmDspMemoryTransferUse
Port)}
Parameters OpStatus
Type Dcm_OpStatusType
Direction IN
Comment DCM_INITIAL
DCM_PENDING
DCM_CANCEL
DCM_FORCE_RCRRP_OK
Variation –
DataFormatIdentifier
Type uint8
Direction IN
5
4
Comment Bit 7 - 4: Compression Method
• 0x1..F: vehicle-manufacturer-specific
• 0x1..F: vehicle-manufacturer-specific
Variation –
MemoryIdentifier
Type uint8
Direction IN
Comment Identifier of the Memory Block, if the parameter is not used it shall be set to 0.
Variation –
MemoryAddress
Type uint32
Direction IN
Comment Starting address of server memory from which data are to be copied
Variation –
MemorySize
Type uint32
Direction IN
Comment Uncompressed memory size in bytes
Variation –
BlockLength
Type uint32
Direction INOUT
Comment Max. Number of bytes for one Dcm_ReadMemory
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment If the operation Dcm_ProcessRequestUpload returns value E_NOT_OK, the
DCM module shall send a negative response with NRC code equal to the
parameter ErrorCode parameter value.
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
Operation ProcessTransferDataRead
Comment The ProcessTransferDataRead callout is used to request memory data identified by the
parameter memoryAddress and memorySize from the UDS request message.
This service is needed for the implementation of UDS services:
• ReadMemoryByAddress
• RequestUpload
• ReadDataByIdentifier (in case of Dynamical DID defined by memory address)
• TransferData
Mapped to API Dcm_ProcessTransferDataRead
Variation –
OpStatus
Parameters Type Dcm_OpStatusType
Direction IN
Comment DCM_INITIAL
DCM_PENDING
DCM_CANCEL
DCM_FORCE_RCRRP_OK
Variation –
MemoryIdentifier
Type uint8
Direction IN
Comment Identifier of the Memory Block (e.g. used if memory section distinguishing is
needed)
Note: If it’s not used this parameter shall be set to 0.
Variation –
MemoryAddress
Type uint32
Direction IN
Comment Starting address of server memory from which data is to be retrieved.
Variation –
MemorySize
Type uint32
Direction IN
Comment Number of bytes in the MemoryData
Variation –
MemoryData
Type Dcm_RequestDataArrayType
Direction OUT
Comment Data read (Points to the diagnostic buffer in DCM)
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment If the operation Dcm_ReadMemory returns value DCM_READ_FAILED, the
Dcm module shall send a negative response with NRC code equal to the
parameter ErrorCode parameter value.
Variation –
5
4
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
DCM_E_FORCE_RCRRP
Operation ProcessTransferDataWrite
Comment The ProcessTransferDataWrite callout is used to write memory data identified by the parameter
memoryAddress and memorySize. This service is needed for the implementation of UDS
services :
• WriteMemoryByAddress
• RequestDownload
• TransferData
Mapped to API Dcm_ProcessTransferDataWrite
Variation –
OpStatus
Parameters Type Dcm_OpStatusType
Direction IN
Comment DCM_INITIAL
DCM_PENDING
DCM_CANCEL
DCM_FORCE_RCRRP_OK
Variation –
MemoryIdentifier
Type uint8
Direction IN
Comment Identifier of the Memory Block (e.g. used by WriteDataByIdentifier service).
Note: If it’s not used this parameter shall be set to 0.
Variation –
MemoryAddress
Type uint32
Direction IN
Comment Starting address of server memory in which data is to be copied.
Note: If it’s not used (e.g. if the data is compressed) this parameter shall be set
to 0.
Variation –
MemorySize
Type uint32
Direction IN
Comment Number of bytes in MemoryData
Variation –
MemoryData
Type Dcm_RequestDataArrayType
Direction IN
Comment Data to write (Points to the diagnostic buffer in DCM)
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
5
4
Comment If the operation Dcm_WriteMemory returns value DCM_WRITE_FAILED, the
Dcm module shall send a negative response with NRC code equal to the
parameter ErrorCode parameter value.
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
DCM_E_FORCE_RCRRP
Operation ReadFileOrDir
Comment Callout function.
DCM shall call this function when data shall be sent as a response to UDS service TransferData
if there’s an ongoing RequestFileTransfer process started with 0x04 (ReadFile) or 0x05 (Read
Dir).
Mapped to API Dcm_ReadFileOrDir
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRequestFileTransfer/DcmRequestFileTransferUse
Port)} == TRUE)
OpStatus
Parameters
Type Dcm_OpStatusType
Direction IN
Comment DCM_INITIAL: All In-parameters are valid.
DCM_PENDING: All In-parameters are set to 0x00.
DCM_CANCEL: All In-parameters are set to 0x00.
DCM_FORCE_RCRRP_OK: All In-parameters are set to 0x00.
Variation –
DataLength
Type uint64
Direction INOUT
Comment As in, the parameter defines the maximum block length to be used, i.e. the
value of maxNumberOfBlockLength sent to the client in the response of
RequestFileTransfer.
As out, the parameter defines the actual length in bytes for the parameter
Data. The value shall not exceed, but might be less, the value provided as in
parameter.
Variation –
Data
Type Dcm_ResponseDataArrayType
Direction IN
Comment Pointer to the data to be written.
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment If the operation Dcm_ReadFileOrDir returns value E_NOT_OK, the DCM
module shall send a negative response with NRC code equal to the parameter
ErrorCode parameter value.
Variation –
Possible Errors E_OK
E_NOT_OK
DCM_E_PENDING
DCM_E_FORCE_RCRRP
Operation WriteFile
Comment Callout function.
DCM shall call this function when data is received using UDS service TransferData if there’s an
ongoing RequestFileTransfer process started with 0x01 (AddFile) or 0x03 (ReplaceFile).
Mapped to API Dcm_WriteFile
Variation ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspRequestFileTransfer/DcmRequestFileTransferUse
Port)} == TRUE)
OpStatus
Parameters
Type Dcm_OpStatusType
Direction IN
Comment DCM_INITIAL: All In-parameters are valid.
DCM_PENDING: All In-parameters are set to 0x00.
DCM_CANCEL: All In-parameters are set to 0x00.
DCM_FORCE_RCRRP_OK: All In-parameters are set to 0x00.
Variation –
DataLength
Type uint64
Direction IN
Comment Defines the length in bytes for the parameter Data. The value will not exceed,
but might be less, compared to the value of maxNumberOfBlockLength return
in Dcm_ProcessRequestFileTransfer.
Variation –
Data
Type Dcm_RequestDataArrayType
Direction IN
Comment Pointer to the data to be written.
Variation –
ErrorCode
Type Dcm_NegativeResponseCodeType
Direction OUT
Comment If the operation Dcm_WriteFile returns value E_NOT_OK, the DCM module
shall send a negative response with NRC code equal to the parameter Error
Code parameter value.
Variation –
Possible Errors –
8.8.3.9 DCMServices
4
Variation –
Possible Errors 0 E_OK Operation successful
1 E_NOT_OK Operation failed
Operation GetSecurityLevel
Comment –
Mapped to API Dcm_GetSecurityLevel
Variation –
Parameters SecLevel
Type Dcm_SecLevelType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
Operation GetSesCtrlType
Comment –
Mapped to API Dcm_GetSesCtrlType
Variation –
Parameters SesCtrlType
Type Dcm_SesCtrlType
Direction OUT
Comment –
Variation –
Possible Errors E_OK
E_NOT_OK
Operation ResetToDefaultSession
Comment –
Mapped to API Dcm_ResetToDefaultSession
Variation –
Possible Errors E_OK
E_NOT_OK
Operation SetActiveDiagnostic
Comment Allows to activate and deactivate the call of ComM_DCM_ActiveDiagnostic() function.
Mapped to API Dcm_SetActiveDiagnostic
Variation –
Parameters active
Type boolean
Direction IN
Comment If false Dcm shall not call ComM_DCM_ActiveDiagnostic(). If true Dcm will call
ComM_DCM_ActiveDiagnostic().
Variation –
Possible Errors E_OK
8.8.3.10 Authentication
Operation SetDeauthenticatedRole
Comment Sets a new role used in deauthenticated state for that connection. The set role is valid until the
connection switches into authenticated state or the ECU is reset.
Mapped to API Dcm_SetDeauthenticatedRole
Variation –
Parameters deauthenticatedRole
Type Dcm_AuthenticationRoleType
Direction IN
Comment New deauthenticated role that is assigned to that connection.
Variation –
Possible Errors E_OK
8.8.4 NvDataInterface
8.8.4.1 DataServices_{DID}
d
Name DataServices_{DID}
Comment –
IsService false
Variation ( {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDidUsePort)} == USE_ATOMIC_
NV_DATA_INTERFACE)
DID = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid.SHORT-NAME)}
Data Elements data
Type {DID}_Struct_DataType
Variation DID = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid.SHORT-NAME)})
8.8.5 Ports
This section formally specifies the corresponding AUTOSAR Service using the con-
cepts of the Software-Component-Template. The following definition can be generated
completely out of the configuration of the Dcm, which defines the exact ports that are
present and their names.
Naming of the port : The prefix of the port name is fixed and defined herafter (e.g.
DataServices_). The name behind the prefix corresponds to the name of the associ-
ated container in the ECU configuration and can be freely defined during the configu-
ration step. e.g. : for a DcmDspData container called Speed the port name would be
DataServices_Speed
1 ServiceSwComponentType Dcm {
2
3 //the presence and name of this port is configuration-independent
4 ProvidePort DCMServices DCMServices;
5
6 //see configuration parameter DcmDspSecurityRow
7 RequirePort SecurityAccess_\{SecurityLevel\} SecurityAccess_\{
SecurityLevel\};
8 ...
9
10
11 //see configuration parameter DcmDspData
12 RequirePort DataServices_\{Data\} DataServices_\{Data\};
13 ProvidePort DataServices_\{Data\} DataServices_\{Data\}; // Only if
the data can be written and DcmDspDataUsePort is set to
USE_DATA_SENDER_RECEIVER or to USE_DATA_SENDER_RECEIVER_AS_SERVICE
14 ...
15
16
17 //see configuration parameter DcmDspVehInfoData
18 RequirePort InfotypeServices_{VehInfoData}
19 InfotypeServices_{VehInfoData}
20 ...
21
22
23 //see configuration parameter DcmDspRoutine
24 RequirePort RoutineServices_{RoutineName}
25 RoutineServices_{RoutineName};
26 ...
27
28 //see configuration parameter DcmDspRequestControl
29 RequirePort RequestControlServices_\{Tid\}
30 RequestControlServices_\{Tid\};
31 ...
32
33
34 //see configuration parameter
DcmDsdServiceRequestManufacturerNotication
35 RequirePort ServiceRequestNotification
36 ServiceRequestManufacturerNotification_{Name};
37 ...
38
8.8.5.1 DataServices_DIDRange_{Range}
8.8.5.2 DataServices_{DID}
d
Name DataServices_{DID}
Kind ProvidedPort Interface DataServices_{DID}, DataServices_{DID}
Description –
Variation (({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDidUsePort)} == (USE_ATOMIC_
SENDER_RECEIVER_INTERFACE ) || ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDsp
DidUsePort)} == (USE_ATOMIC_SENDER_RECEIVER_INTERFACE_AS_SERVICE ) ||
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDidUsePort)} == (USE_ATOMIC_NV_
DATA_INTERFACE)) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDidInfoRef->
DcmDspDidInfo/DcmDspDidWrite)} != NULL) && (({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp
Did/DcmDspDidInfoRef-> DcmDspDidInfo/DcmDspDidRead)} == NULL) || ({ecuc(Dcm/DcmConfig
Set/DcmDsp/DcmDspDid/DcmDspDidInfoRef-> DcmDspDidInfo/DcmDspDidControl)} !=NULL))
DID = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid.SHORT-NAME)}
d
Name DataServices_{DID}
Kind Provided Interface DataServices_{DID}, DataServices_{DID}
RequiredPort
Description –
Variation (({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDidUsePort)} == (USE_ATOMIC_
SENDER_RECEIVER_INTERFACE ) ||({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDsp
DidUsePort)} == (USE_ATOMIC_SENDER_RECEIVER_INTERFACE_AS_SERVICE ) ||
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDidUsePort)} == (USE_ATOMIC_NV_
DATA_INTERFACE)) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDidInfo
Ref->DcmDspDidInfo/DcmDspDidWrite)} != NULL) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/Dcm
DspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidRead)} != NULL))
DID = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid.SHORT-NAME)}
d
Name DataServices_{DID}
Kind RequiredPort Interface DataServices_{DID}, DataServices_{DID}
Description –
Variation (({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDidUsePort)} == (USE_ATOMIC_
SENDER_RECEIVER_INTERFACE ) || ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDsp
DidUsePort)} == (USE_ATOMIC_SENDER_RECEIVER_INTERFACE_AS_SERVICE ) ||
({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDidUsePort)} == (USE_ATOMIC_NV_
DATA_INTERFACE)) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDidInfo
Ref->DcmDspDidInfo/DcmDspDidWrite)} == NULL) && (({ecuc(Dcm/DcmConfigSet/DcmDsp/Dcm
DspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidRead)} != NULL) || ({ecuc(Dcm/Dcm
ConfigSet/DcmDsp/DcmDspDid/DcmDspDidInfoRef->DcmDspDidInfo/DcmDspDidControl)}
!=NULL))
DID = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid.SHORT-NAME)}
8.8.5.3 DataServices_{Data}
4
Variation ((( {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDidUsePort)} == USE_DATA_
ELEMENT_SPECIFIC_INTERFACES)) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData/
DcmDspDataUsePort)} == (USE_DATA_SENDER_RECEIVER ||USE_DATA_SENDER_
RECEIVER_AS_SERVICE))) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDid
InfoRef-> DcmDspDidInfo/DcmDspDidWrite)} == NULL) && (({ecuc(Dcm/DcmConfigSet/DcmDsp/
DcmDspDid/DcmDspDidInfoRef-> DcmDspDidInfo/DcmDspDidRead)} != NULL)))
Data = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.SHORT-NAME)}
8.8.5.4 IOControlRequest_{DID}
8.8.5.5 IOControlResponse_{DID}
d
Name IOControlResponse_{DID}
Kind RequiredPort Interface IOControlResponse_{DID}
Description –
Variation (({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDidUsePort)} == (USE_ATOMIC_
SENDER_RECEIVER_INTERFACE || USE_ATOMIC_SENDER_RECEIVER_INTERFACE_AS_
SERVICE))) && ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid/DcmDspDidInfoRef-> DcmDsp
DidInfo/DcmDspDidControl)} != NULL)
DID = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid.SHORT-NAME)})
8.8.5.6 DCMServices
4
Variation –
8.8.5.7 InfotypeServices_{VehInfoData}
8.8.5.8 RequestControlServices_{Tid}
8.8.5.9 ServiceRequestManufacturerNotification_{Name}
8.8.5.10 ServiceRequestSupplierNotification_{Name}
8.8.5.11 RoutineServices_{RoutineName}
8.8.5.12 SecurityAccess_{SecurityLevel}
8.8.5.13 Dcm_DiagnosticSessionControlModeSwitchInterface
8.8.5.14 Dcm_EcuResetModeSwitchInterface
8.8.5.15 Dcm_ModeRapidPowerShutDownModeSwitchInterface
8.8.5.16 Dcm_CommunicationControlModeSwitchInterface_{ComMChannel-
Name}
8.8.5.17 Dcm_ControlDTCSettingModeSwitchInterface
8.8.5.18 Dcm_SecurityAccessModeSwitchInterface
8.8.5.19 Dcm_UploadDownloadServices
8.8.5.20 Dcm_Authentication_{Connection}
8.8.5.21 Dcm_AuthenticationStateMSI
8.8.6 ModeDeclarationGroups
8.8.6.1 DcmDiagnosticSessionControl
8.8.6.2 DcmEcuReset
8.8.6.3 DcmModeRapidPowerShutDown
8.8.6.4 DcmCommunicationControl
8.8.6.5 DcmControlDTCSetting
8.8.6.6 DcmSecurityAccess
8.8.6.7 DcmAuthenticationState
8.8.7 Mode-Switch-Interfaces
8.8.7.1 Dcm_DiagnosticSessionControlModeSwitchInterface
8.8.7.2 Dcm_EcuResetModeSwitchInterface
8.8.7.3 Dcm_ModeRapidPowerShutDownModeSwitchInterface
8.8.7.4 Dcm_CommunicationControlModeSwitchInterface
8.8.7.5 Dcm_ControlDTCSettingModeSwitchInterface
8.8.7.6 Dcm_SecurityAccessModeSwitchInterface
4
ModeGroup securityAccess DcmSecurityAccess
8.8.7.7 Dcm_AuthenticationStateModeSwitchInterface
8.9.1 <Module>_<DiagnosticService>
4
Parameters (inout) pMsgContext Message-related information for one diagnostic protocol identifier.
The pointers in pMsgContext shall point behind the SID.
Parameters (out) ErrorCode If the operation <Module>_<DiagnosticService> returns value E_
NOT_OK, the Dcm module shall send a negative response with
NRC code equal to the parameter ErrorCode parameter value.
Return value Std_ReturnType E_OK: Request was successful
E_NOT_OK: Request was not successful
DCM_E_PENDING: Request is not yet finished
DCM_E_FORCE_RCRRP: Application requests the transmission of
a response Response Pending (NRC 0x78)
Description Callout function. The Dcm shall call this callout function as soon as valid message is received
on relevant DcmDslProtocolRxPduId on SID level. The usecase of multiple diagnostic protocols
will be possible by using different arguments and the function shall be programmed in a way
that it is reentrant. Caller is responsible for the lifetime of the argument pMsgContext. The
name of the callout is defined within parameter DcmDsdSidTabFnc
Available via Dcm_Externals.h
8.9.2 <Module>_<DiagnosticService>_<SubService>
4
Description Callout function. If a DcmDsdSubServiceFnc is configured for the received subservice, the Dcm
shall call this callout function as soon as this subservice is requested. The usecase of multiple
diagnostic protocols will be possible by using different arguments and the function shall be
programmed in a way that it is reentrant. Caller is responsible for the lifetime of the argument p
MsgContext. The name of the callout is defined within parameter DcmDsdSubServiceFnc.
Available via Dcm_Externals.h
8.10.1 DslInternal_SetSecurityLevel
1 void
2 DslInternal_SetSecurityLevel(Dcm_SecLevelType SecurityLevel)
This function sets a new security level value in the Dcm module. NOTE: for the definition
of the parameter, refer to Dcm_GetSecurityLevel.
8.10.2 DslInternal_SetSesCtrlType
1 void
2 DslInternal_SetSesCtrlType(Dcm_SesCtrlType SesCtrlType)
This function sets a new session control type value in the Dcm module. NOTE: for the
definition of the parameter, refer to the Dcm_GetSesCtrlType.
8.10.3 DspInternal_DcmConfirmation
1 void
2 DspInternal_DcmConfirmation(Dcm_IdContextType idContext,
3 uint16 ConnectionId
4 Dcm_ConfirmationStatusType status)
1 Dcm_StatusType
2 DslInternal_ResponseOnOneEvent(const Dcm_MsgType MsgPtr,
3 Dcm_MsgLenType MsgLen,
4 uint16 ConnectionId)
This API executes the processing of one event, requested internally in the DCM.
8.10.5 DslInternal_ResponseOnOneDataByPeriodicId
1 Dcm_StatusType
2 DslInternal_ResponseOnOneDataByPeriodicId(uint8 PeriodicId)
This API provides the processing of one periodic ID event, requested internally in the
DCM. The frequency of calling this function depends on the rate given in the original
ReadDataByPeriodicID request (parameter transmissionMode).
8.10.6 DsdInternal_StartPagedProcessing
1 void
2 DsdInternal_StartPagedProcessing(const Dcm_MsgContextType* pMsgContext)
With this API, the DSP submodule gives the complete response length to the Dcm mod-
ule and starts paged-buffer handling. This API starts no transmission!
8.10.7 DspInternal_CancelPagedBufferProcessing
1 void
2 DspInternal_CancelPagedBufferProcessing()
Dcm informs DSP, that processing of paged-buffer was cancelled due to errors. Upon
this call, DSP is not allowed to process further on paged-buffer handling.
8.10.8 DsdInternal_ProcessPage
1 void
2 DsdInternal_ProcessPage(Dcm_MsgLenType FilledPageLen)
9 Sequence diagrams
9.1 Overview
For clarification, the following sequence diagrams don’t represent the full communica-
tion mechanism between the Dcm module and the PduR module. This is to keep the
sequence diagrams simple. Before the Dcm_TpRxIndication call, the PduR mod-
ule will ask the Dcm module for a buffer by calling Dcm_StartOfReception and
Dcm_CopyRxData. This exchange is not shown on the next sequence diagrams. Af-
ter a PduR_DcmTransmit() request from the Dcm module to the PduR module, data
exchanges with Dcm_CopyTxData service, are not shown in the sequence diagrams.
The function Xxx_StartProtocol() shall be called with the very first diagnostic request.
Dcm_TpRxIndication(PduIdType,
Std_ReturnType)
<Module>_<DiagnosticService>(Std_ReturnType,
Dcm_ExtendedOpStatusType,
Dcm_MsgContextType**,
Data_Indication_functionality() Dcm_NegativeResponseCodeType**)
Data_Indication_functionality()
Dcm_TpRxIndication()
alt response?
PduR_DcmTransmit()
PduR_DcmTransmit(Std_ReturnType, PduIdType,
const PduInfoType*): Std_ReturnType
PduR_DcmTransmit()
[positive response]
Dcm_TpTxConfirmation(PduIdType,
NotifResultType)
Data_Confirmation_functionality()
DspInternal_DcmConfirmation(Dcm_IdContextType,
PduIdType, Dcm_ConfirmationStatusType)
DspInternal_DcmConfirmation()
Data_Confirmation_functionality()
Dcm_TpTxConfirmation()
Internally, the DSL submodule calculates the time to response the tester. In the
case that the external module processing the request doesn’t close the request
by returning E_OK or E_NOT_OK to <Module>_<DiagnosticService>() or <Mod-
ule>_<DiagnosticService>_<SubService>() APIs call (in case of normal response han-
dling) or DsdInternal_ProcessPage() (in case of paged-buffer handling) during the
P2ServerMax and/or P2*ServerMax, the DSL submodule sends a negative response
(requestCorectlyReceived-ResponsePending) independently.
Dcm_TpRxIndication(PduIdType,
Std_ReturnType)
Data_Indication_functionality() <Module>_<DiagnosticService>(Std_ReturnType,
Dcm_ExtendedOpStatusType,
Dcm_MsgContextType**,
Dcm_NegativeResponseCodeType**)
Data_Indication_functionality()
Dcm_TpRxIndication()
Dcm_TpTxConfirmation(PduIdType, Std_ReturnType)
Data_Confirmation_functionality()
DspInternal_DcmConfirmation(Dcm_IdContextType,
PduIdType, Dcm_ConfirmationStatusType)
DspInternal_DcmConfirmation()
Data_Confimation_functionality()
Dcm_TpTxConfirmation()
The DSL submodule resets session control value to default, if in a non-default ses-
sion S3server timeout occurs. S3server timeout timer will be started with every data
confirmation from the PduR module.
ref
Receive a request message ... - synchronous
ref
Receive a request message ... - asynchronous
! "
#! # ! $ %
& DslInternal_ResponseOnOneDataByPeriodicId(uint8)
Data_Indication_functionality()
DspInternal_DcmReadDataByIdentifier()
Data_Indication_functionality()
DslInternal_ResponseOnOneDataByPeriodicId()
Dcm_TpTxConfirmation(PduIdType, Std_ReturnType)
Data_Confirmation_functionality()
DspInternal_DcmConfirmation(Dcm_IdContextType,
PduIdType, Dcm_ConfirmationStatusType)
DspInternal_DcmConfirmation()
Data_Confirmation_functionality()
Dcm_TpTxConfirmation()
The DSP submodule requests sampling and transmission of Periodic Identifier data,
when an event to Periodic Identifier occurs (i. e. a given time period is over). The DSP
submodule initiates the sending of one periodic identifier calling the function Respon-
seOnOneDataByPeriodicId() provided by the DSL submodule.
Within this function the DSL submodule simulates a "ReadDataByIdentifier" request
for the given PeriodicId. The High byte of the DataIdentifier shall be set to 0xF2 as
specified in [19]) and the low byte is set to value of the PeriodicId.
The ReadData interfaces of the corresponding Datas of the DID are called to get the
DID value. The Dcm module is not able to receive for the same periodic identifier
another event request from the DSP submodule, unless the confirmation of the current
transmission is received.
ref
Receive a request message ... - synchronous
ref
Receive a request message ... - asynchronous
DspInternal_DcmReadDataByIdentifier()
Data_Indication_functionality()
DslInternal_ResponseOnOneEvent()
Dcm_TpTxConfirmation(PduIdType, Std_ReturnType)
Data_Confirmation_functionality()
DspInternal_DcmConfirmation(Dcm_IdContextType, PduIdType,
Dcm_ConfirmationStatusType)
DspInternal_DcmConfirmation()
Data_Confirmation_functionality()
Dcm_TpTxConfirmation()
Dcm_TpRxIndication(PduIdType,
Std_ReturnType)
Data_Indication_functionality() <Module>_<DiagnosticService>(Std_ReturnType,
Dcm_ExtendedOpStatusType,
Dcm_MsgContextType**,
Dcm_NegativeResponseCodeType**)
Dcm_TpRxIndication(PduIdType,
Std_ReturnType)
Data_Indication_functionality()
Stop_Protocol_functionality()
Stop_Protocol_functionality()
Data_Indication_functionality()
PduR_DcmCancelTransmitRequest()
PduR_DcmTransmit(Std_ReturnType,
PduIdType, const PduInfoType*):
Std_ReturnType
PduR_DcmTransmit()
Dcm_TpRxIndication()
<Module>_<DiagnosticService>()
Data_Indication_functionality()
Dcm_TpRxIndication()
Dcm_TpRxIndication(PduIdType,
Std_ReturnType)
Data_Indication_functionality()
!
Dcm_TpRxIndication(PduIdType,
Std_ReturnType)
ComM_DCM_ActiveDiagnostic(NetworkHandleType)
ComM_DCM_ActiveDiagnostic()
<Module>_<DiagnosticService>(Std_ReturnType,
Dcm_ExtendedOpStatusType, Dcm_MsgContextType**,
Dcm_NegativeResponseCodeType**)
Dcm_TpRxIndication()
DspInternal_DcmConfirmation()
ComM_DCM_InactiveDiagnostic(NetworkHandleType)
ComM_DCM_InactiveDiagnostic()
Dcm_TpTxConfirmation()
Dcm_TpRxIndication(PduIdType,
Std_ReturnType)
<Module>_<DiagnosticService>(Std_ReturnType,
Dcm_ExtendedOpStatusType,
Dcm_MsgContextType**,
Dcm_NegativeResponseCodeType**)
Dcm_TpRxIndication()
Dcm_TpTxConfirmation(PduIdType, Std_ReturnType)
DspInternal_DcmConfirmation()
Dcm_TpTxConfirmation()
«module» «module»
Dsl ComM
ComM_DCM_ActiveDiagnostic(NetworkHandleType)
ComM_DCM_ActiveDiagnostic()
ComM_DCM_InactiveDiagnostic(NetworkHandleType)
ComM_DCM_InactiveDiagnostic()
«module» «module»
ComM Dcm
Dcm_ComM_SilentComModeEntered(uint8)
DSD (Diagnostic Service Dispatcher) Receive a request message and transmit a posi-
tive response message - synchronous transmission
Dcm_TpRxIndication(PduIdType,
Std_ReturnType)
Data_Indication_functionality()
<Module>_<DiagnosticService>(Std_ReturnType,
Dcm_ExtendedOpStatusType,
Dcm_MsgContextType**,
Dcm_NegativeResponseCodeType**)
Data_Indication_functionality()
Dcm_TpRxIndication()
Dcm_TpTxConfirmation(PduIdType,
NotifResultType)
Data_Confirmation_functionality()
DspInternal_DcmConfirmation(Dcm_IdContextType,
PduIdType, Dcm_ConfirmationStatusType)
DspInternal_DcmConfirmation()
Data_Confirmation_functionality()
Dcm_TpTxConfirmation()
Dcm_TpRxIndication(PduIdType,
Std_ReturnType)
Data_Indication_functionality()
<Module>_<DiagnosticService>(Std_ReturnType,
Dcm_ExtendedOpStatusType,
Dcm_MsgContextType**,
Dcm_NegativeResponseCodeType**)
Data_Indication_functionality()
Dcm_TpRxIndication()
Dcm_TpTxConfirmation(PduIdType,
NotifResultType)
Data_Confirmation_functionality()
DspInternal_DcmConfirmation(Dcm_IdContextType,
PduIdType, Dcm_ConfirmationStatusType)
DspInternal_DcmConfirmation()
Data_Confirmation_functionality()
Dcm_TpTxConfirmation()
Dcm_TpRxIndication(PduIdType,
Std_ReturnType)
Data_Indication_functionality() <Module>_<DiagnosticService>(Std_ReturnType,
Dcm_ExtendedOpStatusType,
Dcm_MsgContextType**,
Dcm_NegativeResponseCodeType**)
Data_Indication_functionality()
Dcm_TpRxIndication()
Dcm_TpRxIndication(PduIdType,
Std_ReturnType)
Data_Indication_functionality() <Module>_<DiagnosticService>(Std_ReturnType,
Dcm_ExtendedOpStatusType, Dcm_MsgContextType**,
Dcm_NegativeResponseCodeType**)
<Module>_<DiagnosticService>()
Data_Indication_functionality()
Dcm_RxIndication()
Dcm_TpTxConfirmation(PduIdType,
NotifResultType)
Data_Confirmation_functionality()
DspInternal_DcmConfirmation(Dcm_IdContextType,
PduIdType, Dcm_ConfirmationStatusType)
DspInternal_DcmConfirmation()
Data_Confirmation_functionality()
Dcm_TpTxConfirmation()
Dcm_TpRxIndication(PduIdType,
Std_ReturnType)
Data_Indication_functionality()
service interpreter call()
DsdInternal_StartPagedProcessing(const
Dcm_MsgContextType*)
DspInternal_DcmUpdatePage(Dcm_MsgType, Dcm_MsgLenType)
DspInternal_DcmUpdatePage()
DspInternal_StartPagedProcessing()
DsdInternal_ProcessPage(Dcm_MsgLenType)
PduR_DcmTransmit(Std_ReturnType,
Transmit_functionality()
PduIdType, const PduInfoType*):
Std_ReturnType
Dcm_CopyTxData(BufReq_ReturnType, PduIdType,
PduInfoType*, RetryInfoType*, PduLengthType*)
Dcm_CopyTxData=BUFREQ_E_BUSY()
loop transmit
Dcm_CopyTxData(BufReq_ReturnType, PduIdType,
PduInfoType*, RetryInfoType*, PduLengthType*)
Data_Confirmation_functionality()
DspInternal_DcmUpdatePage(Dcm_MsgType,
Dcm_MsgLenType)
DsdInternal_ProcessPage(Dcm_MsgLenType)
Transmit_functionality()
Dcm_CopyTxData(BufReq_ReturnType, PduIdType,
PduInfoType*, RetryInfoType*, PduLengthType*)
Dcm_CopyTxData=BUFREQ_OK()
Dcm_TpTxConfirmation(PduIdType, Std_ReturnType)
Data_Confirmation_functionality()
DspInternal_DcmConfirmation(Dcm_IdContextType,
PduIdType, Dcm_ConfirmationStatusType)
The following flow is processed in case no error occurs on the Application side:
Start of process:
4) DsdInternal_StartPagedProcessing(): With this API, the DSP submodule gives the
complete response length to the Dcm module and starts paged-buffer handling. This
API starts no transmission!
5) UpdatePage(): The Dcm module requests data to be transmitted.
6) DsdInternal_ProcessPage(): With this API, the DSP submodule requests transmis-
sion of the current page.
8) PduR_DcmTransmit(): The Dcm module requests transmission to the lower layers.
9) Dcm_CopyTxData: The buffer is filled and the Dcm module shall return
"BUFREQ_OK"(10).
The Dcm module reacts in the following described way, when the DSP submodule starts
paged-buffer handling, but is not able to process further on filling the response data.
E.g. there are problems to access data from an EEPROM device. When providing
the Pagebuffer to the DSP submodule (13: UpdatePage()), and getting a negative Tx
confirmation from underlying Transport Layers, the following error handling is carried
out in the Dcm module:
• The Dcm module stops further processing of paged-buffer (item 15),
• The Dcm module requests the DSP submodule (14: DspInter-
nal_CancelPagedBufferProcessing()) to stop further processing of PagedBuffer.
Dcm_TpRxIndication
(PduIdType, Std_ReturnType)
Data_Indication_functionality()
DspInternal_Dcm<DiagnosticService>(Dcm_MsgContextType)
DspInternal_DcmUpdatePage(Dcm_MsgType, Dcm_MsgLenType)
DspInternal_DcmUpdatePage()
DsdInternal_StartPagedProcessing()
DspInternal_Dcm<DiagnosticServices>()
DsdInternal_ProcessPage(Dcm_MsgLenType)
PduR_DcmTransmit(Std_ReturnType,
Transmit_functionality()
PduIdType, const PduInfoType*):
Std_ReturnType
Dcm_CopyTxData(BufReq_ReturnType, PduIdType,
PduInfoType*, RetryInfoType*, PduLengthType*)
Dcm_CopyTxData=BUFREQ_OK()
loop transmit
Dcm_CopyTxData(BufReq_ReturnType, PduIdType,
PduInfoType*, RetryInfoType*, PduLengthType*)
Data_Confirmation_functionality() DspInternal_DcmUpdatePage(Dcm_MsgType,
Dcm_MsgLenType)
Dcm_CopyTxData=BUFREQ_E_BUSY()
DspInternal_DcmCancelPagedBufferProcessing()
Data_Failed_Functionality()
Dcm_CopyTxData(BufReq_ReturnType, PduIdType,
PduInfoType*, RetryInfoType*, PduLengthType*)
Dcm_CopyTxData=BUFREQ_E_NOT_OK()
Dcm_TpRxIndication(PduIdType,
Std_ReturnType)
Data_Indication_functionality()
DiagnosticSessionControl service
interpreter()
Data_Indication_functionality()
Dcm_TpRxIndication()
Dcm_TpTxConfirmation(PduIdType,
Std_ReturnType)
Data_Confirmation_functionality()
DspInternal_DcmConfirmation(Dcm_IdContextType,
PduIdType, Dcm_ConfirmationStatusType)
DspInternal_DcmConfirmation()
Data_Confirmation_functionality()
Dcm_TpTxConfirmation()
Dcm_TpRxIndication(PduIdType,
Std_ReturnType)
Data_Indication_functionality()
TesterPresent service
interpreter()
TesterPresent service
interpreter()
Data_Indication_functionality()
Dcm_TpRxIndication()
Dcm_TpRxIndication(PduIdType,
Std_ReturnType)
Data_Indication_functionality()
TesterPresent service
interpreter()
TesterPresent service
interpreter()
Data_Indication_functionality()
Dcm_TpRxIndication()
Data_Indication_functionality()
SecurityAccess service
interpreter()
GetSeed()
Data_Indication_functionality()
SecurityAccess service
interpreter()
CompareKey(Std_ReturnType,
uint8*, Dcm_OpStatusType)
Dcm_CompareKey()
Dcm_SetSecurityLevel(Dcm_SecLevelType)
Dcm_SetSecurityLevel()
To get the security access, the DSD submodule has to call the DSP submodule to get
the seed value from the application. If no error is detected, the seed value is sent in
the positive response.
In a second step, the DSP submodule gets the key calculated by the tester and requests
the application to compare this key with the internal calculated key. If no error occurs,
the new access type is set in the DSL submodule and a positive response is sent.
Dcm_TpRxIndication(PduIdType,
Std_ReturnType)
Data_Indication_functionality()
ResponseOnEvent service
interpreter()
ResponseOnEvent service
Data_Indication_functionality() interpreter()
Dcm_TpRxIndication()
Configure Event()
Data_Indication_functionality()
ResponseOnEvent service
interpreter()
ResponseOnEvent service
Data_Indication_functionality() interpreter()
Internal activation of DTC
Dcm_TpRxIndication() status supervision()
Dcm_DemTriggerOnDTCStatus()
Data_Indication_functionality()
ReadDTCInformation
service interpreter()
Dcm_DemTriggerOnDTCStatus()
[FALSE]
Dcm_TpRxIndication(PduIdType,
Std_ReturnType)
Internal deactivation of
DTC status supervision()
called by DEM for any DTC status change and independing of the activation/unactiva-
tion of ResponseOnEvent.
Dcm_TpRxIndication(PduIdType,
Std_ReturnType)
Data_Indication_functionality()
ResponseOnEvent service
interpreter()
ResponseOnEvent service
Data_Indication_functionality() interpreter()
Dcm_TpRxIndication()
Data_Indication_functionality()
DspInternal_DcmReadDataByIdentifier(pMsgContext)
Xxx_ReadData()
Data_Indication_functionality() ResponseOnEvent service
interpreter()
Dcm_TpRxIndication()
Dcm_TpRxIndication(PduIdType,
Std_ReturnType)
Data_Indication_functionality()
DiagnosticSessionControl service
interpreter()
DiagnosticSessionControl service
interpreter()
Data_Indication_functionality()
Dcm_TpRxIndication()
[TRUE]
Dcm_TpTxConfirmation(PduIdType, Std_ReturnType)
Data_Confirmation_functionality()
DspInternal_DcmConfirmation(Dcm_IdContextType, PduIdType,
Dcm_ConfirmationStatusType)
Dcm_SetProgConditions()
Dcm_SetProgConditions()
DspInternal_DcmConfirmation()
Data_Confirmation_functionality()
Dcm_TpTxConfirmation()
[FALSE]
Write IOControlRequest_{DID}
! $ % !
Write IOControlRequest_{DID}.IOOperationRequest
!! "#
[Read DataServices_{DID}]:
[data=0x1234]:
[Read IOControlRequest_{DID}]:
[underControl]:
[isUpdatedWriteIOControlRequest_{DID}().IOOper...]:
[status]:
Write IOControlRequest_{DID}.IOOperationRequest
[Read IOControlRequest_{DID}]:
[underControl]:
[isUpdatedWriteIOControlRequest_{DID}().IOOper...]:
[status]:
[IOOperationRequest.inputOutputControlParameter]:
alt InputOutputControlParameter
[ResetToDefault (01)]
[freezeCurrentState (02)]
[shortTermAdjustment (03)]
[Read IOControlRequest_{DID}]:
[controlState = 0x1234]:
alt OperationStatus
[Pending]
[Write IOControlResponse_{DID}({Pending 0x78})]:
[Done]
[Write IOControlResponse_{DID}({Ack=0x00 | Nack})]:
[Write DataServices_{DID}(data=0x1234)]:
[IsUpdated IOControlResponse]:
[status]:
[TRUE]
[Read IOControlResponse_{DID}]:
[IOOperationResponse]:
alt IOOpertionResponse
[Pending (0x78)]
7F 2F 78 (optional,
depending on timing)
[Update underControl]:
underControl = 0x80 |
underControl
[Write IOControlRequest_{DID}.underControl]:
[Read DataServices_{DID}]:
[data = 0x1234]:
6F D001 03 1234
10 Configuration specification
In general, this chapter defines configuration parameters and their clustering into con-
tainers. In order to support the specification Chapter 10.1 describes fundamentals.
It also specifies a template (table) you shall use for the parameter specification. We
intend to leave Chapter 10.1 in the specification to guarantee comprehension.
Chapter 10.2 specifies the structure (containers) and the parameters of the module
<MODULE_ABBREVIATION>.
Chapter 10.4 specifies published information of the module <MOD-
ULE_ABBREVIATION>.
AUTOSARParameterDefinition:
EcucDefinitionCollection
+module
Dcm: EcucModuleDef
upperMultiplicity = 1
lowerMultiplicity = 0
+container +container
lowerMultiplicity = 1
upperMultiplicity = 1
DcmDsd:
+subContainer EcucParamConfContainerDef
lowerMultiplicity = 1
upperMultiplicity = 1
DcmDsl:
+subContainer EcucParamConfContainerDef
lowerMultiplicity = 1
upperMultiplicity = 1
DcmPageBufferCfg:
+subContainer EcucParamConfContainerDef
lowerMultiplicity = 1
upperMultiplicity = 1
DcmDsp:
+subContainer EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
DcmProcessingConditions:
+subContainer EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
10.2.1 Dcm
Included Containers
Container Name Multiplicity Scope / Dependency
DcmConfigSet 1 This container contains the configuration parameters and sub
containers of the DCM module supporting multiple configuration
sets.
DcmGeneral 1 Contains general configuration parameters valid for the entire
Dcm module.
10.2.2 DcmConfigSet
No Included Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDsd 1 These parameters configure the Diagnostic Service Dispatcher
submodule.
DcmDsl 1 These parameters configure the Diagnostic Session Layer
submodule.
DcmDsp 0..1 These parameters apply to Diagnostic Service Processing.
There will always be one set of these parameters per Dcm.
Please note: Although the multiplicity is set to 0..1. It can be
expected that this container exists in any valid DCM
configuration.
DcmPageBufferCfg 1 This container contains the configuration (parameters) for Page
Buffer handling
DcmProcessingConditions 0..1 This container contains the configuration for mode arbitration
functionality of the Dcm
10.2.2.1 DcmPageBufferCfg
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmPagedBufferEnabled 1 [ECUC_Dcm_00776]
No Included Containers
DcmPageBufferCfg: DcmPagedBufferEnabled:
EcucParamConfContainerDef EcucBooleanParamDef
+parameter
lowerMultiplicity = 1 upperMultiplicity = 1
upperMultiplicity = 1 lowerMultiplicity = 1
10.2.2.2 DcmProcessingConditions
No Included Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
DcmModeCondition 1..* This container contains the configuration of a mode condition or
an environmental conditions which can be used as argument in
DcmModeRules.
One DcmModeCondition shall contain either one DcmSwcMode
Ref or one DcmBswModeRef or one DcmSwcSRDataElement
Ref.
Please note that the Dcm acts as well as mode manager.
Therefore the references DcmSwcModeRef or one DcmBsw
ModeRef. might point to provided ModeDeclarationGroup
Prototypes of the Dcm itself as well as to provided Mode
DeclarationGroupPrototypes of other Bsw Modules or software
components.
In case of a configured DcmSwcModeRef or DcmBswModeRef
only the DcmConditionType DCM_EQUALS or DCM_EQUALS_
NOT are applicable.
In case of DcmSwcSRDataElementRef all literals of Dcm
ConditionType are possible.
DcmModeRule 1..* This container contains the configuration of a mode rule which
represents a logical expression with DcmModeConditions or
other DcmModeRules as arguments.
All arguments are processed with the operator defined by Dcm
LogicalOperator, for instance: Argument_A AND Argument_B
AND Argument_C
DcmProcessingConditions:
EcucParamConfContainerDef +subContainer DcmLogicalOperator:
DcmModeRule: EcucEnumerationParamDef
lowerMultiplicity = 0 EcucParamConfContainerDef +parameter
upperMultiplicity = 1 lowerMultiplicity = 0
lowerMultiplicity = 1 upperMultiplicity = 1
upperMultiplicity = *
+destination +literal
DCM_OR:
EcucEnumerationLiteralDef
+literal
+reference DCM_AND:
+parameter EcucEnumerationLiteralDef
DcmArgumentRef: DcmModeRuleNrcValue:
+subContainer EcucChoiceReferenceDef EcucIntegerParamDef
DCM_EQUALS:
EcucEnumerationLiteralDef
+literal
DCM_GREATER_THAN:
EcucEnumerationLiteralDef
+literal
DCM_EQUALS_NOT:
EcucEnumerationLiteralDef
+literal
DCM_LESS_THAN:
EcucEnumerationLiteralDef
+literal
DCM_LESS_OR_EQUAL:
EcucEnumerationLiteralDef
+literal
DCM_GREATER_OR_EQUAL: +literal
EcucEnumerationLiteralDef DcmConditionType: EcucEnumerationParamDef
lowerMultiplicity = 1
upperMultiplicity = 1
+parameter
DcmModeConditionCertificateCompareElementRef: KeyMCertificateElement:
+reference EcucReferenceDef +destination EcucParamConfContainerDef
lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = 65535
requiresSymbolicNameValue = true
(from KeyM)
DcmModeCondition: DcmSwcSRDataElementRef:
EcucParamConfContainerDef EcucChoiceReferenceDef DcmDspPidService01ExternalSRDataElementClass:
+destination
+reference EcucChoiceContainerDef
lowerMultiplicity = 1 upperMultiplicity = 1
upperMultiplicity = * lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1
+subContainer
DcmDspPidService01:
EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
+destination
DcmDspExternalSRDataElementClass: DcmDspData:
EcucChoiceContainerDef +subContainer EcucParamConfContainerDef
lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = *
+subContainer
DcmSwcDataElementPrimitive:
DcmSwcDataElementValue: EcucParamConfContainerDef +parameter DcmSwcDataElementPrimitiveValue:
+choice
EcucChoiceContainerDef EcucIntegerParamDef
lowerMultiplicity = 0
upperMultiplicity = 1
DcmSwcDataElementArray:
+choice EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
+subContainer DcmSwcDataElementArrayElementIndex:
EcucIntegerParamDef
+parameter
DcmSwcDataElementArrayElement:
EcucParamConfContainerDef
lowerMultiplicity = 0 +parameter
upperMultiplicity = * DcmSwcDataElementArrayElementValue:
EcucIntegerParamDef
+reference
DcmBswModeRef: EcucInstanceReferenceDef
lowerMultiplicity = 0
upperMultiplicity = 1
destinationType = MODE-DECLARATION
destinationContext = MODE-DECLARATION-GROUP-PROTOTYPE
+reference
DcmSwcModeRef: EcucInstanceReferenceDef
lowerMultiplicity = 0
upperMultiplicity = 1
destinationType = MODE-DECLARATION
destinationContext = ROOT-SW-COMPOSITION-PROTOTYPE SW-COMPONENT-PROTOTYPE P-PORT-PROTOTYPE MODE-DECLARATION-GROUP-PROTOTYPE
10.2.3 DcmDsd
10.2.3.1 DcmDsd
No Included Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDsdServiceRequest 0..* The name of this container is used to define the name of the
ManufacturerNotification R-Port through which the DCM accesses the interface Service
RequestNotification. The R-Port is named ServiceRequest
ManufacturerNotification_{Name} where {Name} is the name of
the container DcmDsdServiceRequestManufacturerNotification.
The lowerMultiplicity is 0: If container DcmDsdServiceRequest
ManufacturerNotification does not exist the Indication API is not
available.
DcmDsdServiceRequestSupplier 0..* The name of this container is used to define the name of the
Notification R-Port through which the DCM accesses the interface Service
RequestNotification. The R-Port is named ServiceRequest
SupplierNotification_<SWC> where <SWC> is the name of the
container DcmDsdServiceRequestSupplierNotification.
The lowerMultiplicity is 0: If the container DcmDsdRequest
SupplierNotification does not exist the Indication API is not
available.
DcmDsdServiceTable 1..256 This container contains the configuration (DSD parameters) for a
Service Identifier Table.
Note: It is allowed to add OBD services to a DcmDsdService
Table related to a UDS Protocol. But it is not allowed to add UDS
services to a DcmDsdServiceTable related to an OBD Protocol.
DcmDsd:
EcucParamConfContainerDef
lowerMultiplicity = 1
upperMultiplicity = 1
DcmDspAuthenticationRow:
EcucParamConfContainerDef
+subContainer
lowerMultiplicity = 0
DcmDsdSidTabId:
DcmDsdServiceTable: upperMultiplicity = 31
EcucIntegerParamDef
EcucParamConfContainerDef +parameter
max = 255 +destination
upperMultiplicity = 256
min = 0
lowerMultiplicity = 1
upperMultiplicity = 1
lowerMultiplicity = 1
DcmDsdServiceRoleRef:
DcmDsdServiceUsed: EcucReferenceDef
EcucBooleanParamDef
lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = 32
lowerMultiplicity = 1
defaultValue = true
+parameter +reference
+parameter
+subContainer
DcmDsdService: EcucParamConfContainerDef
upperMultiplicity = *
lowerMultiplicity = 1
+parameter +parameter
DcmDspSessionLevel: DcmDspSecurityLevel:
EcucIntegerParamDef EcucIntegerParamDef
+container DcmDsdServiceRequestSupplierNotification:
+subContainer EcucParamConfContainerDef
DcmConfigSet: EcucParamConfContainerDef +subContainer
requiresIndex = true
upperMultiplicity = *
lowerMultiplicity = 0
10.2.3.2 DcmDsdService
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDsdServiceUsed 1 [ECUC_Dcm_01044]
DcmDsdSidTabFnc 0..1 [ECUC_Dcm_00777]
DcmDsdSidTabServiceId 1 [ECUC_Dcm_00735]
DcmDsdSidTabSubfuncAvail 1 [ECUC_Dcm_00737]
DcmDsdServiceRoleRef 0..32 [ECUC_Dcm_01139]
DcmDsdSidTabModeRuleRef 0..1 [ECUC_Dcm_00918]
DcmDsdSidTabSecurityLevelRef 0..* [ECUC_Dcm_00733]
DcmDsdSidTabSessionLevelRef 0..* [ECUC_Dcm_00734]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDsdSubService 0..* This container contains the configuration (DSD parameters) for a
subservice of a service. Only those services may have
subservices, which have the DcmDsdSidTabSubfuncAvail
configured as TRUE.
4
Type Reference to DcmDspAuthenticationRow
Post-Build Variant Multiplicity false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: ECU
4
Multiplicity Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
10.2.3.3 DcmDsdServiceRequestManufacturerNotification
No Included Parameters
No Included Containers
10.2.3.4 DcmDsdServiceRequestSupplierNotification
No Included Parameters
No Included Containers
10.2.3.5 DcmDsdServiceTable
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDsdSidTabId 1 [ECUC_Dcm_00736]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDsdService 1..* This container contains the configuration (DSD parameters) for a
Service.
Note : The Dcm internal interaction with the DSP is implementation specific and there-
fore not explicitly configured.
10.2.3.6 DcmDsdSubService
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDsdSubServiceFnc 0..1 [ECUC_Dcm_00942]
DcmDsdSubServiceId 1 [ECUC_Dcm_00803]
DcmDsdSubServiceUsed 1 [ECUC_Dcm_01047]
DcmDsdSubServiceModeRuleRef 0..1 [ECUC_Dcm_00924]
DcmDsdSubServiceRoleRef 0..32 [ECUC_Dcm_01140]
DcmDsdSubServiceSecurityLevelRef 0..* [ECUC_Dcm_00812]
DcmDsdSubServiceSessionLevelRef 0..* [ECUC_Dcm_00804]
No Included Containers
4
Post-Build Variant Value false
Multiplicity Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
4
Multiplicity Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
DcmDsdServiceTable:
EcucParamConfContainerDef
upperMultiplicity = 256
lowerMultiplicity = 1
DcmDsdSubServiceRoleRef: DcmDspAuthenticationRow:
EcucReferenceDef +destination EcucParamConfContainerDef
+subContainer
lowerMultiplicity = 0 lowerMultiplicity = 0
DcmDsdService: upperMultiplicity = 32 upperMultiplicity = 31
EcucParamConfContainerDef
upperMultiplicity = *
lowerMultiplicity = 1
+reference
+subContainer
DcmDsdSubService: EcucParamConfContainerDef
upperMultiplicity = *
lowerMultiplicity = 0
+parameter +parameter
DcmDspSessionLevel: DcmDspSecurityLevel:
EcucIntegerParamDef EcucIntegerParamDef
10.2.4 DcmDsl
10.2.4.1 DcmDsl
No Included Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDslBuffer 1..256 This container contains the configuration of a diagnostic buffer.
DcmDslDiagResp 1 This container contains the configuration of the automatic
requestCorrectlyReceivedResponsePending response
management in the Dcm.
DcmDslProtocol 1 This container contains the configurations of the diagnostic
protocols used in Dcm.
DcmDslProtocol: DcmDslBuffer:
EcucParamConfContainerDef EcucParamConfContainerDef
+subContainer +subContainer
upperMultiplicity = 1 upperMultiplicity = 256
lowerMultiplicity = 1 lowerMultiplicity = 1
DcmDslDiagResp:
EcucParamConfContainerDef
+subContainer
upperMultiplicity = 1
lowerMultiplicity = 1
10.2.4.2 DcmDslBuffer
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDslBufferSize 1 [ECUC_Dcm_00738]
No Included Containers
Dcm: EcucModuleDef
upperMultiplicity = 1
lowerMultiplicity = 0
10.2.4.3 DcmDslDiagResp
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDslDiagRespMaxNumRespPend 0..1 [ECUC_Dcm_00693]
DcmDslDiagRespOnSecondDeclinedRequest 1 [ECUC_Dcm_00914]
No Included Containers
4
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
10.2.4.4 DcmDslProtocol
No Included Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDslProtocolRow 1..* This container contains the configuration of one particular
diagnostic protocol used in Dcm.
+subContainer
DcmTimStrP2StarServerAdjust: DcmDspProtocolEcuAddr: DcmDslProtocolMaximumResponseSize:
EcucFloatParamDef EcucIntegerParamDef EcucIntegerParamDef
DcmDslProtocolRow: EcucParamConfContainerDef
upperMultiplicity = *
lowerMultiplicity = 1
+parameter
DemClient:
EcucParamConfContainerDef DcmDsdServiceTable:
EcucParamConfContainerDef
lowerMultiplicity = 1
upperMultiplicity = 255 upperMultiplicity = 256
lowerMultiplicity = 1
+parameter
DcmDsdSidTabId:
EcucIntegerParamDef
max = 255
min = 0
upperMultiplicity = 1
lowerMultiplicity = 1
10.2.4.5 DcmDslProtocolRow
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDslProtocolMaximumResponseSize 0..1 [ECUC_Dcm_01020]
DcmDslProtocolPriority 1 [ECUC_Dcm_00699]
DcmDslProtocolRowUsed 1 [ECUC_Dcm_01043]
DcmDslProtocolTransType 0..1 [ECUC_Dcm_00700]
DcmDslProtocolType 1 [ECUC_Dcm_01110]
DcmDspProtocolEcuAddr 0..1 [ECUC_Dcm_01081]
DcmSendRespPendOnRestart 1 [ECUC_Dcm_01114]
DcmTimStrP2ServerAdjust 1 [ECUC_Dcm_00729]
DcmTimStrP2StarServerAdjust 1 [ECUC_Dcm_00728]
DcmDemClientRef 1 [ECUC_Dcm_01083]
DcmDslProtocolRxBufferRef 1 [ECUC_Dcm_00701]
DcmDslProtocolSIDTable 1 [ECUC_Dcm_00702]
DcmDslProtocolTxBufferRef 1 [ECUC_Dcm_00704]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDslConnection 1..* This container contains the configuration of a communication
channel for one particular protocol.
Note that it is allowed to communicate with multiple testers,
therefore multiple connections may be configured for a protocol.
4
Default value 4095
Post-Build Variant Multiplicity false
Post-Build Variant Value false
Multiplicity Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: ECU
4
Default value true
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local
4
DCM_PERIODICTRANS_ON_ –
FLEXRAY
DCM_PERIODICTRANS_ON_IP –
DCM_ROE_ON_CAN –
DCM_ROE_ON_FLEXRAY –
DCM_ROE_ON_IP –
DCM_SUPPLIER_1 Reserved for SW supplier specific
DCM_SUPPLIER_10 Reserved for SW supplier specific
DCM_SUPPLIER_11 Reserved for SW supplier specific
DCM_SUPPLIER_12 Reserved for SW supplier specific
DCM_SUPPLIER_13 Reserved for SW supplier specific
DCM_SUPPLIER_14 Reserved for SW supplier specific
DCM_SUPPLIER_15 Reserved for SW supplier specific
DCM_SUPPLIER_2 Reserved for SW supplier specific
DCM_SUPPLIER_3 Reserved for SW supplier specific
DCM_SUPPLIER_4 Reserved for SW supplier specific
DCM_SUPPLIER_5 Reserved for SW supplier specific
DCM_SUPPLIER_6 Reserved for SW supplier specific
DCM_SUPPLIER_7 Reserved for SW supplier specific
DCM_SUPPLIER_8 Reserved for SW supplier specific
DCM_SUPPLIER_9 Reserved for SW supplier specific
DCM_UDS_ON_CAN UDS on CAN (ISO15765-3; ISO14229-1)
DCM_UDS_ON_FLEXRAY UDS on FlexRay (Manufacturer specific;
ISO14229-1)
DCM_UDS_ON_IP –
DCM_UDS_ON_LIN –
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: ECU
4
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: ECU
4
Scope / Dependency scope: ECU
DcmDslProtocolType:
+literal DCM_OBD_ON_CAN:
EcucEnumerationParamDef
EcucEnumerationLiteralDef
lowerMultiplicity = 1
upperMultiplicity = 1
+literal DCM_UDS_ON_CAN:
symbolicNameValue = true
EcucEnumerationLiteralDef
+literal DCM_UDS_ON_FLEXRAY:
EcucEnumerationLiteralDef
+literal DCM_ROE_ON_CAN:
EcucEnumerationLiteralDef
+literal DCM_ROE_ON_FLEXRAY:
EcucEnumerationLiteralDef
+literal DCM_PERIODICTRANS_ON_CAN:
EcucEnumerationLiteralDef
+literal DCM_PERIODICTRANS_ON_FLEXRAY:
EcucEnumerationLiteralDef
+literal DCM_OBD_ON_FLEXRAY:
EcucEnumerationLiteralDef
+literal DCM_ROE_ON_IP:
EcucEnumerationLiteralDef
+literal DCM_OBD_ON_IP:
EcucEnumerationLiteralDef
+literal DCM_PERIODICTRANS_ON_IP:
EcucEnumerationLiteralDef
+literal DCM_UDS_ON_IP:
EcucEnumerationLiteralDef
+literal DCM_UDS_ON_LIN:
EcucEnumerationLiteralDef
DCM_SUPPLIER_1:
+literal EcucEnumerationLiteralDef
DCM_SUPPLIER_2:
+literal EcucEnumerationLiteralDef
DCM_SUPPLIER_3:
+literal EcucEnumerationLiteralDef
DCM_SUPPLIER_4:
+literal EcucEnumerationLiteralDef
DCM_SUPPLIER_5:
+literal EcucEnumerationLiteralDef DCM_SUPPLIER_6:
+literal EcucEnumerationLiteralDef
DCM_SUPPLIER_7:
+literal EcucEnumerationLiteralDef
DCM_SUPPLIER_8:
+literal EcucEnumerationLiteralDef DCM_SUPPLIER_9:
+literal EcucEnumerationLiteralDef
DCM_SUPPLIER_10:
+literal EcucEnumerationLiteralDef
DCM_SUPPLIER_11:
+literal EcucEnumerationLiteralDef DCM_SUPPLIER_12:
+literal EcucEnumerationLiteralDef
DCM_SUPPLIER_13:
+literal EcucEnumerationLiteralDef
DCM_SUPPLIER_14:
+literal EcucEnumerationLiteralDef DCM_SUPPLIER_15:
EcucEnumerationLiteralDef
+literal
10.2.4.6 DcmDslConnection
No Included Parameters
Container Choices
Container Name Multiplicity Scope / Dependency
DcmDslMainConnection 0..1 This container contains the configuration for a main connection
of a diagnostic protocol. Additionally it may contain references to
ROE and Periodic connections if the protocol type or protocol
transmission type needs them.
DcmDslPeriodicTransmission 0..1 This container contains the configuration of a periodic
transmission connection.
Dcm: EcucModuleDef
upperMultiplicity = 1
lowerMultiplicity = 0
DcmDsl:
EcucParamConfContainerDef
lowerMultiplicity = 1
upperMultiplicity = 1
+subContainer
DcmDslProtocol:
EcucParamConfContainerDef
upperMultiplicity = 1
lowerMultiplicity = 1
+subContainer
DcmDslProtocolRow:
EcucParamConfContainerDef
upperMultiplicity = *
lowerMultiplicity = 1
+subContainer
DcmDslConnection: EcucChoiceContainerDef
lowerMultiplicity = 1
upperMultiplicity = *
+choice +choice
DcmDslMainConnection: DcmDslPeriodicTransmission:
EcucParamConfContainerDef EcucParamConfContainerDef
upperMultiplicity = 1 lowerMultiplicity = 0
lowerMultiplicity = 0 upperMultiplicity = 1
10.2.4.7 DcmDslMainConnection
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDslProtocolRxConnectionId 1 [ECUC_Dcm_00826]
DcmDslProtocolRxTesterSourceAddr 0..1 [ECUC_Dcm_01115]
DcmDslPeriodicTransmissionConRef 0..1 [ECUC_Dcm_00707]
DcmDslProtocolComMChannelRef 1 [ECUC_Dcm_00952]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDslProtocolRx 1..* This container contains the configuration parameters of a
reception channel in a diagnostic connection.
The PDU referenced by this reception channel can consume
meta data items of type SOURCE_ADDRESS_16 and
TARGET_ADDRESS_16.
DcmDslProtocolTx 0..1 This container contains the configuration parameters of a
transmission channel in a diagnostic connection.
The PDU referenced by this transmission channel can produce
meta data items of type TARGET_ADDRESS_16 and
SOURCE_ADDRESS_16.
4
Post-build time –
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
4
Post-build time –
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
DcmDslConnection:
EcucChoiceContainerDef
lowerMultiplicity = 1
upperMultiplicity = *
+choice
DcmDslMainConnection: EcucParamConfContainerDef
upperMultiplicity = 1
lowerMultiplicity = 0
+reference
DcmDslTxConfirmationPduId:
EcucIntegerParamDef
DcmDslPeriodicTransmissionConRef:
min = 0 EcucReferenceDef
max = 65535
lowerMultiplicity = 0
withAuto = true
upperMultiplicity = 1
symbolicNameValue = true
+reference
+destination
DcmDslProtocolTxPduRef:
EcucReferenceDef DcmDslPeriodicTransmission: +choice
lowerMultiplicity = 1 EcucParamConfContainerDef
upperMultiplicity = 1 lowerMultiplicity = 0
upperMultiplicity = 1
+subContainer
+reference
DcmDslProtocolRx: EcucParamConfContainerDef
upperMultiplicity = * DcmDslProtocolComMChannelRef:
lowerMultiplicity = 1 EcucReferenceDef
lowerMultiplicity = 1
upperMultiplicity = 1
+reference requiresSymbolicNameValue = true
+parameter
+parameter
DcmDslProtocolRxPduRef: DcmDslProtocolRxPduId: +destination
EcucReferenceDef EcucIntegerParamDef DcmDslProtocolRxAddrType:
EcucEnumerationParamDef
ComMChannel:
lowerMultiplicity = 1 min = 0
lowerMultiplicity = 1 EcucParamConfContainerDef
upperMultiplicity = 1 max = 65535
lowerMultiplicity = 1 upperMultiplicity = 1
lowerMultiplicity = 1
upperMultiplicity = 1 upperMultiplicity = 256
withAuto = true
symbolicNameValue = true
+destination
+literal +literal
Pdu: EcucParamConfContainerDef
DCM_PHYSICAL_TYPE: DCM_FUNCTIONAL_TYPE:
+destination lowerMultiplicity = 0
EcucEnumerationLiteralDef EcucEnumerationLiteralDef
upperMultiplicity = *
10.2.4.8 DcmDslProtocolRx
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDslProtocolRxAddrType 1 [ECUC_Dcm_00710]
DcmDslProtocolRxPduId 1 [ECUC_Dcm_00687]
DcmDslProtocolRxPduRef 1 [ECUC_Dcm_00770]
No Included Containers
4
Type EcucIntegerParamDef (Symbolic Name generated for this parameter)
Range 0 .. 65535
Default value –
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: ECU
withAuto = true
10.2.4.9 DcmDslProtocolTx
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDslTxConfirmationPduId 1 [ECUC_Dcm_00864]
DcmDslProtocolTxPduRef 1 [ECUC_Dcm_00772]
No Included Containers
10.2.4.10 DcmDslPeriodicTransmission
No Included Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDslPeriodicConnection 0..255 This container contains the configuration of a transmission
channel for a periodic transmission connection.
The PDU referenced by this transmission channel can produce
meta data items of type TARGET_ADDRESS_16 and
SOURCE_ADDRESS_16.
DcmDslConnection:
EcucChoiceContainerDef
lowerMultiplicity = 1
upperMultiplicity = *
+choice
DcmDslPeriodicTxConfirmationPduId:
DcmDslPeriodicTransmission: DcmDslPeriodicConnection:
EcucIntegerParamDef
EcucParamConfContainerDef EcucParamConfContainerDef
+parameter min = 0
lowerMultiplicity = 0 requiresIndex = true
max = 65535
upperMultiplicity = 1 lowerMultiplicity = 0
lowerMultiplicity = 1
upperMultiplicity = 255
upperMultiplicity = 1
withAuto = true
symbolicNameValue = true
+subContainer
DcmDslPeriodicTxPduRef:
+reference EcucReferenceDef
lowerMultiplicity = 1
upperMultiplicity = 1
+destination
Pdu: EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = *
10.2.4.11 DcmDslPeriodicConnection
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDslPeriodicTxConfirmationPduId 1 [ECUC_Dcm_00862]
DcmDslPeriodicTxPduRef 1 [ECUC_Dcm_00742]
No Included Containers
4
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
10.2.5 DcmDsp
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspDataDefaultEndianness 1 [ECUC_Dcm_00987]
DcmDspDDDIDcheckPerSourceDID 0..1 [ECUC_Dcm_00966]
DcmDspEnableObdMirror 1 [ECUC_Dcm_01061]
DcmDspMaxDidToRead 0..1 [ECUC_Dcm_00638]
DcmDspMaxPeriodicDidToRead 0..1 [ECUC_Dcm_00956]
DcmDspPowerDownTime 0..1 [ECUC_Dcm_00818]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspAuthentication 0..1 This container contains the configuration for the UDS service
Authentication (0x29).
DcmDspClearDTC 0..1 This container contains the configuration for the Clear DTC
service.
DcmDspComControl 0..1 Provides the configuration of the CommunicationControl
mechanism.
DcmDspCommonAuthorization 0..* This container contains the configuration (parameters) for the
common Authorization being equal for several services /
sub-services.
DcmDspControlDTCSetting 0..1 Provide the configuration of the ControlDTCSetting mechanism.
DcmDspData 0..* This container contains the configuration (parameters) of a Data
belonging to a DID
DcmDspDataInfo 0..* This container contains the configuration (parameters) of one
Data.
DcmDspDid 0..* This container contains the configuration (parameters) of the
DID.
5
4
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspDidInfo 0..* This container contains the configuration (parameters) of the
DID’s Info
DcmDspDidRange 0..* This container defines the DID Range
DcmDspEcuReset 0..1 This container contains the configuration for DcmDspEcuReset
service
DcmDspMemory 0..1 This container contains the configuration of the memory access.
DcmDspMemoryTransfer 0..1 This container contains the configuration of the memory transfer.
DcmDspPeriodicTransmission 0..1 This container contains the configuration (parameters) for
Periodic Transmission Scheduler.
DcmDspPid 0..* This container defines the availability of a PID to the DCM.
DcmDspReadDTCInformation 0..1 Provides further configuration for the UDS service Read
DTCInformation processing.
DcmDspRequestControl 0..* This container contains the configuration (parameters) of the
"Request control of on-board system, test or component" service
(Service $08). The DCM will request the control using an R-Port
requiring a PortInteface RequestControlServices_{Tid}. The
R-Port is named RequestControlServices_{Tid} where {Tid} is
the name of the container DcmDspRequestControl.
DcmDspRequestFileTransfer 0..1 This container contains the configuration for RequestFile
Transfer. This container only exists if RequestFileTransfer is
configured.
DcmDspRoe 0..1 Provide the configuration of the ResponseOnEvent mechanism.
DcmDspRoutine 0..* This container contains the configuration (parameters) for
Routines
DcmDspSecurity 1 This container contains the configuration ( DSP parameter) for
security level configuration (per security level) Description This
container contains Rows of DcmDspSecurityRow
DcmDspSession 1 Parent container holding single rows to configure particular
sessions
DcmDspVehInfo 0..* This container contains the configuration (parameters) for one
single VehicleInfoType of service $09
4
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: local
4
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
4
Multiplicity Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: local
DcmDspPowerDownTime:
EcucIntegerParamDef
+parameter
lowerMultiplicity = 0
upperMultiplicity = 1
min = 0
max = 255
DcmDspMaxDidToRead:
EcucIntegerParamDef
+parameter
lowerMultiplicity = 0
upperMultiplicity = 1
min = 1
max = 65535
DcmDspRoutine:
+subContainer EcucParamConfContainerDef
upperMultiplicity = *
lowerMultiplicity = 0
DcmDspRequestFileTransfer:
+subContainer EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspDid: EcucParamConfContainerDef
+subContainer
upperMultiplicity = *
lowerMultiplicity = 0
DcmDspDidInfo:
+subContainer EcucParamConfContainerDef
upperMultiplicity = *
lowerMultiplicity = 0
DcmDspSession:
+subContainer EcucParamConfContainerDef
lowerMultiplicity = 1
upperMultiplicity = 1
DcmDspSecurity:
+subContainer EcucParamConfContainerDef
lowerMultiplicity = 1
upperMultiplicity = 1
+parameter
DcmDspSecurityResetAttemptCounterOnTimeout:
EcucBooleanParamDef
defaultValue = false
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspPid: EcucParamConfContainerDef
+subContainer
upperMultiplicity = *
lowerMultiplicity = 0
DcmDspVehInfo:
+subContainer EcucParamConfContainerDef
upperMultiplicity = *
lowerMultiplicity = 0
upperMultiplicity = *
DcmDspRoe: lowerMultiplicity = 0
+subContainer EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspComControl:
+subContainer EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspDidRange:
+subContainer EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = *
DcmDspDDDIDcheckPerSourceDID:
+parameter EcucBooleanParamDef
lowerMultiplicity = 0
upperMultiplicity = 1
+literal
BIG_ENDIAN:
EcucEnumerationLiteralDef
DcmDspClearDTC:
+subContainer EcucParamConfContainerDef
upperMultiplicity = 1
lowerMultiplicity = 0 DcmDspEnableObdMirror:
EcucBooleanParamDef
+parameter
lowerMultiplicity = 1
upperMultiplicity = 1
defaultValue = false
10.2.5.1 DcmDspReadDTCInformation
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspReadDTCInformationSupportedObdUdsDtc 0..1 [ECUC_Dcm_01214]
Separation
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspReadDTCInformationUser 0..255 This container contains the configuration for user defined fault
DefinedFaultMemory memories in DcmDspReadDTCInformation.
10.2.5.2 DcmDspReadDTCInformationUserDefinedFaultMemory
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspReadDTCInformationUserDefinedFaultMemoryId 1 [ECUC_Dcm_01149]
DcmDspReadDTCInformationUserDefinedFaultMemory 0..32 [ECUC_Dcm_01150]
RoleRef
No Included Containers
10.2.5.3 DcmDspAuthentication
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspAuthenticationDefaultSessionTimeOut 0..1 [ECUC_Dcm_01161]
DcmDspAuthenticationGeneralNRC 0..1 [ECUC_Dcm_01159]
DcmDspAuthenticationRoleSize 1 [ECUC_Dcm_01152]
DcmDspAuthenticationWhiteListDIDMaxSize 0..1 [ECUC_Dcm_01155]
DcmDspAuthenticationWhiteListMemorySelectionMaxSize 0..1 [ECUC_Dcm_01157]
DcmDspAuthenticationWhiteListRIDMaxSize 0..1 [ECUC_Dcm_01156]
DcmDspAuthenticationWhiteListServicesMaxSize 0..1 [ECUC_Dcm_01154]
DcmDspAuthenticationDeauthenticatedRoleRef 1..32 [ECUC_Dcm_01153]
DcmDspAuthenticationGeneralNRCModeRuleRef 0..1 [ECUC_Dcm_01158]
DcmDspAuthenticationPersistStateModeRuleRef 0..1 [ECUC_Dcm_01160]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspAuthenticationConnection 0..* This container contains the authentication configuration use for a
dsl connection.
DcmDspAuthenticationRow 0..31 This container contains the definition of a single role. Each role
is a bit in the authentication role bitfield.
DcmDspAuthenticationTransmit 0..* This container contains the authentication configuration for the
Certificate subfunction trasnmitCertificate.
4
Post-build time –
Scope / Dependency scope: ECU
4
Range 1 .. 255
Default value –
Post-Build Variant Multiplicity false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: ECU
10.2.5.3.1 DcmDspAuthenticationTransmitCertificate
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspAuthenticationTransmitCertificateEvaluationId 1 [ECUC_Dcm_01242]
DcmDspAuthenticationTransmitCertificateFunction 0..1 [ECUC_Dcm_01244]
DcmDspAuthenticationTransmitCertificateRef 1 [ECUC_Dcm_01243]
No Included Containers
4
Post-Build Variant Multiplicity false
Multiplicity Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: ECU
10.2.5.4 DcmDspAuthenticationRow
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspAuthenticationRoleBitPosition 1 [ECUC_Dcm_01212]
No Included Containers
10.2.5.5 DcmDspAuthenticationConnection
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspAuthenticationEcuChallengeLength 1 [ECUC_Dcm_01186]
DcmDspAuthenticationCertificatePublicKeyStoreJobRef 0..1 [ECUC_Dcm_01176]
DcmDspAuthenticationClientChallengeSignJobRef 1 [ECUC_Dcm_01174]
DcmDspAuthenticationConnectionCertificateRef 1 [ECUC_Dcm_01164]
DcmDspAuthenticationConnectionMainConnectionRef 1 [ECUC_Dcm_01163]
DcmDspAuthenticationECUCertificateKeyElementRef 0..1 [ECUC_Dcm_01178]
DcmDspAuthenticationECUCertificateRef 0..1 [ECUC_Dcm_01177]
DcmDspAuthenticationPublicKeyElementRef 0..1 [ECUC_Dcm_01166]
DcmDspAuthenticationRandomJobRef 1 [ECUC_Dcm_01173]
DcmDspAuthenticationRoleElementRef 1 [ECUC_Dcm_01167]
DcmDspAuthenticationVerifyProofOfOwnerShipClientJob 1 [ECUC_Dcm_01175]
Ref
DcmDspAuthenticationWhiteListDIDElementRef 0..1 [ECUC_Dcm_01169]
DcmDspAuthenticationWhiteListMemorySelectionElement 0..1 [ECUC_Dcm_01171]
Ref
5
4
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspAuthenticationWhiteListRIDElementRef 0..1 [ECUC_Dcm_01170]
DcmDspAuthenticationWhiteListServicesElementRef 0..1 [ECUC_Dcm_01168]
No Included Containers
4
Multiplicity 1
Type Reference to DcmDslMainConnection
Post-Build Variant Multiplicity false
Post-Build Variant Value false
Multiplicity Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: ECU
4
Multiplicity Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: ECU
4
Post-build time –
Scope / Dependency scope: ECU
10.2.5.6.1 DcmDspComControl
No Included Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspComControlAllChannel 0..* Collection of ComM channels which shall be controlled if all
networks are addressed.
DcmDspComControlSetting 0..1 Provide the configuration of the Communication control.
DcmDspComControlSpecific 0..* Assigns subnet number to ComM channel which will be
Channel controlled.
DcmDspComControlSubNode 0..65535 This container gives information about the node identification
number and the ComM channel used to address a sub-network.
DcmDsp:
EcucParamConfContainerDef
DcmDspAllComMChannelRef: EcucReferenceDef
lowerMultiplicity = 0
DcmDspComControlAllChannel: lowerMultiplicity = 1
upperMultiplicity = 1 +reference
EcucParamConfContainerDef upperMultiplicity = 1
requiresSymbolicNameValue = true
lowerMultiplicity = 0
upperMultiplicity = *
+subContainer
DcmDspComControl:
EcucParamConfContainerDef +subContainer +destination
lowerMultiplicity = 0 ComMChannel:
upperMultiplicity = 1 EcucParamConfContainerDef
lowerMultiplicity = 1
upperMultiplicity = 256
+parameter
DcmDspComControlAllChannelUsed:
+destination
EcucBooleanParamDef
upperMultiplicity = 1 +parameter
lowerMultiplicity = 1
defaultValue = true ComMChannelId:
EcucIntegerParamDef
min = 0
max = 255
withAuto = true
symbolicNameValue = true
DcmDspComControlSpecificChannel: DcmDspSpecificComMChannelRef:
EcucParamConfContainerDef EcucReferenceDef
+reference
lowerMultiplicity = 0 lowerMultiplicity = 1
upperMultiplicity = * upperMultiplicity = 1
requiresSymbolicNameValue = true
DcmDspSubnetNumber:
+subContainer EcucIntegerParamDef
+parameter
min = 1
max = 14
lowerMultiplicity = 1
upperMultiplicity = 1
+parameter
DcmDspComControlSpecificChannelUsed:
EcucBooleanParamDef
upperMultiplicity = 1
lowerMultiplicity = 1
defaultValue = true
DcmDspComControlSetting:
EcucParamConfContainerDef
+subContainer
lowerMultiplicity = 0
upperMultiplicity = 1
+reference
DcmDspComControlCommunicationReEnableModeRuleRef: DcmModeRule:
EcucReferenceDef EcucParamConfContainerDef
+destination
lowerMultiplicity = 0 lowerMultiplicity = 1
upperMultiplicity = 1 upperMultiplicity = *
10.2.5.6.2 DcmDspComControlAllChannel
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspComControlAllChannelUsed 1 [ECUC_Dcm_01045]
DcmDspAllComMChannelRef 1 [ECUC_Dcm_00902]
No Included Containers
4
Scope / Dependency scope: ECU
10.2.5.6.3 DcmDspComControlSetting
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspComControlCommunicationReEnableModeRule 0..1 [ECUC_Dcm_00944]
Ref
No Included Containers
10.2.5.6.4 DcmDspComControlSpecificChannel
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspComControlSpecificChannelUsed 1 [ECUC_Dcm_01046]
DcmDspSubnetNumber 1 [ECUC_Dcm_00905]
DcmDspSpecificComMChannelRef 1 [ECUC_Dcm_00904]
No Included Containers
4
Multiplicity 1
Type EcucIntegerParamDef
Range 1 .. 14
Default value –
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: ECU
10.2.5.6.5 DcmDspComControlSubNode
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspComControlSubNodeId 1 [ECUC_Dcm_01031]
DcmDspComControlSubNodeUsed 1 [ECUC_Dcm_01032]
DcmDspComControlSubNodeComMChannelRef 1 [ECUC_Dcm_01030]
No Included Containers
DcmDspComControl:
EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
+subContainer
DcmDspComControlSubNodeId:
EcucIntegerParamDef
+parameter
max = 65535
min = 1
upperMultiplicity = 1
lowerMultiplicity = 1
DcmDspComControlSubNodeUsed:
EcucBooleanParamDef
+parameter
lowerMultiplicity = 1
upperMultiplicity = 1
defaultValue = true
10.2.5.7 DcmDspCommonAuthorization
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspCommonAuthorizationModeRuleRef 0..1 [ECUC_Dcm_01028]
DcmDspCommonAuthorizationSecurityLevelRef 0..* [ECUC_Dcm_01026]
DcmDspCommonAuthorizationSessionRef 0..* [ECUC_Dcm_01027]
No Included Containers
DcmDsp: EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
+subContainer
DcmDspCommonAuthorizationSessionRef: DcmDspSessionRow:
EcucReferenceDef EcucParamConfContainerDef
+reference +destination
lowerMultiplicity = 0 upperMultiplicity = 31
upperMultiplicity = * lowerMultiplicity = 0
DcmDspCommonAuthorizationModeRuleRef: DcmModeRule:
+reference EcucReferenceDef +destination EcucParamConfContainerDef
lowerMultiplicity = 0 lowerMultiplicity = 1
upperMultiplicity = 1 upperMultiplicity = *
10.2.5.8 DIDs
10.2.5.8.1 DcmDspDid
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspDidIdentifier 1 [ECUC_Dcm_00602]
DcmDspDidSize 0..1 [ECUC_Dcm_01099]
DcmDspDidUsed 1 [ECUC_Dcm_00805]
DcmDspDidUsePort 1 [ECUC_Dcm_01122]
DcmDspDidBndMBlockIdRef 0..1 [ECUC_Dcm_01185]
DcmDspDidInfoRef 1 [ECUC_Dcm_00604]
DcmDspDidRef 0..* [ECUC_Dcm_00606]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspDidSignal 0..* This container defines the reference to 1 DcmDspData container
and position relevant for this DID.
DcmDspDidSignalCompositePool 0..* Defines a collection of all contained signals for this root signal.
DcmDspDidSupportInfo 0..1 This container defines the support information to declare the
usability of the data bytes within the DIDs
4
Post-Build Variant Value false
Multiplicity Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
DcmDsp:
EcucParamConfContainerDef
DcmDspData:
lowerMultiplicity = 0 EcucParamConfContainerDef
upperMultiplicity = 1 +subContainer
lowerMultiplicity = 0
upperMultiplicity = *
+destination
DcmDspDidDataRef:
EcucReferenceDef USE_ATOMIC_SENDER_RECEIVER_INTERFACE:
EcucEnumerationLiteralDef
lowerMultiplicity = 0
+reference upperMultiplicity = 1 +literal
DcmDspDidSignal:
EcucParamConfContainerDef USE_ATOMIC_NV_DATA_INTERFACE:
+parameter DcmDspDidByteOffset: EcucEnumerationLiteralDef
lowerMultiplicity = 0 EcucIntegerParamDef
upperMultiplicity = * +literal
lowerMultiplicity = 1
upperMultiplicity = 1
+subContainer USE_ATOMIC_BNDM:
+subContainer min = 0
max = 65535 EcucEnumerationLiteralDef
DcmDspDid:
EcucParamConfContainerDef +subContainer +literal
upperMultiplicity = * DcmDspDidInfoRef: DcmDspDidInfo:
lowerMultiplicity = 0 EcucReferenceDef +destination EcucParamConfContainerDef
+reference
lowerMultiplicity = 1 upperMultiplicity = *
upperMultiplicity = 1 lowerMultiplicity = 0
+destination DcmDspDidRef:
+literal
EcucReferenceDef
lowerMultiplicity = 0 USE_DATA_ELEMENT_SPECIFIC_INTERFACES:
+reference upperMultiplicity = * EcucEnumerationLiteralDef
requiresIndex = true +literal
USE_ATOMIC_SENDER_RECEIVER_INTERFACE_AS_SERVICE:
DcmDspDidUsed: EcucEnumerationLiteralDef
+parameter EcucBooleanParamDef
upperMultiplicity = 1
lowerMultiplicity = 1 DcmDspDidSupportInfoPos:
EcucIntegerParamDef
min = 0
DcmDspDidSupportInfo: +parameter max = 255
EcucParamConfContainerDef lowerMultiplicity = 1 DcmDspDidSupportInfoLen:
+subContainer upperMultiplicity = 1 EcucIntegerParamDef
lowerMultiplicity = 0
upperMultiplicity = 1 min = 0
max = 255
+parameter lowerMultiplicity = 1
upperMultiplicity = 1
DcmDspDidSize:
EcucIntegerParamDef
+parameter BndMBlockIdentifier: EcucIntegerParamDef
min = 0
max = 65535 min = 0
lowerMultiplicity = 0 max = 65535
upperMultiplicity = 1 symbolicNameValue = true
+parameter
DcmDspDidBndMBlockIdRef:
EcucReferenceDef BndMBlockDescriptor:
+destination EcucParamConfContainerDef
+reference lowerMultiplicity = 0
upperMultiplicity = 1 lowerMultiplicity = 0
requiresSymbolicNameValue = true upperMultiplicity = *
10.2.5.8.2 DcmDspDidInfo
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspDDDIDMaxElements 0..1 [ECUC_Dcm_00970]
DcmDspDidDynamicallyDefined 1 [ECUC_Dcm_00612]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspDidControl 0..1 This container contains the configuration (parameters) of the DID
control.
DcmDspDidRead 0..1 This container contains the configuration (parameters) of the DID
read.
DcmDspDidWrite 0..1 This container contains the configuration (parameters) of the DID
write.
DcmDsp:
EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
+subContainer
DcmDspDidInfo: DcmDspDidRead:
EcucParamConfContainerDef EcucParamConfContainerDef
+subContainer
upperMultiplicity = * upperMultiplicity = 1
lowerMultiplicity = 0 lowerMultiplicity = 0
DcmDspDidWrite:
EcucParamConfContainerDef
+subContainer
upperMultiplicity = 1
lowerMultiplicity = 0
DcmDspDidControl:
EcucParamConfContainerDef
+subContainer
upperMultiplicity = 1
lowerMultiplicity = 0
DcmDspDidDynamicallyDefined:
EcucBooleanParamDef
+parameter
upperMultiplicity = 1
lowerMultiplicity = 1
DcmDspDDDIDMaxElements:
EcucIntegerParamDef
+parameter lowerMultiplicity = 0
upperMultiplicity = 1
min = 1
max = 255
10.2.5.8.3 DcmDspDidRead
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspDidReadModeRuleRef 0..1 [ECUC_Dcm_00917]
DcmDspDidReadRoleRef 0..32 [ECUC_Dcm_01141]
DcmDspDidReadSecurityLevelRef 0..* [ECUC_Dcm_00614]
DcmDspDidReadSessionRef 0..* [ECUC_Dcm_00615]
No Included Containers
DcmDspDidInfo:
EcucParamConfContainerDef
upperMultiplicity = *
lowerMultiplicity = 0
+subContainer
DcmDspDidReadSessionRef: DcmDspSessionRow:
EcucReferenceDef EcucParamConfContainerDef
+reference +destination
lowerMultiplicity = 0 upperMultiplicity = 31
upperMultiplicity = * lowerMultiplicity = 0
DcmDspDidReadModeRuleRef: DcmModeRule:
EcucReferenceDef EcucParamConfContainerDef
+reference +destination
lowerMultiplicity = 0 lowerMultiplicity = 1
upperMultiplicity = 1 upperMultiplicity = *
+reference
DcmDspDidReadRoleRef:
EcucReferenceDef
DcmDspAuthenticationRow:
+destination EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 32
lowerMultiplicity = 0
upperMultiplicity = 31
10.2.5.8.4 DcmDspDidSignal
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspDataByteSize 0..1 [ECUC_Dcm_01106]
DcmDspDidByteOffset 1 [ECUC_Dcm_01105]
DcmDspDidDataRef 0..1 [ECUC_Dcm_00808]
DcmDspDidSignalCompositeRef 0..* [ECUC_Dcm_01232]
No Included Containers
10.2.5.8.5 DcmDspDidSignalCompositePool
4
Post-Build Variant Multiplicity false
Multiplicity Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Configuration Parameters
No Included Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspDidSignal 0..* This container defines the reference to 1 DcmDspData container
and position relevant for this DID.
10.2.5.8.6 DcmDspDidSupportInfo
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspDidSupportInfoLen 1 [ECUC_Dcm_01103]
DcmDspDidSupportInfoPos 1 [ECUC_Dcm_01100]
No Included Containers
4
Type EcucIntegerParamDef
Range 0 .. 255
Default value –
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
10.2.5.8.7 DcmDspDidRange
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspDidRangeHasGaps 1 [ECUC_Dcm_00941]
DcmDspDidRangeIdentifierLowerLimit 1 [ECUC_Dcm_00938]
DcmDspDidRangeIdentifierUpperLimit 1 [ECUC_Dcm_00939]
DcmDspDidRangeIsDidAvailableFnc 0..1 [ECUC_Dcm_00946]
DcmDspDidRangeMaxDataLength 1 [ECUC_Dcm_00940]
DcmDspDidRangeReadDataLengthFnc 0..1 [ECUC_Dcm_01067]
DcmDspDidRangeReadDidFnc 0..1 [ECUC_Dcm_00947]
DcmDspDidRangeUsePort 1 [ECUC_Dcm_00945]
DcmDspDidRangeWriteDidFnc 0..1 [ECUC_Dcm_00948]
DcmDspDidRangeInfoRef 1 [ECUC_Dcm_00950]
No Included Containers
4
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
4
Post-build time –
Scope / Dependency scope: ECU
DcmDspDidRangeIdentifierUpperLimit:
+parameter EcucIntegerParamDef
min = 0
max = 65535
DcmDspDidRangeMaxDataLength:
+parameter EcucIntegerParamDef
min = 0
max = 65535
+parameter DcmDspDidRangeHasGaps:
EcucBooleanParamDef
+parameter DcmDspDidRangeUsePort:
EcucBooleanParamDef
DcmDspDidRangeIsDidAvailableFnc:
+parameter EcucFunctionNameDef
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspDidRangeReadDataLengthFnc:
+parameter EcucFunctionNameDef
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspDidRangeReadDidFnc:
+parameter EcucFunctionNameDef
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspDidRangeWriteDidFnc:
+parameter EcucFunctionNameDef
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspDidRangeInfoRef: DcmDspDidInfo:
+reference EcucReferenceDef +destination EcucParamConfContainerDef
upperMultiplicity = *
lowerMultiplicity = 0
10.2.5.8.8 DcmDspDidWrite
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspDidWriteModeRuleRef 0..1 [ECUC_Dcm_00922]
DcmDspDidWriteRoleRef 0..32 [ECUC_Dcm_01142]
DcmDspDidWriteSecurityLevelRef 0..* [ECUC_Dcm_00617]
DcmDspDidWriteSessionRef 0..* [ECUC_Dcm_00618]
No Included Containers
4
Scope / Dependency scope: ECU
4
Scope / Dependency scope: ECU
DcmDspDidInfo:
EcucParamConfContainerDef
upperMultiplicity = *
lowerMultiplicity = 0
+subContainer
DcmDspDidWriteSessionRef: DcmDspSessionRow:
EcucReferenceDef EcucParamConfContainerDef
+reference +destination
lowerMultiplicity = 0 upperMultiplicity = 31
upperMultiplicity = * lowerMultiplicity = 0
DcmDspDidWriteModeRuleRef: DcmModeRule:
EcucReferenceDef EcucParamConfContainerDef
+reference +destination
lowerMultiplicity = 0 lowerMultiplicity = 1
upperMultiplicity = 1 upperMultiplicity = *
+reference
DcmDspDidWriteRoleRef:
EcucReferenceDef
DcmDspAuthenticationRow:
lowerMultiplicity = 0 +destination EcucParamConfContainerDef
upperMultiplicity = 32
lowerMultiplicity = 0
upperMultiplicity = 31
10.2.5.9 DcmDspControlDTCSetting
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmSupportDTCSettingControlOptionRecord 0..1 [ECUC_Dcm_00965]
DcmDspControlDTCSettingReEnableModeRuleRef 0..1 [ECUC_Dcm_00936]
No Included Containers
4
Scope / Dependency scope: ECU
DcmDsp:
EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
+subContainer
DcmSupportDTCSettingControlOptionRecord:
+parameter EcucBooleanParamDef
upperMultiplicity = 1
lowerMultiplicity = 0
defaultValue = false
10.2.5.10.1 DcmDspData
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspDataByteSize 0..1 [ECUC_Dcm_01106]
DcmDspDataConditionCheckReadFnc 0..1 [ECUC_Dcm_00677]
DcmDspDataConditionCheckReadFncUsed 0..1 [ECUC_Dcm_00955]
DcmDspDataEcuSignal 0..1 [ECUC_Dcm_00825]
DcmDspDataEndianness 0..1 [ECUC_Dcm_00986]
DcmDspDataFreezeCurrentStateFnc 0..1 [ECUC_Dcm_00674]
DcmDspDataGetScalingInfoFnc 0..1 [ECUC_Dcm_00676]
DcmDspDataReadDataLengthFnc 0..1 [ECUC_Dcm_00671]
5
4
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspDataReadEcuSignal 0..1 [ECUC_Dcm_00824]
DcmDspDataReadFnc 0..1 [ECUC_Dcm_00669]
DcmDspDataResetToDefaultFnc 0..1 [ECUC_Dcm_00673]
DcmDspDataReturnControlToEcuFnc 0..1 [ECUC_Dcm_00672]
DcmDspDataShortTermAdjustmentFnc 0..1 [ECUC_Dcm_00675]
DcmDspDataType 1 [ECUC_Dcm_00985]
DcmDspDataUsePort 1 [ECUC_Dcm_00713]
DcmDspDataWriteFnc 0..1 [ECUC_Dcm_00670]
DcmDspOdxDataDescription 0..1 [ECUC_Dcm_00988]
DcmDspDataInfoRef 0..1 [ECUC_Dcm_00811]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspDiagnosisScaling 0..1 This container contains the configuration (parameters) of an
alternative Diagnosis Representation. Out if this the scaling
between Diagnosis and ECU internal representation and vice
versa can be calculated.
DcmDspDidDataSupportInfo 0..1 This container defines the supported information.
DcmDspExternalSRDataElement 0..1 This container defines the source of data in a provided port
Class which shall be read respectively the target of data in a required
port which shall be written.
This container shall contain either one DcmSubElementInData
ElementInstance OR DcmDataElementInstance OR DcmSub
ElementInImplDataElementInstance reference.
4
Scope / Dependency scope: ECU
4
Scope / Dependency scope: local
4
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: local
4
Link time –
Post-build time –
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: ECU
4
Multiplicity Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: ECU
4
Multiplicity Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: ECU
4
Post-Build Variant Multiplicity false
Post-Build Variant Value false
Multiplicity Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: ECU
Range USE_DATA_ASYNCH_CLIENT_ The DCM will access the Data using an R-Port
SERVER requiring a asynchronous ClientServertInterface
DataServices_{Data}. The R-Port is named Data
Services_{Data} where {Data} is the name of the
container DcmDspData.
USE_DATA_ASYNCH_CLIENT_ The Dcm will access the Data using an R-Port
SERVER_ERROR requiring a asynchronous ClientServertInterface
DataServices_{Data}. The parameter ErrorCode
can be returned to allow the application to trigger
a negative response during the operation. The
R-Port is named DataServices_{Data} where
{Data} is the name of the container DcmDspData.
USE_DATA_ASYNCH_FNC The DCM will access the Data using the
functions that are defined in parameters of type
EcucFunctionNameDef (but without DcmDsp
DataReadDataLengthFnc) in the DcmDspData
container. DCM_E_PENDING return is allowed.
OpStatus is existing as IN parameter.
USE_DATA_ASYNCH_FNC_ The DCM will access the Data using the
ERROR functions that are defined in parameters of type
EcucFunctionNameDef (but without DcmDsp
DataReadDataLengthFnc) in the DcmDspData
container. DCM_E_PENDING return is allowed.
OpStatus is existing as IN parameter. The
parameter ErrorCode can be returned to allow
the application to trigger a negative response
during the operation.
USE_DATA_ASYNCH_FNC_ The DCM will access the Data using the
PROXY functions that are defined in parameters of type
EcucFunctionNameDef (with DataLength and
ErrorCode parameter). DCM_E_PENDING
return is allowed. OpStatus is existing as IN
parameter.
Tags: atp.Status=draft
USE_DATA_SENDER_ The DCM will access the Data using an Port
RECEIVER requiring a SenderReceiverInteface (with is
Service=false) DataServices_{Data}. The Port is
namedDataServices_{Data} where {Data} is the
name of the container DcmDspData.
USE_DATA_SENDER_ The DCM will access the Data using an service
RECEIVER_AS_SERVICE Port requiring a SenderReceiverInteface (with is
Service=true) DataServices_{Data} . The Port is
namedDataServices_{Data} where {Data} is the
name of the container DcmDspData.
USE_DATA_SYNCH_CLIENT_ The DCM will access the Data using an R-Port
SERVER requiring a synchronous ClientServertInterface
DataServices_{Data}. The R-Port is named Data
Services_{Data} where {Data} is the name of the
container DcmDspData.
5
4
USE_DATA_SYNCH_FNC The DCM will access the Data using the
functions that are defined in parameters of type
EcucFunctionNameDef (but without DcmDsp
DataReadDataLengthFnc) in the DcmDspData
container. DCM_E_PENDING return value is not
allowed and OpStatus parameter is not existing
in the prototype.
USE_DATA_SYNCH_FNC_ The DCM will access the Data using the
PROXY functions that are defined in parameters of type
EcucFunctionNameDef (with DataLength and
ErrorCode parameter). DCM_E_PENDING
return value is not allowed and OpStatus
parameter is not existing in the prototype.
Tags: atp.Status=draft
USE_ECU_SIGNAL The DCM will access the Data using a direct
access to IoHwAb
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: ECU
+destination
+subContainer DcmDspDataInfoRef:
EcucReferenceDef DcmDspDataShortTermAdjustmentFnc:
+reference EcucFunctionNameDef
DcmDspData: lowerMultiplicity = 0
EcucParamConfContainerDef upperMultiplicity = 1 lowerMultiplicity = 0
+parameter upperMultiplicity = 1
lowerMultiplicity = 0
upperMultiplicity = *
DcmDspDataReturnControlToEcuFnc:
+parameter EcucFunctionNameDef
DcmDspDataConditionCheckReadFnc:
lowerMultiplicity = 0 EcucFunctionNameDef
upperMultiplicity = 1
lowerMultiplicity = 0
+parameter
upperMultiplicity = 1
DcmDspDataResetToDefaultFnc:
+parameter EcucFunctionNameDef
DcmDspDataWriteFnc:
lowerMultiplicity = 0 EcucFunctionNameDef
upperMultiplicity = 1
lowerMultiplicity = 0
+parameter upperMultiplicity = 1
DcmDspDataByteSize:
EcucIntegerParamDef
+parameter
lowerMultiplicity = 0
upperMultiplicity = 1 DcmDspDataReadFnc:
min = 0 EcucFunctionNameDef
max = 65535
+parameter lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspDataReadDataLengthFnc:
+parameter EcucFunctionNameDef
DcmDspDataFreezeCurrentStateFnc:
lowerMultiplicity = 0 EcucFunctionNameDef
upperMultiplicity = 1
+parameter lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspDataGetScalingInfoFnc:
+parameter EcucFunctionNameDef
DcmDspDataEcuSignal:
lowerMultiplicity = 0 EcucFunctionNameDef
upperMultiplicity = 1
+parameter lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspDataConditionCheckReadFncUsed:
+parameter EcucBooleanParamDef DcmDspDataReadEcuSignal:
EcucFunctionNameDef
lowerMultiplicity = 0
upperMultiplicity = 1 lowerMultiplicity = 0
+parameter
upperMultiplicity = 1
DcmDspDidDataSupportInfo: DcmDspDidDataSupportInfoBit:
+subContainer EcucParamConfContainerDef +parameter EcucIntegerParamDef
lowerMultiplicity = 0 min = 0
upperMultiplicity = 1 max = 255
lowerMultiplicity = 1
upperMultiplicity = 1
+reference
DcmDspDidSupportInfo:
DcmDspDidDataSupportInfoRef: EcucParamConfContainerDef
EcucReferenceDef +destination
lowerMultiplicity = 0
lowerMultiplicity = 1 upperMultiplicity = 1
upperMultiplicity = 1
lowerMultiplicity = 0 lowerMultiplicity = 1
upperMultiplicity = * upperMultiplicity = 1 +literal
USE_DATA_ASYNCH_CLIENT_SERVER:
EcucEnumerationLiteralDef
+literal
USE_DATA_SENDER_RECEIVER:
EcucEnumerationLiteralDef
+literal
USE_DATA_SENDER_RECEIVER_AS_SERVICE:
EcucEnumerationLiteralDef
+literal
USE_DATA_SYNCH_FNC:
EcucEnumerationLiteralDef
+literal
USE_DATA_SYNCH_FNC_PROXY:
EcucEnumerationLiteralDef
+parameter
+literal
USE_ECU_SIGNAL: EcucEnumerationLiteralDef
+literal USE_DATA_ASYNCH_FNC:
EcucEnumerationLiteralDef
+literal
USE_DATA_ASYNCH_FNC_ERROR:
EcucEnumerationLiteralDef
+literal USE_DATA_ASYNCH_FNC_PROXY:
EcucEnumerationLiteralDef
+literal USE_DATA_ASYNCH_CLIENT_SERVER_ERROR:
EcucEnumerationLiteralDef
+literal
DcmDspDataType: BOOLEAN:
EcucEnumerationParamDef EcucEnumerationLiteralDef +literal
UINT8:
lowerMultiplicity = 1 EcucEnumerationLiteralDef
upperMultiplicity = 1
+literal
SINT8:
EcucEnumerationLiteralDef +literal
UINT16:
EcucEnumerationLiteralDef
+literal
SINT16:
EcucEnumerationLiteralDef +literal
UINT32:
EcucEnumerationLiteralDef
+literal
SINT32:
EcucEnumerationLiteralDef +literal
+parameter UINT8_N:
EcucEnumerationLiteralDef
+literal
SINT8_N:
EcucEnumerationLiteralDef +literal
UINT16_N:
EcucEnumerationLiteralDef
+literal
SINT16_N:
EcucEnumerationLiteralDef
+literal UINT32_N:
EcucEnumerationLiteralDef
+literal
SINT32_N:
EcucEnumerationLiteralDef
UINT8_DYN:
+literal EcucEnumerationLiteralDef
+literal
FLOAT:
EcucEnumerationLiteralDef
+literal FLOAT_N:
EcucEnumerationLiteralDef
DcmDspData: lowerMultiplicity = 1
upperMultiplicity = 1 +literal UINT8:
EcucParamConfContainerDef
EcucEnumerationLiteralDef
lowerMultiplicity = 0
+literal SINT8:
upperMultiplicity = *
EcucEnumerationLiteralDef
+literal UINT16:
+parameter EcucEnumerationLiteralDef
+literal SINT16:
EcucEnumerationLiteralDef
+literal UINT32:
EcucEnumerationLiteralDef
+literal SINT32:
EcucEnumerationLiteralDef
DcmDspDataByteSize:
EcucIntegerParamDef
+parameter
lowerMultiplicity = 0
upperMultiplicity = 1
min = 0
DcmDspDataEndianness: +literal max = 65535
LITTLE_ENDIAN:
EcucEnumerationParamDef
EcucEnumerationLiteralDef
lowerMultiplicity = 0
+parameter upperMultiplicity = 1 +literal OPAQUE:
EcucEnumerationLiteralDef
+literal
BIG_ENDIAN:
EcucEnumerationLiteralDef DcmDspOdxDataDescription:
EcucAddInfoParamDef
+parameter lowerMultiplicity = 0
upperMultiplicity = 1
DcmNestedDataElement: EcucInstanceReferenceDef
lowerMultiplicity = 0
upperMultiplicity = 1
destinationContext = VARIABLE-DATA-PROTOTYPE DATA-PROTOTYPE
destinationType = DATA-PROTOTYPE
DcmDspInternalDataValue:
EcucIntegerParamDef
DcmDspDiagnosticDataElementRef:
EcucForeignReferenceDef lowerMultiplicity = 1
upperMultiplicity = 1
lowerMultiplicity = 1
upperMultiplicity = 1
destinationType = DIAGNOSTIC-DATA-ELEMENT +parameter
+reference
DcmDspAlternativeDataType: DcmDspTextTableMapping:
EcucParamConfContainerDef +subContainer EcucParamConfContainerDef
+choice
lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = *
+choice
+reference
DcmDspAlternativeDiagnosticDataElement: +parameter
EcucParamConfContainerDef DcmApplicationDataType:
EcucForeignReferenceDef DcmDspDiagnosisRepresentationDataValue:
lowerMultiplicity = 0 EcucIntegerParamDef
upperMultiplicity = 1 lowerMultiplicity = 1
upperMultiplicity = 1 lowerMultiplicity = 1
destinationType = APPLICATION-DATA-TYPE upperMultiplicity = 1
DcmDspData: DcmDspExternalSRDataElementClass:
EcucParamConfContainerDef EcucChoiceContainerDef
lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = * upperMultiplicity = 1
+subContainer
DcmSubElementInDataElementInstance:
+choice EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
+choice +choice
DcmDataElementInstance: DcmSubElementInImplDataElementInstance:
EcucParamConfContainerDef EcucParamConfContainerDef
lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = 1
+reference
DcmDataElementInstanceRef: EcucInstanceReferenceDef
lowerMultiplicity = 1
upperMultiplicity = 1
destinationContext = ROOT-SW-COMPOSITION-PROTOTYPE SW-COMPONENT-PROTOTYPE PORT-PROTOTYPE
destinationType = AUTOSAR-DATA-PROTOTYPE
+reference
DcmSubElementInImplDataElementInstanceRef: EcucInstanceReferenceDef
+reference
DcmSubElementInDataElementInstanceRef: EcucInstanceReferenceDef
10.2.5.10.2 DcmDspDiagnosisScaling
No Included Parameters
Container Choices
Container Name Multiplicity Scope / Dependency
DcmDspAlternativeDataInterface 0..1 This container contains the configuration (parameters) of an
alternative Diagnosis Representation by the means of a Variable
DataPrototoype in a DataInterface.
Additionally a reference to PortInterfaceMapping can be defined
which provide already the mapping rules between the Variable
DataPrototoype in a DataInterface used by the software
component (DcmDspExternalSRDataElementClass) and the
intended Diagnosis Representation defined by DcmData
Element.
DcmDspAlternativeDataType 0..1 This container contains the configuration (parameters) of an
alternative Diagnosis Representation by the means of an
ApplicationDataType.
Additionally the definition of a text table mapping can be a
defined for ApplicationDataTypes with a CompuMethod of
category TEXTTABLE and SCALE_LINEAR_AND_TEXTTABLE.
DcmDspAlternativeDiagnosticData 0..1 This container contains the configuration (parameters) of an
Element alternative Diagnosis Representation by the means of Diagnostic
Extract.
10.2.5.10.3 DcmDspArgumentScaling
No Included Parameters
Container Choices
Container Name Multiplicity Scope / Dependency
DcmDspAlternativeArgumentData 0..1 This container contains the configuration (parameters) of an
alternative Diagnosis Representation by the means of a
ArgumentDataPrototype.
5
4
Container Choices
Container Name Multiplicity Scope / Dependency
DcmDspAlternativeDataType 0..1 This container contains the configuration (parameters) of an
alternative Diagnosis Representation by the means of an
ApplicationDataType.
Additionally the definition of a text table mapping can be a
defined for ApplicationDataTypes with a CompuMethod of
category TEXTTABLE and SCALE_LINEAR_AND_TEXTTABLE.
DcmDspAlternativeDiagnosticData 0..1 This container contains the configuration (parameters) of an
Element alternative Diagnosis Representation by the means of Diagnostic
Extract.
DcmDspStartRoutineInSignal: DcmDspArgumentScaling:
EcucParamConfContainerDef EcucChoiceContainerDef
+subContainer
upperMultiplicity = * lowerMultiplicity = 0
lowerMultiplicity = 1 upperMultiplicity = 1
requiresIndex = true
DcmDspStartRoutineOutSignal: DcmDspAlternativeArgumentData:
EcucParamConfContainerDef EcucParamConfContainerDef
+choice
+subContainer
upperMultiplicity = * lowerMultiplicity = 0
lowerMultiplicity = 1 upperMultiplicity = 1
requiresIndex = true
DcmDspStopRoutineInSignal: +reference
EcucParamConfContainerDef
+subContainer DcmDataElement: EcucForeignReferenceDef
upperMultiplicity = *
lowerMultiplicity = 1
lowerMultiplicity = 1
upperMultiplicity = 1
requiresIndex = true
destinationType = ARGUMENT-DATA-PROTOTYPE
DcmDspStopRoutineOutSignal:
EcucParamConfContainerDef DcmDspAlternativeDataType:
+subContainer
+choice EcucParamConfContainerDef
upperMultiplicity = *
lowerMultiplicity = 1 lowerMultiplicity = 0
requiresIndex = true upperMultiplicity = 1
DcmDspRequestRoutineResultsInSignal: DcmDspAlternativeDiagnosticDataElement:
EcucParamConfContainerDef EcucParamConfContainerDef
+subContainer +choice
upperMultiplicity = * lowerMultiplicity = 0
lowerMultiplicity = 1 upperMultiplicity = 1
requiresIndex = true
DcmDspRequestRoutineResultsOutSignal:
EcucParamConfContainerDef +reference
+subContainer
upperMultiplicity = * DcmDspDiagnosticDataElementRef:
lowerMultiplicity = 1 EcucForeignReferenceDef
requiresIndex = true
lowerMultiplicity = 1
upperMultiplicity = 1
destinationType = DIAGNOSTIC-DATA-ELEMENT
10.2.5.10.4 DcmDspAlternativeArgumentData
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDataElement 1 [ECUC_Dcm_01056]
No Included Containers
10.2.5.10.5 DcmDspTextTableMapping
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspDiagnosisRepresentationDataValue 1 [ECUC_Dcm_01001]
DcmDspInternalDataValue 1 [ECUC_Dcm_01000]
No Included Containers
4
Type EcucIntegerParamDef
Range 0 .. 18446744073709551615
Default value –
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: ECU
10.2.5.10.6 DcmDspAlternativeDataInterface
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDataElement 0..1 [ECUC_Dcm_00995]
DcmNestedDataElement 0..1 [ECUC_Dcm_01233]
DcmPortInterfaceMapping 0..1 [ECUC_Dcm_00996]
No Included Containers
10.2.5.10.7 DcmDspAlternativeDataType
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmApplicationDataType 1 [ECUC_Dcm_00998]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspTextTableMapping 0..* The purpose of the DcmDspTextTableMapping is to associate a
texttable value defined in the context of the Dcm to a texttable
value defined in the context of a CompuMethod referenced by a
DataType that shall be taken to create a dataElement in a
SenderReceiverInterface. By this means it is possible to create a
primitive version of a TexttableMapping (which can only be
applied if a dataElement already exists).
In other words, the DcmDspTextTableMapping provides a similar
mechanism to the TexttableMapping in a situation where the
TexttableMapping cannot be applied since the SenderReceiver
Interface for the PortPrototype on the Dcm ServiceComponent
does not yet exist.
10.2.5.10.8 DcmDspAlternativeDiagnosticDataElement
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspDiagnosticDataElementRef 1 [ECUC_Dcm_01085]
No Included Containers
10.2.5.10.9 DcmDataElementInstance
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDataElementInstanceRef 1 [ECUC_Dcm_00991]
No Included Containers
10.2.5.10.10 DcmDspExternalSRDataElementClass
No Included Parameters
Container Choices
Container Name Multiplicity Scope / Dependency
DcmDataElementInstance 0..1 Instance Reference to the primitive data in a port where the data
element is typed with an ApplicationPrimitveDataType or an
ImplementationDataType.
DcmSubElementInDataElement 0..1 Instance Reference to the primitve sub-element (at any level) of
Instance composite data in a port where the data element is typed with an
ApplicationCompositeDataType.
5
4
Container Choices
Container Name Multiplicity Scope / Dependency
DcmSubElementInImplData 0..1 Instance Reference to the primitve sub-element (at any level) of
ElementInstance composite data in a port where the data element is typed with an
ImplementationDataType.
10.2.5.10.11 DcmDspPidService01ExternalSRDataElementClass
No Included Parameters
Container Choices
Container Name Multiplicity Scope / Dependency
DcmDataElementInstance 0..1 Instance Reference to the primitive data in a port where the data
element is typed with an ApplicationPrimitveDataType or an
ImplementationDataType.
DcmSubElementInDataElement 0..1 Instance Reference to the primitve sub-element (at any level) of
Instance composite data in a port where the data element is typed with an
ApplicationCompositeDataType.
DcmSubElementInImplData 0..1 Instance Reference to the primitve sub-element (at any level) of
ElementInstance composite data in a port where the data element is typed with an
ImplementationDataType.
10.2.5.10.12 DcmSubElementInDataElementInstance
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmSubElementInDataElementInstanceRef 1 [ECUC_Dcm_00990]
No Included Containers
10.2.5.10.13 DcmSubElementInImplDataElementInstance
4
Description Instance Reference to the primitve sub-element (at any level) of composite data in a
port where the data element is typed with an ImplementationDataType.
Configuration Parameters
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmSubElementInImplDataElementInstanceRef 1 [ECUC_Dcm_00992]
No Included Containers
10.2.5.10.14 DcmDspDidDataSupportInfo
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspDidDataSupportInfoBit 1 [ECUC_Dcm_01097]
DcmDspDidDataSupportInfoRef 1 [ECUC_Dcm_01098]
No Included Containers
10.2.5.10.15 DcmDspDataInfo
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspDataScalingInfoSize 0..1 [ECUC_Dcm_00611]
No Included Containers
DcmConfigSet:
EcucParamConfContainerDef
+subContainer
DcmDsp:
EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
+subContainer
DcmDspDataInfo: DcmDspDataScalingInfoSize:
EcucParamConfContainerDef EcucIntegerParamDef
+parameter
lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = * upperMultiplicity = 1
min = 0
max = 4294967295
10.2.5.11 DcmDspDidControl
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspDidControlMask 1 [ECUC_Dcm_01059]
DcmDspDidControlMaskSize 0..1 [ECUC_Dcm_01060]
DcmDspDidFreezeCurrentState 1 [ECUC_Dcm_00624]
DcmDspDidResetToDefault 1 [ECUC_Dcm_00623]
DcmDspDidShortTermAdjustment 1 [ECUC_Dcm_00625]
DcmDspDidControlModeRuleRef 0..1 [ECUC_Dcm_00923]
DcmDspDidControlRoleRef 0..32 [ECUC_Dcm_01143]
DcmDspDidControlSecurityLevelRef 0..* [ECUC_Dcm_00620]
DcmDspDidControlSessionRef 0..* [ECUC_Dcm_00621]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspDidControlEnableMask 0..32 The shortname of the container value defines the symbol of the
controlMask.
4
Scope / Dependency scope: ECU
DcmDspDidInfo:
EcucParamConfContainerDef
upperMultiplicity = *
lowerMultiplicity = 0
+subContainer
DcmDspDidControlSessionRef: DcmDspSessionRow:
+reference EcucReferenceDef +destination EcucParamConfContainerDef
lowerMultiplicity = 0 upperMultiplicity = 31
upperMultiplicity = * lowerMultiplicity = 0
DcmDspDidResetToDefault:
+parameter EcucBooleanParamDef DcmDspAuthenticationRow:
EcucParamConfContainerDef
lowerMultiplicity = 1
upperMultiplicity = 1 lowerMultiplicity = 0
upperMultiplicity = 31
DcmDspDidFreezeCurrentState: +destination
+parameter EcucBooleanParamDef
lowerMultiplicity = 1
DcmDspDidControlRoleRef:
upperMultiplicity = 1
+reference EcucReferenceDef
lowerMultiplicity = 0
upperMultiplicity = 32
+parameter DcmDspDidShortTermAdjustment:
EcucBooleanParamDef
lowerMultiplicity = 1
upperMultiplicity = 1
DcmDspDidControlMaskBitPosition:
DcmDspDidControlEnableMask:
+parameter EcucIntegerParamDef
+subContainer EcucParamConfContainerDef
lowerMultiplicity = 1
upperMultiplicity = 32
upperMultiplicity = 1
lowerMultiplicity = 0
min = 0
max = 31
+literal DCM_CONTROLMASK_NO:
EcucEnumerationLiteralDef
DcmDspDidControlMaskSize: EcucIntegerParamDef
+parameter lowerMultiplicity = 0
upperMultiplicity = 1
min = 1
max = 4294967294
10.2.5.12 DcmDspDidControlEnableMask
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspDidControlMaskBitPosition 1 [ECUC_Dcm_01058]
No Included Containers
10.2.5.13.1 DcmDspEcuReset
No Included Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspEcuResetRow 1..* This container contains the configuration for each DcmDspEcu
Reset subservice.
DcmDsp:
EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
+subContainer
DcmDspEcuReset:
EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
+subContainer
DcmDspEcuResetRow: DcmDspEcuResetId:
EcucParamConfContainerDef EcucIntegerParamDef
+parameter
lowerMultiplicity = 1 min = 0
upperMultiplicity = * max = 127
lowerMultiplicity = 1
upperMultiplicity = 1
10.2.5.13.2 DcmDspEcuResetRow
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspEcuResetId 1 [ECUC_Dcm_01113]
DcmResponseToEcuReset 1 [ECUC_Dcm_01039]
No Included Containers
4
BEFORE_RESET Answer to EcuReset service should come before
the reset.
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time –
Post-build time –
Scope / Dependency scope: ECU
10.2.5.14 Memory
10.2.5.14.1 DcmDspMemory
No Included Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspAddressAndLengthFormat 0..1 This container contains the configuration of the supported
Identifier AddressAndLengthFormatIdentifiers for memory access.
DcmDspMemoryIdInfo 1..* Provides the value of memory identifier used to select the
desired memory device.
This container contains the configuration of the memory access
requested through diagnostic services : ReadMemoryBy
Address, WriteMemoryByAddress, DynamicallyDefineData
Identifier, RequestDownload and RequestUpload.
10.2.5.14.2 DcmDspMemoryTransfer
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspMemoryTransferUsePort 1 [ECUC_Dcm_01133]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspAddressAndLengthFormat 0..1 This container contains the configuration of the supported
Identifier AddressAndLengthFormatIdentifiers for memory access.
DcmDspMemoryTransferIdInfo 1..* Provides the value of memory identifier used to select the
desired memory device
This container contains the configuration of the memory access
requested through diagnostic services : RequestDownload,
RequestUpload, TransferData, RequestTransferExit
10.2.5.14.3 DcmDspAddressAndLengthFormatIdentifier
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspSupportedAddressAndLengthFormatIdentifier 1..* [ECUC_Dcm_00964]
No Included Containers
DcmDsp: EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
+subContainer
DcmDspMemory:
EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
+subContainer
DcmDspAddressAndLengthFormatIdentifier:
EcucParamConfContainerDef
lowerMultiplicity = 0
DcmDspSupportedAddressAndLengthFormatIdentifier:
upperMultiplicity = 1
EcucIntegerParamDef
+parameter
lowerMultiplicity = 1
upperMultiplicity = *
min = 0
max = 255
10.2.5.14.4 DcmDspMemoryIdInfo
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspMemoryIdValue 0..1 [ECUC_Dcm_00913]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspReadMemoryRangeBy 0..* Provides a memory range allowed for reading via labels (lower
LabelInfo and higher address configured as strings).
DcmDspReadMemoryRangeInfo 0..* Provides the range of memory address allowed for reading
DcmDspWriteMemoryRangeBy 0..* Provides a memory range allowed for writing via labels (lower
LabelInfo and higher address configured as strings).
DcmDspWriteMemoryRangeInfo 0..* Provides the range of memory address allowed for writting.
DcmDsp:
EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
+subContainer
DcmDspMemory:
EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
+subContainer
DcmDspMemoryIdInfo:
DcmDspMemoryIdValue: EcucIntegerParamDef
EcucParamConfContainerDef
+parameter lowerMultiplicity = 0
lowerMultiplicity = 1
upperMultiplicity = 1
upperMultiplicity = *
min = 0
max = 255
DcmDspReadMemoryRangeInfo:
+subContainer EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = *
DcmDspWriteMemoryRangeInfo:
+subContainer EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = *
DcmDspReadMemoryRangeByLabelInfo:
+subContainer EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = *
DcmDspWriteMemoryRangeByLabelInfo:
+subContainer EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = *
10.2.5.14.5 DcmDspMemoryTransferIdInfo
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspMemoryIdValue 0..1 [ECUC_Dcm_01138]
No Included Containers
10.2.5.14.6 DcmDspReadMemoryRangeByLabelInfo
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspReadMemoryRangeByLabelHigh 1 [ECUC_Dcm_01070]
DcmDspReadMemoryRangeByLabelLow 1 [ECUC_Dcm_01069]
DcmDspReadMemoryRangeModeRuleRef 0..1 [ECUC_Dcm_01072]
DcmDspReadMemoryRangeSecurityLevelRef 0..* [ECUC_Dcm_01071]
DcmDspReadMemoryRangeSessionLevelRef 0..* [ECUC_Dcm_01088]
No Included Containers
10.2.5.14.7 DcmDspReadMemoryRangeInfo
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspReadMemoryRangeHigh 1 [ECUC_Dcm_00787]
DcmDspReadMemoryRangeLow 1 [ECUC_Dcm_00786]
DcmDspReadMemoryRangeModeRuleRef 0..1 [ECUC_Dcm_00920]
DcmDspReadMemoryRangeSecurityLevelRef 0..* [ECUC_Dcm_00788]
DcmDspReadMemoryRangeSessionLevelRef 0..* [ECUC_Dcm_01086]
No Included Containers
4
Type Reference to DcmModeRule
Post-Build Variant Multiplicity false
Post-Build Variant Value false
Multiplicity Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
4
Post-Build Variant Multiplicity false
Post-Build Variant Value false
Multiplicity Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
10.2.5.14.8 DcmDspWriteMemoryRangeByLabelInfo
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspWriteMemoryRangeByLabelHigh 1 [ECUC_Dcm_01075]
DcmDspWriteMemoryRangeByLabelLow 1 [ECUC_Dcm_01074]
DcmDspWriteMemoryRangeModeRuleRef 0..1 [ECUC_Dcm_01077]
DcmDspWriteMemoryRangeSecurityLevelRef 0..* [ECUC_Dcm_01076]
DcmDspWriteMemoryRangeSessionLevelRef 0..* [ECUC_Dcm_01089]
No Included Containers
4
Multiplicity 1
Type EcucStringParamDef
Default value –
Regular Expression [a-zA-Z0-9_]([a-zA-Z0-9\._])*
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: local
4
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
4
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
DcmDspReadMemoryRangeByLabelLow:
DcmDsp: DcmDspReadMemoryRangeByLabelInfo: EcucStringParamDef
EcucParamConfContainerDef EcucParamConfContainerDef
+parameter lowerMultiplicity = 1
lowerMultiplicity = 0 lowerMultiplicity = 0 upperMultiplicity = 1
upperMultiplicity = 1 upperMultiplicity = * regularExpression = [a-zA-Z0-9_]([a-zA-Z0-9\._])*
+subContainer DcmDspReadMemoryRangeByLabelHigh:
EcucStringParamDef
DcmDspMemory: +parameter
lowerMultiplicity = 1
EcucParamConfContainerDef
upperMultiplicity = 1
lowerMultiplicity = 0 regularExpression = [a-zA-Z0-9_]([a-zA-Z0-9\._])*
upperMultiplicity = 1
+subContainer DcmDspReadMemoryRangeSecurityLevelRef:
EcucReferenceDef
DcmDspMemoryIdInfo: +reference
lowerMultiplicity = 0
EcucParamConfContainerDef
upperMultiplicity = *
lowerMultiplicity = 1
upperMultiplicity = * +subContainer
+reference DcmDspReadMemoryRangeModeRuleRef:
EcucReferenceDef
lowerMultiplicity = 0
upperMultiplicity = 1
+reference
DcmDspReadMemoryRangeSessionLevelRef:
EcucReferenceDef
DcmModeRule: +destination
lowerMultiplicity = 0
upperMultiplicity = * EcucParamConfContainerDef
lowerMultiplicity = 1
upperMultiplicity = *
+destination +destination
+destination
DcmDspSessionRow:
EcucParamConfContainerDef +destination DcmDspSecurityRow:
EcucParamConfContainerDef
upperMultiplicity = 31
lowerMultiplicity = 0 upperMultiplicity = 31
lowerMultiplicity = 0
+destination
DcmDspWriteMemoryRangeByLabelInfo: DcmDspWriteMemoryRangeSessionLevelRef:
EcucParamConfContainerDef EcucReferenceDef
+reference lowerMultiplicity = 0
lowerMultiplicity = 0
upperMultiplicity = * upperMultiplicity = *
+subContainer
DcmDspWriteMemoryRangeModeRuleRef:
EcucReferenceDef
+reference
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspWriteMemoryRangeSecurityLevelRef:
EcucReferenceDef
+reference
lowerMultiplicity = 0
upperMultiplicity = *
+parameter
DcmDspWriteMemoryRangeByLabelHigh:
DcmDspWriteMemoryRangeByLabelLow: +parameter EcucStringParamDef
EcucStringParamDef
lowerMultiplicity = 1
lowerMultiplicity = 1 upperMultiplicity = 1
upperMultiplicity = 1 regularExpression = [a-zA-Z0-9_]([a-zA-Z0-9\._])*
regularExpression = [a-zA-Z0-9_]([a-zA-Z0-9\._])*
10.2.5.14.9 DcmDspWriteMemoryRangeInfo
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspWriteMemoryRangeHigh 1 [ECUC_Dcm_00791]
DcmDspWriteMemoryRangeLow 1 [ECUC_Dcm_00790]
DcmDspWriteMemoryRangeModeRuleRef 0..1 [ECUC_Dcm_00916]
DcmDspWriteMemoryRangeSecurityLevelRef 0..* [ECUC_Dcm_00793]
DcmDspWriteMemoryRangeSessionLevelRef 0..* [ECUC_Dcm_01087]
No Included Containers
DcmDspMemory:
EcucParamConfContainerDef DcmDsp: DcmDspReadMemoryRangeLow:
+subContainer EcucParamConfContainerDef EcucIntegerParamDef
lowerMultiplicity = 0
upperMultiplicity = 1 lowerMultiplicity = 0 lowerMultiplicity = 1
upperMultiplicity = 1 +parameter upperMultiplicity = 1
min = 0
max = 4294967294
+subContainer
DcmDspMemoryIdInfo: DcmDspReadMemoryRangeHigh:
DcmDspReadMemoryRangeInfo: EcucIntegerParamDef
EcucParamConfContainerDef
EcucParamConfContainerDef
lowerMultiplicity = 1 lowerMultiplicity = 1
lowerMultiplicity = 0 +parameter upperMultiplicity = 1
upperMultiplicity = *
upperMultiplicity = * min = 0
max = 4294967294
+subContainer
DcmDspReadMemoryRangeSessionLevelRef:
+reference EcucReferenceDef
lowerMultiplicity = 0
upperMultiplicity = *
+reference
DcmDspReadMemoryRangeSecurityLevelRef:
EcucReferenceDef
+reference
lowerMultiplicity = 0
DcmDspReadMemoryRangeModeRuleRef: upperMultiplicity = *
EcucReferenceDef
lowerMultiplicity = 0
upperMultiplicity = 1
+destination
+destination
DcmDspSessionRow:
EcucParamConfContainerDef
DcmModeRule:
EcucParamConfContainerDef upperMultiplicity = 31
lowerMultiplicity = 0
lowerMultiplicity = 1 +destination
upperMultiplicity = *
+destination
+subContainer +destination
DcmDspWriteMemoryRangeInfo:
EcucParamConfContainerDef
DcmDspSecurityRow:
lowerMultiplicity = 0 EcucParamConfContainerDef
upperMultiplicity = * +destination
upperMultiplicity = 31
lowerMultiplicity = 0
DcmDspWriteMemoryRangeHigh:
EcucIntegerParamDef
+parameter
lowerMultiplicity = 1
upperMultiplicity = 1
min = 0
max = 4294967294
DcmDspWriteMemoryRangeModeRuleRef:
+reference EcucReferenceDef
lowerMultiplicity = 0
DcmDspWriteMemoryRangeLow: upperMultiplicity = 1
EcucIntegerParamDef
+parameter
lowerMultiplicity = 1
upperMultiplicity = 1 DcmDspWriteMemoryRangeSecurityLevelRef:
min = 0 EcucReferenceDef
max = 4294967294 +reference
lowerMultiplicity = 0
upperMultiplicity = *
DcmDspWriteMemoryRangeSessionLevelRef:
EcucReferenceDef
+reference
lowerMultiplicity = 0
upperMultiplicity = *
10.2.5.15 PIDs
10.2.5.15.1 DcmDspPid
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspPidIdentifier 1 [ECUC_Dcm_00627]
DcmDspPidService 1 [ECUC_Dcm_00893]
DcmDspPidSize 1 [ECUC_Dcm_00870]
DcmDspPidUsed 1 [ECUC_Dcm_00806]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspPidData 1..* This container defines the parameter for a Signal in the PID.
DcmDspPidSupportInfo 0..* This container defines the support information (typically byte A)
to declare the usability of the data bytes within the so-called
packeted PIDs (e.g. PID$68).
4
Multiplicity 1
Type EcucBooleanParamDef
Default value –
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: ECU
DcmDsp:
EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1 DcmDspPidUsed: EcucBooleanParamDef
upperMultiplicity = 1
+subContainer +parameter lowerMultiplicity = 1
DcmDspPid:
EcucParamConfContainerDef
lowerMultiplicity = 1
upperMultiplicity = 1
+parameter min = 0
max = 255
DcmDspPidSupportInfo: DcmDspPidSupportInfoPos:
EcucParamConfContainerDef EcucIntegerParamDef
+parameter
lowerMultiplicity = 0 lowerMultiplicity = 1
upperMultiplicity = * upperMultiplicity = 1
min = 0
max = 255
+subContainer
DcmDspPidSupportInfoLen:
EcucIntegerParamDef
+parameter
lowerMultiplicity = 1
upperMultiplicity = 1
min = 0
max = 255
+destination
DcmDspPidDataSupportInfoRef:
EcucReferenceDef
+reference DcmDspPidDataSupportInfo:
lowerMultiplicity = 1 EcucParamConfContainerDef
upperMultiplicity = 1
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspPidDataSupportInfoBit:
EcucIntegerParamDef
+parameter
lowerMultiplicity = 1
upperMultiplicity = 1
min = 0
max = 255
+literal DCM_SERVICE_01_02:
EcucEnumerationLiteralDef
DcmDspPid: DcmDspPidDataSupportInfo:
EcucParamConfContainerDef EcucParamConfContainerDef
upperMultiplicity = * lowerMultiplicity = 0
lowerMultiplicity = 0 upperMultiplicity = 1
+subContainer
+subContainer
DcmDspPidDataDemRef:
DcmDspPidData: DcmDspPidService02: EcucReferenceDef
EcucParamConfContainerDef +subContainer EcucParamConfContainerDef +reference
lowerMultiplicity = 0
lowerMultiplicity = 1 lowerMultiplicity = 0 upperMultiplicity = 1
upperMultiplicity = * upperMultiplicity = 1
+destination
DcmDspPidByteOffset: DemPidDataElement:
EcucIntegerParamDef EcucParamConfContainerDef
+parameter
min = 0 upperMultiplicity = 255
max = 255 lowerMultiplicity = 1
lowerMultiplicity = 1
upperMultiplicity = 1 (from Dem)
+parameter DcmDspPidDataByteSize:
EcucIntegerParamDef
min = 0
max = 255
lowerMultiplicity = 0
upperMultiplicity = 1
+subContainer
DcmDspPidService01: DcmDspPidService01ExternalSRDataElementClass:
EcucParamConfContainerDef +subContainer EcucChoiceContainerDef
lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = 1
DcmDspDiagnosisScaling:
EcucChoiceContainerDef
+subContainer
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspPidDataReadFnc: EcucFunctionNameDef
+parameter
lowerMultiplicity = 0
upperMultiplicity = 1
lowerMultiplicity = 1
upperMultiplicity = 1
+literal USE_DATA_SYNCH_CLIENT_SERVER:
EcucEnumerationLiteralDef
+parameter
+literal USE_DATA_SENDER_RECEIVER:
EcucEnumerationLiteralDef
+literal USE_DATA_SYNCH_FNC:
EcucEnumerationLiteralDef
lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1 +parameter upperMultiplicity = 1
+literal OPAQUE: EcucEnumerationLiteralDef
+literal BIG_ENDIAN:
EcucEnumerationLiteralDef
+parameter
+literal SINT8:
EcucEnumerationLiteralDef
+literal UINT16:
EcucEnumerationLiteralDef
+literal SINT16:
EcucEnumerationLiteralDef
+literal UINT32:
EcucEnumerationLiteralDef
+literal SINT32:
EcucEnumerationLiteralDef
+literal UINT8_N:
EcucEnumerationLiteralDef
+literal SINT8_N:
EcucEnumerationLiteralDef
+literal UINT16_N:
EcucEnumerationLiteralDef
+literal SINT16_N:
EcucEnumerationLiteralDef
+literal UINT32_N:
EcucEnumerationLiteralDef
+literal SINT32_N:
EcucEnumerationLiteralDef
10.2.5.15.2 DcmDspPidSupportInfo
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspPidSupportInfoLen 1 [ECUC_Dcm_00873]
DcmDspPidSupportInfoPos 1 [ECUC_Dcm_00872]
No Included Containers
10.2.5.15.3 DcmDspPidData
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspPidByteOffset 1 [ECUC_Dcm_01107]
DcmDspPidDataByteSize 0..1 [ECUC_Dcm_01108]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspPidDataSupportInfo 0..1 This container defines the supported information.
DcmDspPidService01 0..1 Contains specific configuration parameter of PID for service $01.
This container exists only if DcmDspPidService is set to DCM_
SERVICE_01 or DCM_SERVICE_01_02.
DcmDspPidService02 0..1 Contains specific configuration parameter of PID for service $02.
This container exists only if DcmDspPidService is set to DCM_
SERVICE_02 or DCM_SERVICE_01_02.
10.2.5.15.4 DcmDspPidService01
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspPidDataEndianness 0..1 [ECUC_Dcm_01012]
DcmDspPidDataReadFnc 0..1 [ECUC_Dcm_00629]
DcmDspPidDataType 1 [ECUC_Dcm_01018]
DcmDspPidDataUsePort 1 [ECUC_Dcm_00720]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspDiagnosisScaling 0..1 This container contains the configuration (parameters) of an
alternative Diagnosis Representation. Out if this the scaling
between Diagnosis and ECU internal representation and vice
versa can be calculated.
DcmDspPidService01ExternalSR 0..1 This container defines the source of data in a provided port
DataElementClass which shall be read respectively the target of data in a required
port which shall be written.
This container shall contain either one DcmSubElementInData
ElementInstance OR DcmDataElementInstance OR DcmSub
ElementInImplDataElementInstance reference.
4
Post-Build Variant Value false
Multiplicity Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
10.2.5.15.5 DcmDspPidService02
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspPidDataDemRef 0..1 [ECUC_Dcm_00887]
No Included Containers
10.2.5.15.6 DcmDspPidDataSupportInfo
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspPidDataSupportInfoBit 1 [ECUC_Dcm_00876]
DcmDspPidDataSupportInfoRef 1 [ECUC_Dcm_00875]
No Included Containers
10.2.5.16 DcmDspRequestControl
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspRequestControlInBufferSize 1 [ECUC_Dcm_00722]
DcmDspRequestControlInfoByte 0..1 [ECUC_Dcm_01078]
DcmDspRequestControlOutBufferSize 1 [ECUC_Dcm_00723]
DcmDspRequestControlTestId 1 [ECUC_Dcm_00656]
No Included Containers
4
Type EcucIntegerParamDef
Range 0 .. 255
Default value –
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
DcmDsp:
EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
+subContainer
DcmDspRequestControl: DcmDspRequestControlTestId:
EcucParamConfContainerDef EcucIntegerParamDef
DcmDspRequestControlInBufferSize:
EcucIntegerParamDef
+parameter
lowerMultiplicity = 1
upperMultiplicity = 1
min = 0
max = 255
DcmDspRequestControlOutBufferSize:
EcucIntegerParamDef
+parameter
upperMultiplicity = 1
lowerMultiplicity = 1
min = 0
max = 255
DcmDspRequestControlInfoByte:
EcucIntegerParamDef
+parameter lowerMultiplicity = 0
upperMultiplicity = 1
min = 0
max = 255
10.2.5.17 DcmDspRequestFileTransfer
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmRequestFileTransferFileSizeOrDirInfoParameter 1 [ECUC_Dcm_01035]
Length
DcmRequestFileTransferLengthFormatIdentifier 1 [ECUC_Dcm_01036]
DcmRequestFileTransferMaxFileAndDirName 0..1 [ECUC_Dcm_01130]
DcmRequestFileTransferUsePort 1 [ECUC_Dcm_01131]
No Included Containers
4
Type EcucIntegerParamDef
Range 1 .. 4
Default value 4
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: ECU
DcmDsp: EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
+subContainer
DcmDspRequestFileTransfer: DcmRequestFileTransferFileSizeOrDirInfoParameterLength:
EcucParamConfContainerDef EcucIntegerParamDef
+parameter min = 1
lowerMultiplicity = 0
upperMultiplicity = 1 max = 4
defaultValue = 4
lowerMultiplicity = 1
upperMultiplicity = 1
DcmRequestFileTransferLengthFormatIdentifier:
EcucIntegerParamDef
+parameter min = 1
max = 4
defaultValue = 4
lowerMultiplicity = 1
upperMultiplicity = 1
DcmRequestFileTransferMaxFileAndDirName:
EcucIntegerParamDef
+parameter min = 1
max = 65535
defaultValue = 1
lowerMultiplicity = 0
upperMultiplicity = 1
DcmRequestFileTransferUsePort:
+parameter EcucBooleanParamDef
defaultValue = false
lowerMultiplicity = 1
upperMultiplicity = 1
10.2.5.18.1 DcmDspRoe
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspRoeMaxNumChangeOfDataIdentfierEvents 0..1 [ECUC_Dcm_01236]
DcmDspRoeMaxNumComparisonOfValueEvents 0..1 [ECUC_Dcm_01237]
DcmDspRoeMaxNumOfStoredDTCStatusChangedEvents 0..1 [ECUC_Dcm_01239]
DcmDspRoeMaxSupportedDIDLength 0..1 [ECUC_Dcm_01238]
DcmDspRoeSchedulerRate 1 [ECUC_Dcm_01235]
DcmDspRoeStoreEventSupport 1 [ECUC_Dcm_01234]
No Included Containers
4
Scope / Dependency scope: local
4
Scope / Dependency scope: local
DcmDsp:
EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
+subContainer
DcmDspRoe: DcmDspRoeStoreEventSupport:
EcucParamConfContainerDef EcucBooleanParamDef
+parameter
lowerMultiplicity = 0 defaultValue = true
upperMultiplicity = 1 lowerMultiplicity = 1
upperMultiplicity = 1
DcmDspRoeSchedulerRate:
+parameter EcucFloatParamDef
lowerMultiplicity = 1
upperMultiplicity = 1
DcmDspRoeMaxNumChangeOfDataIdentfierEvents:
EcucIntegerParamDef
+parameter
min = 0
max = 255
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspRoeMaxNumComparisonOfValueEvents:
EcucIntegerParamDef
+parameter
min = 0
max = 255
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspRoeMaxSupportedDIDLength:
EcucIntegerParamDef
+parameter
min = 1
max = 4294967295
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspRoeMaxNumOfStoredDTCStatusChangedEvents:
EcucIntegerParamDef
+parameter
min = 0
max = 255
lowerMultiplicity = 0
upperMultiplicity = 1
10.2.5.19 Routines
DcmDsp:
EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
+subContainer
DcmDspRoutineUsePort: EcucBooleanParamDef
+parameter
lowerMultiplicity = 1
upperMultiplicity = 1
+literal
DcmDspRoutineFncSignature: ROUTINE_FNC_NORMAL:
EcucEnumerationParamDef EcucEnumerationLiteralDef
+parameter defaultValue = ROUTINE_FNC_NORMAL
lowerMultiplicity = 1
upperMultiplicity = 1
+literal ROUTINE_FNC_PROXY:
EcucEnumerationLiteralDef
DcmDspRoutineUsed: EcucBooleanParamDef
+parameter
upperMultiplicity = 1
lowerMultiplicity = 1
DcmDspStartRoutine:
+subContainer EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspStopRoutine:
+subContainer EcucParamConfContainerDef
upperMultiplicity = 1
lowerMultiplicity = 0
DcmDspRequestRoutineResults:
+subContainer EcucParamConfContainerDef
upperMultiplicity = 1
lowerMultiplicity = 0
DcmDspRoutineInfoByte: EcucIntegerParamDef
+parameter lowerMultiplicity = 0
upperMultiplicity = 1
min = 0
max = 255
10.2.5.19.1 DcmDspRoutine
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspRoutineFncSignature 1 [ECUC_Dcm_01215]
DcmDspRoutineIdentifier 1 [ECUC_Dcm_00641]
DcmDspRoutineInfoByte 0..1 [ECUC_Dcm_01063]
DcmDspRoutineUsed 1 [ECUC_Dcm_00807]
DcmDspRoutineUsePort 1 [ECUC_Dcm_00724]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspRequestRoutineResults 0..1 Provides the configuration of RequestResult subservice for
RoutineControl service. Existence indicates that the Request
RoutineResults in the RoutineControl is supported.
DcmDspStartRoutine 0..1 Provides the configuration of Start subservice for RoutineControl
service.
DcmDspStopRoutine 0..1 Provides the configuration of Stop subservice for RoutineControl
service. Existence indicates that the StopRoutine in the Routine
Control is supported.
4
ROUTINE_FNC_PROXY Function call used with generic set of arguments
used for Dcm low proxy.
Tags: atp.Status=draft
Default value ROUTINE_FNC_NORMAL
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: ECU
4
Post-build time –
Scope / Dependency scope: ECU
4
Scope / Dependency scope: ECU
10.2.5.19.2 DcmDspRequestRoutineResults
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspRequestRoutineResultsConfirmationEnabled 0..1 [ECUC_Dcm_01091]
DcmDspRequestRoutineResultsConfirmationFnc 0..1 [ECUC_Dcm_01090]
DcmDspRequestRoutineResultsFnc 0..1 [ECUC_Dcm_00753]
DcmDspRoutineInterfaceArgumentIntegrity 0..1 [ECUC_Dcm_01216]
DcmDspRequestRoutineResultsCommonAuthorizationRef 0..1 [ECUC_Dcm_01054]
DcmDspRequestRoutineResultsRoleRef 0..32 [ECUC_Dcm_01146]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspRequestRoutineResultsIn 0..1 Provide description of input parameter of RequestResult
subservice for RoutineControl service.
DcmDspRequestRoutineResults 0..1 Provide description of output parameter of RequestResult
Out subservice for RoutineControl service.
4
Post-Build Variant Multiplicity false
Post-Build Variant Value false
Multiplicity Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: ECU
4
Regular Expression –
Post-Build Variant Multiplicity false
Post-Build Variant Value false
Multiplicity Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: ECU
4
Post-Build Variant Multiplicity false
Post-Build Variant Value false
Multiplicity Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
DcmDspRoutine:
EcucParamConfContainerDef DcmDspRequestRoutineResultsInSignalCompositePool: DcmDspRequestRoutineResultsInSignalCompositeSignalRef:
EcucParamConfContainerDef +destination EcucReferenceDef
upperMultiplicity = *
lowerMultiplicity = 0 lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = * upperMultiplicity = *
+subContainer +reference
+subContainer +subContainer
DcmDspRequestRoutineResultsInSignal:
DcmDspRequestRoutineResults: EcucParamConfContainerDef
EcucParamConfContainerDef DcmDspRequestRoutineResultsIn:
+subContainer +subContainer
EcucParamConfContainerDef upperMultiplicity = *
upperMultiplicity = 1 lowerMultiplicity = 1
lowerMultiplicity = 0 upperMultiplicity = 1
requiresIndex = true
lowerMultiplicity = 0
DcmDspRequestRoutineResultsOutSignalCompositePool: DcmDspRequestRoutineResultsOutSignalCompositeSignalRef:
EcucParamConfContainerDef +destination EcucReferenceDef
lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = * upperMultiplicity = *
+subContainer +reference
+subContainer
DcmDspRequestRoutineResultsOutSignal:
DcmDspRequestRoutineResultsOut: EcucParamConfContainerDef
+subContainer EcucParamConfContainerDef +subContainer
upperMultiplicity = *
upperMultiplicity = 1 lowerMultiplicity = 1
lowerMultiplicity = 0 requiresIndex = true
DcmDspRequestRoutineResultsCommonAuthorizationRef: DcmDspCommonAuthorization:
+reference EcucReferenceDef +destination EcucParamConfContainerDef
lowerMultiplicity = 0 upperMultiplicity = *
upperMultiplicity = 1 lowerMultiplicity = 0
+parameter DcmDspRequestRoutineResultsFnc:
EcucFunctionNameDef
DcmDspRequestRoutineResultsRoleRef:
lowerMultiplicity = 0 EcucReferenceDef
upperMultiplicity = 1
lowerMultiplicity = 0
+reference upperMultiplicity = 32
DcmDspRequestRoutineResultsConfirmationEnabled:
EcucBooleanParamDef
+parameter
defaultValue = false
lowerMultiplicity = 0
upperMultiplicity = 1
+destination
DcmDspAuthenticationRow:
EcucParamConfContainerDef
DcmDspRequestRoutineResultsConfirmationFnc: lowerMultiplicity = 0
+parameter EcucFunctionNameDef upperMultiplicity = 31
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspRoutineInterfaceArgumentIntegrity:
+parameter
EcucBooleanParamDef
defaultValue = false
lowerMultiplicity = 0
upperMultiplicity = 1
10.2.5.19.3 DcmDspRequestRoutineResultsIn
No Included Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspRequestRoutineResultsIn 1..* Provides description of a routine signal used in RoutineControl
Signal service.
The ordering defined via the index attribute of the subcontainers
in this list represents the order of the dataIn_n elements in the
XXX_RequestResult function call.
DcmDspRequestRoutineResultsIn 0..* Defines a collection of all contained signals for this root signal.
SignalCompositePool
10.2.5.19.4 DcmDspRequestRoutineResultsInSignal
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspRoutineParameterSize 0..1 [ECUC_Dcm_01119]
DcmDspRoutineSignalEndianness 0..1 [ECUC_Dcm_01121]
DcmDspRoutineSignalPos 1 [ECUC_Dcm_01118]
DcmDspRoutineSignalType 0..1 [ECUC_Dcm_01120]
DcmDspRequestRoutineResultsInSignalCompositeSignal 0..* [ECUC_Dcm_01228]
Ref
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspArgumentScaling 0..1 This container contains the configuration (arguments) of an
alternative Diagnosis Representation. Out if this the scaling
between Diagnosis and ECU internal representation and vice
versa can be calculated.
4
Multiplicity Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
4
SINT32_N Type of the signal is sint32 array.
SINT8 Type of the signal is sint8.
SINT8_N Type of the signal is sint8 array.
UINT16 Type of the signal is uint16.
UINT16_N Type of the signal is uint16 array.
UINT32 Type of the signal is uint32.
UINT32_N Type of the signal is uint32 array.
UINT8 Type of the signal is uint8.
UINT8_N Type of the signal is uint8 array.
VARIABLE_LENGTH Type of the signal is uint8[DcmDspRoutine
ParameterSize].
This is only valid for the last signal and when
DcmDspRoutineSignalType is set to VARIABLE_
LENGTH.
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
10.2.5.19.5 DcmDspRequestRoutineResultsInSignalCompositePool
No Included Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspRequestRoutineResultsIn 1..* Provides description of a routine signal used in RoutineControl
Signal service.
The ordering defined via the index attribute of the subcontainers
in this list represents the order of the dataIn_n elements in the
XXX_RequestResult function call.
10.2.5.19.6 DcmDspRequestRoutineResultsOut
No Included Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspRequestRoutineResults 1..* Provides description of a routine signal used in RoutineControl
OutSignal service.
The ordering defined via the index attribute of the subcontainers
in this list represents the order of the dataOutN elements in the
XXX_RequestResult function call.
DcmDspRequestRoutineResults 0..* Defines a collection of all contained signals for this root signal.
OutSignalCompositePool
10.2.5.19.7 DcmDspRequestRoutineResultsOutSignal
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspRoutineParameterSize 0..1 [ECUC_Dcm_00838]
DcmDspRoutineSignalEndianness 0..1 [ECUC_Dcm_01013]
DcmDspRoutineSignalPos 1 [ECUC_Dcm_00837]
DcmDspRoutineSignalType 0..1 [ECUC_Dcm_00881]
DcmDspRequestRoutineResultsOutSignalComposite 0..* [ECUC_Dcm_01230]
SignalRef
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspArgumentScaling 0..1 This container contains the configuration (arguments) of an
alternative Diagnosis Representation. Out if this the scaling
between Diagnosis and ECU internal representation and vice
versa can be calculated.
4
VARIABLE_LENGTH Type of the signal is uint8[DcmDspRoutine
ParameterSize].
This is only valid for the last signal and when
DcmDspRoutineSignalType is set to VARIABLE_
LENGTH.
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
10.2.5.19.8 DcmDspRequestRoutineResultsOutSignalCompositePool
4
Multiplicity Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Configuration Parameters
No Included Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspRequestRoutineResults 1..* Provides description of a routine signal used in RoutineControl
OutSignal service.
The ordering defined via the index attribute of the subcontainers
in this list represents the order of the dataOutN elements in the
XXX_RequestResult function call.
10.2.5.19.9 DcmDspStartRoutine
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspRoutineInterfaceArgumentIntegrity 0..1 [ECUC_Dcm_01216]
DcmDspStartRoutineConfirmationEnabled 0..1 [ECUC_Dcm_01093]
DcmDspStartRoutineConfirmationFnc 0..1 [ECUC_Dcm_01094]
DcmDspStartRoutineFnc 0..1 [ECUC_Dcm_00664]
DcmDspStartRoutineCommonAuthorizationRef 0..1 [ECUC_Dcm_01052]
DcmDspStartRoutineRoleRef 0..32 [ECUC_Dcm_01144]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspStartRoutineIn 0..1 Provide description of input parameter of Start subservice for
RoutineControl service
DcmDspStartRoutineOut 0..1 Provide description of output parameter of Start subservice for
RoutineControl service.
DcmDspRoutine:
EcucParamConfContainerDef DcmDspStartRoutineInSignalCompositePool: DcmDspStartRoutineInSignalCompositeSignalRef:
EcucParamConfContainerDef +destination EcucReferenceDef
upperMultiplicity = *
lowerMultiplicity = 0 lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = * upperMultiplicity = *
+subContainer +reference
+subContainer +subContainer
DcmDspStartRoutineInSignal:
DcmDspStartRoutine:
EcucParamConfContainerDef
EcucParamConfContainerDef
DcmDspStartRoutineIn:
+subContainer EcucParamConfContainerDef +subContainer upperMultiplicity = *
lowerMultiplicity = 0
lowerMultiplicity = 1
upperMultiplicity = 1
upperMultiplicity = 1 requiresIndex = true
lowerMultiplicity = 0
DcmDspStartRoutineOutSignalCompositePool: DcmDspStartRoutineOutSignalCompositeSignalRef:
EcucParamConfContainerDef +destination EcucReferenceDef
lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = * upperMultiplicity = *
+subContainer +reference
+subContainer
DcmDspStartRoutineOutSignal:
EcucParamConfContainerDef
DcmDspStartRoutineOut:
+subContainer EcucParamConfContainerDef +subContainer upperMultiplicity = *
lowerMultiplicity = 1
upperMultiplicity = 1
requiresIndex = true
lowerMultiplicity = 0
DcmDspStartRoutineCommonAuthorizationRef: DcmDspCommonAuthorization:
+reference EcucReferenceDef +destination EcucParamConfContainerDef
lowerMultiplicity = 0 upperMultiplicity = *
upperMultiplicity = 1 lowerMultiplicity = 0
DcmDspStartRoutineFnc:
+parameter
EcucFunctionNameDef
lowerMultiplicity = 0 DcmDspStartRoutineRoleRef:
upperMultiplicity = 1 EcucReferenceDef
+reference
lowerMultiplicity = 0
upperMultiplicity = 32
DcmDspStartRoutineConfirmationEnabled:
EcucBooleanParamDef
+parameter
defaultValue = false
lowerMultiplicity = 0
upperMultiplicity = 1
+destination
DcmDspAuthenticationRow:
EcucParamConfContainerDef
DcmDspStartRoutineConfirmationFnc:
+parameter EcucFunctionNameDef lowerMultiplicity = 0
upperMultiplicity = 31
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspRoutineInterfaceArgumentIntegrity:
+parameter EcucBooleanParamDef
defaultValue = false
lowerMultiplicity = 0
upperMultiplicity = 1
10.2.5.19.10 DcmDspStartRoutineIn
No Included Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspStartRoutineInSignal 1..* Provide description of a routine signal used in RoutineControl
service.
The ordering defined via the index attribute of the subcontainers
in this list represents the order of the dataInN elements in the
XXX_Start function call.
DcmDspStartRoutineInSignal 0..* Defines a collection of all contained signals for this root signal.
CompositePool
DcmDspStartRoutineIn:
EcucParamConfContainerDef
upperMultiplicity = 1
lowerMultiplicity = 0
DcmDspRoutineSignalPos:
EcucIntegerParamDef
+subContainer lowerMultiplicity = 1
+parameter upperMultiplicity = 1
DcmDspStartRoutineInSignal: min = 0
EcucParamConfContainerDef max = 65535
DcmDspRoutineParameterSize:
upperMultiplicity = * EcucIntegerParamDef
+parameter
lowerMultiplicity = 1
lowerMultiplicity = 0
requiresIndex = true
upperMultiplicity = 1
min = 0
max = 65535
+literal
DcmDspRoutineSignalType: BOOLEAN: EcucEnumerationLiteralDef
EcucEnumerationParamDef +literal
+literal
SINT8_N: EcucEnumerationLiteralDef
+literal
UINT16: EcucEnumerationLiteralDef
+literal
UINT16_N: EcucEnumerationLiteralDef
+literal
+parameter SINT16_N: EcucEnumerationLiteralDef
+literal
SINT16: EcucEnumerationLiteralDef
+literal
UINT32: EcucEnumerationLiteralDef
+literal
SINT32: EcucEnumerationLiteralDef
+literal
UINT32_N: EcucEnumerationLiteralDef
+literal
SINT32_N: EcucEnumerationLiteralDef
+literal
FLOAT: EcucEnumerationLiteralDef
+literal
VARIABLE_LENGTH: EcucEnumerationLiteralDef
LITTLE_ENDIAN:
+literal EcucEnumerationLiteralDef
DcmDspRoutineSignalEndianness:
+parameter EcucEnumerationParamDef +literal
OPAQUE:
lowerMultiplicity = 0 EcucEnumerationLiteralDef
upperMultiplicity = 1
+literal
BIG_ENDIAN:
DcmDspArgumentScaling: EcucEnumerationLiteralDef
+subContainer EcucChoiceContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspStartRoutineInSignalCompositeSignalRef:
+reference EcucReferenceDef
lowerMultiplicity = 0
upperMultiplicity = *
10.2.5.19.11 DcmDspStartRoutineInSignal
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspRoutineParameterSize 0..1 [ECUC_Dcm_00847]
DcmDspRoutineSignalEndianness 0..1 [ECUC_Dcm_01016]
DcmDspRoutineSignalPos 1 [ECUC_Dcm_00846]
DcmDspRoutineSignalType 0..1 [ECUC_Dcm_00884]
DcmDspStartRoutineInSignalCompositeSignalRef 0..* [ECUC_Dcm_01220]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspArgumentScaling 0..1 This container contains the configuration (arguments) of an
alternative Diagnosis Representation. Out if this the scaling
between Diagnosis and ECU internal representation and vice
versa can be calculated.
4
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
4
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
10.2.5.19.12 DcmDspStartRoutineInSignalCompositePool
No Included Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspStartRoutineInSignal 1..* Provide description of a routine signal used in RoutineControl
service.
The ordering defined via the index attribute of the subcontainers
in this list represents the order of the dataInN elements in the
XXX_Start function call.
10.2.5.19.13 DcmDspStartRoutineOut
No Included Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspStartRoutineOutSignal 1..* Provide description of a routine signal used in RoutineControl
service.
The ordering defined via the index attribute of the subcontainers
in this list represents the order of the dataOutN elements in the
XXX_Start function call.
DcmDspStartRoutineOutSignal 0..* Defines a collection of all contained signals for this root signal.
CompositePool
DcmDspStartRoutineOut:
EcucParamConfContainerDef
upperMultiplicity = 1 DcmDspRoutineSignalPos:
lowerMultiplicity = 0 EcucIntegerParamDef
lowerMultiplicity = 0
+subContainer upperMultiplicity = 1
DcmDspRoutineParameterSize:
+parameter min = 0
EcucIntegerParamDef
DcmDspStartRoutineOutSignal: max = 65535
EcucParamConfContainerDef lowerMultiplicity = 0
upperMultiplicity = 1
upperMultiplicity = * +parameter min = 0
lowerMultiplicity = 1 max = 65535
requiresIndex = true
+literal
DcmDspRoutineSignalType: BOOLEAN: EcucEnumerationLiteralDef
EcucEnumerationParamDef
+literal
lowerMultiplicity = 0 UINT8: EcucEnumerationLiteralDef
upperMultiplicity = 1 +literal
UINT8_N: EcucEnumerationLiteralDef
+literal
SINT8: EcucEnumerationLiteralDef
+literal
SINT8_N: EcucEnumerationLiteralDef
+literal
UINT16: EcucEnumerationLiteralDef
+literal
UINT16_N: EcucEnumerationLiteralDef
+literal
+parameter SINT16: EcucEnumerationLiteralDef
+literal
SINT16_N: EcucEnumerationLiteralDef
+literal
UINT32: EcucEnumerationLiteralDef
+literal
UINT32_N: EcucEnumerationLiteralDef
+literal
SINT32: EcucEnumerationLiteralDef
+literal
SINT32_N: EcucEnumerationLiteralDef
+literal
FLOAT: EcucEnumerationLiteralDef
+literal
FLOAT_N: EcucEnumerationLiteralDef
+literal
VARIABLE_LENGTH: EcucEnumerationLiteralDef
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspStartRoutineOutSignalCompositeSignalRef:
+reference EcucReferenceDef
lowerMultiplicity = 0
upperMultiplicity = *
10.2.5.19.14 DcmDspStartRoutineOutSignal
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspRoutineParameterSize 0..1 [ECUC_Dcm_00850]
DcmDspRoutineSignalEndianness 0..1 [ECUC_Dcm_01017]
DcmDspRoutineSignalPos 0..1 [ECUC_Dcm_00867]
DcmDspRoutineSignalType 0..1 [ECUC_Dcm_00885]
DcmDspStartRoutineOutSignalCompositeSignalRef 0..* [ECUC_Dcm_01222]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspArgumentScaling 0..1 This container contains the configuration (arguments) of an
alternative Diagnosis Representation. Out if this the scaling
between Diagnosis and ECU internal representation and vice
versa can be calculated.
4
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
4
Post-Build Variant Value false
Multiplicity Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
10.2.5.19.15 DcmDspStopRoutine
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspRoutineInterfaceArgumentIntegrity 0..1 [ECUC_Dcm_01216]
DcmDspStopRoutineConfirmationEnabled 0..1 [ECUC_Dcm_01095]
DcmDspStopRoutineConfirmationFnc 0..1 [ECUC_Dcm_01096]
DcmDspStopRoutineFnc 0..1 [ECUC_Dcm_00752]
DcmDspStopRoutineCommonAuthorizationRef 0..1 [ECUC_Dcm_01053]
DcmDspStopRoutineRoleRef 0..32 [ECUC_Dcm_01145]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspStopRoutineIn 0..1 Provide description of input parameter of Stop subservice for
RoutineControl service.
DcmDspStopRoutineOut 0..1 Provide description of output parameter of Stop subservice for
RoutineControl service.
DcmDspRoutine:
EcucParamConfContainerDef DcmDspStopRoutineInSignalCompositePool: DcmDspStopRoutineInSignalCompositeSignalRef:
EcucParamConfContainerDef +destination EcucReferenceDef
upperMultiplicity = *
lowerMultiplicity = 0 lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = * upperMultiplicity = *
+subContainer +reference
+subContainer
DcmDspStopRoutine: +subContainer
EcucParamConfContainerDef DcmDspStopRoutineInSignal:
EcucParamConfContainerDef
upperMultiplicity = 1
lowerMultiplicity = 0 DcmDspStopRoutineIn: +subContainer upperMultiplicity = *
+subContainer EcucParamConfContainerDef lowerMultiplicity = 1
requiresIndex = true
upperMultiplicity = 1
lowerMultiplicity = 0
DcmDspStopRoutineOutSignalCompositePool: DcmDspStopRoutineOutSignalCompositeSignalRef:
EcucParamConfContainerDef +destination EcucReferenceDef
lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = * upperMultiplicity = *
+subContainer +reference
+subContainer
DcmDspStopRoutineOutSignal:
EcucParamConfContainerDef
DcmDspStopRoutineOut: +subContainer upperMultiplicity = *
+subContainer EcucParamConfContainerDef lowerMultiplicity = 1
upperMultiplicity = 1 requiresIndex = true
lowerMultiplicity = 0
DcmDspStopRoutineCommonAuthorizationRef: DcmDspCommonAuthorization:
+reference EcucReferenceDef +destination EcucParamConfContainerDef
lowerMultiplicity = 0 upperMultiplicity = *
upperMultiplicity = 1 lowerMultiplicity = 0
DcmDspStopRoutineFnc:
+parameter EcucFunctionNameDef
lowerMultiplicity = 0
upperMultiplicity = 1 DcmDspStopRoutineRoleRef:
EcucReferenceDef
+reference
lowerMultiplicity = 0
upperMultiplicity = 32
DcmDspStopRoutineConfirmationEnabled:
EcucBooleanParamDef
+parameter
lowerMultiplicity = 0
upperMultiplicity = 1
defaultValue = FALSE
+destination
DcmDspAuthenticationRow:
EcucParamConfContainerDef
DcmDspStopRoutineConfirmationFnc: lowerMultiplicity = 0
+parameter EcucFunctionNameDef upperMultiplicity = 31
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspRoutineInterfaceArgumentIntegrity:
+parameter EcucBooleanParamDef
defaultValue = false
lowerMultiplicity = 0
upperMultiplicity = 1
10.2.5.19.16 DcmDspStopRoutineIn
No Included Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspStopRoutineInSignal 1..* Provide description of a routine signal used in RoutineControl
service.
The ordering defined via the index attribute of the subcontainers
in this list represents the order of the dataInN elements in the
XXX_Stop function call.
DcmDspStopRoutineInSignal 0..* Defines a collection of all contained signals for this root signal.
CompositePool
DcmDspStopRoutineIn:
EcucParamConfContainerDef
upperMultiplicity = 1
lowerMultiplicity = 0
DcmDspRoutineSignalPos:
EcucIntegerParamDef
+subContainer
lowerMultiplicity = 1
DcmDspStopRoutineInSignal: +parameter upperMultiplicity = 1
EcucParamConfContainerDef min = 0 DcmDspRoutineParameterSize:
max = 65535 EcucIntegerParamDef
upperMultiplicity = *
lowerMultiplicity = 1 +parameter lowerMultiplicity = 0
requiresIndex = true upperMultiplicity = 1
min = 0
+subContainer DcmDspArgumentScaling: max = 65535
EcucChoiceContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
+literal
BOOLEAN: EcucEnumerationLiteralDef
DcmDspRoutineSignalType:
EcucEnumerationParamDef +literal
UINT8: EcucEnumerationLiteralDef
lowerMultiplicity = 0
upperMultiplicity = 1 +literal
UINT8_N: EcucEnumerationLiteralDef
+literal
SINT8: EcucEnumerationLiteralDef
+literal
SINT8_N: EcucEnumerationLiteralDef
+literal
UINT16: EcucEnumerationLiteralDef
+literal
UINT16_N: EcucEnumerationLiteralDef
+literal
SINT16: EcucEnumerationLiteralDef
+parameter
+literal
SINT16_N: EcucEnumerationLiteralDef
+literal
UINT32: EcucEnumerationLiteralDef
+literal
UINT32_N: EcucEnumerationLiteralDef
+literal
SINT32: EcucEnumerationLiteralDef
+literal
SINT32_N: EcucEnumerationLiteralDef
+literal
FLOAT: EcucEnumerationLiteralDef
+literal
FLOAT_N: EcucEnumerationLiteralDef
+literal
VARIABLE_LENGTH: EcucEnumerationLiteralDef
+literal LITTLE_ENDIAN:
DcmDspRoutineSignalEndianness:
EcucEnumerationLiteralDef
EcucEnumerationParamDef
+parameter
lowerMultiplicity = 0 +literal
OPAQUE:
upperMultiplicity = 1
EcucEnumerationLiteralDef
+literal
BIG_ENDIAN:
EcucEnumerationLiteralDef
+reference DcmDspStopRoutineInSignalCompositeSignalRef:
EcucReferenceDef
lowerMultiplicity = 0
upperMultiplicity = *
10.2.5.19.17 DcmDspStartRoutineOutSignalCompositePool
No Included Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspStartRoutineOutSignal 1..* Provide description of a routine signal used in RoutineControl
service.
The ordering defined via the index attribute of the subcontainers
in this list represents the order of the dataOutN elements in the
XXX_Start function call.
10.2.5.19.18 DcmDspStopRoutineInSignal
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspRoutineParameterSize 0..1 [ECUC_Dcm_00841]
DcmDspRoutineSignalEndianness 0..1 [ECUC_Dcm_01014]
DcmDspRoutineSignalPos 1 [ECUC_Dcm_00840]
DcmDspRoutineSignalType 0..1 [ECUC_Dcm_00882]
DcmDspStopRoutineInSignalCompositeSignalRef 0..* [ECUC_Dcm_01224]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspArgumentScaling 0..1 This container contains the configuration (arguments) of an
alternative Diagnosis Representation. Out if this the scaling
between Diagnosis and ECU internal representation and vice
versa can be calculated.
4
Multiplicity Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
4
SINT32_N Type of the signal is sint32 array.
SINT8 Type of the signal is sint8.
SINT8_N Type of the signal is sint8 array.
UINT16 Type of the signal is uint16.
UINT16_N Type of the signal is uint16 array.
UINT32 Type of the signal is uint32.
UINT32_N Type of the signal is uint32 array.
UINT8 Type of the signal is uint8.
UINT8_N Type of the signal is uint8 array.
VARIABLE_LENGTH Type of the signal is uint8[DcmDspRoutine
ParameterSize].
This is only valid for the last signal and when
DcmDspRoutineSignalType is set to VARIABLE_
LENGTH.
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
10.2.5.19.19 DcmDspStopRoutineInSignalCompositePool
No Included Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspStopRoutineInSignal 1..* Provide description of a routine signal used in RoutineControl
service.
The ordering defined via the index attribute of the subcontainers
in this list represents the order of the dataInN elements in the
XXX_Stop function call.
10.2.5.19.20 DcmDspStopRoutineOut
No Included Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspStopRoutineOutSignal 1..* Provide description of a routine signal used in RoutineControl
service.
The ordering defined via the index attribute of the subcontainers
in this list represents the order of the dataOutN elements in the
XXX_Stop function call.
DcmDspStopRoutineOutSignal 0..* Defines a collection of all contained signals for this root signal.
CompositePool
DcmDspStopRoutineOut:
EcucParamConfContainerDef
upperMultiplicity = 1
lowerMultiplicity = 0 DcmDspRoutineSignalPos:
EcucIntegerParamDef
lowerMultiplicity = 1 DcmDspRoutineParameterSize:
+subContainer upperMultiplicity = 1 EcucIntegerParamDef
+parameter min = 0
DcmDspStopRoutineOutSignal: max = 65535 lowerMultiplicity = 0
EcucParamConfContainerDef upperMultiplicity = 1
+parameter min = 0
upperMultiplicity = * max = 65535
lowerMultiplicity = 1
requiresIndex = true
+literal
BOOLEAN: EcucEnumerationLiteralDef
DcmDspRoutineSignalType:
EcucEnumerationParamDef +literal
UINT8: EcucEnumerationLiteralDef
lowerMultiplicity = 0
upperMultiplicity = 1 +literal
UINT8_N: EcucEnumerationLiteralDef
+literal
SINT8: EcucEnumerationLiteralDef
+literal
SINT8_N: EcucEnumerationLiteralDef
+literal
UINT16: EcucEnumerationLiteralDef
+literal
UINT16_N: EcucEnumerationLiteralDef
+literal
SINT16: EcucEnumerationLiteralDef
+parameter +literal
SINT16_N: EcucEnumerationLiteralDef
+literal
UINT32: EcucEnumerationLiteralDef
+literal
UINT32_N: EcucEnumerationLiteralDef
+literal
SINT32: EcucEnumerationLiteralDef
+literal
SINT32_N: EcucEnumerationLiteralDef
+literal
VARIABLE_LENGTH:
EcucEnumerationLiteralDef
+literal
FLOAT_N: EcucEnumerationLiteralDef
+literal
FLOAT: EcucEnumerationLiteralDef
+literal BIG_ENDIAN:
EcucEnumerationLiteralDef
DcmDspArgumentScaling:
+subContainer EcucChoiceContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
+reference DcmDspStopRoutineOutSignalCompositeSignalRef:
EcucReferenceDef
lowerMultiplicity = 0
upperMultiplicity = *
10.2.5.19.21 DcmDspStopRoutineOutSignal
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspRoutineParameterSize 0..1 [ECUC_Dcm_00844]
DcmDspRoutineSignalEndianness 0..1 [ECUC_Dcm_01015]
DcmDspRoutineSignalPos 1 [ECUC_Dcm_00843]
DcmDspRoutineSignalType 0..1 [ECUC_Dcm_00883]
DcmDspStopRoutineOutSignalCompositeSignalRef 0..* [ECUC_Dcm_01226]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspArgumentScaling 0..1 This container contains the configuration (arguments) of an
alternative Diagnosis Representation. Out if this the scaling
between Diagnosis and ECU internal representation and vice
versa can be calculated.
4
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
4
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: ECU
10.2.5.19.22 DcmDspStopRoutineOutSignalCompositePool
No Included Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspStopRoutineOutSignal 1..* Provide description of a routine signal used in RoutineControl
service.
The ordering defined via the index attribute of the subcontainers
in this list represents the order of the dataOutN elements in the
XXX_Stop function call.
10.2.5.20.1 DcmDspSecurity
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspSecurityMaxAttemptCounterReadoutTime 1 [ECUC_Dcm_01101]
DcmDspSecurityResetAttemptCounterOnTimeout 0..1 [ECUC_Dcm_01210]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspSecurityRow 0..31 Definition of a single Row of configuration for security level
configuration (per security level) The name of this container is
used to define the name of the R-Port through which the DCM
accesses the interface SecurityAccess_{SecurityLevel}. The
R-Port is named SecurityAccess_{SecurityLevel} where
{SecurityLevel} is the name of the container DcmDspSecurity
Row. If there is no reference, no check of security level shall be
done.
4
Post-build time –
Scope / Dependency scope: local
DcmDspSecurityKeySize:
+container EcucIntegerParamDef
+parameter
DcmConfigSet: max = 4294967295
EcucParamConfContainerDef min = 1
lowerMultiplicity = 1
upperMultiplicity = 1
DcmDspSecurityADRSize:
+subContainer EcucIntegerParamDef
+parameter
DcmDsp: lowerMultiplicity = 0
EcucParamConfContainerDef upperMultiplicity = 1
min = 1
lowerMultiplicity = 0 max = 4294967295
upperMultiplicity = 1
DcmDspSecurityUsePort: +literalUSE_ASYNCH_CLIENT_SERVER:
+parameter EcucEnumerationParamDef EcucEnumerationLiteralDef
+subContainer lowerMultiplicity = 1
upperMultiplicity = 1
DcmDspSecurity:
USE_ASYNCH_FNC:
EcucParamConfContainerDef +literal
EcucEnumerationLiteralDef
lowerMultiplicity = 1 +subContainer
upperMultiplicity = 1
DcmDspSecurityGetAttemptCounterFnc:
+parameter EcucFunctionNameDef
+parameter
lowerMultiplicity = 0
DcmDspSecurityMaxAttemptCounterReadoutTime:
upperMultiplicity = 1
EcucFloatParamDef
min = 0
max = 65535
lowerMultiplicity = 1
upperMultiplicity = 1 DcmDspSecuritySetAttemptCounterFnc:
EcucFunctionNameDef
+parameter
+parameter
lowerMultiplicity = 0
DcmDspSecurityResetAttemptCounterOnTimeout: upperMultiplicity = 1
EcucBooleanParamDef
defaultValue = false
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspSecurityAttemptCounterEnabled:
+parameter EcucBooleanParamDef
DcmDspSecurityLevel: upperMultiplicity = 1
EcucIntegerParamDef lowerMultiplicity = 1
max = 63 +parameter
min = 1
lowerMultiplicity = 1 DcmDspSecurityGetSeedFnc:
upperMultiplicity = 1 EcucFunctionNameDef
+parameter
symbolicNameValue = true
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspSecurityNumAttDelay:
EcucIntegerParamDef
+parameter DcmDspSecurityCompareKeyFnc:
min = 1 +parameter EcucFunctionNameDef
max = 255
lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = 1
DcmDspSecurityDelayTime: DcmDspSecurityDelayTimeOnBoot:
EcucFloatParamDef EcucFloatParamDef
+parameter +parameter
min = 0 min = 0
lowerMultiplicity = 1 lowerMultiplicity = 1
upperMultiplicity = 1 upperMultiplicity = 1
max = 65535 max = 65535
10.2.5.20.2 DcmDspSecurityRow
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspSecurityADRSize 0..1 [ECUC_Dcm_00725]
DcmDspSecurityAttemptCounterEnabled 1 [ECUC_Dcm_01050]
DcmDspSecurityCompareKeyFnc 0..1 [ECUC_Dcm_00969]
DcmDspSecurityDelayTime 1 [ECUC_Dcm_00757]
DcmDspSecurityDelayTimeOnBoot 1 [ECUC_Dcm_00726]
DcmDspSecurityGetAttemptCounterFnc 0..1 [ECUC_Dcm_01048]
DcmDspSecurityGetSeedFnc 0..1 [ECUC_Dcm_00968]
DcmDspSecurityKeySize 1 [ECUC_Dcm_00760]
DcmDspSecurityLevel 1 [ECUC_Dcm_00754]
DcmDspSecurityNumAttDelay 0..1 [ECUC_Dcm_00762]
DcmDspSecuritySeedSize 1 [ECUC_Dcm_00755]
DcmDspSecuritySetAttemptCounterFnc 0..1 [ECUC_Dcm_01049]
DcmDspSecurityUsePort 1 [ECUC_Dcm_00967]
No Included Containers
4
Multiplicity Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: local
4
Multiplicity Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: local
4
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: local
4
Link time X VARIANT-LINK-TIME
Post-build time –
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE,
VARIANT-POST-BUILD
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: local
4
Scope / Dependency scope: local
4
Post-build time –
Scope / Dependency scope: local
10.2.5.20.3 DcmDspSession
No Included Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspSessionRow 0..31 This container holds all parameters needed to configure a single
session
+subContainer
DcmDspSessionP2StarServerMax:
DcmDspSession:
EcucFloatParamDef
EcucParamConfContainerDef
+parameter
+subContainer min = 0
lowerMultiplicity = 1
lowerMultiplicity = 1
upperMultiplicity = 1
upperMultiplicity = 1
max = 100
DcmDspSessionP2ServerMax:
EcucFloatParamDef
+parameter
min = 0
lowerMultiplicity = 1
upperMultiplicity = 1
max = 1
+parameter
defaultValue = DCM_NO_BOOT
lowerMultiplicity = 1
upperMultiplicity = 1
+literal DCM_OEM_BOOT:
EcucEnumerationLiteralDef
+literal DCM_SYS_BOOT:
EcucEnumerationLiteralDef
+literal DCM_OEM_BOOT_RESPAPP:
EcucEnumerationLiteralDef
+literal DCM_SYS_BOOT_RESPAPP:
EcucEnumerationLiteralDef
10.2.5.20.4 DcmDspSessionRow
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspSessionForBoot 1 [ECUC_Dcm_00815]
DcmDspSessionLevel 1 [ECUC_Dcm_00765]
DcmDspSessionP2ServerMax 1 [ECUC_Dcm_00766]
DcmDspSessionP2StarServerMax 1 [ECUC_Dcm_00768]
No Included Containers
10.2.5.20.5 DcmModeCondition
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmConditionType 1 [ECUC_Dcm_00929]
DcmBswModeRef 0..1 [ECUC_Dcm_00931]
DcmModeConditionCertificateCompareElementRef 0..1 [ECUC_Dcm_01179]
DcmSwcModeRef 0..1 [ECUC_Dcm_00930]
DcmSwcSRDataElementRef 0..1 [ECUC_Dcm_01037]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmSwcDataElementValue 1 This container contains the configuration of a compare value.
Range DCM_EQUALS –
DCM_EQUALS_NOT –
DCM_GREATER_OR_EQUAL –
DCM_GREATER_THAN –
DCM_LESS_OR_EQUAL –
DCM_LESS_THAN –
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: local
4
Type Instance reference to MODE-DECLARATION context:
MODE-DECLARATION-GROUP-PROTOTYPE
Post-Build Variant Multiplicity false
Post-Build Variant Value false
Multiplicity Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: local
4
Multiplicity Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: local
10.2.5.20.6 DcmSwcDataElementValue
No Included Parameters
Container Choices
Container Name Multiplicity Scope / Dependency
DcmSwcDataElementArray 0..1 This container contains the configuration of a array compare
value.
DcmSwcDataElementPrimitive 0..1 This container contains the configuration of a primitive compare
value.
10.2.5.20.7 DcmSwcDataElementPrimitive
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmSwcDataElementPrimitiveValue 1 [ECUC_Dcm_01126]
No Included Containers
10.2.5.20.8 DcmSwcDataElementArray
No Included Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
DcmSwcDataElementArray 0..* This container contains the configuration of a array element
Element compare value.
10.2.5.20.9 DcmSwcDataElementArrayElement
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmSwcDataElementArrayElementIndex 1 [ECUC_Dcm_01127]
DcmSwcDataElementArrayElementValue 1 [ECUC_Dcm_01128]
No Included Containers
10.2.5.20.10 DcmModeRule
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmLogicalOperator 0..1 [ECUC_Dcm_00926]
DcmModeRuleNrcValue 0..1 [ECUC_Dcm_00949]
DcmArgumentRef 1..* [ECUC_Dcm_00927]
No Included Containers
DcmDspComControlCommunicationReEnableModeRuleRef: DcmModeRule:
EcucReferenceDef +destination EcucParamConfContainerDef
lowerMultiplicity = 0 lowerMultiplicity = 1
upperMultiplicity = 1 upperMultiplicity = *
DcmDspCommonAuthorizationModeRuleRef:
EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspWriteMemoryRangeModeRuleRef:
EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspDidReadModeRuleRef: EcucReferenceDef
+destination
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDsdSidTabModeRuleRef:
EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspControlDTCSettingReEnableModeRuleRef:
EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspReadMemoryRangeModeRuleRef:
EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspClearDTCModeRuleRef:
EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspDidWriteModeRuleRef:
EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspDidControlModeRuleRef:
EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDsdSubServiceModeRuleRef:
EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
10.2.5.21 DcmDspVehInfo
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspVehInfoInfoType 1 [ECUC_Dcm_00631]
DcmDspVehInfoNODIProvResp 0..1 [ECUC_Dcm_01051]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmDspVehInfoData 1..* Data Item of an InfoType; ShortName is post-fix of the port
interface name.
DcmDsp:
EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
+subContainer
DcmDspVehInfo: DcmDspVehInfoInfoType:
EcucParamConfContainerDef EcucIntegerParamDef
+parameter
upperMultiplicity = * lowerMultiplicity = 1
lowerMultiplicity = 0 upperMultiplicity = 1
min = 0
max = 255
DcmDspVehInfoDataReadFnc:
DcmDspVehInfoData: +parameter EcucFunctionNameDef
EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = * upperMultiplicity = 1
lowerMultiplicity = 1
DcmDspVehInfoDataSize:
EcucIntegerParamDef
+parameter lowerMultiplicity = 1
upperMultiplicity = 1
min = 0
+subContainer max = 255
DcmDspVehInfoDataOrder:
EcucIntegerParamDef
+parameter
lowerMultiplicity = 1
upperMultiplicity = 1
min = 0
max = 255
DcmDspVehInfoDataUsePort:
+parameter EcucBooleanParamDef
lowerMultiplicity = 1
upperMultiplicity = 1
DcmDspVehInfoNODIProvResp:
EcucBooleanParamDef
+parameter
upperMultiplicity = 1
lowerMultiplicity = 0
defaultValue = false
10.2.5.22 DcmDspVehInfoData
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspVehInfoDataOrder 1 [ECUC_Dcm_00891]
DcmDspVehInfoDataReadFnc 0..1 [ECUC_Dcm_00889]
DcmDspVehInfoDataSize 1 [ECUC_Dcm_00890]
DcmDspVehInfoDataUsePort 1 [ECUC_Dcm_00727]
No Included Containers
10.2.5.23 DcmDspPeriodicTransmission
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspMaxPeriodicDidScheduler 1 [ECUC_Dcm_00962]
DcmDspPeriodicTransmissionFastRate 0..1 [ECUC_Dcm_00960]
DcmDspPeriodicTransmissionMaxPeriodicFast 0..1 [ECUC_Dcm_01182]
Transmissions
DcmDspPeriodicTransmissionMaxPeriodicMedium 0..1 [ECUC_Dcm_01181]
Transmissions
DcmDspPeriodicTransmissionMaxPeriodicSlow 0..1 [ECUC_Dcm_01183]
Transmissions
DcmDspPeriodicTransmissionMediumRate 0..1 [ECUC_Dcm_00959]
DcmDspPeriodicTransmissionSchedulerType 1 [ECUC_Dcm_01180]
DcmDspPeriodicTransmissionSlowRate 0..1 [ECUC_Dcm_00958]
No Included Containers
4
Range 0 .. 255
Default value –
Post-Build Variant Multiplicity false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: local
4
Range SCHEDULER_TYPE1 Selects the scheduler type#1 of ISO
14229-1:2018
SCHEDULER_TYPE2 Selects the scheduler type#2 of ISO
14229-1:2018
Default value SCHEDULER_TYPE1
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: local
DcmDspPeriodicTransmissionMediumRate:
EcucFloatParamDef
+parameter
min = 0.0001
max = 1
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspPeriodicTransmissionFastRate:
EcucFloatParamDef
+parameter
min = 0.0001
max = 1
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspMaxPeriodicDidScheduler:
EcucIntegerParamDef
+parameter
lowerMultiplicity = 1
upperMultiplicity = 1
min = 1
max = 255
+subContainer
DcmDspPeriodicTransmissionSchedulerType:
EcucEnumerationParamDef
+literal +literal
SCHEDULER_TYPE2: SCHEDULER_TYPE1:
EcucEnumerationLiteralDef EcucEnumerationLiteralDef
DcmDspPeriodicTransmissionMaxPeriodicFastTransmissions:
EcucIntegerParamDef
+parameter
min = 0
max = 255
lowerMultiplicity = 0
upperMultiplicity = 1
DcmDspPeriodicTransmissionMaxPeriodicMediumTransmissions:
EcucIntegerParamDef
+parameter
min = 0
max = 255
lowerMultiplicity = 0
upperMultiplicity = 1
+parameter
DcmDspPeriodicTransmissionMaxPeriodicSlowTransmissions:
EcucIntegerParamDef
min = 0
max = 255
lowerMultiplicity = 0
upperMultiplicity = 1
10.2.5.24 DcmDspClearDTC
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDspClearDTCCheckFnc 0..1 [ECUC_Dcm_01066]
DcmDspClearDTCModeRuleRef 0..1 [ECUC_Dcm_01065]
No Included Containers
DcmDsp: EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1
+subContainer
DcmDspClearDTCCheckFnc:
+parameter EcucFunctionNameDef
lowerMultiplicity = 0
upperMultiplicity = 1
10.2.6 DcmGeneral
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmDDDIDStorage 0..1 [ECUC_Dcm_00971]
DcmDevErrorDetect 1 [ECUC_Dcm_00823]
DcmEnableSecurityEventReporting 1 [ECUC_Dcm_01187]
DcmHeaderFileInclusion 0..* [ECUC_Dcm_01019]
DcmRespondAllRequest 1 [ECUC_Dcm_00600]
DcmS3ServerTimeoutOverwrite 0..1 [ECUC_Dcm_01240]
DcmTaskTime 1 [ECUC_Dcm_00820]
DcmVersionInfoApi 1 [ECUC_Dcm_00821]
DcmVinRef 0..1 [ECUC_Dcm_00984]
Included Containers
Container Name Multiplicity Scope / Dependency
DcmSecureCoding 0..1 Contains references to diagnostic elements that are used for the
secure coding process.
DcmSecurityEventRefs 0..1 Container for the references to IdsMEvent elements representing
the security events that the Dcm module shall report to the IdsM
in case the coresponding security related event occurs (and if
DcmEnableSecurityEventReporting is set to "true"). The
standardized security events in this container can be extended
by vendor-specific security events.
Tags: atp.Status=draft
4
Post-build time –
Scope / Dependency scope: local
lowerMultiplicity = 0
upperMultiplicity = 1
+parameter DcmEnableSecurityEventReporting:
EcucBooleanParamDef
defaultValue = false
+destination
+subContainer
DcmSecureCoding: DcmSecureCodingDataBufferSize:
DcmSecureCodingDataIdentifier:
+reference EcucParamConfContainerDef EcucIntegerParamDef
EcucReferenceDef
+parameter
lowerMultiplicity = 0 min = 0
lowerMultiplicity = 1
upperMultiplicity = 1 max = 4294967295
upperMultiplicity = *
lowerMultiplicity = 1
upperMultiplicity = 1
DcmSecureCodingValidationRoutine:
EcucReferenceDef +reference
DcmSecureCodingAuthenticationJobRef:
lowerMultiplicity = 1 +reference EcucReferenceDef
upperMultiplicity = 1 lowerMultiplicity = 1
upperMultiplicity = 1
requiresSymbolicNameValue = true
+destination
+destination
DcmDspRoutine:
EcucParamConfContainerDef CsmJob:
EcucParamConfContainerDef
upperMultiplicity = *
lowerMultiplicity = 0 lowerMultiplicity = 1
upperMultiplicity = *
10.2.6.1 DcmSecurityEventRefs
Included Parameters
Parameter Name Multiplicity ECUC ID
SEV_UDS_AUTHENTICATION_FAILED 0..1 [ECUC_Dcm_01255]
SEV_UDS_AUTHENTICATION_NEEDED 0..1 [ECUC_Dcm_01251]
SEV_UDS_AUTHENTICATION_SUCCESSFUL 0..1 [ECUC_Dcm_01254]
SEV_UDS_CLEAR_DTC_FAILED 0..1 [ECUC_Dcm_01267]
SEV_UDS_CLEAR_DTC_SUCCESSFUL 0..1 [ECUC_Dcm_01266]
SEV_UDS_COMMUNICATION_CONTROL_FAILED 0..1 [ECUC_Dcm_01265]
SEV_UDS_COMMUNICATION_CONTROL_SUCCESSF 0..1 [ECUC_Dcm_01264]
UL
SEV_UDS_CONTROL_DTC_SETTING_FAILED 0..1 [ECUC_Dcm_01269]
SEV_UDS_CONTROL_DTC_SETTING_SUCCESSFUL 0..1 [ECUC_Dcm_01268]
SEV_UDS_ECU_RESET_FAILED 0..1 [ECUC_Dcm_01271]
SEV_UDS_ECU_RESET_SUCCESSFUL 0..1 [ECUC_Dcm_01270]
SEV_UDS_IO_CONTROL_FAILED 0..1 [ECUC_Dcm_01275]
SEV_UDS_IO_CONTROL_SUCCESSFUL 0..1 [ECUC_Dcm_01274]
SEV_UDS_REQUEST_FILE_TRANSFER_FAILED 0..1 [ECUC_Dcm_01263]
SEV_UDS_REQUEST_FILE_TRANSFER_SUCCESSFUL 0..1 [ECUC_Dcm_01262]
SEV_UDS_REQUEST_UP_DOWNLOAD_FAILED 0..1 [ECUC_Dcm_01261]
SEV_UDS_REQUEST_UP_DOWNLOAD_SUCCESSFUL 0..1 [ECUC_Dcm_01260]
SEV_UDS_ROUTINE_CONTROL_FAILED 0..1 [ECUC_Dcm_01273]
SEV_UDS_ROUTINE_CONTROL_SUCCESSFUL 0..1 [ECUC_Dcm_01272]
SEV_UDS_SECURITY_ACCESS_FAILED 0..1 [ECUC_Dcm_01253]
SEV_UDS_SECURITY_ACCESS_NEEDED 0..1 [ECUC_Dcm_01250]
SEV_UDS_SECURITY_ACCESS_SUCCESSFUL 0..1 [ECUC_Dcm_01252]
SEV_UDS_WRITE_DATA_FAILED 0..1 [ECUC_Dcm_01257]
5
4
Included Parameters
Parameter Name Multiplicity ECUC ID
SEV_UDS_WRITE_DATA_SUCCESSFUL 0..1 [ECUC_Dcm_01256]
SEV_UDS_WRITE_MEMORY_FAILED 0..1 [ECUC_Dcm_01259]
SEV_UDS_WRITE_MEMORY_SUCCESSFUL 0..1 [ECUC_Dcm_01258]
No Included Containers
4
Link time –
Post-build time –
Scope / Dependency scope: local
DcmGeneral:
EcucParamConfContainerDef +parameter DcmEnableSecurityEventReporting:
EcucBooleanParamDef
lowerMultiplicity = 1
upperMultiplicity = 1 defaultValue = false
+subContainer
SEV_UDS_AUTHENTICATION_NEEDED: EcucReferenceDef
+reference lowerMultiplicity = 0 +destination
upperMultiplicity = 1
requiresSymbolicNameValue = true
SEV_UDS_SECURITY_ACCESS_SUCCESSFUL:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true
SEV_UDS_SECURITY_ACCESS_FAILED:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true
SEV_UDS_AUTHENTICATION_SUCCESSFUL:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true
SEV_UDS_AUTHENTICATION_FAILED: EcucReferenceDef
+reference lowerMultiplicity = 0 +destination
upperMultiplicity = 1
requiresSymbolicNameValue = true
(from IdsM)
DcmSecurityEventRefs: IdsMEvent:
EcucParamConfContainerDef SEV_UDS_WRITE_DATA_SUCCESSFUL: EcucParamConfContainerDef
+reference EcucReferenceDef +destination
lowerMultiplicity = 0 lowerMultiplicity = 1
upperMultiplicity = 1 lowerMultiplicity = 0 upperMultiplicity = 65535
upperMultiplicity = 1
requiresSymbolicNameValue = true
SEV_UDS_WRITE_DATA_FAILED: EcucReferenceDef
+reference +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true
SEV_UDS_WRITE_MEMORY_SUCCESSFUL:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true
SEV_UDS_WRITE_MEMORY_FAILED: EcucReferenceDef
+reference +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true
SEV_UDS_REQUEST_UP_DOWNLOAD_SUCCESSFUL:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true
SEV_UDS_REQUEST_UP_DOWNLOAD_FAILED:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true
SEV_UDS_REQUEST_FILE_TRANSFER_SUCCESSFUL:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true
SEV_UDS_REQUEST_FILE_TRANSFER_FAILED:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true
(from IdsM)
SEV_UDS_COMMUNICATION_CONTROL_FAILED:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true
SEV_UDS_CLEAR_DTC_SUCCESSFUL: EcucReferenceDef
+reference lowerMultiplicity = 0 +destination
upperMultiplicity = 1
requiresSymbolicNameValue = true
SEV_UDS_CLEAR_DTC_FAILED: EcucReferenceDef
+reference +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true
SEV_UDS_CONTROL_DTC_SETTING_SUCCESSFUL:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true
SEV_UDS_CONTROL_DTC_SETTING_FAILED:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true
SEV_UDS_ECU_RESET_SUCCESSFUL: EcucReferenceDef
+reference +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true
SEV_UDS_ECU_RESET_FAILED: EcucReferenceDef
+reference +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true
SEV_UDS_ROUTINE_CONTROL_SUCCESSFUL:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true
SEV_UDS_ROUTINE_CONTROL_FAILED:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true
SEV_UDS_IO_CONTROL_SUCCESSFUL:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true
SEV_UDS_IO_CONTROL_FAILED: EcucReferenceDef
+reference lowerMultiplicity = 0 +destination
upperMultiplicity = 1
requiresSymbolicNameValue = true
(from IdsM)
10.2.6.2 DcmSecureCoding
Included Parameters
Parameter Name Multiplicity ECUC ID
DcmSecureCodingDataBufferSize 1 [ECUC_Dcm_01247]
DcmSecureCodingAuthenticationJobRef 1 [ECUC_Dcm_01249]
DcmSecureCodingDataIdentifier 1..* [ECUC_Dcm_01246]
DcmSecureCodingValidationRoutine 1 [ECUC_Dcm_01248]
No Included Containers
4
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time –
Post-build time –
Scope / Dependency scope: local
Figure 10.62: Examples of protocol configuration with focus on buffer / DcmPduId set-
tings
Above example shows protocol configuration at the use cases examples OBD and UDS
(used for customer enhanced diagnosis). It is assumed that for UDS communication,
there are functional and physical requests. There will be separate DcmPduRxIds for
functional and physical reception.
Concerning buffer configuration it is proposed to use a separate buffer for the func-
tional requests. This in correspondence to support the keep alive logic with functional
addressed TesterPresent commands.
It is also proposed to use a separate receive buffer for the OBD commands. This in
reference to support the protocol switch functionality.
It is allowed to share for both protocols the transmit buffer. Please note: The DcmDsl-
ProtocolRx has two possible configurations:
• functional
• physical
The physical shall have a 1:1 (or 1:0) dependency to the DcmDslMain-
Connection. (which means: DcmDslProtocolRxPduRef in combination
DCM_PROTOCOL_RX_ADDR_TYP = physical can exist only once per "Mod-
ule") The functional shall have a 1:n dependency to the DcmDslMain-
Connection. (which means: DcmDslProtocolRxPduRef in combination
DCM_PROTOCOL_RX_ADDR_TYP = functional can exist several times per "Module")
The DcmDslProtocolTx shall exist only once per "Module"
Number Heading
[ECUC_Dcm_01250] Definition of EcucReferenceDef SEV_UDS_SECURITY_ACCESS_NEEDED
[ECUC_Dcm_01251] Definition of EcucReferenceDef SEV_UDS_AUTHENTICATION_NEEDED
Definition of EcucReferenceDef SEV_UDS_SECURITY_ACCESS_
[ECUC_Dcm_01252]
SUCCESSFUL
[ECUC_Dcm_01253] Definition of EcucReferenceDef SEV_UDS_SECURITY_ACCESS_FAILED
Definition of EcucReferenceDef SEV_UDS_AUTHENTICATION_
[ECUC_Dcm_01254]
SUCCESSFUL
[ECUC_Dcm_01255] Definition of EcucReferenceDef SEV_UDS_AUTHENTICATION_FAILED
[ECUC_Dcm_01256] Definition of EcucReferenceDef SEV_UDS_WRITE_DATA_SUCCESSFUL
[ECUC_Dcm_01257] Definition of EcucReferenceDef SEV_UDS_WRITE_DATA_FAILED
Definition of EcucReferenceDef SEV_UDS_WRITE_MEMORY_
[ECUC_Dcm_01258]
SUCCESSFUL
[ECUC_Dcm_01259] Definition of EcucReferenceDef SEV_UDS_WRITE_MEMORY_FAILED
Definition of EcucReferenceDef SEV_UDS_REQUEST_UP_DOWNLOAD_
[ECUC_Dcm_01260]
SUCCESSFUL
Definition of EcucReferenceDef SEV_UDS_REQUEST_UP_DOWNLOAD_
[ECUC_Dcm_01261]
FAILED
Definition of EcucReferenceDef SEV_UDS_REQUEST_FILE_TRANSFER_
[ECUC_Dcm_01262]
SUCCESSFUL
Definition of EcucReferenceDef SEV_UDS_REQUEST_FILE_TRANSFER_
[ECUC_Dcm_01263]
FAILED
Definition of EcucReferenceDef SEV_UDS_COMMUNICATION_
[ECUC_Dcm_01264]
CONTROL_SUCCESSFUL
Definition of EcucReferenceDef SEV_UDS_COMMUNICATION_
[ECUC_Dcm_01265]
CONTROL_FAILED
[ECUC_Dcm_01266] Definition of EcucReferenceDef SEV_UDS_CLEAR_DTC_SUCCESSFUL
[ECUC_Dcm_01267] Definition of EcucReferenceDef SEV_UDS_CLEAR_DTC_FAILED
Definition of EcucReferenceDef SEV_UDS_CONTROL_DTC_SETTING_
[ECUC_Dcm_01268]
SUCCESSFUL
Definition of EcucReferenceDef SEV_UDS_CONTROL_DTC_SETTING_
[ECUC_Dcm_01269]
FAILED
5
4
Number Heading
[ECUC_Dcm_01270] Definition of EcucReferenceDef SEV_UDS_ECU_RESET_SUCCESSFUL
[ECUC_Dcm_01271] Definition of EcucReferenceDef SEV_UDS_ECU_RESET_FAILED
Definition of EcucReferenceDef SEV_UDS_ROUTINE_CONTROL_
[ECUC_Dcm_01272]
SUCCESSFUL
[ECUC_Dcm_01273] Definition of EcucReferenceDef SEV_UDS_ROUTINE_CONTROL_FAILED
[ECUC_Dcm_01274] Definition of EcucReferenceDef SEV_UDS_IO_CONTROL_SUCCESSFUL
[ECUC_Dcm_01275] Definition of EcucReferenceDef SEV_UDS_IO_CONTROL_FAILED
[SWS_Dcm_01702] Reporting security access denied to IdsM
Security event context data definition: SEV_UDS_SECURITY_ACCESS_
[SWS_Dcm_01703]
NEEDED
[SWS_Dcm_01704] Reporting authentication required to IdsM
Security event context data definition: SEV_UDS_AUTHENTICATION_
[SWS_Dcm_01705]
NEEDED
[SWS_Dcm_01706] Reporting successful security access to IdsM
Security event context data definition: SEV_UDS_SECURITY_ACCESS_
[SWS_Dcm_01707]
SUCCESSFUL
[SWS_Dcm_01708] Reporting failed security access to IdsM
Security event context data definition: SEV_UDS_SECURITY_ACCESS_
[SWS_Dcm_01709]
FAILED
[SWS_Dcm_01710] Reporting successful authentication to IdsM
Security event context data definition: SEV_UDS_AUTHENTICATION_
[SWS_Dcm_01711]
SUCCESSFUL
[SWS_Dcm_01712] Reporting failed authentication to IdsM
Security event context data definition: SEV_UDS_AUTHENTICATION_
[SWS_Dcm_01713]
FAILED
[SWS_Dcm_01714] Reporting successful writing of data to IdsM
Security event context data definition: SEV_UDS_WRITE_DATA_
[SWS_Dcm_01715]
SUCCESSFUL
[SWS_Dcm_01716] Reporting writing of data failed to IdsM
[SWS_Dcm_01717] Security event context data definition: SEV_UDS_WRITE_DATA_FAILED
[SWS_Dcm_01718] Reporting successful up download to IdsM
Security event context data definition: SEV_UDS_REQUEST_UP_
[SWS_Dcm_01719]
DOWNLOAD_SUCCESSFUL
[SWS_Dcm_01720] Reporting up download failed to IdsM
Security event context data definition: SEV_UDS_REQUEST_UP_
[SWS_Dcm_01721]
DOWNLOAD_FAILED
[SWS_Dcm_01722] Reporting successful file transfer to IdsM
Security event context data definition: SEV_UDS_REQUEST_FILE_
[SWS_Dcm_01723]
TRANSFER_SUCCESSFUL
[SWS_Dcm_01724] Reporting file transfer failed to IdsM
Security event context data definition: SEV_UDS_REQUEST_FILE_
[SWS_Dcm_01725]
TRANSFER_FAILED
5
4
Number Heading
[SWS_Dcm_01726] Reporting successful communication control to IdsM
Security event context data definition: SEV_UDS_COMMUNICATION_
[SWS_Dcm_01727]
CONTROL_SUCCESSFUL
[SWS_Dcm_01728] Reporting communication control failed to IdsM
Security event context data definition: SEV_UDS_COMMUNICATION_
[SWS_Dcm_01729]
CONTROL_FAILED
[SWS_Dcm_01730] Reporting successful clearing of dtc to IdsM
Security event context data definition: SEV_UDS_CLEAR_DTC_
[SWS_Dcm_01731]
SUCCESSFUL
[SWS_Dcm_01732] Reporting clearing of dtc failed to IdsM
[SWS_Dcm_01733] Security event context data definition: SEV_UDS_CLEAR_DTC_FAILED
[SWS_Dcm_01734] Reporting successful control of dtc to IdsM
Security event context data definition: SEV_UDS_CONTROL_DTC_
[SWS_Dcm_01735]
SETTING_SUCCESSFUL
[SWS_Dcm_01736] Reporting control of dtc failed to IdsM
Security event context data definition: SEV_UDS_CONTROL_DTC_
[SWS_Dcm_01737]
SETTING_FAILED
[SWS_Dcm_01738] Reporting successful reset of ECU to IdsM
Security event context data definition: SEV_UDS_ECU_RESET_
[SWS_Dcm_01739]
SUCCESSFUL
[SWS_Dcm_01740] Reporting reset of ECU failed to IdsM
[SWS_Dcm_01741] Security event context data definition: SEV_UDS_ECU_RESET_FAILED
[SWS_Dcm_01742] Reporting successful routine control to IdsM
Security event context data definition: SEV_UDS_ROUTINE_CONTROL_
[SWS_Dcm_01743]
SUCCESSFUL
[SWS_Dcm_01744] Reporting routine control failed to IdsM
Security event context data definition: SEV_UDS_ROUTINE_CONTROL_
[SWS_Dcm_01745]
FAILED
[SWS_Dcm_01746] Reporting successful IO control to IdsM
Security event context data definition: SEV_UDS_IO_CONTROL_
[SWS_Dcm_01747]
SUCCESSFUL
[SWS_Dcm_01748] Reporting IO control failed to IdsM
[SWS_Dcm_01749] Security event context data definition: SEV_UDS_IO_CONTROL_FAILED
[SWS_Dcm_01750] Reporting successful Memory Write operation to IdsM
Security event context data definition: SEV_UDS_WRITE_MEMORY_
[SWS_Dcm_01751]
SUCCESSFUL
[SWS_Dcm_01752] Reporting Write Memory failed to IdsM
Security event context data definition: SEV_UDS_WRITE_MEMORY_
[SWS_Dcm_01753]
FAILED
Table A.1: Added Specification Items in R24-11
Number Heading
[ECUC_Dcm_00690] Definition of EcucParamConfContainerDef DcmDsl
[ECUC_Dcm_00784] Definition of EcucParamConfContainerDef DcmDspMemory
[ECUC_Dcm_00858] Definition of EcucParamConfContainerDef DcmDspRoe
[ECUC_Dcm_00911] Definition of EcucParamConfContainerDef DcmDspMemoryIdInfo
Definition of EcucParamConfContainerDef DcmDspAuthentication
[ECUC_Dcm_01162]
Connection
Definition of EcucReferenceDef DcmDspAuthenticationPublicKeyElement
[ECUC_Dcm_01166]
Ref
Definition of EcucReferenceDef DcmDspAuthenticationWhiteListServices
[ECUC_Dcm_01168]
ElementRef
Definition of EcucReferenceDef DcmDspAuthenticationCertificatePublicKey
[ECUC_Dcm_01176]
StoreJobRef
[ECUC_Dcm_01177] Definition of EcucReferenceDef DcmDspAuthenticationECUCertificateRef
[ECUC_Dcm_01188] Definition of EcucParamConfContainerDef DcmSecurityEventRefs
Definition of EcucIntegerParamDef DcmDspRoeMaxNumComparisonOf
[ECUC_Dcm_01237]
ValueEvents
[ECUC_Dcm_01238] Definition of EcucIntegerParamDef DcmDspRoeMaxSupportedDIDLength
Definition of EcucIntegerParamDef DcmDspRoeMaxNumOfStored
[ECUC_Dcm_01239]
DTCStatusChangedEvents
[SWS_Dcm_00250]
[SWS_Dcm_00481]
[SWS_Dcm_00482]
[SWS_Dcm_00483]
[SWS_Dcm_00539] Definition of configurable interface Dcm_ReadMemory
[SWS_Dcm_00594]
[SWS_Dcm_00755] Definition of configurable interface Dcm_ProcessRequestTransferExit
[SWS_Dcm_00763] Definition of configurable interface <Module>_<DiagnosticService>
[SWS_Dcm_00796] Definition of configurable interface Xxx_ReadDataLength
[SWS_Dcm_00804] Definition of configurable interface Xxx_ReadDidData
[SWS_Dcm_00988] Definition of datatype Dcm_ProgConditionsType
[SWS_Dcm_01151] Definition of configurable interface Xxx_GetSeed
[SWS_Dcm_01182]
[SWS_Dcm_01183]
[SWS_Dcm_01204] Definition of configurable interface Xxx_Stop
[SWS_Dcm_01429]
[SWS_Dcm_01473] Check certificate content
[SWS_Dcm_01478] Mode declaration group per connection
[SWS_Dcm_01489] No persistency for deauthenticated roles by SWC
5
4
Number Heading
[SWS_Dcm_01508] Sending positive response on verifyCertificateBidirectional
[SWS_Dcm_01517] White list access
[SWS_Dcm_01518] White list size check
[SWS_Dcm_01528] Transition into authenticated state
[SWS_Dcm_01540] Diagnostic service execution rights verification
[SWS_Dcm_01545] Read user defined memory by status mask authentication check
[SWS_Dcm_01546] Read user defined memory snapshot record authentication check
[SWS_Dcm_01547] Read user defined memory extended data record authentication check
[SWS_Dcm_01590] Security events for Dcm
[SWS_Dcm_01604] Delay parallel processing on the same application interface change
[SWS_Dcm_01630] Maximum number of comparison of value DIDs per scheduler
[SWS_Dcm_01632] Maximum number of changed DTCs per scheduler
[SWS_Dcm_01641] Support of UDS Services
[SWS_Dcm_01656] Subfunction 0x42 response values
[SWS_Dcm_91002] Definition of optional interfaces requested by module Dcm
[SWS_Dcm_91003] Definition of configurable interface Xxx_GetSeed
[SWS_Dcm_91013] Definition of configurable interface Xxx_RequestResults
[SWS_Dcm_91069] Definition of API function Dcm_SetDeauthenticatedRole
[SWS_Dcm_91071] Definition of configurable interface Dcm_ProcessTransferDataWrite
[SWS_Dcm_91073] Definition of Port Authentication_{Connection} provided by module Dcm
[SWS_Dcm_91091] Definition of configurable interface Xxx_ReadData
[SWS_Dcm_91092] Definition of configurable interface Xxx_WriteData
[SWS_Dcm_91093] Definition of configurable interface Xxx_GetScalingInformation
[SWS_Dcm_91094] Definition of configurable interface Xxx_GetScalingInformation
[SWS_Dcm_91095] Definition of configurable interface Xxx_WriteData
[SWS_Dcm_91097] Definition of configurable interface Xxx_ReadDataLength
[SWS_Dcm_91098] Definition of configurable interface Xxx_ReturnControlToECU
[SWS_Dcm_91099] Definition of configurable interface Xxx_ResetToDefault
[SWS_Dcm_91100] Definition of configurable interface Xxx_ResetToDefault
[SWS_Dcm_91102] Definition of configurable interface Xxx_FreezeCurrentState
[SWS_Dcm_91103] Definition of configurable interface Xxx_ShortTermAdjustment
Table A.2: Changed Specification Items in R24-11
Number Heading
Definition of EcucParamConfContainerDef
[ECUC_Dcm_00679]
DcmDslCallbackDCMRequestService
[ECUC_Dcm_01189] Definition of EcucReferenceDef SEV_UDS_WRITE_INVALID_DATA
[ECUC_Dcm_01190] Definition of EcucReferenceDef SEV_UDS_SECURITY_ACCESS_DENIED
Definition of EcucReferenceDef
[ECUC_Dcm_01191]
SEV_UDS_COMMUNICATION_CONTROL_SWITCHED_OFF
[ECUC_Dcm_01192] Definition of EcucReferenceDef SEV_UDS_SERVICE_NOT_SUPPORTED
Definition of EcucReferenceDef
[ECUC_Dcm_01193]
SEV_UDS_SUBFUNCTION_NOT_SUPPORTED
Definition of EcucReferenceDef
[ECUC_Dcm_01194]
SEV_UDS_INCORRECT_MESSAGE_LENGTH_OR_FORMAT
Definition of EcucReferenceDef
[ECUC_Dcm_01195]
SEV_UDS_REQUEST_SEQUENCE_ERROR
[ECUC_Dcm_01196] Definition of EcucReferenceDef SEV_UDS_ECU_UNLOCK_SUCCESSFUL
Definition of EcucReferenceDef
[ECUC_Dcm_01197]
SEV_UDS_AUTHENTICATION_SUCCESSFUL
[ECUC_Dcm_01198] Definition of EcucReferenceDef SEV_UDS_CLEAR_DTC_SUCCESSFUL
[ECUC_Dcm_01199] Definition of EcucReferenceDef SEV_UDS_ECU_RESET
[ECUC_Dcm_01200] Definition of EcucReferenceDef SEV_UDS_WRITE_DATA
[ECUC_Dcm_01201] Definition of EcucReferenceDef SEV_UDS_REQUEST_DOWNLOAD
Definition of EcucReferenceDef
[ECUC_Dcm_01202]
SEV_UDS_DTC_SETTING_SWITCHED_OFF
[ECUC_Dcm_01203] Definition of EcucReferenceDef SEV_UDS_REQUEST_OUT_OF_RANGE
Definition of EcucReferenceDef
[ECUC_Dcm_01204]
SEV_UDS_REQUESTED_ACTIONS_REQUIRES_AUTHENTICATION
Definition of EcucReferenceDef
[ECUC_Dcm_01205]
SEV_UDS_SECURITY_ACCESS_NUMBER_OF_ATTEMPTS_EXCEEDED
Definition of EcucReferenceDef
[ECUC_Dcm_01206]
SEV_UDS_SECURITY_ACCESS_INVALID_KEY
Definition of EcucReferenceDef
[ECUC_Dcm_01207]
SEV_UDS_SECURITY_ACCESS_REQUIRED_TIME_DELAY_NOT_EXPIRED
Definition of EcucReferenceDef
[ECUC_Dcm_01208]
SEV_UDS_NUMBER_OF_FAILED_AUTHENTICATION_ATTEMPTS_EXCEEDED
[ECUC_Dcm_01209] Definition of EcucReferenceDef SEV_UDS_CERTIFICATE_FAILURE
[SWS_Dcm_00036]
[SWS_Dcm_00144]
[SWS_Dcm_00145]
[SWS_Dcm_00146]
[SWS_Dcm_00147]
5
4
Number Heading
[SWS_Dcm_00459] Callback notification for preempted protocols
[SWS_Dcm_00624]
[SWS_Dcm_00625]
[SWS_Dcm_00668]
[SWS_Dcm_00669]
[SWS_Dcm_00670]
[SWS_Dcm_00671]
[SWS_Dcm_00672]
[SWS_Dcm_00673]
[SWS_Dcm_00674]
[SWS_Dcm_00692] Definition of ClientServerInterface CallbackDCMRequestServices
[SWS_Dcm_00728]
[SWS_Dcm_00775]
[SWS_Dcm_00943]
[SWS_Dcm_00945]
[SWS_Dcm_00949]
Definition of Port CallbackDCMRequestServices_{Name} required by
[SWS_Dcm_01033]
module Dcm
[SWS_Dcm_01190]
[SWS_Dcm_01194]
[SWS_Dcm_01339] Definition of configurable interface Xxx_StartProtocol
[SWS_Dcm_01340] Definition of configurable interface Xxx_StopProtocol
[SWS_Dcm_01394]
Table A.3: Deleted Specification Items in R24-11
none
Number Heading
[SWS_Dcm_-
CONSTR_- Existence of size parameter
06002]
5
4
Number Heading
[SWS_Dcm_-
CONSTR_- Define the usage of DcmDspRoutineParameterSize parameter
06008]
[SWS_Dcm_-
CONSTR_-
06105]
[SWS_Dcm_-
CONSTR_-
06106]
[SWS_Dcm_-
CONSTR_-
06107]
Table A.4: Changed Constraints in R24-11
none
Number Heading
[SWS_Dcm_01641] Support of UDS Services
[SWS_Dcm_01642] Subfunction 0x01, 0x07 and 0x12 response values
Dem_SetDTCFilter() parameters values for subfunctions 0x01, 0x07 and
[SWS_Dcm_01643]
0x12
[SWS_Dcm_01644] Subfunction 0x02, 0x0A, 0x13, 0x15 and 0x17 response values
Dem_SetDTCFilter() parameters values for subfunctions 0x02, 0x0A, 0x13,
[SWS_Dcm_01645]
0x15 and0x17
[SWS_Dcm_01646] Subfunction 0x08 response values
[SWS_Dcm_01647] Dem_SetDTCFilter() parameters values for Subfunction 0x08
[SWS_Dcm_01648] Subfunction 0x09 response values
[SWS_Dcm_01649] Dem_SelectDTC() parameters values for subfunctions 0x06 and 0x19
Dem_SelectExtendedDataRecord() parameters values for subfunctions
[SWS_Dcm_01650]
0x06 and 0x19
[SWS_Dcm_01651] Subfunction 0x05 response values
5
4
Number Heading
[SWS_Dcm_01652] Subfunctions 0x0B, 0x0C, 0x0D and 0x0E response values
Dem_GetDTCByOccurrenceTime() parameters values for subfunctions
[SWS_Dcm_01653]
0x0B, 0x0C, 0x0D and 0x0E
[SWS_Dcm_01654] Subfunction 0x14 response values
Dem_GetNextFilteredDTCAndFDC() parameters values for subfunctions
[SWS_Dcm_01655]
0x14
[SWS_Dcm_01656] Subfunction 0x42 response values
Dem_GetNextFilteredDTCAndSeverity() parameters values for subfunctions
[SWS_Dcm_01657]
0x42
[SWS_Dcm_01658] Dem_GetNextFilteredDTCAndSeverity return values
[SWS_Dcm_01659] Subfunction 0x55 response values
[SWS_Dcm_01660] Dem_SetDTCFilter() parameters values for subfunction 0x55
[SWS_Dcm_01661] InputOutputControlParameter definitions
[SWS_Dcm_01662] NRC managed by callout function for service 0x34
[SWS_Dcm_01663] NRC managed by callout function for service 0x35
[SWS_Dcm_01664] NRC managed by callout function for service 0x37
[SWS_Dcm_01665] NRC managed by callout function for service 0x36
[SWS_Dcm_01666] Concurrent tester present support
[SWS_Dcm_01667] Concurrent tester present from different connections
[SWS_Dcm_01668] S3Server session timer support
[SWS_Dcm_01669] Sessions and connections
[SWS_Dcm_01670] Change to default session upon S3Server elapses
[SWS_Dcm_01671] Message reception according to ISO 14229-2
[SWS_Dcm_01672] Mapping of T_DataSOM.ind
[SWS_Dcm_01673] Mapping of T_Data.ind
[SWS_Dcm_01674] Multi client handling
[SWS_Dcm_01675] Protocol resource availability
[SWS_Dcm_01676] Decline a second request with NRC 0x21
[SWS_Dcm_01677] Ignoring a second request
[SWS_Dcm_01678] Mulitple requests on the same connection
[SWS_Dcm_01679] Default S3 timeout value
[SWS_Dcm_01680] Overwritten S3 timeout value
[SWS_Dcm_01681] Support of subfunction transmitCertificate
[SWS_Dcm_01682] Verify certificateEvaluationId
[SWS_Dcm_01683] Certificate storage parsing and verification
[SWS_Dcm_01684] Starting the secure coding sequence
[SWS_Dcm_01685] Write Secure Coding DID for started secure coding sequence
[SWS_Dcm_01686] Write Secure Coding DID without a started secure coding sequence
[SWS_Dcm_01687] Write Secure Coding DID buffer overflow
5
4
Number Heading
[SWS_Dcm_01688] Secure Coding validation trigger on inactive secure coding sequence
[SWS_Dcm_01689] Secure Coding validation trigger without written data
[SWS_Dcm_01690] Dcm internal processing of secure coding validation routine
[SWS_Dcm_01691] Authentication of secure coding data
[SWS_Dcm_01692] Successful authenticated secure coding data
[SWS_Dcm_01693] Successfully completed secure coding procedure
[SWS_Dcm_01694] Failed secure coding write
[SWS_Dcm_01695] Wrong signature for secure coding data
[SWS_Dcm_01696] Behavior on too long signature validation
Definition of Port AuthenticationStateModeSwitchInterface_{Connection}
[SWS_Dcm_91075]
provided by module Dcm
Table A.5: Added Specification Items in R23-11
Number Heading
[SWS_Dcm_00027]
[SWS_Dcm_00030]
[SWS_Dcm_00092] Definition of API function Dcm_CopyTxData
[SWS_Dcm_00094] Definition of callback function Dcm_StartOfReception
[SWS_Dcm_00143]
[SWS_Dcm_00293]
[SWS_Dcm_00295]
[SWS_Dcm_00333] Definition of imported datatypes of module Dcm
[SWS_Dcm_00338] Definition of API function Dcm_GetSecurityLevel
[SWS_Dcm_00339] Definition of API function Dcm_GetSesCtrlType
[SWS_Dcm_00376]
[SWS_Dcm_00377]
[SWS_Dcm_00378]
[SWS_Dcm_00379]
[SWS_Dcm_00380]
[SWS_Dcm_00381]
[SWS_Dcm_00382]
[SWS_Dcm_00392]
[SWS_Dcm_00442]
[SWS_Dcm_00464]
5
4
Number Heading
[SWS_Dcm_00465]
[SWS_Dcm_00466]
[SWS_Dcm_00520] Definition of API function Dcm_ResetToDefaultSession
[SWS_Dcm_00539] Definition of configurable interface Dcm_ReadMemory
[SWS_Dcm_00540] Definition of configurable interface Dcm_WriteMemory
[SWS_Dcm_00543] Definition of configurable interface Dcm_SetProgConditions
[SWS_Dcm_00544] Definition of configurable interface Dcm_GetProgConditions
[SWS_Dcm_00556] Definition of API function Dcm_CopyRxData
[SWS_Dcm_00574]
[SWS_Dcm_00579]
[SWS_Dcm_00614] Definition of API function Dcm_DemTriggerOnDTCStatus
[SWS_Dcm_00641]
[SWS_Dcm_00685] Definition of ClientServerInterface SecurityAccess_{SecurityLevel}
[SWS_Dcm_00686] Definition of ClientServerInterface DataServices_{Data}
[SWS_Dcm_00687] Definition of SenderReceiverInterface DataServices_{Data}
[SWS_Dcm_00688] Definition of ClientServerInterface InfotypeServices_{VehInfoData}
[SWS_Dcm_00690] Definition of ClientServerInterface RoutineServices_{RoutineName}
[SWS_Dcm_00691] Definition of ClientServerInterface RequestControlServices_{Tid}
[SWS_Dcm_00694] Definition of ClientServerInterface ServiceRequestNotification
[SWS_Dcm_00698] Definition of ClientServerInterface DCMServices
[SWS_Dcm_00754] Definition of configurable interface Dcm_ProcessRequestDownload
[SWS_Dcm_00755] Definition of configurable interface Dcm_ProcessRequestTransferExit
[SWS_Dcm_00756] Definition of configurable interface Dcm_ProcessRequestUpload
[SWS_Dcm_00763] Definition of configurable interface <Module>_<DiagnosticService>
Definition of configurable interface <Module>_<DiagnosticService>_<Sub
[SWS_Dcm_00764]
Service>
[SWS_Dcm_00769] Definition of ClientServerInterface DataServices_DIDRange_{Range}
[SWS_Dcm_00793] Definition of configurable interface Xxx_ReadData
[SWS_Dcm_00794] Definition of configurable interface Xxx_WriteData
[SWS_Dcm_00796] Definition of configurable interface Xxx_ReadDataLength
[SWS_Dcm_00797] Definition of configurable interface Xxx_ConditionCheckRead
[SWS_Dcm_00798] Definition of configurable interface Xxx_GetScalingInformation
[SWS_Dcm_00802] Definition of configurable interface Xxx_ShortTermAdjustment
[SWS_Dcm_00803] Definition of configurable interface Xxx_IsDidAvailable
[SWS_Dcm_00804] Definition of configurable interface Xxx_ReadDidData
[SWS_Dcm_00805] Definition of configurable interface Xxx_WriteDidData
[SWS_Dcm_00950] Definition of API function Dcm_GetVin
[SWS_Dcm_00976] Definition of datatype Dcm_StatusType
[SWS_Dcm_00977] Definition of ImplementationDataType Dcm_SecLevelType
5
4
Number Heading
[SWS_Dcm_00978] Definition of ImplementationDataType Dcm_SesCtrlType
[SWS_Dcm_00979] Definition of ImplementationDataType Dcm_ProtocolType
[SWS_Dcm_00980] Definition of ImplementationDataType Dcm_NegativeResponseCodeType
[SWS_Dcm_00981] Definition of datatype Dcm_CommunicationModeType
[SWS_Dcm_00982] Definition of datatype Dcm_ConfigType
[SWS_Dcm_00983] Definition of ImplementationDataType Dcm_ConfirmationStatusType
[SWS_Dcm_00984] Definition of ImplementationDataType Dcm_OpStatusType
[SWS_Dcm_00985] Definition of datatype Dcm_ReturnReadMemoryType
[SWS_Dcm_00986] Definition of datatype Dcm_ReturnWriteMemoryType
[SWS_Dcm_00987] Definition of datatype Dcm_EcuStartModeType
[SWS_Dcm_00988] Definition of datatype Dcm_ProgConditionsType
[SWS_Dcm_00989] Definition of datatype Dcm_MsgItemType
[SWS_Dcm_00990] Definition of datatype Dcm_MsgType
[SWS_Dcm_00991] Definition of datatype Dcm_MsgLenType
[SWS_Dcm_00993] Definition of datatype Dcm_IdContextType
[SWS_Dcm_00994] Definition of datatype Dcm_MsgContextType
[SWS_Dcm_01012] Definition of ImplementationDataType Dcm_RangeArray_{Range}Type
Definition of ImplementationDataType Dcm_InfoTypeServicesArray_{VehInfo
[SWS_Dcm_01013]
Data}Type
Definition of ImplementationDataType Dcm_RequestControlServicesIn
[SWS_Dcm_01014]
Array_{Tid}Type
Definition of ImplementationDataType Dcm_RequestControlServicesOut
[SWS_Dcm_01015]
Array_{Tid}Type
[SWS_Dcm_01017] Definition of ImplementationDataType Dcm_ScalingInfoArray_{Data}Type
Definition of ImplementationDataType Dcm_RequestData
[SWS_Dcm_01018]
Out_{Routine}_{Signal}PrimitivType
Definition of ImplementationDataType Dcm_RequestFlexibleOutArray
[SWS_Dcm_01019]
Data_{Routine}_{Signal}Type
Definition of ImplementationDataType Dcm_StartData
[SWS_Dcm_01020]
In_{Routine}_{Signal}PrimitivType
Definition of ImplementationDataType Dcm_StartData
[SWS_Dcm_01021]
Out_{Routine}_{Signal}PrimitivType
Definition of ImplementationDataType Dcm_StartFlexibleInArray
[SWS_Dcm_01022]
Data_{Routine}_{Signal}Type
Definition of ImplementationDataType Dcm_StartFlexibleOutArray
[SWS_Dcm_01023]
Data_{Routine}_{Signal}Type
Definition of ImplementationDataType Dcm_StopData
[SWS_Dcm_01024]
In_{Routine}_{Signal}PrimitivType
Definition of ImplementationDataType Dcm_StopData
[SWS_Dcm_01025]
Out_{Routine}_{Signal}PrimitivType
5
4
Number Heading
Definition of ImplementationDataType Dcm_StopFlexibleInArray
[SWS_Dcm_01026]
Data_{Routine}_{Signal}Type
Definition of ImplementationDataType Dcm_StopFlexibleOutArray
[SWS_Dcm_01027]
Data_{Routine}_{Signal}Type
[SWS_Dcm_01028] Definition of ImplementationDataType Dcm_KeyArray_{SecurityLevel}Type
[SWS_Dcm_01029] Definition of ImplementationDataType Dcm_SeedArray_{SecurityLevel}Type
[SWS_Dcm_01030] Definition of Port DCMServices provided by module Dcm
[SWS_Dcm_01031] Definition of Port DataServices_{Data} provided by module Dcm
Definition of Port DataServices_DIDRange_{Range} required by module
[SWS_Dcm_01034]
Dcm
[SWS_Dcm_01035] Definition of Port DataServices_{Data} required by module Dcm
[SWS_Dcm_01037] Definition of Port InfotypeServices_{VehInfoData} required by module Dcm
[SWS_Dcm_01038] Definition of Port RequestControlServices_{Tid} required by module Dcm
Definition of Port ServiceRequestManufacturerNotification_{Name} required
[SWS_Dcm_01039]
by module Dcm
[SWS_Dcm_01040] Definition of Port RoutineServices_{RoutineName} required by module Dcm
[SWS_Dcm_01041] Definition of Port SecurityAccess_{SecurityLevel} required by module Dcm
Definition of Port ServiceRequestSupplierNotification_{Name} required by
[SWS_Dcm_01042]
module Dcm
[SWS_Dcm_01068] Definition of API function Dcm_SetActiveDiagnostic
[SWS_Dcm_01121] Definition of ImplementationDataType Dcm_DataArrayTypeUint8_{Data}Type
[SWS_Dcm_01129]
[SWS_Dcm_01130]
[SWS_Dcm_01131]
[SWS_Dcm_01132]
[SWS_Dcm_01133]
[SWS_Dcm_01134]
[SWS_Dcm_01138] Definition of ImplementationDataType Dcm_DidSupportedType
[SWS_Dcm_01151] Definition of configurable interface Xxx_GetSeed
[SWS_Dcm_01152] Definition of configurable interface Xxx_GetSecurityAttemptCounter
[SWS_Dcm_01153] Definition of configurable interface Xxx_SetSecurityAttemptCounter
Definition of ImplementationDataType Dcm_SecurityAccessDataRecord
[SWS_Dcm_01159]
Array_{SecurityLevel}Type
[SWS_Dcm_01165] Definition of ImplementationDataType Dcm_RequestDataArrayType
[SWS_Dcm_01173]
[SWS_Dcm_01203] Definition of configurable interface Xxx_Start
[SWS_Dcm_01204] Definition of configurable interface Xxx_Stop
[SWS_Dcm_01270] Definition of configurable interface Xxx_ClearDTCCheckFnc
[SWS_Dcm_01271] Definition of configurable interface Xxx_ReadDidRangeDataLength
[SWS_Dcm_01273]
5
4
Number Heading
[SWS_Dcm_01285] Definition of configurable interface Xxx_ReturnControlToECU
[SWS_Dcm_01286] Definition of configurable interface Xxx_ResetToDefault
[SWS_Dcm_01290] Definition of configurable interface Xxx_FreezeCurrentState
Definition of ImplementationDataType Dcm_InputOutputControlParameter
[SWS_Dcm_01305]
Type
[SWS_Dcm_01306] Definition of ImplementationDataType Dcm_IOOperationRequest_{DID}Type
[SWS_Dcm_01307] Definition of ImplementationDataType Dcm_IOOperationResponseType
[SWS_Dcm_01308] Definition of SenderReceiverInterface IOControlRequest_{DID}
[SWS_Dcm_01309] Definition of SenderReceiverInterface IOControlResponse_{DID}
[SWS_Dcm_01310] Definition of Port DataServices_{Data} required by module Dcm
[SWS_Dcm_01311] Definition of Port DataServices_{Data} provided/required by module Dcm
[SWS_Dcm_01312] Definition of Port IOControlRequest_{DID} provided/required by module Dcm
[SWS_Dcm_01313] Definition of Port IOControlResponse_{DID} required by module Dcm
[SWS_Dcm_01314] Definition of configurable interface Xxx_ResetToDefault
[SWS_Dcm_01315] Definition of configurable interface Xxx_FreezeCurrentState
[SWS_Dcm_01316] Definition of configurable interface Xxx_ShortTermAdjustment
[SWS_Dcm_01320] Definition of ImplementationDataType Dcm_ControlMask_{DID}Type
[SWS_Dcm_01338] Definition of configurable interface Xxx_RequestControl
[SWS_Dcm_01341] Definition of configurable interface Xxx_Indication
[SWS_Dcm_01342] Definition of configurable interface Xxx_Confirmation
[SWS_Dcm_01345]
[SWS_Dcm_01415] Behavior on application returning unexpected return code
[SWS_Dcm_01590] Security events for Dcm
[SWS_Dcm_91001] Definition of mandatory interfaces in module Dcm
[SWS_Dcm_91002] Definition of optional interfaces in module Dcm
[SWS_Dcm_91003] Definition of configurable interface Xxx_GetSeed
[SWS_Dcm_91004] Definition of configurable interface Xxx_CompareKey
[SWS_Dcm_91005] Definition of configurable interface Xxx_ReadData
[SWS_Dcm_91006] Definition of configurable interface Xxx_ReadData
[SWS_Dcm_91007] Definition of configurable interface Xxx_WriteData
[SWS_Dcm_91008] Definition of configurable interface Xxx_WriteData
[SWS_Dcm_91009] Definition of configurable interface Xxx_WriteData
[SWS_Dcm_91010] Definition of configurable interface Xxx_ReadDataLength
[SWS_Dcm_91011] Definition of configurable interface Xxx_ConditionCheckRead
[SWS_Dcm_91012] Definition of configurable interface Xxx_GetScalingInformation
[SWS_Dcm_91013] Definition of configurable interface Xxx_RequestResults
[SWS_Dcm_91014] Definition of configurable interface Xxx_GetInfotypeValueData
[SWS_Dcm_91015] Definition of datatype Dcm_ExtendedOpStatusType
[SWS_Dcm_91016] Definition of configurable interface Xxx_StartConfirmation
5
4
Number Heading
[SWS_Dcm_91017] Definition of configurable interface Xxx_StopConfirmation
[SWS_Dcm_91018] Definition of configurable interface Xxx_RequestResultsConfirmation
[SWS_Dcm_91019] Definition of ModeDeclarationGroup DcmDiagnosticSessionControl
Definition of ModeSwitchInterface Dcm_DiagnosticSessionControlMode
[SWS_Dcm_91020]
SwitchInterface
[SWS_Dcm_91021] Definition of ModeDeclarationGroup DcmEcuReset
[SWS_Dcm_91022] Definition of ModeSwitchInterface Dcm_EcuResetModeSwitchInterface
[SWS_Dcm_91023] Definition of ModeDeclarationGroup DcmModeRapidPowerShutDown
Definition of ModeSwitchInterface Dcm_ModeRapidPowerShutDownMode
[SWS_Dcm_91024]
SwitchInterface
[SWS_Dcm_91025] Definition of ModeDeclarationGroup DcmCommunicationControl
Definition of ModeSwitchInterface CommunicationControlModeSwitch
[SWS_Dcm_91026]
Interface_{ComMChannelName}
[SWS_Dcm_91027] Definition of ModeDeclarationGroup DcmControlDTCSetting
Definition of ModeSwitchInterface Dcm_ControlDTCSettingModeSwitch
[SWS_Dcm_91028]
Interface
[SWS_Dcm_91031] Definition of ModeDeclarationGroup DcmSecurityAccess
Definition of ModeSwitchInterface Dcm_SecurityAccessModeSwitch
[SWS_Dcm_91032]
Interface
Definition of Port DiagnosticSessionControlModeSwitchInterface provided by
[SWS_Dcm_91033]
module Dcm
[SWS_Dcm_91034] Definition of Port EcuResetModeSwitchInterface provided by module Dcm
Definition of Port ModeRapidPowerShutDownModeSwitchInterface provided
[SWS_Dcm_91035]
by module Dcm
Definition of Port CommunicationControlModeSwitchInterface_{Com
[SWS_Dcm_91036]
MChannelName} provided by module Dcm
Definition of Port ControlDTCSettingModeSwitchInterface provided by
[SWS_Dcm_91037]
module Dcm
Definition of Port SecurityAccessModeSwitchInterface provided by module
[SWS_Dcm_91039]
Dcm
Definition of ImplementationDataType Dcm_RequestData
[SWS_Dcm_91040]
Out_{Routine}_{Signal}Type
Definition of ImplementationDataType Dcm_RequestData
[SWS_Dcm_91041]
Out_{Routine}_{Signal}ArrayType
Definition of ImplementationDataType Dcm_StartData
[SWS_Dcm_91042]
In_{Routine}_{Signal}Type
Definition of ImplementationDataType Dcm_StartData
[SWS_Dcm_91043]
In_{Routine}_{Signal}ArrayType
Definition of ImplementationDataType Dcm_StartData
[SWS_Dcm_91044]
Out_{Routine}_{Signal}Type
Definition of ImplementationDataType Dcm_StartData
[SWS_Dcm_91045]
Out_{Routine}_{Signal}ArrayType
5
4
Number Heading
Definition of ImplementationDataType Dcm_StopData
[SWS_Dcm_91046]
In_{Routine}_{Signal}Type
Definition of ImplementationDataType Dcm_StopData
[SWS_Dcm_91047]
In_{Routine}_{Signal}ArrayType
Definition of ImplementationDataType Dcm_StopData
[SWS_Dcm_91048]
Out_{Routine}_{Signal}Type
Definition of ImplementationDataType Dcm_StopData
[SWS_Dcm_91049]
Out_{Routine}_{Signal}ArrayType
[SWS_Dcm_91050] Definition of ImplementationDataType Dcm_ControlMask_{Data}ArrayType
[SWS_Dcm_91051] Definition of ImplementationDataType Dcm_DataElement_{Data}Type
Definition of ImplementationDataType Dcm_RequestData
[SWS_Dcm_91052]
In_{Routine}_{Signal}Type
Definition of ImplementationDataType Dcm_RequestFlexibleInArray
[SWS_Dcm_91053]
Data_{Routine}_{Signal}Type
Definition of ImplementationDataType Dcm_RequestData
[SWS_Dcm_91054]
In_{Routine}_{Signal}PrimitiveType
Definition of ImplementationDataType Dcm_RequestData
[SWS_Dcm_91055]
In_{Routine}_{Signal}ArrayType
[SWS_Dcm_91057] Definition of SenderReceiverInterface DataServices_{DID}
[SWS_Dcm_91058] Definition of Port DataServices_{DID} provided by module Dcm
[SWS_Dcm_91059] Definition of Port DataServices_{DID} required by module Dcm
[SWS_Dcm_91060] Definition of Port DataServices_{DID} provided/required by module Dcm
[SWS_Dcm_91061] Definition of SenderReceiverInterface DataServices_{DID}
Definition of ImplementationDataType Dcm_DataElement_{Data}_Primitive
[SWS_Dcm_91062]
Type
[SWS_Dcm_91063] Definition of ImplementationDataType Dcm_DataElement_{Data}_ArrayType
[SWS_Dcm_91064] Definition of ImplementationDataType Dcm_ResponseDataArrayType
[SWS_Dcm_91065] Definition of ClientServerInterface UploadDownloadServices
[SWS_Dcm_91066] Definition of ImplementationDataType Dcm_FileAndDirNameType
[SWS_Dcm_91067] Definition of ModeDeclarationGroup DcmAuthenticationState_{Connection}
[SWS_Dcm_91068] Definition of ImplementationDataType Dcm_AuthenticationRoleType
[SWS_Dcm_91069] Definition of API function Dcm_SetDeauthenticatedRole
[SWS_Dcm_91070] Definition of configurable interface Dcm_ProcessTransferDataRead
[SWS_Dcm_91071] Definition of configurable interface Dcm_ProcessTransferDataWrite
[SWS_Dcm_91072] Definition of ClientServerInterface Authentication
[SWS_Dcm_91073] Definition of Port Authentication_{Connection} required by module Dcm
Definition of ModeSwitchInterface Dcm_AuthenticationStateModeSwitch
[SWS_Dcm_91074]
Interface_{Connection}
[SWS_Dcm_91076] Definition of configurable interface Dcm_CsmAsyncJobFinished
Definition of configurable interface Dcm_KeyMAsyncCertificateVerify
[SWS_Dcm_91077]
Finished
5
4
Number Heading
[SWS_Dcm_91078] Definition of configurable interface Dcm_ProcessRequestAddFile
[SWS_Dcm_91079] Definition of configurable interface Dcm_ProcessRequestDeleteFile
[SWS_Dcm_91080] Definition of configurable interface Dcm_ProcessRequestReplaceFile
[SWS_Dcm_91081] Definition of configurable interface Dcm_ProcessRequestReadFile
[SWS_Dcm_91082] Definition of configurable interface Dcm_ProcessRequestReadDir
[SWS_Dcm_91083] Definition of configurable interface Dcm_WriteFile
[SWS_Dcm_91084] Definition of Port UploadDownloadServices required by module Dcm
[SWS_Dcm_91085] Definition of configurable interface Dcm_ReadFileOrDir
[SWS_Dcm_91087] Definition of ImplementationDataType Dcm_Cemr_{DID}Type
Definition of ImplementationDataType Dcm_ControlMask_{Data}_Primitive
[SWS_Dcm_91089]
Type
[SWS_Dcm_91090] Definition of configurable interface Xxx_ReadData
[SWS_Dcm_91091] Definition of configurable interface Xxx_ReadData
[SWS_Dcm_91092] Definition of configurable interface Xxx_WriteData
[SWS_Dcm_91093] Definition of configurable interface Xxx_GetScalingInformation
[SWS_Dcm_91094] Definition of configurable interface Xxx_GetScalingInformation
[SWS_Dcm_91095] Definition of configurable interface Xxx_WriteData
[SWS_Dcm_91096] Definition of configurable interface Xxx_ReadDataLength
[SWS_Dcm_91097] Definition of configurable interface Xxx_ReadDataLength
[SWS_Dcm_91098] Definition of configurable interface Xxx_ReturnControlToECU
[SWS_Dcm_91099] Definition of configurable interface Xxx_ResetToDefault
[SWS_Dcm_91100] Definition of configurable interface Xxx_ResetToDefault
[SWS_Dcm_91101] Definition of configurable interface Xxx_FreezeCurrentState
[SWS_Dcm_91102] Definition of configurable interface Xxx_FreezeCurrentState
[SWS_Dcm_91103] Definition of configurable interface Xxx_ShortTermAdjustment
[SWS_Dcm_91104] Definition of configurable interface Xxx_ShortTermAdjustment
[SWS_Dcm_91105] Definition of configurable interface Xxx_Start
[SWS_Dcm_91106] Definition of configurable interface Xxx_Stop
[SWS_Dcm_91107] Definition of configurable interface Xxx_RequestResults
Definition of ImplementationDataType Dcm_DataElement_{Data}_Structured
[SWS_Dcm_91118]
Type
Definition of ImplementationDataType Dcm_RequestData
[SWS_Dcm_91119]
Out_{Routine}_{Signal}StructuredType
Definition of ImplementationDataType Dcm_RequestData
[SWS_Dcm_91120]
In_{Routine}_{Signal}StructuredType
Definition of ImplementationDataType Dcm_StartData
[SWS_Dcm_91121]
In_{Routine}_{Signal}StructuredType
Definition of ImplementationDataType Dcm_StartData
[SWS_Dcm_91122]
Out_{Routine}_{Signal}StructuredType
5
4
Number Heading
Definition of ImplementationDataType Dcm_StopData
[SWS_Dcm_91123]
In_{Routine}_{Signal}StructuredType
Definition of ImplementationDataType Dcm_StopData
[SWS_Dcm_91124]
Out_{Routine}_{Signal}StructuredType
Table A.6: Changed Specification Items in R23-11
Number Heading
[SWS_Dcm_00112]
[SWS_Dcm_00113]
[SWS_Dcm_00140]
[SWS_Dcm_00141]
[SWS_Dcm_00541]
[SWS_Dcm_00557]
[SWS_Dcm_00560]
[SWS_Dcm_00655]
[SWS_Dcm_00656]
[SWS_Dcm_00788]
[SWS_Dcm_00789]
[SWS_Dcm_00790]
[SWS_Dcm_01128]
[SWS_Dcm_01145]
[SWS_Dcm_01146]
[SWS_Dcm_01168]
Table A.7: Deleted Specification Items in R23-11
Number Heading
[SWS_Dcm_-
CONSTR_- Not supported port interfaces for secure coding
06108]
5
4
Number Heading
[SWS_Dcm_-
CONSTR_- Static length of secure coding DIDs
06109]
[SWS_Dcm_-
CONSTR_- Secure Coding validation routine input parameter
06110]
[SWS_Dcm_-
CONSTR_- Secure Coding validation routine output parameter
06111]
[SWS_Dcm_-
CONSTR_- Secure Coding validation routine is synchronous
06112]
[SWS_Dcm_-
CONSTR_- Require asynchronous signature verification
06113]
Table A.8: Added Constraints in R23-11
Number Heading
[SWS_Dcm_-
Usage of variable data length in case of S/R communication, NvRam access or
CONSTR_-
ECU signal access
06026]
Table A.9: Changed Constraints in R23-11
Number Heading
[SWS_Dcm_-
CONSTR_- Restrictions on datatype usage
06038]
[SWS_Dcm_-
CONSTR_- Dependency for DcmDspDataBlockIdRef
06067]
Table A.10: Deleted Constraints in R23-11
[SWS_Dcm_NA_00999]
Upstream requirements: SRS_BSW_00159, SRS_BSW_00167, SRS_BSW_00168, SRS_-
BSW_00170, SRS_BSW_00171, SRS_BSW_00323, SRS_BSW_-
00336, SRS_BSW_00339, SRS_BSW_00344, SRS_BSW_00345,
SRS_BSW_00375, SRS_BSW_00380, SRS_BSW_00383, SRS_BSW_-
00384, SRS_BSW_00385, SRS_BSW_00386, SRS_BSW_00388,
SRS_BSW_00389, SRS_BSW_00390, SRS_BSW_00392, SRS_BSW_-
00393, SRS_BSW_00394, SRS_BSW_00395, SRS_BSW_00396,
SRS_BSW_00397, SRS_BSW_00398, SRS_BSW_00399, SRS_BSW_-
00400, SRS_BSW_00402, SRS_BSW_00403, SRS_BSW_00404,
SRS_BSW_00405, SRS_BSW_00406, SRS_BSW_00409, SRS_BSW_-
00416, SRS_BSW_00417, SRS_BSW_00419, SRS_BSW_00422,
SRS_BSW_00423, SRS_BSW_00425, SRS_BSW_00426, SRS_BSW_-
00427, SRS_BSW_00428, SRS_BSW_00429, SRS_BSW_00432,
SRS_BSW_00433, SRS_BSW_00437, SRS_BSW_00450, SRS_BSW_-
00451, SRS_BSW_00458, SRS_BSW_00461, SRS_BSW_00466,
SRS_BSW_00467, SRS_BSW_00469, SRS_BSW_00470, SRS_-
BSW_00471, SRS_BSW_00472, SRS_BSW_00478, RS_Diag_04002,
RS_Diag_04019, RS_Diag_04024, RS_Diag_04031, RS_Diag_04032,
RS_Diag_04057, RS_Diag_04063, RS_Diag_04064, RS_Diag_04068,
RS_Diag_04071, RS_Diag_04077, RS_Diag_04091, RS_Diag_04093,
RS_Diag_04097, RS_Diag_04105, RS_Diag_04107, RS_Diag_04109,
RS_Diag_04110, RS_Diag_04111, RS_Diag_04112, RS_Diag_04113,
RS_Diag_04117, RS_Diag_04118, RS_Diag_04120, RS_Diag_04121,
RS_Diag_04123, RS_Diag_04124, RS_Diag_04125, RS_Diag_04126,
RS_Diag_04127, RS_Diag_04129, RS_Diag_04131, RS_Diag_04133,
RS_Diag_04135, RS_Diag_04136, RS_Diag_04137, RS_Diag_04139,
RS_Diag_04140, RS_Diag_04148, RS_Diag_04150, RS_Diag_04151