概要
車載ネットワークで標準的に使われているプロトコルの一つにCANがあります。CANはOSI参照モデルの物理層・データリンク層に相当します。
CANの詳細は参考リンクにお任せします。
本記事では、その上位層のプロトコルにあたるISO-TPのデータ送信の流れを簡単に紹介します。
ISO-TP
ISO-TP(またはISO 15765-2)はCAN上に実装されるネットワーク層・トランスポート層のプロトコルです。
何ができるのか
CANでは1フレームで最大8バイトのデータが送信されています。
ISO-TPでは複数のフレームを用いて最大4095バイトのデータを送ります。
アドレッシングフォーマット
ISO-TPには4つのアドレッシングフォーマットというものがあります。
- Normal addressing
- Normal fixed addressing
- Extended addressing
- Mixed addressing
ここでは説明しやすい
Normal fixed addressingを取り扱います。
Normal fixed addressing
流れ
まず、シングルフレーム送信とマルチフレーム送信で分けられます。
シングルフレームは8バイト未満のデータを送るために使われ、
その名の通りこのフレームを送るだけで送信が終わります。
マルチフレーム送信は次の図のようになります。
では、図のパラメータとともに流れを説明していきます。- FirstFrame (FF)
- 最初に送信されるフレームで、データ長とデータを含みます。
- データ長(byte)の表現に12ビット与えられているため、4095バイトまでのデータを送信できます。
- FlowControl frame (FC)
- FSとBSとSTminを含みます。
- Flow Status (FS)
- 送信許可(CTS)、待ち(WAIT)などの状態を示します。
- BlockSize (BS)
- 指定した数のCF毎にFCを送信します。
- SeparationTime minimum(STmin)
- CFの送信間隔を示します。
- ConsecutiveFrame (CF)
- Sequence Number(SN)とデータを含みます。
- SNはCFの順番を表します。
- SNは0x01からインクリメントされ、0xffの次は0x00に戻ります。
- 最初が0x01なのはFFを0x00として見ているからです。
- (FFはSN=0x00確定なのでSNを含みません)
データ構造
※DAは1対1で送信する物理アドレス、DBは1対多で送信する機能アドレスの役割
※[N_TA]はターゲットアドレス、[N_SA]はソースアドレスが入ります
※DL=データ長
最後に
省いている部分が多くなってしまいましたが初Advent Calendarありがとうございました。
自動車業界のIT技術に触れ始めたばかりですが面白いです。
参考
ISO15765-2
ISO11898-1
はじめてのCAN/CAN FD