49 lines
1.8 KiB
ReStructuredText
49 lines
1.8 KiB
ReStructuredText
|
.. _can_isotp:
|
||
|
|
||
|
ISO-TP Transport Protocol
|
||
|
#########################
|
||
|
|
||
|
.. contents::
|
||
|
:local:
|
||
|
:depth: 2
|
||
|
|
||
|
Overview
|
||
|
********
|
||
|
|
||
|
ISO-TP is a transport protocol defined in the ISO-Standard ISO15765-2 Road
|
||
|
vehicles - Diagnostic communication over Controller Area Network (DoCAN).
|
||
|
Part2: Transport protocol and network layer services. As its name already
|
||
|
implies, it is originally designed, and still used in road vehicle diagnostic
|
||
|
over Controller Area Networks. Nevertheless, it's not limited to applications in
|
||
|
road vehicles or the automotive domain.
|
||
|
|
||
|
This transport protocol extends the limited payload data size for classical
|
||
|
CAN (8 bytes) and CAN-FD (64 bytes) to theoretically four gigabytes.
|
||
|
Additionally, it adds a flow control mechanism to influence the sender's
|
||
|
behavior. ISO-TP segments packets into small fragments depending on the payload
|
||
|
size of the CAN frame. The header of those segments is called Protocol Control
|
||
|
Information (PCI).
|
||
|
|
||
|
Packets smaller or equal to seven bytes on Classical CAN are called
|
||
|
single-frames (SF). They don't need to fragment and do not have any flow-control.
|
||
|
|
||
|
Packets larger than that are segmented into a first-frame (FF) and as many
|
||
|
consecutive-frames as required. The FF contains information about the length of
|
||
|
the entire payload data and additionally, the first few bytes of payload data.
|
||
|
The receiving peer sends back a flow-control-frame (FC) to either deny,
|
||
|
postpone, or accept the following consecutive frames.
|
||
|
The FC also defines the conditions of sending, namely the block-size (BS) and
|
||
|
the minimum separation time between frames (STmin). The block size defines how
|
||
|
many CF the sender is allowed to send, before he has to wait for another FC.
|
||
|
|
||
|
.. image:: can_isotp_sequence.svg
|
||
|
:width: 20%
|
||
|
:align: center
|
||
|
:alt: ISO-TP Sequence
|
||
|
|
||
|
API Reference
|
||
|
*************
|
||
|
|
||
|
.. doxygengroup:: can_isotp
|
||
|
:project: Zephyr
|