CAN-LINゲートウェイのソフトウェア・モジュールの実装 ――高い信頼性を確保して異なるプロトコル通信間をつなぐ
● CANは「マルチマスタ」,LINは「シングル・マスタ」
CANとLINについて,ここで簡単におさらいしておきましょう.
CANはデータ転送速度が最大1Mbpsと規定されている高速な通信プロトコルです(図1).物理層(実際の電線)は2線式注1で(グラウンドを含めると3線),通信距離は最大1kmです.すべてのノードは平等の立場であり,どのノードもマスタになることができます.
一方,LINのデータ転送速度は最大19.2kbpsです.基本的には,UART通信をもとにしたシンプルなプロトコルです.物理層は1線で半二重通信です.一つの決まったマスタが複数のスレーブを管理します.
CANとLINはそれぞれ独立に存在するのではなく,一つの車の中で共存します.しかし,上述のように両者の通信プロトコルはかなり異なります.まるで,ことばも生活習慣も違う二人が一つ屋根の下に住んでいるようなイメージです.なんとかこの二人の仲を取り持ってやる必要があります.
本稿では,その役割を果たす「ゲートウェイ」について,設計事例を交えながら解説していきます.なお,今回のゲートウェイでは,LIN側はLIN 1.3に準拠して設計しています.
注1;低速領域では1線式の仕様もある.
図1 CANとLINの違い
CANはデータ転送速度が最大1Mbpsで,バスが開放されていれば,どのノードも平等にデータをネットワークに送信できる(マルチマスタ).LINはCANと比べて低速で,一つのマスタが複数のスレーブを管理する.マスタの許可なしにスレーブは通信できない.