In this article, we will have an overview of the modules which are part of the Diagnostic Services in AUTOSAR. These include Diagnostic Communication Manager (Communication Services), Diagnostic Event Manager (System Services), Function Inhibition Manager (System Services) and Development Error Tracer (System Services).
Diagnostic Communication Manager (DCM)
DCM modules manages the diagnostic data flow, diagnostic states and diagnostics sessions. It checks whether the requested service is supported and if supported whether the service can be used in the current session.
DCM supports UDS and OBD protocols.
DCM is network-independent. All network (CAN, LIN, FlexRay) specific functionality is handled outside of DCM. The DCM module receives a diagnostic message from the PDUR module. While processing the the requested service, DCM will interact with other BSW modules or SWC’s to obtain the requested data or to execute requested command. DCM will assemble the gathered data and send a message back through PDUR module.
Diagnostic Event Manager (DEM)
The service component Diagnostic Event Manager (DEM) is responsible for processing and storing diagnostic events (errors) and associated data. Further, the DEM provides fault information to the DCM (e.g. read all stored DTCs from the event memory). The DEM offers interfaces to the application layer and to other BSW modules.
SWC and BSW modules signal Error Events to the DEM and the DEM modules uses the services of the NVM modules to store the contents relevant to the Event.
Function Inhibition Manager (FIM)
FIM provides a control mechanism to SWC’s and BSW for controlling the functionality available. A functionality can be defined as a set of runnables with the same set of inhibit conditions.
Functionality and runnable entity are different and independent types of classifications. Runnable entities are mainly characterized by their scheduling requirements. In contrast to that, functionalities are classified by their inhibit conditions.
Functionalities are assigned an identifier (FID) along with an inhibit condition. Functionalities can execute only if its inhibit condition is not TRUE.
The FIM is closely related to the DEM since diagnostic events and their status information are supported as inhibit conditions. Hence, functionality which needs to be stopped in case of a failure can be represented by a particular identifier. If the failure is detected and the event is reported to the DEM, the FIM then inhibits the FID and therefore the corresponding functionality.
Development Error Tracer (DET)
The Development Error Tracer provides functionality to support error detection and tracing of errors during the development of SWC’s and other Basic Software Modules. For this purpose the Development Error Tracer receives and evaluates error messages from these components and modules.
DET provides a configurable list of error hooks which can be executed in case of an error report and intefaces to report error, error recovery and information retrieval.
In the subsequent articles, we will go into the details of these modules.