Technology
CAN通信
(CANつうしん)
CAN通信とは、複数の制御装置、センサ、モーター、表示器などを2本の信号線で接続し、識別番号を付けたメッセージを共有するシリアル通信方式です。CANはController Area Networkの略で、車載機器、産業機械、農業機械、移動体、組込機器などで使用されます。
一台の親機がすべての通信を管理する方式とは異なり、各ノードが必要なタイミングでメッセージを送信できます。複数ノードが同時に送信を開始した場合も、優先順位に基づいて衝突を解決します。
ハカルプラスでは、接続台数、通信速度、メッセージ周期、配線長、ノイズ環境を確認し、CANコントローラ、トランシーバ、終端抵抗、異常監視を含む通信回路を検討します。
CAN通信の主な用途
- 複数マイコン間の制御情報共有
- モーター・アクチュエータの制御
- センサ・計測器からのデータ収集
- 車両・移動体内の機器連携
- 操作表示器と制御ユニットの通信
- 分散制御装置の状態・異常共有
マルチマスター通信
CANでは、通信可能な状態であれば各ノードが送信を開始できます。
中央の一台だけが通信開始権を持つわけではないため、異常や状態変化を各機器から直接通知しやすい構成です。
メッセージ指向通信
CANでは、送信先アドレスではなく、メッセージの内容や優先順位を表す識別子を付けて送信します。
受信側は識別子を確認し、自分に必要なメッセージだけを取り込みます。一つのメッセージを複数ノードが同時に利用できます。
CAN ID
各メッセージにはCAN IDと呼ばれる識別子を付けます。
標準フォーマットでは11ビット、拡張フォーマットでは29ビットの識別子を使用します。IDはデータの種類だけでなく、送信優先順位にも影響します。
アービトレーション
複数ノードが同時に送信を始めた場合、CAN IDに基づいて優先順位を決定します。
高い優先順位のメッセージが通信を継続し、他のノードは送信を中止して後で再送します。通信内容を壊さずに衝突を解決できる点が特長です。
優先順位
一般に、数値の小さいCAN IDほど高い優先順位となります。
非常停止状態、モーター異常など応答を急ぐ情報へ高い優先順位を割り当て、温度履歴や保守情報などは低い優先順位とします。
データフレーム
通常のデータ送信では、識別子、データ長、データ、誤り検出情報などを含むフレームを送信します。
従来のCANでは、一つのフレームで扱えるデータ量に制限があります。大きなデータは複数フレームへ分割します。
CAN FD
CAN FDは、従来CANより一つのフレームで扱えるデータ量を増やし、データ部分を高速に送信できる拡張方式です。
対応するコントローラとトランシーバが必要です。従来CANノードとの混在条件や通信設定を確認します。
通信速度
CANの通信速度は、ネットワーク全体で共通に設定します。
通信速度を高くすると更新を速くできますが、許容配線長が短くなります。接続台数、ケーブル長、応答要求から選定します。
配線長
許容配線長は通信速度、ケーブル、ノード数、分岐長によって変わります。
高速通信では信号伝搬時間の影響が大きいため、長距離配線には適しません。必要に応じて通信速度を下げます。
差動通信
CANは、CAN_HとCAN_Lの2本の信号線の電圧差でデータを判定します。
両線へ同じように重なるノイズを打ち消しやすく、産業機械や車載環境で安定した通信を行いやすい方式です。
CANトランシーバ
マイコン内のCANコントローラ信号を、実際の差動信号へ変換する部品です。
通信速度、電源電圧、待機機能、保護機能、コモンモード範囲を確認して選定します。
絶縁CAN
設備間の接地電位差やノイズを遮断するため、デジタルアイソレータと絶縁電源を用いてCAN通信を絶縁する場合があります。
盤間配線、長距離配線、高電圧機器の近くでは有効です。絶縁素子の遅延が通信速度へ影響しないか確認します。
終端抵抗
CANバスの物理的な両端には、一般に終端抵抗を取り付けます。
終端抵抗がない、片側だけ、複数箇所へ過剰に取り付けた場合は信号反射や電圧低下が起こります。電源OFF状態で線間抵抗を測定すると、終端状態を確認しやすくなります。
バス配線
CANは、幹線へ各ノードを短い支線で接続するバス型構成が基本です。
長いスター配線や長い分岐は信号反射の原因になります。コネクタや中継端子の配置も含めて配線します。
シールドと接地
ノイズ環境では、ツイストペアのシールドケーブルを使用します。
シールドの接地方法は設備全体の接地構成に合わせます。信号線とインバーター・モーター配線を分離します。
ビットタイミング
CAN通信では、通信速度だけでなく、一ビットをどのタイミングで判定するかを設定します。
マイコンクロック、伝搬遅延、サンプル位置、再同期幅などを考慮します。異なる機器で設定許容範囲が合うか確認します。
受信フィルタ
CANコントローラには、必要なCAN IDだけを受信するフィルタ機能があります。
不要なメッセージをハードウェアで除外すると、マイコン処理負荷を減らせます。ID追加時にはフィルタ設定も更新します。
周期送信
状態、速度、温度などを一定周期で送信する方法です。
受信側は、所定時間内にメッセージが届かなければ通信異常や送信ノード停止と判断できます。周期とタイムアウトを仕様書へ定めます。
イベント送信
異常発生、スイッチ操作、設定変更など、状態が変化したときに送信します。
通信量を減らせますが、受信確認や定期的な状態再送を組み合わせないと、メッセージ欠落時に状態が一致しない可能性があります。
ハートビート
各ノードが正常動作していることを示すため、一定周期で生存信号を送信します。
一定時間受信できない場合は、電源喪失、通信断、プログラム停止などを疑い、安全側へ移行します。
エラー検出
CANには、CRC、フレーム形式、ビット監視など複数の誤り検出機能があります。
異常を検出したノードはエラーフレームを送信し、誤ったメッセージの受信を防ぎます。送信側は必要に応じて自動再送します。
エラーカウンタ
各ノードは送信エラーと受信エラーの回数を内部で管理します。
エラーが増えると通信への影響を抑える状態へ移行し、さらに悪化するとバスから離脱します。エラーカウンタや状態を診断へ利用します。
Bus Off
重大な通信エラーが繰り返されると、ノードが送信を停止するBus Off状態になります。
復帰方法は、自動復帰、一定時間後の復帰、マイコン再起動などがあります。原因が残ったまま復帰を繰り返さないようにします。
通信負荷
周期の短いメッセージや高優先度メッセージが多すぎると、低優先度データが送信できなくなる可能性があります。
メッセージ長、周期、通信速度からバス負荷を見積もり、通常時と異常時の両方で余裕を確保します。
上位プロトコル
CANの物理通信とフレームだけでは、各データの意味や機器設定方法は決まりません。
用途に応じて、CANopenなどの上位プロトコルや独自通信仕様を使用します。異なる上位プロトコル同士は、同じCAN配線でもそのまま連携できません。
異常時の確認
全ノードが通信できない場合は、通信速度、終端抵抗、CAN_H・CAN_Lの短絡、電源、配線を確認します。
特定ノードだけ異常の場合は、ノード電源、トランシーバ、ID設定、受信フィルタを点検します。断続的な異常では、支線長、ノイズ、接地、コネクタを確認します。
ハカルプラスの対応
ハカルプラスでは、接続機器、通信速度、メッセージ周期、CAN ID、優先順位を整理し、CAN通信仕様を設計します。
マイコン回路、絶縁、終端抵抗、エラー監視、Bus Off復帰、異常履歴を組み合わせた組込機器間通信を検討します。
よくある質問
Q. CAN通信には親機が必要ですか?
A. 各ノードが送信できるマルチマスター方式ですが、上位プロトコルで管理役を設ける場合があります。
Q. CAN IDは機器のアドレスですか?
A. 主にメッセージ内容と優先順位を示す識別子で、送信先だけを表すものではありません。
Q. 通信速度を上げると配線距離は短くなりますか?
A. 一般に高速化するほど信号伝搬時間の制約が厳しくなり、許容配線長は短くなります。
Q. 終端抵抗は各機器へ付けますか?
A. 原則としてバスの物理的な両端へ取り付け、途中の各機器には付けません。
Q. Bus Offから自動復帰できますか?
A. 自動復帰は可能ですが、配線異常などの原因が残る場合を考え、回数制限や警報を設けます。
関連ワード
同じカテゴリの『ハカル技術辞典』を見る