ISO 15765-2

ISO 15765-2 (ISO-TP) について



ISO 15765-2、またはISO-TP(Transport Layer)は、CANバスを介してデータパケットを送信するための国際規格です。このプロトコルは、CANフレームの8バイトの最大ペイロード長を超えるメッセージの転送を可能にします。ISO-TPは長いメッセージを複数のフレーム(マルチフレーム)に分割し、個々のフレームの解釈と受信者による完全なメッセージパケットへの再構成を可能にするメタデータを付与します。一つのメッセージパケットについて最大4095バイトのペイロードを搬送できます。

OSI参照モデルにおけるISO-TP



OSI参照モデルでは、ISO-TPはレイヤー3(ネットワーク層)と4(トランスポート層)をカバーします。

ISO-TPの適用例



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種類のアドレス形式が利用可能です。

プロトコル制御情報 (PCI)



ISO-TPは、8バイトCANフレームのペイロードデータに1バイト以上のメタデータバイトを付加し、ペイロード長を1フレームあたり7バイト以下に削減します。メタデータは、Protocol Control Information(PCI)と呼ばれます。PCIは1~3バイトで構成され、最初の4ビットはフレームタイプを示します。このフレームタイプによって、PCIの長さが特定されます。

フレームタイプ



ISO-TPは、以下の4つのフレームタイプを定義します。

1. Single Frame (SF): 7バイト以下のペイロードを持つメッセージは、単一フレームで送信されます。最初のバイトはタイプ(0)とペイロード長を含みます。この形式は、長さ-データ形式の単純なプロトコルとしても解釈されることがあります。
2. First Frame (FF): 7バイトを超えるメッセージは、複数フレームに分割して送信されます。FFは、転送を開始するための最初のフレームであり、最初の4ビットにタイプ(1)が含まれ、次の12ビットにメッセージ長が含まれます。
3. Flow Control Frame (FC): 受信側は、FCフレームで送信者に転送を許可します。このフレームには、フレーム間の間隔や送信できる連続フレーム数などの情報が含まれます。FCフレームの最初のバイトはタイプ(3)で、次の4ビットには転送可否フラグ、次のバイトにはブロックサイズ、最後のバイトには分離時間(ST)が含まれます。
4. Consecutive Frame (CF): メッセージの残りの部分は、連続フレームで送信されます。各CFには、タイプ(2)とシーケンス番号が格納されています。シーケンス番号は1から始まり、フレームごとに増加します。失われたフレームや破棄されたフレームを検出できます。

PCIフィールドタイプの一覧


フレームタイプPCIの構成 説明
------------------------
Single Frame `[Type (4 bit) Payload Length (4 bit) ]` 1フレームで送信する7byte以下のデータ
First Frame `[Type (4 bit) Message Length (12 bit)]` マルチフレーム送信の最初のフレーム。12ビットでデータ長を表現
Flow Control `[Type (4 bit) FS (4 bit) BS(8 bit) ST(8 bit)]` 受信側から送信側へ送信を制御するフレーム。FS:送信フラグ BS:ブロックサイズ ST:分離時間
Consecutive Frame `[Type (4 bit) Sequence Number (4 bit)]` マルチフレーム送信のデータ部。シーケンス番号で順序を制御

フロー制御と連続フレーム



7バイトを超えるメッセージは、複数フレームに分割して送信されます。セグメント化された転送は、最初のフレーム(FF)で開始されます。この場合、PCIは2バイトで、最初の4ビットフィールドはタイプ(1)で、続く12ビットはメッセージ長(タイプと長さのバイトを除く)です。受信側は、フロー制御フレームで転送を確認します。フロー制御フレームには、後続のフレーム間の間隔と、送信可能な連続フレーム数(ブロックサイズ)を指定する3つのPCIバイトがあります。

最初のバイトには、最初の4ビットにタイプ(3)が含まれ、次の4ビットには転送が許可されているかどうかを示すフラグ(0=送信可能、1=待機、2=オーバーフロー/中止)が含まれます。次のバイトはブロックサイズで、次のフロー制御フレームを待つ前に送信されるフレームの数です。値が0の場合、残りのフレームはフロー制御や遅延なしで送信されます。

3番目のバイトは、フレーム間の最小遅延時間である分離時間(ST)です。127 (0x7F)までのST値は、フレーム間の遅延の最小値をミリ秒単位で指定します。241 (0xF1)から249 (0xF9)までの値は、100から900マイクロ秒に増加する遅延を指定します。分離時間は、あるフレームの終わりから次のフレームの始めまでの最小時間として定義されることに注意してください。頑強な実装は、これをフレーム繰り返し率、すなわちフレームの始まりからフレームの始まりへと誤って解釈する送信者からフレームを受け入れる準備ができているべきです。慎重な実装でさえ、物理層におけるビットスタッフィングのマイナーな影響を説明できないかもしれません。

送信者は連続フレームを使用してメッセージの残りを送信します。各連続フレームは, 4ビットタイプ(タイプ=2)の後に4ビットシーケンス番号が続く1バイトPCIを有します。シーケンス番号は1から始まり、フレームが送信されるたびに増加します(1, 2,...。, 15, 0, 1,...。)。失われたフレームまたは破棄されたフレームを検出できます。連続する各フレームは0から始まり、最初のフレームの最初のデータ・セットは0番目のデータと見なされます。したがって、CFの最初のセット(連続するフレーム)は「1個」から始まります。その後、「15個」に達すると、「0個」から開始されます。12ビット長フィールド(FFで)は、セグメント化されたメッセージにおいて4095バイトまでのユーザデータを許容しますが、実際には、受信バッファまたはハードウェアの制限のために、典型的なアプリケーション固有の制限はかなり低い場合があります。

タイミングパラメータ



P1やP2タイマーなどのタイミングパラメータについても考慮する必要があります。

国際規格



* ISO 15765-2:2016 Road vehicles Diagnostic communication over Controller Area Network (DoCAN) Part 2: Transport protocol and network layer services

脚注



この説明は、ISO 15765-2規格の基本的な概念をまとめたものです。より詳細な情報や実装に関する詳細は、規格文書を参照してください。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。