CAN busは、bit-stuffingを使用したNon-Return To Zero(NRZ)を使用しています。ドミナント(論理的に0)とレセッシブ(論理的に1)がある2つの異なるシグナル状態があります。これらは、使用される物理層(いくつかあります)に依存する特定の電気レベルに対応しています。モジュールは、有線でバスに接続されています。1つのノードがバスをドミナント状態に駆動している場合、リセッシブ状態を送信するノードの数に関係なくバス全体がその状態になります。
物理層は、バス上の電気レベルと信号方式、ケーブルインピーダンスおよび類似の情報を定義します。
いくつかの異なる物理層があります:
異なる物理層は、原則として相互運用ができません。いくつかの組み合わせは、優れた条件の下で動作するかもしれませんし、動作するように見える場合があります。例えば、同じバス上で"low-speed"および"low-speed"の両方のトランシーバを使用すると、うまく動作することがあります。
非常に多くのCANトランシーバチップは、NXPによって製造されています。代替ベンダとしては、Bosch, Infineon, Texas Instruments ,Vishay Siliconixが含まれます。
非常に一般的なタイプは、ISO 11898で定義された物理層を実装する82C250トランシーバです。82C251は、改良版です。
"low-speed CAN"の一般的なトランシーバは、NXPのTJA1054があります。
規格に従ってCAN busの最大Busスピードは、1 Mbit/sです。一部のCANコントローラは、1Mbit/sよりも高速に対応し、特別なアプリケーションのために考慮されています。
Low-speed CAN(ISO 11898-3、上記参照)は、最大125 kbit/sが可能です。
シングルワイヤCANは、標準モードで最大約50 kbit/s、ECUプログラミングなどに使用される特別な高速モードを使用すると最大約100 kbit/sになります。
バストランシーバの中には、特定のビットレート以下にはできないものがあることに注意してください。例えば、82C250や82C251を使用しても問題なく10kbit/sまで下げることができますが、代わりにTJA1050を使用した場合は50kbit/sを下回ることができません。データシートを確認してください。
1Mbit/sのスピードで最大で約40mのケーブル長を使用することができます。これは、調停スキームでは、ビットがサンプリングされる前に信号の波面(wave front of the signal)が最も離れたノードまで伝搬し再び戻ってくる必要があるためです。言い換えれば、ケーブル長は光速によって制限されます。
その他の最大ケーブル長は次のとおりです(これらの値は近似値です):
ガルバニ絶縁を提供するためにオプトカプラを使用する場合は、それに応じて最大バス長が減少します。ヒント:高速のオプトカプラを使用し、指定された最大ビットレートではなく、デバイスを介した遅延を見てください。
ISO 11898 CAN busは、ターミネーションする必要があります。これは、バスのそれぞれの端に120Ωの抵抗を使用して終端します。このターミネーションは、次の2つの目的があります:
ISO 11898 CAN busは、スピードに関係なく常にターミネーションする必要があります。繰り返しになりますがISO 11898 CAN busは、そのスピードに関係なく常にターミネーションする必要があります。実験室の作業レベルでは、ターミネータが1つあれば十分であるかもしれません。ターミネータを接続しなくてもCAN busが動作する場合は、運が良いだけです。
"low-speed CAN"、シングルワイヤCAN、その他の物理層は、ターミネータを必要とする場合としない場合があります。しかし、vanilla high-speed ISO 11898 CAN busは、常に少なくとも1つのターミネータを必要とします。
詳細については、CAN busターミネーションをご覧ください:
Kvaserの高度なCANソリューション - レセッシブビット伝送を確実に実行するために必要な終端処理(ターミネーション)
ISO 11898では、ケーブルのインピーダンスは公称120Ωと規定されていますが、[108~132]Ω間のインピーダンスが許可されています。今日の市場において、この要件を満たすケーブルは多くはありませんが存在します。将来的には、許容インピーダンス間隔が拡大される可能性が高くなります。
ISO 11898 は、シールド付きまたはシールドなしのツイストペアケーブルについて定義されています。シングルワイヤ規格SAE J2411の作業が進行中です。
CAN busコネクタの規格は、特に定められていません! 通常、各上位層プロトコル(!)では、1つまたはいくつかのCAN busコネクタのタイプを定義しています。一般的なタイプとしては下記のがあります: