CAN-LINゲートウェイのソフトウェア・モジュールの実装 ――高い信頼性を確保して異なるプロトコル通信間をつなぐ

館 伸幸,木下秀昭

tag: 組み込み

技術解説 2005年4月 1日

● バッファのサイズはCANよりLINを大きくとる

 ゲートウェイ処理を行っている最中に,さらにゲートウェイを要求するデータが到来すると,処理しきれない場合があります.CANとLINではひとけた以上もの速度差があります.このため,上記のような問題はCANからLINへの送信時にとくに顕著に現れます.逆にCANへ送信する場合も,たまたまCANバスが混んでいると,ゲートウェイ処理が滞ってしまいます.

 これらの問題を回避するため,データのバッファリングを行いますが,方法としては次の2通りが考えられます.

  • 受信したデータをそのまま保存しておき,順次取り出す(受信バッファにためる)
  • データ受信後すぐに変換データを生成し,メッセージ送信要求を保存する(送信バッファにためる)

 今回は,メッセージ送信要求をバッファリングする手法をとっています(図14).バッファ・サイズはシステムの要求に依存します.一般には,LINのほうが低速であるため,通常はLIN用のバッファ・サイズをCAN用のバッファ・サイズよりも大きくとっておきます.

 確保したバッファ・サイズを超える量のデータが連続的に送られてきた場合にゲートウェイ処理が間に合わず,バッファあふれを起こしてしまう可能性も考慮しておかなければなりません.単にあふれた分を無視する方法や,エラー検出を行って送信ノードに通知する方法など,いろいろな対策が考えられます.このような過渡的状態のときにゲートウェイがどのようにふるまうのかについては,システム全体を見て設計する必要があります.ゲートウェイを利用するノードは,その特性を知っていなければなりません.今回は,単にエラー検出(エラー・フラグのモニタ)のみを実装しています.

f14_01.gif
図14 メッセージ・バッファの例
読み出しポインタはバッファからの読み出し位置を,書き込みポインタはバッファへの書き込み位置を示す.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日