Skip to content
RFrftools.io
Protocols2026年3月23日3分で読める

CAN バスビットタイミング:正確な構成

さまざまなマイクロコントローラのクロック速度とボーレートにわたって信頼性の高い組み込み通信を実現するために、CANバスのタイミングパラメータを正確に計算する方法を学びましょう。

目次

CANバスのビットタイミングを理解する:数字だけではない

CANバスタイミングは抽象的な理論ではなく、組み込みシステムが確実に通信できるか、機能しないかを決定する重要な基盤です。ビットタイミングを後回しにしているエンジニアは、通常、不思議な通信障害をデバッグすることになります。

正確なタイミングが重要な理由

CANバスのすべての伝送は、電気信号を注意深く振り付けて踊ります。マイクロコントローラのクロック、選択したボーレート、およびセグメント構成はすべて相互作用して、堅牢な通信プロトコルを作成します。パラメータを 1 つ間違えると、断続的なエラーが表示され、頭がおかしくなります。

コア・タイミング・コンポーネント

CAN バスのビットタイミングは、いくつかの重要なセグメントに分かれています。

  • タイムクォンタム (TQ): 基本的な時間単位
  • 同期セグメント:すべてのノードが同期する場所
  • 伝播セグメント:物理的な配線遅延を考慮に入れる
  • フェーズ・バッファ・セグメント:クロック・ドリフトとエッジ・ポジショニングを補正

実際に動作した例:16 MHz クロックで 500 kbps

具体的なシナリオを見ていきましょう。CAN を 500 kbps で 16 MHz のシステムクロックで動作させる車両テレメトリシステムを設計しているとします。

CAN バスビットタイミング計算ツールを開くと、次のことが必要になります。
  1. システムクロックとして 16 MHz を選択します。
  2. 500 kbps のボーレートを選択してください
  3. サンプルポイントのパーセンテージを試してみる

計算ツールは最適なセグメント構成を動的に表示します。500 kbps の例では、以下が表示される場合があります。

  • タイムクォンタム:125 ナノ秒
  • 公称ビット時間:2 µs
  • シンクセグメント:1 TQ
  • 伝播セグメント:2 TQ
  • フェーズバッファ 1:7 TQ
  • フェーズバッファー 2:6 TQ
  • プリスケーラー:8

よくあるタイミングミス

ほとんどのエンジニアは次の重大なエラーを犯します。

  1. サンプルポイントを無視: デフォルトの 68~ 75% のサンプルポイントだけを受け入れないでください。特定のハードウェアでは正確なチューニングが必要な場合があります。
  2. クロックミスマッチ: すべてのマイクロコントローラが CAN タイミングを同じように処理するわけではありません。必ず特定の MCU の機能を検証してください。
  3. ノイズマージン: タイミングは単なる数学的なものではありません。電気ノイズを除去する堅牢な信号ウィンドウを作成することが重要です。

高度な考慮事項

Tbit=TQ∗(1+PropSeg+PS1+PS2)T_{bit} = TQ * (1 + PropSeg + PS1 + PS2)

この式は単純そうに見えますが、これを実装するには、各セグメントがバス全体の信頼性にどのように影響するかを理解する必要があります。

実践的なヒント

  • 保守的に始める:標準構成から始める
  • 実際のバス性能を測定
  • オシロスコープを使用してタイミングエッジを検証する
  • 全温度範囲でのテスト

今すぐ試してみる

CAN バスビットタイミング計算ツールを開くを開き、特定の通信パラメータをダイヤルしてください。ただ計算するだけではなく、それぞれの数値がシステムの信頼性にとってどのような意味を持つのかを理解してください。

よくある質問

CANバスのサンプルポイントは、各ビット時間中にビット値が読み取られる場所で、通常は公称ビット時間の68〜75%に設定されます。最適なパーセンテージは使用するハードウェアによって異なり、信号の信頼性とノイズ除去に影響するため、デフォルト値をそのまま使用するのではなく、調整する必要があります。
500 kbps CANバスの場合、公称ビット時間は2 µsです。これを同期セグメント(1 TQ)、伝搬セグメント、およびフェーズバッファセグメント全体で時間量子(TQ)に分割する必要があります。たとえば、16 MHz のクロックとプリスケーラーが 8 の場合、全ビット時間にわたってセグメントの合計が 16 TQ (1+2+7+6) で 125 ns の TQ が得られます。
Time Quantum(TQ)は、システムクロック周波数をプリスケーラー値で割ることによって計算される、CANバスのビットタイミングの基本時間単位です。すべての CAN ビットタイミングセグメント (同期、伝搬、および位相バッファ) は、この TQ 値の倍数として表されます。
CANバスのビットタイミングは、同期セグメント(ノードが同期する場所)、伝播セグメント(物理的な配線遅延を考慮に入れる)、フェーズバッファセグメント1、フェーズバッファセグメント2(どちらもクロックドリフトとエッジポジショニングを補償)の4つの主要セグメントで構成されています。これらのセグメントは、 T_bit = TQ × (1 + PropSeg + PS1 + PS2) という式に従って組み合わされます。

関連記事