Report Number Of Mirror Memory DTC By Status Mask (0x11): 0x19 SID in UDS

Everything About UDS 0x11: Report Mirror Memory DTC Count by Status Mask in 0x19 Service

Hello, vehicle diagnostics enthusiasts! In this blog post, Report Number Of Mirror Memory DTC By Status Mask (0x11) in UDS. I’ll introduce you to a powerful and often underutil

ized feature of the UDS (Unified Diagnostic Services) protocol: Report Mirror Memory DTC Count by Status Mask (0x11) in Service 0x19. This sub-function allows a diagnostic tester to retrieve the total number of Diagnostic Trouble Codes (DTCs) stored in the mirror memory based on a specific status mask. Mirror memory is an error memory that remains intact even after a standard memory clear, making it incredibly useful for persistent fault tracking. I’ll explain how the request and response frames are structured, what each byte means, and why this feature matters in real-world diagnostics. Whether you’re a beginner or an experienced ECU developer, this post will give you the clarity you need on this topic. Let’s dive in and explore UDS 0x11 together!

Introduction to Report Number of Mirror Memory DTC by Status Mask (0x11) in 0x19 Service of UDS Protocol

In the world of automotive diagnostics, accurate and reliable fault detection is crucial. One key feature of the UDS (Unified Diagnostic Services) protocol is the ability to retrieve specific information about stored Diagnostic Trouble Codes (DTCs). Report Number of Mirror Memory DTC by Status Mask (0x11) within Service 0x19 allows diagnostic tools to request the count of DTCs in the ECU’s mirror memory that match a specific status mask. The mirror memory ensures that DTC data remains intact even after a reset or memory clear. In this article, we will dive into how this service works, the significance of mirror memory, and how it helps technicians retrieve critical fault data even after certain memory operations. By the end, you’ll have a clear understanding of this powerful diagnostic function. Let’s explore!

What is Report Number of Mirror Memory DTC by Status Mask (0x11) in 0x19 Service of UDS Protocol?

In the UDS (Unified Diagnostic Services) protocol, Report Number of Mirror Memory DTC by Status Mask (0x11) is a sub-function under Service 0x19 that enables a client (typically a diagnostic tool) to retrieve the number of Diagnostic Trouble Codes (DTCs) that match a client-defined status mask from the ECU’s mirror memory. Mirror memory in the context of automotive diagnostics is used as a backup storage area for DTCs that is unaffected by actions like the ClearDiagnosticInformation (0x14) service, which resets the normal DTC memory.

The mirror memory serves an important function when it comes to fault analysis, as it retains DTCs even after the primary DTC memory has been cleared. This allows a technician to retrieve information on faults that have been recorded but might not be visible due to a memory reset.

Process Flow:

  1. Client Request:
    The client sends a request to the server (ECU) using the 0x19 service and includes the sub-function 0x11. The request also contains a status mask that defines the specific status criteria for filtering the DTCs. The status mask typically includes various flags that indicate whether the DTC is current, older, or has other conditions like whether the fault is active or pending.
  2. Server Response:
    The server responds with the following:
    • DTCStatusAvailabilityMask: This indicates which DTC status bits are supported by the server and can be used for filtering.
    • DTCFormatIdentifier: This reports the format used for DTC storage and encoding.
    • DTCCount: The response contains the count of DTCs that match the client-defined status mask. This count is returned as a two-byte unsigned number, giving the client a precise number of relevant DTCs stored in the mirror memory.

Key Elements:

  • Status Mask: A critical part of the request that specifies the conditions for selecting the DTCs. It allows the client to filter the DTCs based on their status (e.g., active, confirmed, etc.).
  • Mirror Memory: A backup storage for DTCs that cannot be erased through normal diagnostic reset functions. This memory ensures that fault history remains accessible even if the primary DTC memory is cleared.
  • DTCCount: The number of DTCs that match the status mask provided in the request. This count is essential for technicians to determine the scope of potential issues in the system, without having to review every individual DTC.

Practical Use:

This sub-function is extremely valuable when diagnostic tools need to retrieve a comprehensive set of fault codes that have been stored over time, especially in scenarios where the primary DTC memory has been reset. It’s commonly used in the following scenarios:

  • When a technician needs to perform an in-depth analysis of past issues that might not be immediately visible due to memory resets.
  • When the diagnostic tool needs to check for faults that were previously logged in the ECU, even after a memory-clear operation.
  • When performing troubleshooting and diagnostic tasks, where having a reliable history of faults is essential for determining recurring or unresolved problems in the vehicle system.

