非同期イベント
非同期のサポート
通常、"周期的な" 割り込みソース (ハードウェア タイマーなど) からコードを生成する予定のモデルに時間を指定します。周期的なクロック シングルレート モデルのブロックは、タイマー割り込みレート (モデルの基本レート) で実行されます。周期的なクロック マルチレート モデルのブロックは、基本レートまたはそのレートの倍数で実行されます。
また、多くのシステムは、システムの周期的なタイミング ソースに対して "非同期" となるイベントに対応して、ブロックの実行をサポートしなければなりません。たとえば、周辺機器は、割り込みを生成して、入力操作の完了の信号を送信します。システムは、たとえば割り込み機器からデータを取得して、このような割り込みを与えなければなりません。
このトピックでは、ブロックを使用して、ハードウェアで生成された割り込みの点検、タイマーの保守、非同期の読み取り/書き込み操作、RTOS (リアルタイム オペレーティング システム) での非同期タスクの発生など、非同期イベントの処理に使用するコードをモデル化および生成する方法について説明します。このブロック ライブラリは、RTOS 例 (VxWorks®) との統合を示しています。ブロックのターゲットは RTOS 例ですが、この章のソース コード解析と他の情報を使用して、別のターゲット RTOS の非同期イベント処理をサポートするブロックを作成することもできます。1
リアルタイム オペレーティング システム例の呼び出しのブロック ライブラリ
次の図は、vxlib1
ブロック ライブラリのブロックを示しています。
このライブラリの主要なブロックは Async Interrupt ブロックと Task Sync ブロックです。これらのブロックは、RTOS 例 (VxWorks) をターゲットにしています。これらのブロックに変更を加えて使用し、自分の RTOS アプリケーションをサポートできます。
メモ
シミュレーションとコード生成用に Interrupt Templates ブロック ライブラリ (Async Interrupt と Task Sync) 内のブロックを使用します。これらのブロックは、ターゲット環境でカスタム ブロックを開発するのに役立つ開始点の例を提供します。
RTOS 例以外の RTOS の非同期サポートを実装するには、以下のガイドラインとカスタマイズされた非同期ライブラリの作成のコードの例を使用して、Interrupt Template ライブラリ ブロックを RTOS に合わせて調整します。
Interrupt Template ライブラリには、以下の内容を実行するために使用できるブロックが含まれています。
割り込みレベル コードを生成する — Async Interrupt ブロック
Function-Call Subsystem を呼び出す RTOS タスクを発生させる — Task Sync ブロック
非同期的なコンテキストでの Protected および Unprotected Rate Transition ブロックの使用は、Rate Transitions ブロックと Asynchronous ブロックを参照してください。レート変換の一般的な情報については、時間ベースのスケジューリングとコード生成を参照してください。
例およびその他の情報
モデル例
rtwdemo_async
は、tornado.tlc
システム ターゲット ファイルと Interrupt Template ブロック ライブラリを使用します。モデルを開くには、MATLAB® コマンド プロンプトで「rtwdemo_async
」と入力します。モデル例
rtwdemo_async_mdlreftop
は、tornado.tlc
システム ターゲット ファイルと Interrupt Template ブロック ライブラリを使用します。モデルを開くには、MATLAB コマンド プロンプトで「rtwdemo_async_mdlreftop
」と入力します。時間ベースのスケジューリングとコード生成では周期的なモデルの一般的なマルチタタスクとレート変換の問題について説明します。
Embedded Coder® ドキュメンテーション。タスクの実行とスケジューリングを含む
ert.tlc
システム ターゲット ファイルについて説明しています。このトピックで説明されている RTOS 例 (VxWorks) のシステム呼び出しの詳細については、Wind River® Web サイトにある VxWorks システムのドキュメンテーションを参照してください。
関連するトピック
1 VxWorks is a registered trademark of Wind River Systems, Inc.