組み込みシステム設計者のためのLIN2.0マイコン実装術(中編) ――使用するCPU性能に応じたオプション選び

舘 伸幸

tag: 組み込み

技術解説 2006年1月17日

2) イベント・トリガ・フレーム(event triggered frame)

 イベント・トリガ・フレームは,LIN 1.3ではコンフィグレーションの章に項目があっただけでしたが,LIN 2.0で動作が定義されました.LINは基本的にバスの衝突が発生しないしくみになっていますが,このフレームではバスの衝突が起こる可能性があり,それを許可しています.

 このフレームは,複数のスレーブに割り当てられた同一機能が,同時に動作することがあまりない場合に使用します.仕様書では,このフレームを用いる例としてドアロック・ノブの監視が挙げられています.かりに無条件フレームを使うとすると,ドアの数だけ問い合わせを行う必要があり,例えば4ドアであればフレーム・スロットを四つ消費することになります.しかし,複数のドアロック・ノブが同時に操作されることはまれです(そもそも,一つのノブが操作されていることすらめったにない).したがって,「変更があったら手を挙げて」と,すべてのドアに対していっせいに問い合わせれば,ほとんどの場合は1フレーム・スロットですみます.

 動作の詳細を図7に示します.

 最初のフレーム・スロットで,マスタはイベント・トリガ・フレームを送信しています.無条件フレームですべてのノードにブロードキャストする場合と似ていますが,ここではヘッダのみでレスポンスはマスタ・ノード(のスレーブ・タスク)からは送信しません.

 図7の最初の例では,不運なことに(?)スレーブ1とスレーブ2の両方でイベント(例えばドアロック・ノブの操作)があった場合を示しており,両方からレスポンスが返されています.マスタはこのときバス上の衝突を検出して,複数のスレーブ・ノードでイベントが発生したことを知ります.この場合は,やむを得ず従来の方法で無条件フレームを使ってノード一つずつに問い合わせを行います(あるいは,この場合は次に述べるスポラディック・フレームを使うのが合理的).これが,図7の2番目と3番目の通信例に相当します.

 4番目の通信は,マスタからの問い合わせ時にどのノードでもイベントが発生していなかった場合です.このときはすべてのノードがレスポンスを返さず,マスタはフレーム・スロットのタイムアウトでイベント発生がなかったことを認識します.5番目は特定のノード(この場合はスレーブ2)でイベント発生があった場合です.スレーブ2のみがレスポンスを返しています.

f07_01.gif
図7 イベント・トリガ・フレーム
0x10は,無条件フレームである0x11と0x12のフレームに関連するイベント・トリガ・フレーム.図中のフレーム・スロットは連続している必要はなく,途中にスケジュール定義された別のフレーム・スロットがあってもよい.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! 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日