Skip to Content
UDS Simulator 2.0 Released

Docs baseline actions

Copy this page URLEdit page
Docs0x23 Read Memory By Address

Service Interaction Protocol

Read Memory By Address

0x23
Protocol Identifier
Allows a diagnostic tester to read raw memory content from an ECU at a specific memory address.

Overview

ISO 14229-1

“The ReadMemoryByAddress service is used by the client to request memory data from the server at a specified address with a specified length.”

Use Cases

  • Reading calibration data
  • Extracting fault memory buffers
  • Verifying firmware code integrity
  • Development and debugging

Dependencies

  • Extended Session (0x03) usually required
  • Security Access (0x27) for protected regions
  • ALFID must match ECU memory architecture

ALFID Encoding

The Address and Length Format Identifier (ALFID) is a critical byte that specifies how many bytes the ECU should expect for the address and size parameters.

ALFID Structure
Click to Enlarge

The ALFID byte is split into two nibbles for Length (Bits 7-4) and Address (Bits 3-0).

ALFID
Address Length
Size Length
Architecture
0x111 Byte1 ByteSmall 8-bit MCUs
0x222 Bytes2 Bytes16-bit addressing
0x444 Bytes4 BytesTypical 32-bit systems
0x244 Bytes2 Bytes32-bit addr, 64KB max read

Message Format

Request Structure

Byte
Field
Value
Description
0SID0x23Read Memory By Address
1ALFID0xNNSpecifies format of next fields
2-NAddressVariableMemory address to read
N+1-MSizeVariableNumber of bytes to read

Response Structure

Byte
Field
Value
Description
0Response SID0x63Positive Response
1-NData RecordVariableRequested memory content

Request Examples

32-bit Standard Read

tx_packet

Request

23 44 00 10 20 30 00 00 00 10

> Read 16 bytes (0x10) from 0x00102030

rx_packet

Response

63 AA BB CC DD EE FF 11 22 33 44 55 66 77 88 99 00

> Memory Data returned

Short Address Format

tx_packet

Request

23 22 10 00 00 04

> ALFID 0x22: 2-byte addr, 2-byte size

rx_packet

Response

63 12 34 56 78

> 4 bytes returned

Negative Response Codes

Logic_Exceptions

Critical_Error_Paths

NRC_0x31

Request Out Of Range

The requested address or size is outside the ECU memory map boundaries.
SEQ_DIAGRAM_DUMPOFFSET_0x7F

Request Out Of Range Flow

2 steps
Tester
ECU
NRC_0x33

Security Access Denied

The memory region is protected and requires a security unlock (0x27) first.
SEQ_DIAGRAM_DUMPOFFSET_0x7F

Security Access Denied Flow

2 steps
Tester
ECU