MotoHawk Unified Diagnostic Services
ISO 15765
The ISO 15765 UDS Blockset provides a MotoHawk application with an interface to a PC-based diagnostics application or a scan tool.
ISO 15765 is the specification for the CAN transport layer for Unified Diagnostic Services (UDS) and also legislated On Board Diagnostics (OBD) protocol as found in ISO 15031. UDS is an ISO standard which can be found in ISO 14229. ISO 15765 is a common way to add OBD and provides the MotoHawk application with the capability of reporting self-diagnostics and trending information. The ISO15765 blockset by themselves do not provide diagnostics. It is the application logic which must be designed with the diagnostic capabilities and the mechanism for reporting the diagnostic information via a standardized protocol is through the use of these blocks.
The ISO 15765 handler mask is divided into general information, OBD legislated services supported and UDS services supported.
The ISO 15765 blockset can be used to provide the following services:
- Diagnostic Trouble Codes (DTC) reporting / clearing
- Suspend of DTC logging
- Emissions
- Parameter reading / writing
- Overrides
- On demand self tests
- Snapshot records
- Module reflashing (requires bootloader support)
ASAM Open Diagnostic data eXchange (ODX) Export
The ISO 15765 Blockset has the ability to generate an ODX file to allow you to share diagnostic data electronically. In the past, it would be common to use a text based description in Microsoft Word (or Excel) to store requirements on how the diagnostic protcol was expected to perform. The protocols, in this format, would then be difficult or impossible to share across tools.
What is ODX?
ODX is an international standard for publishing the diagnostic capabilities of an ECU (Electronic Control Unit). This is accomplished through the use of an XML based file containing the descriptions of the parameters available in the ECU and the diagnostic services available to interact with the ECU.
Getting Started
You can start to utilize ISO 15765 communications in a MotoHawk application by adding a CAN definition block and the ISO 15765 Handler block. You can use the convenient MATLAB script language to specify which ISO 15765 services you would like to have supported in your application. Services with a Service ID code of 0x0A or less are legislated services, also called Modes. Services with a Service ID Code greater than 0x0A belong to UDS.
UDS Sessions
A collection of UDS services are made available in a session. There are three commonly defined UDS sessions: the default session (session ID = 0x01), the programming session (session ID = 0x02) and the extended session (session ID = 0x03). Many more sessions can be defined by the application. Note that the Write Data By Identifier service is not available for use in the default session in this example. The controller always starts in the default session and always returns to the default session after communications have ceased.
Security
UDS services may have a security mechanism applied, whereas legislated services may not. Services with a security mechanism are designated with the appropriate security level name in the column where the security applies. UDS defines 33 security levels for general use and there is no assumed relationship between levels.
Managing Faults
In order to properly support services which manage the fault logic, the ISO 15765 handler block requires the MotoHawk OBD Fault Manager block to be in the model. This applies to the following services:
- 0x03 Request Emission-Related Diagnostic
- Trouble Codes
- 0x04 Clear/Reset Emission-Related Diagnostic Information
- 0x07 Request Emission-Related Diagnostic Trouble Codes Detected During Current or Last Completed Driving Cycle
- 0x0A Request Emission-Related Diagnostic Trouble Codes with Permanent Status
- 0x14 Clear DTC Information
- 0x19 Read DTC Information
The DTC format for legislated OBD fault services may be different than that of UDS. The ISO 15765 handler block links the the application's construction for DTC format through the use of the MotoHawk OBD Fault Manager's custom fields. The name of the custom field for the legislated OBD services and the name of the custom field for the DTC format used in the UDS services must be provided.
Services Supported
Woodward has designed the ISO 15765 blockset to the specification in ISO 14229-1 (2007) and the following services are supported:
Making an ODX File
After a successful build of a MotoHawk model containing the ISO 15765 Instance Definition and related blocks, you can issue the following command at the MATLAB command line:
>> woodward_custom_odx_generate === Transform Application to ODX format === Create HelloWorld.pdx output ans = 1