Report Number of Mirror Memory DTC by Status Mask (0x11) in Service 0x19 of the UDS protocol is a powerful tool for automotive diagnostics. It allows diagnostic tools to request the count of stored DTCs in the mirror memory, filtered by a specific status mask, even after a memory clear operation. This feature ensures that no fault information is lost and that technicians can access a complete history of system issues for more accurate troubleshooting and analysis.

Why do we need Report Number of Mirror Memory DTC by Status Mask (0x11) in 0x19 Service of UDS Protocol?

The Report Number of Mirror Memory DTC by Status Mask (0x11) in the 0x19 Service of the UDS (Unified Diagnostic Services) protocol is a crucial feature in automotive diagnostics for several reasons. This functionality enables technicians, diagnostic tools, and ECU (Electronic Control Unit) systems to access valuable fault data that is vital for accurate troubleshooting and efficient vehicle maintenance. Here’s why it is needed:

1. Ensures Fault Data Preservation After Memory Clears

In modern automotive systems, diagnostic trouble codes (DTCs) are often cleared from the ECU’s primary memory as part of routine maintenance or troubleshooting. However, it’s essential to retain these fault codes for later analysis to identify patterns, recurring issues, or more subtle, intermittent problems that may not appear immediately after a reset.

The mirror memory acts as a safeguard, ensuring that even if the primary DTC memory is cleared (using services like ClearDiagnosticInformation (0x14)), the fault codes are preserved in a secondary, unaffected memory area. By using the Report Number of Mirror Memory DTC by Status Mask (0x11) sub-function, diagnostic tools can still retrieve fault data from the mirror memory, allowing for a more thorough analysis of past issues.

2. Accurate Fault Analysis and Troubleshooting

By querying the number of DTCs that match specific criteria (through the use of a status mask), the diagnostic system can quickly pinpoint the most relevant fault codes. The status mask allows the client (typically a diagnostic tool) to filter DTCs based on their status (active, pending, or historical) and more specific conditions, such as whether the fault was intermittent, confirmed, or has been previously addressed.

This filtering capability ensures that technicians are not overwhelmed with irrelevant codes, enabling them to focus on the most critical and actionable information. It helps in more precise troubleshooting, improving the chances of identifying the root cause of vehicle issues quickly.

3. Comprehensive Diagnostics in Case of Memory Resets

During vehicle diagnostics, the primary DTC memory might be cleared to remove old or irrelevant codes. However, some of these codes may contain valuable information that should not be discarded. The mirror memory offers a backup, ensuring that even after memory resets, fault data remains available for reference.

This backup mechanism is especially important when dealing with intermittent faults or historical issues that might not be present in the vehicle’s current operating state but could be crucial in diagnosing recurring or unresolved problems. Report Number of Mirror Memory DTC by Status Mask (0x11) ensures that no fault history is lost during routine diagnostics.

4. Optimized Data Retrieval

This service optimizes data retrieval by providing only the count of DTCs that match the requested status mask, rather than sending a large volume of potentially unnecessary information. This is particularly useful when a technician needs to get a high-level overview of fault data (e.g., how many active faults are present) without sifting through large data sets.

The response to this request includes DTCStatusAvailabilityMask and DTCFormatIdentifier, which further refine the response, helping the client understand how the DTCs are formatted and which status flags are supported. This detailed structure allows for faster and more efficient diagnostics.

5. Prevents Data Loss

In many diagnostic scenarios, it’s critical to maintain a complete history of fault data for the sake of transparency, safety, and regulatory compliance. The ability to access DTCs in mirror memory ensures that no important data is lost, even if other systems are reset or cleared during maintenance. This data integrity is essential for high-quality diagnostics and ensuring that vehicles continue to operate safely.

6. Reliability and Fault Traceability

The mirror memory is a valuable resource for maintaining reliability in diagnostics, particularly in non-volatile systems. The Report Number of Mirror Memory DTC by Status Mask (0x11) function enables reliable traceability of faults, even after resets or power cycles, ensuring that the vehicle’s historical error data remains intact. This can be critical for diagnosing complex issues or ensuring that certain fault conditions have been addressed over time.

