ISO13400 - DoIP Protocol

DoIP Overview

Diagnostics over Internet Protocol (DoIP) is a diagnostic communication protocol used in electronic control units (ECUs) within automotive electronics, which is specified in the ISO13400

Embien’s DoIP stack covers all the services defined as part of the ISO13400 standard specification, enabling diagnostic communication between ECUs and tester/programmer devices. Our UDS stack is implemented on top of the DoIP network layer - defined as ISO13400 specification.

Some of the salient features of RAPIDSEA DoIP protocol stack are

  • Support for both server mode and client mode

  • Configurable block size and network timings

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

  • MISRA-C compliant ANSI C source code

  • Can be used with or without RTOS

  • Supports rates of upto 100 mbps

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

  • Can transfer data in single frame.

Ports are available for all major embedded platforms including Renesas, NXP, TI, Microchip MCUs etc.

The OSI layer model of DoIP

DoIP OSI Layer Model

DoIP Packets Structure Info

DoIP Packets Structure Info
DoIP UDS Stack

Refer to the ISO14229 - UDS Protocol page for an example about how the RAPIDSEA UDS stack uses the DoIP.

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

Supported Ports

Following ports are supported in DoIP Stack

Supported Ports

Name

Port Number

Description

UDP_DISCOVERY

13400

The UDP port on which the server listens to for incoming requests and commands. Also optionally utilized as source port for broadcast packets

UDP_TEST_EQUIPMENT_REQUEST

Dynamically assigned

UDP Port from which the client transmits messages. Also can be used as destination port for response

TCP_DATA

  1. 13400 for unsecured communication

  2. 3496 for secured (TLS) communication

TCP Port at which the server listens for incoming connection requests.

Supported Payloads

Following Payloads are supported in the DoIP Stack

Supported Payloads

Payload Type Value

Payload Type Name

From

To

Description

0x0000

Generic DoIP header negative acknowledge

Server

Client

DoIP header NACK send by server if received DoIP packet does not match with some conditions.

0x0001

Vehicle identification request message

Client

Server

Vehicle identity request send by client to get vehicle details like VIN,GID,EID,Logical address.

0x0002

Vehicle identification request message with EID

Client

Server

Send vehicle identity request with already known EID.

0x0003

Vehicle identification request message with VIN

Client

Server

Send vehicle identity request with already known VIN.

0x0004

Vehicle announcement message/vehicle identification response message

Server

Client

Send vehicle identity response with details like VIN,GID,EID,Logical address.

0x0005

Routing Activation Request

Client

Server

Routing activation request send by client with client source address to configure with server.

0x0006

Routing activation response

Server

Client

Server sent the routing activation response after the client source address was stored.

0x0007

Alive check request

Server

Client

Request sent by the server to check whether the client is connected or not.

0x0008

Alive check response

Client

Server

Response sent by the client if it is connected with server.

0x4003

Diagnostic power mode information request

Client

Server

Request sent by client whether the server is ready for diagnostic process.

0x4004

Diagnostic power mode information response

Server

Client

Server sends its status whether it is ready or not as response.

0x8001

Diagnostic message

Both server and client

Both server and client

Send and receive UDS messages via diagnostic message payload type.

0x8002

Diagnostic message positive acknowledgement

Server

Client

If the diagnostic request message satisfies certain conditions, then the server will send a diagnostic positive  response.

0x8003

Diagnostic message negative acknowledgement

Server

Client

If the diagnostic request message not satisfies certain conditions, then the server will send a diagnostic negative response.

This can be implemented in a bare-metal system or over RTOS or over full fledged OS such as Linux etc.

DoIP Server

DoIP 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 DoIP server with the following features.

  • Support for all the Payloads

  • Modular and extensible design

  • Portable across architectures

The DoIP Server stack implementation is covered in detail in the DoIP (ISO13400) Server Stack page.

DoIP Client

RAPIDSEA implements UDS 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

The DoIP Client stack implementation is covered in detail in the DoIP (ISO13400) Client Stack page.

DoIP Header Details

Documentation from the relevant header as follows:

Warning

doxygenfile: Cannot find file “rs_iso13400.h