Anonymous
Not logged in
Talk
Contributions
Create account
Log in
RS-485
Search
Editing
Unified Diagnostic Services
(section)
From RS-485
Namespaces
Page
Discussion
More
More
Page actions
Read
Edit
Edit source
History
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Services == SID (Service Identifier)<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#service-identifier |access-date=2025-11-09 |website=uds.readthedocs.io |language=en}}</ref> {| Class = "wikitable sortable" |- ! Request Service Identifier (SID) !! Response Service Identifier (RSID) !! Service name !! Description |- | Style = "text-align: center" | 0x10 | Style = "text-align: center" | 0x50 | DiagnosticSessionControl<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (DiagnosticSessionControl) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#diagnosticsessioncontrol-0x10 |access-date=2025-11-09 |website=uds.readthedocs.io |language=en}}</ref> | '''DiagnosticSessionControl''' service is used to change diagnostic sessions in the server(s). In each diagnostic session a different set of diagnostic services (and/or functionalities) is enabled in the server. Server shall always be in exactly one diagnostic session. |- | Style = "text-align: center" | 0x11 | Style = "text-align: center" | 0x51 | ECUReset<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (ECUReset) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#ecureset-0x11 |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> | '''ECUReset''' service is used by the client to request that the server perform a reset. The server, after receiving this request, performs the specified type of reset (either before or after transmitting the positive response). |- | style="text-align: center" | 0x14 | style="text-align: center" | 0x54 | ClearDiagnosticInformation<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (ClearDiagnosticInformation) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#cleardiagnosticinformation-0x14 |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> | '''ClearDiagnosticInformation''' service is used by the client to clear [[Diagnostic Trouble Code|Diagnostic Trouble Codes (DTCs)]] and related data stored in one or more server memories. |- | style="text-align: center" | 0x19 | style="text-align: center" | 0x59 | ReadDTCInformation<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (ReadDTCInformation) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#readdtcinformation-0x19 |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> | '''ReadDTCInformation''' service allows the client to request current [[Diagnostic Trouble Code|Diagnostic Trouble Code (DTC)]] information from one or more servers within the vehicle. |- | style="text-align: center" | 0x22 | style="text-align: center" | 0x62 | ReadDataByIdentifier<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (ReadDataByIdentifier) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#readdatabyidentifier-0x22 |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> | '''ReadDataByIdentifier''' service allows the client to request data record values from the server identifier by one or more DataIdentifiers (DIDs). |- | style="text-align: center" | 0x23 | style="text-align: center" | 0x63 | ReadMemoryByAddress<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (ReadMemoryByAddress) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#readmemorybyaddress-0x23 |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> | '''ReadMemoryByAddress''' service allows the client to request server's memory data stored under provided memory address. |- | style="text-align: center" | 0x24 | style="text-align: center" | 0x64 | ReadScalingDataByIdentifier<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (ReadScalingDataByIdentifier) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#readscalingdatabyidentifier-0x24 |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> |'''ReadScalingDataByIdentifier''' service allows the client to request the scaling information associated with a Data Identifier (DID). Scaling data provides information required to correctly interpret the actual data value, such as: * data encoding type (e.g. integer, floating-point, ASCII) * units and formats * conversion formulas and coefficients * bit mappings, and other interpretation details |- | style="text-align: center" | 0x27 | style="text-align: center" | 0x67 | SecurityAccess<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (SecurityAccess) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#securityaccess-0x27 |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> | '''SecurityAccess''' service allows the client to unlock functions/services with restricted access. Unlocking sequence: # The client requests a seed from the server. # The server responds with a positive response that includes a randomly generated seed value. # Both the client and server compute a key value based on the seed (using a secret algorithm). # The client sends the computed key to the server. # The server validates the client by comparing the received key with its own calculated key. If they match, the client is granted access to the protected functionality for the corresponding security level. |- | style="text-align: center" | 0x28 | style="text-align: center" | 0x68 | CommunicationControl<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (CommunicationControl) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#communicationcontrol-0x28 |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> | '''CommunicationControl''' service allows the client to switch on/off the transmission and/or the reception of certain messages on the server(s). |- | style="text-align: center" | 0x29 | style="text-align: center" | 0x69 | Authentication<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (Authentication) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#authentication-0x29 |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> | '''Authentication''' service provides a mechanism for the client to prove its identity, allowing access to data and/or diagnostic services that have restricted access due to security, emissions, or safety requirements. It is an alternative for '''SecurityAccess''' service. |- | Style = "text-align: center" | 0x2A | Style = "text-align: center" | 0x6A | ReadDataByPeriodicIdentifier<ref name=":0">{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (ReadDataByPeriodicIdentifier) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#readdatabyperiodicidentifier-0x2a |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> | '''ReadDataByPeriodicIdentifier''' service allows the client to request periodic transmission of data record values from the server. Each periodic data record is identified by Periodic DID (the second byte of a DID with a fixed first byte 0xF2). |- | Style = "text-align: center" | 0x2C | Style = "text-align: center" | 0x6C | DynamicallyDefineDataIdentifier<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (DynamicallyDefineDataIdentifier) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#dynamicallydefinedataidentifier-0x2c |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> | '''DynamicallyDefineDataIdentifier''' service allows the client to define Data Identifiers. |- | Style = "text-align: center" | 0x2E | Style = "text-align: center" | 0x6E | WriteDataByIdentifier<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (WriteDataByIdentifier) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#writedatabyidentifier-0x2e |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> | '''WriteDataByIdentifier''' service allows the client to set data values stored under given Data Identifier. |- | style="text-align: center" | 0x2F | style="text-align: center" | 0x6F | InputOutputControlByIdentifier<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (InputOutputControlByIdentifier) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#inputoutputcontrolbyidentifier-0x2f |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> | '''InputOutputControlByIdentifier''' service allows the client to take temporary control over Data Identifier values. |- | style="text-align: center" | 0x31 | style="text-align: center" | 0x71 | RoutineControl<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (RoutineControl) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#routinecontrol-0x31 |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> | '''RoutineControl''' service allows the client to execute any sequence of actions that are defined as routines. Each routine has Routine Identifier assigned. |- | style="text-align: center" | 0x34 | style="text-align: center" | 0x74 | RequestDownload<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (RequestDownload) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#requestdownload-0x34 |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> | '''RequestDownload''' service allows the client to initiate data transfer from the client to the server. |- | style="text-align: center" | 0x35 | style="text-align: center" | 0x75 | RequestUpload<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (RequestUpload) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#requestupload-0x35 |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> | '''RequestUpload''' service allows the client to initiate data transfer from the server to the client. |- | style="text-align: center" | 0x36 | style="text-align: center" | 0x76 | TransferData<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (TransferData) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#transferdata-0x36 |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> | '''TransferData''' service transfers the actual data that were earlier requested by either '''RequestDownload''', '''RequestUpload''' or '''RequestFileTransfer''' service'''.''' |- | style="text-align: center" | 0x37 | style="text-align: center" | 0x77 | RequestTransferExit<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (RequestTransferExit) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#requesttransferexit-0x37 |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> | '''RequestTransferExit''' services ends the data transmission using '''TransferData''' service. |- | style="text-align: center" | 0x38 | style="text-align: center" | 0x78 | RequestFileTransfer<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (RequestFileTransfer) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#requestfiletransfer-0x38 |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> | '''RequestFileTransfer''' service allows the client to initiate a file transfer (either download or upload). It is an alternative for '''RequestDownload''' and '''RequestUpload''' services. |- | Style = "text-align: center" | 0x3D | Style = "text-align: center" | 0x7D | WriteMemoryByAddress<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (WriteMemoryByAddress) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#writememorybyaddress-0x3d |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> | '''WriteMemoryByAddress''' service allows the client to set values directly in the server's memory. |- | style="text-align: center" | 0x3E | style="text-align: center" | 0x7E | TesterPresent<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (TesterPresent) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#testerpresent-0x3e |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> | '''TesterPresent''' service informs server(s) that the diagnostic tester device (client) is connected and server(s) shall not exit their current diagnostic session. |- | style="text-align: center;" |''0x83'' | style="text-align: center;" |''0xC3'' |''AccessTimingParameter<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Services (AccessTimingParameter) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#accesstimingparameter-0x83 |access-date=2026-01-08 |website=uds.readthedocs.io |language=en}}</ref>'' |'''''AccessTimingParameter''' was withdrawn in ISO 14229-1:2020.'' |- | style="text-align: center;" |0x84 | style="text-align: center;" |0xC4 |SecuredDataTransmission<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (SecuredDataTransmission) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#secureddatatransmission-0x84 |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> |'''SecuredDataTransmission''' service allows the client to secure UDS communication using either encryption or signature. |- | style="text-align: center" | 0x85 | style="text-align: center" | 0xC5 | ControlDTCSettings<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (ControlDTCSetting) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#controldtcsetting-0x85 |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> | '''ControlDTCSettings''' service allows the client to manage DTCs' statuses updating. |- | style="text-align: center" | 0x86 | style="text-align: center" | 0xC6 | ResponseOnEvent<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (ResponseOnEvent) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#responseonevent-0x86 |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> |'''ResponseOnEvent''' service allows the client to define events and request messages that the server is supposed to respond to when the event occurs. This can be used to diagnose complicated issues. For example the client can request from the server to respond to '''ReadMemoryByAddress''' request (to provide detailed information about the reason for DTC reporting) when ''testFailed'' bit of a certain DTC is set. |- | style="text-align: center" | 0x87 | style="text-align: center" | 0xC7 | LinkControl<ref>{{Cite web |last=Dąbrowski |first=Maciej |title=Diagnostic Service (LinkControl) — py-uds documentation |url=https://uds.readthedocs.io/en/stable/pages/knowledge_base/service.html#linkcontrol-0x87 |access-date=2025-11-11 |website=uds.readthedocs.io |language=en}}</ref> | '''LinkControl''' service allows the client to change physical connection parameters. As an example, for [[CAN bus]], the client could change [[baudrate]] and version of CAN protocol (e.g. from CAN-FD to Classical CAN). |}
Summary:
Please note that all contributions to RS-485 may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
RS-485:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Wiki tools
Wiki tools
Special pages
Page tools
Page tools
User page tools
More
What links here
Related changes
Page information
Page logs