Syntax of Report Number of Mirror Memory DTC by Status Mask (SBFID-0x11) of SID-0x19

Request Message Definition – Sub-Function = Report Number of Mirror Memory DTC by Status Mask

Data byteParameter NameByte Value
#1Read DTC Information Request SID0x19
#2sub-function = [ report Type =                            
Report Number of Mirror Memory DTC by Status Mask ]
0x11
#3DTC Status Mask0x00 – 0xFF

SBFID (0x11) Request Message Data-Parameter of SID (0x19)

DTC Status Mask:

The DTCStatusMask contains eight bits defining DTC statuses. In the request message, it allows the client to request DTC information for DTCs whose status matches the mask. A match occurs if any bit in the DTC’s status is ‘1’ and the corresponding bit in the DTCStatusMask is also ‘1’. Unsupported bits in the mask are ignored by the server.

Syntax of 0x19 SID Positive Response Message

Response Message Definition – Sub-function = Report Number of Mirror Memory DTC by Status Mask

Data byteParameter NameByte Value
#1Read DTC Information +Ve Response SID0x59
#2report Type =                
Report Number of Mirror Memory DTC by Status Mask

0x11
#3DTC Status Availability Mask0x00 – 0xFF
#4DTC Format Identifier = [                                            
SAE_J2012-DA_DTCFormat_00
ISO_14229-1_DTCFormat
SAE_J1939-73_DTCFormat                                           
ISO_14229-1_DTCFormat
SAE_J2012-DA_DTCFormat_04 ]

0x00
0x01
0x02
0x03
0x04

#5
#6
DTC Count[] = [                              
DTC Count High Byte                              
DTC Count Low Byte ]

0x00 – 0xFF
0x00 – 0xFF

SBFID (0x011) Positive Response Message Data-Parameter of SID (0x19)

reportType: This parameter reflects bits 6 – 0 of the sub-function parameter from the client’s request message.

DTCStatusAvailabilityMask: A byte where the bits are defined the same as the statusOfDTC, representing the status bits supported by the server. Bits not supported by the server will be set to ‘0’. Each supported bit (indicated by a value of ‘1’) will be implemented for every DTC supported by the server.

DTCFormatIdentifier: This 1-byte parameter defines the format of the DTC reported by the server:

  • SAE_J2012-DA_DTCFormat_00: Identifies the DTC format as defined in the ISO 15031-6 [12] specification.
  • ISO_14229-1_DTCFormat: Identifies the DTC format as defined by the DTCAndStatusRecord parameter in this table.
  • SAE_J1939-73_DTCFormat: Identifies the DTC format as defined in SAE J1939-73 [19].
  • ISO_11992-4_DTCFormat: Identifies the DTC format as defined in the ISO 11992-4 [5] specification.
  • SAE_J2012-DA_DTCFormat_04: Identifies the DTC format as defined in the ISO 27145-2 [16] specification.

The definition of the byte values in the DTCFormatIdentifier can be found in section D.4 of this specification. Each server supports only one DTCFormatIdentifier.

DTCCount: This 2-byte parameter includes the DTCCountHighByte and DTCCountLowByte, which are sent in response to a reportNumberOfDTCByStatusMask or reportNumberOfMirrorMemoryDTC request. The DTCCount represents the number of DTCs that match the DTCStatusMask specified in the client’s request.

Syntax of 0x19 SID Negative Response Message

Response Message definition – Sub-function = Report Number of DTC By Severity Mask Record

Data byteParameter NameByte Value
#1Read DTC Information –Ve Response SID [ byte#1 ]0x7F
#2Requested SID [ byte#1 ]0x19
#3Negative Response Code [ byte#1 ]NRC

Example of Report Number of Mirror Memory DTC by Status Mask (0x11) in 0x19 Service of UDS Protocol

Below are the Examples of Report Number of Mirror Memory DTC by Status Mask (0x11) in 0x19 Service of UDS Protocol:

// Below example shows how to use the UDS commands over the CAN data field as per the DoCAN
// Example for Positive Response for SID-0x19
Request: Client --> Server
02 19 11
Positive Response: Server --> Client
14 59 11 09 01 00 01 02 03 04 AC B0 B1 08 CC
// Example for Negative Response for SID-0x19
Request: Client --> Server
01 19 11
Negative Response: Server --> Client
03 7F 19 13

