AG903ライブラリリファレンス
内容インデックスホーム
前へ上へ次へ
OSP

ワンストップポート(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バッファモードは同じコマンドの組み合わせを繰り返し使用する用途に適したモードです。 

FIFOバッファモードでは、コマンドがバッファ末尾に追加登録されていきます。 

登録コマンド数がバッファサイズを超えた場合は、オーバーフローエラーになります。 

登録されたコマンドは、アプリケーションにてコマンドクリアしない限り保持されます。(繰り返し実行可) 

 

※RP(リードポインタ)は登録コマンド数を読み出すとリセット(=0)されます。 

※WP(ライトポインタ)は書き込み後も保持され、登録ごとに追記されます。(バッファサイズを超えるとエラー) 

 

  • RINGバッファモード

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

名前 
説明 
ワンストップ機能のコマンドインタフェースを提供します。 
ワンストップポート機能レジスタにアクセスするためのインタフェースを提供します。 
 
 
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.