Controller Area Network
標準フレームフォーマットは以下の通りである。CAN-LO信号のビット値が記述されている。
↑ 物理的には、データが8バイトに制限されているにもかかわらず、4ビットのDLCでは9から15の間の値が送信され得る。一部のCANコントローラでは、8より大きなDLCの送信/受信が可能であるが、実際のデータ長は常に8バイトに制限されている。
調整は、各ビットをクアンタ(quanta、量子)と呼ばれる複数のタイムスライスに分割し、ビット内の4つのセグメント(同期、伝播、位相セグメント1、位相セグメント2)のそれぞれにいくつかのクアンタを割り当てることによって達成される。
ビットによって分けられるクアンタの数は、コントローラによって変えることができ、各セグメントに割り当てられるクアンタの数は、ビットレートおよびネットワーク状態に応じて変えることができる。
コントローラが期待するよりも前後に遷移が起こった場合、コントローラが時間差を計算し、この時間までに位相セグメント1を長くするか、位相セグメント2を短くする。これにより、受信機と送信機のタイミングを効果的に調整して同期させることができる。この再同期プロセスは、送信機と受信機が同期していることを確実にするために、全てのリセッシブからドミナントへの遷移において連続的に行われる。継続的な再同期化は、ノイズによって引き起こされるエラーを低減し、アービトレーションを失ったノードに同期された受信ノードが、アービトレーションを獲得したノードと再同期することを可能にする。
エラーフレームは、2つのフィールドから構成されている。
最初のフィールドは、異なるノードからのエラーフラグ(6-12ビットのドミナント/リセッシブビット)の重ね合わせによって与えられる。
第二のフィールドは、エラーデリミタ(8ビットのリセッシブビット)である。
エラーフラグには2種類ある。
アクティブエラーフラグ: 6ビットのドミナントビット。エラー状態「エラーアクティブ」にあるネットワーク上のエラーを検出したノードによって送信される。
パッシブエラーフラグ: 6ビットのリセッシブビット。エラー状態「エラーパッシブ」にあるネットワーク上のアクティブなエラーフレームを検出するノードによって送信される。