ISO 15765-2

ISO 15765-2、または"ISO-TP"（Transport Layer）は、CANバスを介してデータパケットを送信するための国際規格である。このプロトコルは、CANフレームの8バイトの最大ペイロード長を超えるメッセージの転送を可能にする。ISO-TPは長いメッセージを複数のフレーム（マルチフレーム）に分割し、個々のフレームの解釈と受信者による完全なメッセージパケットへの再構成を可能にするメタデータを付与する。一つのメッセージパケットについて最大4095バイトのペイロードを搬送できる。
OSI参照モデルでは、ISO-TPはレイヤー3（ネットワーク層）と4（トランスポート層）をカバーする。
ISO-TPの最も一般的な適用例は、KWP2000やUDSを使用したOBD-2搭載車両との診断メッセージの転送であるが、他のアプリケーション固有のCAN実装で広く使用されている。
ISO-TPは、CAN IDのみを使用したアドレス形式（いわゆる"Normal Addressing"）や、いわゆる"Extended Addressing"という独自のアドレス形式で操作できる。Extended addressingは、各フレームの最初のデータバイト（0バイト目）をアドレスの追加要素として使用し、アプリケーション層ペイロードを1バイト減らす。簡単のため、以降のプロトコルの説明では8バイトのCANフレームを使用した Normal Addressing に基づいて説明する。ISO 15765-2プロトコルでは、合計で6種類のアドレス形式が利用可能である。
ISO-TPは、8バイトCANフレームのペイロードデータに1バイト以上のメタデータバイトを付加し、ペイロード長を1フレームあたり7バイト以下に削減する。メタデータは、Protocol Control Information（PCI）と呼ばれる。PCIは1～3バイトである。先頭フィールドは、フレームタイプを示す4ビットで、これによりPCI長を特定できる。
ISO-TPは4つのフレームタイプを定義する:
PCIフィールドタイプの一覧.
A message of seven bytes or less is sent in a single frame, with the initial byte containing the type (0) and payload length (1-7 bytes). With the 0 in the type field, this can also pass as a simpler protocol with a length-data format and is often misinterpreted as such.
A message longer than 7 bytes requires segmenting the message packet over multiple frames. A segmented transfer starts with a First Frame. The PCI is two bytes in this case, with the first 4 bit field the type (type 1) and the following 12 bits the message length (excluding the type and length bytes). The recipient confirms the transfer with a flow control frame. The flow control frame has three PCI bytes specifying the interval between subsequent frames and how many consecutive frames may be sent ("Block Size").
最初のバイトには、最初の4ビットにタイプ(タイプ=3)が含まれ、次の4ビットには転送が許可されているかどうかを示すフラグ(0=送信可能、1=待機、2=オーバーフロー/中止)が含まれます。次のバイトはブロックサイズで、次のフロー制御フレームを待つ前に送信されるフレームの数です。値が0の場合、残りのフレームはフロー制御や遅延なしで送信されます。
3番目のバイトは、フレーム間の最小遅延時間である分離時間(ST)です。127 (0x7F)までのST値は、フレーム間の遅延の最小値をミリ秒単位で指定します。241 (0ｘF1)から249 (0ｘF9)までの値は、100から900マイクロ秒に増加する遅延を指定します。分離時間は、あるフレームの終わりから次のフレームの始めまでの最小時間として定義されることに注意してください。頑強な実装は、これをフレーム繰り返し率、すなわちフレームの始まりからフレームの始まりへと誤って解釈する送信者からフレームを受け入れる準備ができているべきである。慎重な実装でさえ、物理層におけるビットスタッフィングのマイナーな影響を説明できないかもしれません。
送信者は連続フレームを使用してメッセージの残りを送信する。各連続フレームは, 4ビットタイプ(タイプ=2)の後に4ビットシーケンス番号が続く1バイトPCIを有する。シーケンス番号は1から始まり、フレームが送信されるたびに増加します(1, 2...。, 15, 0, 1...。)。失われたフレームまたは破棄されたフレームを検出できます。連続する各フレームは0から始まり、最初のフレームの最初のデータ・セットは0番目のデータと見なされます。したがって、CFの最初のセット(連続するフレーム)は「1個」から始まります。その後、「15個」に達すると、「0個」から開始されます。12ビット長フィールド(FFで)は、セグメント化されたメッセージにおいて4095バイトまでのユーザデータを許容するが、実際には、受信バッファまたはハードウェアの制限のために、典型的なアプリケーション固有の制限はかなり低い。
タイミングパラメータ.
P1やP2タイマーなどのタイミングパラメータについて言及する必要がある。