これまでの連載では,主な車内LANの方式として「LIN」,「CAN」,「FlexRay」を取り上げ,それぞれの技術のポイントを解説しました。いずれも実際の車に採用されている方式です。これらの方式を含めて,車内LAN全般の解説は「第1回 車内LANって何だろう」にまとめました。

 今回から,車内LANの代表的な方式による通信のやりとりを見ていく「実践編」がスタートします。この実践編では,通信プロトコルの処理のみではなく,通信データの内容を基にモータの回転数を変化させたり,LEDランプを点滅させたりして,実際に見て実感できるものを動かします。さらに、そのときの通信データの信号波形を見ることで,実際の通信の流れを直感的に理解してもらいたいと思います。

 車内LANの専門書は、既にいくつかありますが,そうした専門書のみでは通信の中でのやりとりが確認しにくいと思います。今回からの実践編を読んでもらうことで,車内LANの通信方式に関する理解をより深めてもらいたいと考えています。また,今回からの実践編では,車内LANの通信プロトコルを実行可能なマイコン学習ボードを用います。これを利用して動かしてみることで,車内LAN習得への足掛かりとしていただきたいと思います。

 実践編の最初となる今回は「CAN(controller area network)」を取り上げます。CANは、既に幅広く世界中で使用されている車内LANの一つであり,エンジンやブレーキなどのパワー・トレイン系,ステアリングやサスペンションなどのシャーシ系,ドアやミラーなどのボディ系で広く用いられています。今回はこのCAN通信を使って実際にモータを回してみましょう。

準備:CAN通信に必要なハードウエア/ソフトウエアを用意

 CAN通信を実現するために,2枚の通信用ボードをCANバスでつないだ通信システムを用意します。通信用ボードを構成する主な部品には,CANの通信コントローラを内蔵したMCU(micro controller unit,以下CANマイコン)やトランシーバICなどがあります(図1)。CANマイコンは,CAN通信プロトコルに従って,CPUで処理された情報の送受信を行います。

図1●CAN通信システムの基本構成例
図1●CAN通信システムの基本構成例
[画像のクリックで拡大表示]

 トランシーバICは,通信コントローラの入出力信号レベルとバス規格の信号レベルを相互に変換します。トランシーバIC とCANマイコンは,送信用(TX)と受信用(RX)の2本の信号線で接続されています。トランシーバICでは,CAN-H,CAN-Lの差動信号に変換してバス上にデータを流します。なお,CANバスの差動信号については,連載第3回の「標準型のCANって何だろう ポイント3:差動伝送方式を用いる」を参照してください。

 ここではその通信用ボードとして,都築電産が発売しているマイコン学習ボード「bits pot red(以下,redボード)」と「bits pot white(以下,whiteボード)」を用いることにします。それぞれCANマイコンとトランシーバICを搭載しておりますので,そのままボードを接続することで通信環境が構築できます。

 redボードを例に,CANマイコンとトランシーバIC,CANバスの回路を見てみましょう(図2)。CANマイコン(MB91F267N)とトランシーバICが,送信用(TX)と受信用(RX)の2本の信号線で接続されていることがわかります。右側のコネクタでCANバスとつながり,通信相手のボードとCAN通信でデータの送受信を行います。

図2●CAN通信用ボードの回路図<br>redボードの例を示した。
図2●CAN通信用ボードの回路図
redボードの例を示した。
[画像のクリックで拡大表示]

 redボードとwhiteボードはいずれも,付属のサンプルプログラムを用いることで手軽にCAN通信の制御ができます。またredボードには,DCブラシレスモータを動作させる回路も搭載しています。同じくサンプルプログラムを用いることで簡単にモータを動作させることができます。

 今回のシステムでは,サンプルプログラムを実行して,CAN通信の制御を行い,redボードに接続したモータをwhiteボードから動かしたり止めたりします。具体的にはwhiteボードよりモータ動作命令をCAN通信でredボードに送信します。その命令を受信したredボードはモータ操作を実行します。また,redボードはモータ回転情報をCAN通信でwhiteボードに送信します。その情報を受け取ったwhiteボードは,モータがきちんと回転していることを示すLEDランプを点灯させます。

 今回はこの一連の流れを,CAN通信による実際の動作の様子と,そのときの信号波形の写真を使って説明していきます。