現代の自動車や産業機器において、多数の電子制御ユニット(ECU)を効率的に連携させるために不可欠なのがCAN(Controller Area Network)バスです。1983年にBosch社によって開発されたこのシリアル通信プロトコルは、配線の簡素化と高い信頼性を両立させ、今や世界的な標準規格として定着しています。
Key Facts
- 開発元:Bosch GmbH(1983年設計)
- 通信方式:半二重、非同期の差動信号方式
- 最大速度:CAN 2.0(1 Mbit/s)、CAN FD(8 Mbit/s)、CAN XL(20 Mbit/s)
- 物理層規格:ISO 11898-2(高速)、ISO 11898-3(低速・耐故障)
- 主な用途:自動車のOBD-II診断、3Dプリンター、産業オートメーション
CANバスの進化と規格の変遷
CANの仕様は時代に合わせて拡張されてきました。1991年に発表されたCAN 2.0では、11ビットの識別子を用いる「標準フォーマット(CAN 2.0A)」と、29ビットの識別子を用いる「拡張フォーマット(CAN 2.0B)」が定義されました。
その後、国際標準化機構(ISO)がISO 11898として標準化を行い、データリンク層(-1)と物理層(-2, -3)に分かれた詳細な仕様が整備されました。さらに、データ量の増加に対応するため、2012年にはデータレートを柔軟に変更できるCAN FD(Flexible Data-Rate)が登場し、最新のCAN XLでは最大2,048バイトのペイロードと20 Mbit/sの高速通信を実現し、Ethernetとの橋渡し的な役割を担っています。
物理層の構造と電気的特性
CANバスは、CAN-High(CAN-H)とCAN-Low(CAN-L)の2本の線をひねったツイストペア線を使用する差動信号方式を採用しています。これにより、外部からのノイズ影響を最小限に抑えることが可能です。
高速CAN(ISO 11898-2)では、バスの両端に120Ωの終端抵抗を配置し、信号の反射を防ぎます。論理的な「0(ドミナント)」の状態ではCAN-Hが3.5V、CAN-Lが1.5V付近に駆動され、差動電圧は約2Vとなります。一方、誰も送信していない「1(リセッシブ)」の状態では、差動電圧は0Vとなります。



対照的に、低速・耐故障CAN(ISO 11898-3)は、より大きな電圧変動を利用し、一部の線が断線しても通信を維持できる設計となっています。こちらはスター型トポロジーなどの柔軟な構成が可能です。


ハードウェア構成としては、各ノードにCPU、CANコントローラ、そして物理的な信号変換を行うトランシーバが必要です。

コネクタに関しては、業界で事実上の標準となっているDE-9(D-sub 9ピン)形式が多く利用されており、ピン2にCAN-L、ピン7にCAN-Hが割り当てられています。

データ伝送と優先制御(アービトレーション)
CANバスの最大の特徴は、複数のノードが同時に送信を開始した際に、データの衝突を回避して優先順位を決定するアービトレーション(調停)機能にあります。
各メッセージには識別子(ID)が付与されており、数値が小さいIDほど優先度が高くなります。ノードは送信しながらバスの状態を監視し、自分が「1(リセッシブ)」を送信した瞬間にバス上で「0(ドミナント)」を検知すると、より優先度の高いメッセージが送信されていると判断して即座に送信を停止します。これにより、重要なデータが遅延なく伝送される仕組みになっています。

フレーム構造とエラー制御
CANの通信単位である「フレーム」には、データ伝送用のデータフレーム、リクエスト用のリモートフレーム、エラー通知用のエラーフレーム、および遅延挿入用のオーバーロードフレームの4種類が存在します。
データフレームは、開始ビット(SOF)、識別子、制御フィールド、データフィールド、CRC(巡回冗長検査)、ACK(確認応答)などで構成されます。特にCRCはデータの整合性を保証し、エラー検出に寄与します。


また、同一極性のビットが6回連続して現れると、同期を維持するために異なる極性のビットを挿入するビットスタッフィングという処理が行われます。これにより、受信側はクロックの同期を正確に保つことができます。

CANバスの仕様まとめ
| 項目 | CAN 2.0 (Classical) | CAN FD | CAN XL |
|---|---|---|---|
| 最大ビットレート | 1 Mbit/s | 8 Mbit/s | 20 Mbit/s |
| 最大ペイロード | 8 バイト | 64 バイト | 2,048 バイト |
| 識別子長 | 11 または 29 ビット | 11 または 29 ビット | 11 または 29 ビット |
| 主な特徴 | 基本規格・高信頼性 | 可変データレート | Ethernet互換・大容量 |
Frequently Asked Questions
CANバスでIDの数値が小さい方が優先されるのはなぜですか?
CANの物理層では「0(ドミナント)」が「1(リセッシブ)」を上書きする特性があるためです。IDの先頭からビットを比較し、最初に「0」を送信したノードがバスを支配し、送信を継続できるため、数値的に小さいIDが優先されます。
CAN FDと従来のCAN 2.0は互換性がありますか?
はい、互換性があります。CAN FDデバイスは、既存のCAN 2.0ネットワークと同じ通信パラメータを使用して共存することが可能です。
終端抵抗(120Ω)が必要な理由は何ですか?
高速通信において、信号がバスの末端に到達した際に反射して戻ってくることを防ぐためです。反射が発生すると信号が乱れ、通信エラーの原因となります。
ビットスタッフィングとは具体的にどのような処理ですか?
同じ値のビット(0または1)が5回連続して続いた場合、強制的に逆の極性のビットを1つ挿入する処理です。これにより、信号線に変化が生まれ、受信側がビットの区切りを正確に認識(同期)できるようになります。
References
- It is physically possible for a value between 9–15 to be transmitted in the 4-bit DLC, although the data is still limited to eight bytes. Certain controllers allow the transmission or reception of a DLC greater than eight, but the actual data length is always limited to eight bytes.
📸 フォトギャラリー










