LoginSignup
8
4

More than 3 years have passed since last update.

ISO-TP入門

Last updated at Posted at 2020-12-17

概要

車載ネットワークで標準的に使われているプロトコルの一つに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を含みません)

データ構造

図1.png
※DAは1対1で送信する物理アドレス、DBは1対多で送信する機能アドレスの役割
※[N_TA]はターゲットアドレス、[N_SA]はソースアドレスが入ります
※DL=データ長

最後に

省いている部分が多くなってしまいましたが初Advent Calendarありがとうございました。
自動車業界のIT技術に触れ始めたばかりですが面白いです。

参考

ISO15765-2
ISO11898-1
はじめてのCAN/CAN FD

8
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
4