【DoCAN】車両診断通信 その5【CAN③】

車両診断通信

バックナンバーはこちら。

スポンサーリンク

はじめに

ISO11898-1ことCANのデータリンク層について。
の後編あたり。

登場人物

博識フクロウのフクさん

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

CANのボーレート復習

太郎くん
太郎くん

CANのデータリンク層の続きだね。

フクさん
フクさん

うん。

フクさん
フクさん

前回、ボーレートに関わる話として、
クウォンタムサンプリングポイントの話をしたと思う。

太郎くん
太郎くん

CANのシステムクロックはクウォンタム時間を決定するもので、
そのままボーレートになるわけじゃないって話だよね。

フクさん
フクさん

ボーレートとしてはクウォンタム時間を意識すればOKなんだけど、
サンプリングポイントの決定の話として、セグメントの話が必要となる。

太郎くん
太郎くん

(また、よくわからん用語をぶっこんできやがった。)

CAN於けるセグメントの話

フクさん
フクさん

セグメントは複数のクウォンタムで構成されてて、
4つで構成される。

  • Synchronization Segment
  • Propagation Segment
  • Phase Segment1
  • Phase Segment2

そして、全部合わせて1bit分。

太郎くん
太郎くん

このセグメントはそれぞれどういう意味があるの?

フクさん
フクさん

とりあえず表にしてみよう。

セグメント日本語名機能
Synchronization Segment同期セグメントバスレベルのエッジが発生
Propagation Segment伝播時間セグメント遅延時間を補正
Phase Segment1位相バッファセグメント1サンプリングポイントの前
Phase Segment2位相バッファセグメント2サンプリングポイントの後ろ
太郎くん
太郎くん

んー。まだわからん。

フクさん
フクさん

次は絵に描いてみよう。

太郎くん
太郎くん

あ、なるほど。
それぞれのセグメントのクウォンタム数が確定するとサンプリングポイントも確定って感じか。

太郎くん
太郎くん

あれ?
でも、「Synchronization Segment」と「Propagation Segment」って要らなくない?

フクさん
フクさん

サンプリングポイントの決定には必要ないんだけど、
CANのハードウェア仕様としては必要な概念になるね。
Synchronization Segmentはエッジを作るところだから当然必要。
Propagation Segmentは回線遅延補正用で、ソフトウェアからは見ない形で伸縮している。
実際、CANコントローラによっては、Propagation SegmentとPhase Segment1と統合した状態で設定するのも多いので、あまり気にしなくても良いだろうね。
ちなみに、Propagation SegmentとPhase Segment1を統合した場合の表現は、大体以下になる。

  • Propagation Segment+Phase Segment1:tseg1
  • Phase Segment2:tseg2
太郎くん
太郎くん

ということはCANコントローラによって表現が違うことがあるってこと?

フクさん
フクさん

そうなるね。
よって、両方の呼び方を覚えておいた方が良いね。

太郎くん
太郎くん

確かにこれは覚えておかないと危険そうだ。

フクさん
フクさん

とりあえず、Vector社の「はじめてのCAN/CAN-FD」に書かれていなさそうば部分の補完はOKかな。

太郎くん
太郎くん

(CANの話で3回も消費するとは。この先どうなるんだ?)

まとめ

フクさん
フクさん

まとめだよ。

  • サンプリングポイントを決定するには各セグメントのクウォンタム数を決定する必要がある。
  • セグメントは4種で1bit分。
    • Synchronization Segment。
    • Propagation Segment。
    • Phase Segment1。
    • Phase Segment2。
  • Propagation Segment+Phase Segment1でtseg1、Phase Segment2をtseg2と表現することもある。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました