ISO15031 - OBD Protocol

OBD Overview

OBD-II is a diagnostic communication protocol used in automotive electronics for vehicle diagnostics and monitoring, specified in ISO 15031 and other related standards. It is designed to interface with various electronic control units (ECUs) in vehicles through standardized physical and data link layers.

Embien’s OBD-II stack covers all the services defined as part of the ISO 15031 standard specification, enabling diagnostic communication between ECUs and tester/programmer devices. Our OBD_II stack is implemented on top of the DoCAN network layer - defined as ISO 15765 specification.

Some of the salient features of RAPIDSEA OBD_II protocol stack are

  • Support for both server mode and client mode

  • ISO-TP layer with up to 4095 bytes transfer support

  • MISRA-C compliant ANSI C source code

  • Can be used with or without RTOS

  • Can support 8, 16, 32, 64-bit CPUs

The implementation is fully configurable and are offered for both server and client mode of operation.

OBD Stack

OBD Stack

Supported Services

Following services are supported in the OBD Stack

Supported Services

Service ID

Service

Description

01h

Request Current Diagnostic Data

Retrieve real-time data from the vehicle’s sensors and ECUs.

02h

Request Freeze Frame Data

Access a snapshot of vehicle data at the time a fault was detected.

03h

Request Diagnostic Trouble Codes

Retrieve Diagnostic Trouble Codes (DTCs) that have been stored by the ECU.

04h

Clear/Reset Diagnostic Trouble Codes and information

Clear stored Diagnostic Trouble Codes (DTCs) from the ECU.

05h

Request Oxygen Sensor Monitoring Test Results

Retrieve Diagnostic Trouble Codes (DTCs) that are pending and may not yet be stored.

06h

Request On-Board Monitoring Test Results for Specific Monitored Systems

Retrieve the results of on-board diagnostic tests for various components.

07h

Request Emission-Related Diagnostic Trouble Codes Detected During Current or Last Completed Driving Cycle

Retrieve Diagnostic Trouble Codes (DTCs) that are permanent and cannot be cleared by normal means.

08h

Request Control of On-Board System, Test or Component

Control specific on-board systems or components directly through the diagnostic interface.

09h

Request vehicle information

Request various pieces of vehicle information such as VIN, calibration IDs, etc.

The implementation is fully configurable and are offered for both server and client mode of operation.

OBD-II Server

OBD-II server is typically implemented in the ECUs so that the client (Tester) can connect to it and perform various diagnostics operations on the same. RAPIDSEA implements the OBD-II server with the following features.

  • Support for all the services

  • Modular and extensible design

  • Portable across architectures

The OBD-II Server stack implementation is covered in detail in the OBD-II Server Stack page.

OBD-II Client

RAPIDSEA implements OBD-II client where different types of services can be performed on the ECUs. APIs are provided to perform services on the server with high level of control and performance. RAPIDSEA implements the OBD-II client with the following features.

  • Support for all the services

  • Modular and extensible design

  • Portable across architectures

The OBD-II client stack implementation is covered in detail in the OBD-II Client Stack page.