めないめまい

個人的なメモ。参考にする際は自己責任でお願いします。

CANプロトコルについて

CANについて

  • Controller Area Network
  • マルチマスタ方式
  • イベントドリブン
  • バス型のネットワークトポロジ

データフレーム

  • SOF(Start Of Frame)
    • 送信開始
  • アービトレーション・フィールド
    • IDとRTRで構成
  • コントロール・フィールド
    • データ長コードと予約ビット
  • データ・フィールド
    • ユーザー定義領域
  • CRC(Cyclic Redundancy Check)
    • データの誤りチェック
  • ACK
    • 正しく受信されたた場合に受信ノードから返ってくる
    • 受信ノードがドミナントに変換することで、送信側は正常に受信できたことを知る
  • EOF(End Of Frame)
    • フレームの終了

f:id:yasudanaoto:20170918162105p:plain

自己診断機能(OBD2)

  • On-Board Diagnostics
  • 自動車に搭載されている診断機能
  • ピン配置、故障コードはDLC(Data Link Coupler)と呼ばれる統一規格
  • 故障コードはDTC(Diagnostic Trouble Code)と呼ばれる
    • アルファベット1文字と4ケタの数字
    • CANに関するDTCは"U"から始まる

OSI参照モデル

  • Open System Interconnection参照モデル
  • 異なる装置間の通信機能を7つの階層構造であらわしたもの
  • CANでは物理層データリンク層のみサポートしている
  • 送信時
    • 第7層から順にデータを付与していき、第1層で送信する
  • 受信時
    • 第1層で受信したデータから順に情報をチェック(削除)していき、第7層に伝える

f:id:yasudanaoto:20170918142137p:plain

第1層 物理層

  • データリンク層からのデータ(ビットデータ)を電気信号に変換する
  • 受信した電気信号をビットデータに変換する
  • ピン、コネクタ、ケーブルの形状や特性を管理する

第2層 データリンク層

  • 直接接続された通信機器同士の通信を管理する
    • 例)PCとルータ間の通信

第3層 ネットワーク層

  • 目的とする機器との通信を管理する
    • 例)PC1-ルータ-PC2のときのPC1とPC2の通信
  • 送信パケットに、送信先IPアドレスを設定したヘッダを付ける

第4層 トランスポート層

  • 通信の信頼性の管理する
  • パケットが欠けるなどの通信エラーの検出する

第5層 セッション層

  • 通信経路を確立する
  • 通信開始と終了のタイミングを管理する

第6層 プレゼンテーション層

  • PC上のデータとネットワーク上のデータ形式の変換
    • ファイル⇔バイナリ

第7層 アプリケーション層

  • アプリケーションと下位層からのデータの変換

参考