CAN-LINゲートウェイのソフトウェア・モジュールの実装 ――高い信頼性を確保して異なるプロトコル通信間をつなぐ
● LINマスタ/CANノードとして機能するためのソフト処理
今回利用する評価ボードをゲートウェイとして機能させるためには,本ボードがLINマスタおよびCANノードとして動作することに加えて,データのバッファリング,タイミング制御,LINとCANのプロトコル変換などのソフトウェアが必要となります.以下に,今回必要となるおもなモジュールを挙げます.また,モジュール間の関係は図6のようになります.
- LIN通信(ドライバ):図6のLINマスタ・ドライバ――LIN通信を実現するためのソフトウェア.LINマスタとして動作する.マイコン内のUARTやタイマなどを制御して通信を行う.
- CAN通信(ドライバ):図6のCANドライバ――CAN通信を実現するためのソフトウェア.マイコン内のCANコントローラを制御して通信を行う.
- プロトコル変換:図6のIDマッピング・テーブルとメッセージ・フィルタ――IDマッピング・テーブルには,LINとCANのID変換情報を格納している.ゲートウェイ通信が必要なIDの場合,メッセージ・フィルタはIDマッピング・テーブルに従って,CANプロトコルのIDとLINプロトコルのIDを変換する.また,LIN/CANメッセージ・バッファへのメッセージ送受信要求の格納処理も行う.
- エラー制御:図6のエラー・ハンドラ――LINマスタ・ドライバ,CANドライバ,または,ゲートウェイ自身からのエラーを含むエラー処理を行う.
- データ・バッファリング:図6のLINメッセージ・バッファとCANメッセージ・バッファ――FIFO(first-in first-out)リング・バッファで構成されており,LINまたはCANへのメッセージ送受信要求を格納する.LIN用,CAN用それぞれ独立のバッファで構成される.
- タイミング制御:図6のメッセージ・スケジューラ――各メッセージ・バッファに問い合わせるためのタイミング機能を提供する.また,LINメッセージ・バッファまたはCANメッセージ・バッファから送受信要求を取得し,送受信データをLINマスタ・ドライバやCANドライバに引き渡す.
図6 モジュール構成図
図5(b)のボードをゲートウェイとして機能させるために必要なソフトウェア・モジュールとその関係を示す.図の中のゲートウェイAPI(GW-API)は,ノードからのデータ・フォワーディングのほか,ゲートウェイ自身の送受信機能を備えている.