| .. _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:: isotp_sequence.svg |
| :width: 20% |
| :align: center |
| :alt: ISO-TP Sequence |
| |
| API Reference |
| ************* |
| |
| .. doxygengroup:: can_isotp |