ワンストップポート(OSP)制御用ライブラリ
ワンストップポートは、CPUを介さずバスアクセスを可能にする機能です。
最大4チャンネルを並列にバスアクセス可能です。
本ライブラリは以下の機能を持ちます。
OSPのコマンド一覧:
コマンド |
パラメータ |
動作 |
AG903_OSP_CMD_BUS_SINGLE |
登録データ数(アドレスとデータで一対) |
指定されたアドレスにデータを書き込みます |
AG903_OSP_CMD_BUS_BURST_FIX |
登録データ数 |
指定されたアドレスに連続してデータを書き込みます |
AG903_OSP_CMD_BUS_BURST_INC |
登録データ数 |
指定されたアドレスを先頭に連続してデータを書き込みます |
AG903_OSP_CMD_BUS_ADDR |
書き込みアドレス |
データ書き込み先のアドレスを指定します |
AG903_OSP_CMD_BUS_DATA |
書き込みデータ |
書き込みデータを指定します |
AG903_OSP_CMD_BUS_WAIT |
(なし) |
実行したバスアクセスコマンドが完了するまで待ちます |
AG903_OSP_CMD_INTR_WAIT |
割り込み番号 |
指定した割り込みが発生するまで待ちます |
AG903_OSP_CMD_EVNT_WAIT |
イベント番号 |
指定したイベントが発生するまで待ちます |
AG903_OSP_CMD_EVNT_DEC |
イベント番号 |
カウンタを使用して、指定したイベントを待ちます |
AG903_OSP_CMD_EVNT_CLR |
イベント番号 |
指定したイベントのカウンタを0hにクリアします |
AG903_OSP_CMD_FLAG_SET |
フラグパターン |
指定したフラグパターンが全て0bになるまで待った後、そのフラグに1bをセットします |
AG903_OSP_CMD_FLAG_CLR |
フラグパターン |
指定したフラグパターンが全て1bになるまで待った後、そのフラグに0bをセットします |
AG903_OSP_CMD_NOP |
(なし) |
NOP(なにもしません) |
コマンドバッファについて
コマンドは以下の動作シーケンスで示すように必要分のコマンドをコマンドバッファに事前に登録しておきます。
次に任意のタイミングで、コマンドバッファからのFIFOにセットし、OSP動作開始でFIFOにセットされた分のコマンドが順次実行されます。
コマンドバッファはアプリケーションで確保しAG903_OSPMgrSetCommandBuf で設定して下さい。
その際、確保するサイズは(登録コマンド数 × 4 + 32)バイト以上である必要があります。
コマンドバッファモードについて
コマンドバッファはコマンドの登録方法により以下の2通りのモードがあります。
FIFOバッファモードは同じコマンドの組み合わせを繰り返し使用する用途に適したモードです。
FIFOバッファモードでは、コマンドがバッファ末尾に追加登録されていきます。
登録コマンド数がバッファサイズを超えた場合は、オーバーフローエラーになります。
登録されたコマンドは、アプリケーションにてコマンドクリアしない限り保持されます。(繰り返し実行可)
※RP(リードポインタ)は登録コマンド数を読み出すとリセット(=0)されます。
※WP(ライトポインタ)は書き込み後も保持され、登録ごとに追記されます。(バッファサイズを超えるとエラー)
RINGバッファモードは毎回異なるコマンドの組み合わせを使用する用途に適したモードです。
RINGバッファモードでは、バッファをRINGバッファとして使用するため、登録コマンド数がバッファサイズを超えた場合はバッファの先頭から上書きされていきます。
登録されたコマンドは、バッファから読み出されると無効になります。(繰り返し実行不可)
※RP(リードポインタ)は登録コマンド数を読み出してもリセット(=0)されません。
※WP(ライトポインタ)は書き込み後も保持され、登録ごとに追記されます。(バッファサイズを超えるとリセットされてリングバッファとして使用)
動作シーケンス(画像をクリックして拡大)
<シーケンス説明>
1. モジュール初期化。「AG903_OSPMgrInit」
2. ハンドル取得。「AG903_OSPMgrGetHandle」
3. コマンドバッファ設定。「AG903_OSPMgrSetCommandBuf」
4. コマンド登録。「AG903_OSPMgrSetCommand」
※登録するコマンド数分繰り返し。
5. FIFOセット。「AG903_OSPMgrSetFIFO」
6. OSP起動。「AG903_OSPMgrEnable」
7. コマンドが順次実行される。(以下からは終了シーケンス。)
8. OSP停止。「AG903_OSPMgrDisable」
9. FIFOクリア。「AG903_OSPMgrClearFIFO」
10. 登録コマンド削除。「AG903_OSPMgrClearCommand」
11. ハンドル解放。「AG903_OSPMgrReleaseHandle」
名前 |
説明 |
ワンストップ機能のコマンドインタフェースを提供します。 | |
ワンストップポート機能レジスタにアクセスするためのインタフェースを提供します。 | |
| |
|