Explanation of UDS Commands for Report Number of Mirror Memory DTC by Status Mask (0x11) in Service 0x19

In the Unified Diagnostic Services (UDS) protocol, specific service IDs (SIDs) are used to interact with Electronic Control Units (ECUs) for vehicle diagnostics. The 0x19 service is often used for diagnostic services related to error codes and memory management, and the 0x11 sub-function is used to report the number of Diagnostic Trouble Codes (DTCs) that match a specified status mask in the mirror memory.

Below, we’ll break down the UDS commands shown in the examples, explaining each step and how the communication flows between the Client (typically the diagnostic tool) and the Server (the ECU).

Example 1: Positive Response for SID-0x19 with Sub-function 0x11

Request: Client –> Server
Command: 02 19 11
  • 02: This is the Length byte, which indicates the number of bytes following it in the request.
  • 19: This is the Service ID (SID) for “Diagnostic Services.”
  • 11: This is the Sub-function ID for “Report Number of Mirror Memory DTC by Status Mask (0x11),” which indicates that the client is requesting the server to report how many DTCs in the mirror memory match the provided status mask.

The client sends this request to the server, asking for the count of DTCs in the mirror memory based on the status mask criteria.

Positive Response: Server –> Client
Response: 14 59 11 09 01 00 01 02 03 04 AC B0 B1 08 CC
  • 14: PCI – indicates total length of 20 bytes in this multi-frame message (First Frame).
  • 59: Positive response code (0x40 + 0x19 = 0x59).
  • 11: Echoed sub-function.
  • 09: DTC Status Availability Mask.
  • 01 00 01: First DTC.
  • 02 03 04: Second DTC.
  • AC B0 B1: Third DTC.
  • 08 CC: Extended or optional bytes (may represent additional DTCs or status info depending on implementation).

This response tells the diagnostic tester that the ECU supports three DTCs (diagnostic trouble codes). Even if these DTCs are not active or stored currently, they are coded into the ECU and can be monitored.

Example 2: Negative Response for SID-0x19 with Sub-function 0x11

Request: Client –> Server
Command: 01 19 11
  • 01: This is the Length byte, which indicates the number of bytes following it in the request.
  • 19: This is the Service ID (SID) for “Diagnostic Services.”
  • 11: This is the Sub-function ID for “Report Number of Mirror Memory DTC by Status Mask (0x11).”

In this case, the client is sending the same request for DTC count in the mirror memory, but there’s an issue that will lead to a negative response.

Negative Response: Server –> Client
Response: 03 7F 19 13
  • 03: The Length byte in the response, indicating the number of bytes following it.
  • 7F: This is the Negative Response SID, which shows that the server is sending an error reply instead of a positive response.
  • 19: This is the Service ID again, indicating that the error corresponds to the 0x19 service.
  • 13: This is the Negative Response Code indicating the type of error that occurred. The code 13 corresponds to “Sub-function not supported” (i.e., the server does not support the requested sub-function for reporting the number of mirror memory DTCs by status mask).

The negative response means that the server doesn’t support the requested operation (possibly due to lack of mirror memory or because the server is unable to process the query for the DTC count).

Summary from the Example:

Positive Response:

  • The client sends a request with 02 19 11, asking for the count of mirror memory DTCs matching a specific status mask.
  • The server replies with a successful response 06 59 11 09 01 00 01, providing the count of matching DTCs (in this case, one DTC) along with additional information like status availability and DTC format.

Negative Response:

  • The client sends a request with 01 19 11 for the same operation.
  • The server replies with an error response 03 7F 19 13, indicating that the requested sub-function (reporting the number of DTCs by status mask) is not supported by the server.

The UDS protocol uses these steps to facilitate the diagnostic process, ensuring that the client can query the server for DTC counts and receive either a positive response with relevant information or a negative response indicating issues or unsupported features. Understanding these commands is critical for performing advanced diagnostics in automotive systems, particularly when working with fault codes that might be stored in mirror memory.


Discover more from PiEmbSysTech

Subscribe to get the latest posts sent to your email.

Leave a Reply

Scroll to Top

Discover more from PiEmbSysTech

Subscribe now to keep reading and get access to the full archive.

Continue reading