English
HARDWARE ManualSMPCユーザーズマニュアル
戻る進む
SMPCユーザーズマニュアル/第2章 SMPCコマンド

■2.2 コマンド発行

 SMPCへのコマンドは、SMPCステータスフラグ(SF)を"1"にセットした後コマンドパラメータが必要な場合にはコマンドパラメータを設定し、SH-2インタフェースレジスタにコマンドコードを書き込むことにより発行できます。
 SMPCコマンドを発行する際は、コマンドの二重発行に注意してください。SMPCへのコマンド二重発行防止は、SMPCステータスフラグで管理することができます。このフラグが"1"の時を、SMPCがビジーとします。 コマンドを発行する際は、ステータスフラグが"0"であることを確認し、"1"をセットしてからコマンドを発行してください。ステータスフラグは、コマンド終了時にSMPCが"0"リセットします。

◆コマンド発行方法

 SMPCのコマンドはコマンドの実行内容、コマンドパラメータ、リザルトパラメータの種類により、 発行手順やリザルトパラメータの取得方法を分類することができます。以下にその分類と該当するコマンドを表2.4に、 各分類に応じた発行方法例を図2.1から図2.5に示します。

 (1)分類A:
 コマンド発行後、マスタSH-2がリセット、または、NMIなどの例外処理に遷移するコマンド

 (2)分類B:
 コマンドパラメータ設定を必要とせず、リザルトパラメータも返さないコマンド(ただしOREG31を除く)

 (3)分類C:
 コマンドパラメータ設定を必要とし、リザルトパラメータを返さないコマンド(ただしOREG31を除く)

 (4)分類D:
 コマンドパラメータ設定を必要とし、リザルトパラメータも返し、かつリザルトパラメータが揃った時点でSMPC割り込みを要求するコマンド

表2.4 コマンド発行分類
分類
コマンド
A
MSHON,SYSRES,NMIREQ,CKCHG352,CKCHG320
B
SSHON,SSHOFF,SNDON,SNDOFF,CDON,CDOFF,RESENAB,RESDISA
C
SETTIME,SETSMEM
D
INTBACK
太字はユーザーの使用禁止コマンドです。

図2.1 分類Aコマンドフロー

図2.2 分類Bコマンドフロー

図2.3 分類Cコマンドフロー

図2.4 分類Dコマンドフロー

注)SMPC割り込みをマスク(SMPC割り込みを使用せず)して、SMPC割込フラグおよびSF
  クリアをコマンド発行後にポーリングすることでもSMPC割り込みルーチン同様の
  処理を実行できます。

◆コマンド発行タイミング

 SMPCは、V-BLANK-IN割り込みを利用して内部タスクを実行しています。そこで、V-BLANK-INから300μS期間でのコマンド発行を禁止しています。 また、SMPCの各種ステータス、およびペリフェラルデータを取得するために用いるINTBACKコマンドは、その他のコマンドよりも発行タイミングを厳しく規定しています。INTBACKコマンドの詳細については、 ■2.4 非リセット系システムマネージメントコマンド、および 第3章 ペリフェラルコントロールを参照してください。

 ●コマンド発行タイミングの共通事項
 前述したように全てのコマンドの発行をV-BLANK-INから300μS期間で禁止します。

 ●INTBACKコマンド
 INTBACKコマンドは、ペリフェラルデータ収集開始をV-BLANK-OUTで開始します。ペリフェラルデータ収集開始をV-BLANK-OUTで、開始するためにV-BLANK-IN後、300μS以降、V-BLANK-OUT以前の期間に発行してください。 図2.5にINTBACKコマンド発行タイミングを示します。

 INTBACKコマンドには、以下の3つの使用方法があります。

(1)SMPCステータスのみ取得
(2)SMPCステータス取得に続いて、ペリフェラルデータを取得
(3)ペリフェラルデータのみ取得

 (2)SMPCステータス取得に続いて、ペリフェラルデータ取得を実行する場合には、SMPCステータスがOREGに揃った時点でSMPC割り込みが発生し、SH2に対してリザルトパラメータの取得を要求します。 SH2がコンティニュー要求した後にSMPCは、ペリフェラルデータ収集を開始します。 そこで、SMPCステータス取得後、コンティニュー要求をする際にも、ペリフェラルデータ収集開始をV-BLANK-OUTで、開始できるようにINTBACKコマンドを発行しコンティニュ−を要求する必要があります。 なお、SMPCステータス取得は、INTBACKコマンド発行後、約300μSで完了し、SMPCに対して、SMPC割り込みを要求します。

図2.5 INTBACKコマンド発行タイミング

 ●SYSRES、CKCHG320、CKCHG352コマンド実行後のINTBACKコマンド発行タイミング
 以上のコマンドでは、コマンド実行時間が100msec以上かかります。これらコマンドの実行後にINTBACKコマンドを発行する際は、次のV-BLANK-INまで待ち発行してください。 図2.6にSYSRES,CKCHG320,CKCHG352コマンド実行後のINTBACKコマンド発行タイミングを示します。 なお、SYSRES,CKCHG320,CKCHG352コマンドの発行タイミングは、V-BLANK-IN後、300μS以降、次のV-BLANK-IN以前の期間に発行してください。

クロックチェンジコマンドを使用する場合は、必ず、システムライブラリを使用してください。

図2.6 SYSRES,CKCHG320,CKCHG352コマンド実行後のINTBACKコマンド発行タイミング

 ●その他のコマンドの発行タイミング
 その他のコマンドを発行後、同じフレームでINTBACKコマンドを発行しないときには、V-BLANK-IN後、300μS以降、次のV-BLANK-IN以前の期間に発行してください。その他のコマンドをV-BLANK-IN後、 300μS以降で発行しさら同じフレームでINTBACKコマンドを発行するときには、INTBACKコマンドをV-BLANK-OUT以前の期間で発行してください。図2.7にその他のコマンドの発行タイミングを示します。

図2.7 その他のコマンド発行

◆コマンド発行制限

 コマンドを発行する上での制限事項を以下に示します。

● SMPCに対するコマンド発行処理は、極力単一タスクで行うようにしてください。 発行処理が複数に分れている場合には、コマンドの二重発行等の問題点が発生し、SMPCの誤動作またはデッドロックを発生する可能性があります。やむを得ず複数のタスクで、 SMPCに対してコマンド発行をする必要性がある場合は、タスク間でコマンドの二重発行を発生させないような排他制御を前述のコマンド発行方法に加え、必ず実施してください。

● コマンドを連続して発行する場合にも、コマンドの二重発行が発生しないよう必ずステータスフラグを確認し、前のコマンド実行が終了してから次のコマンドを発行してください。

● 1秒毎に1回、リアルタイムクロックのカウントアップを行っています。 また、V-BLANK-IN直後は、SMPC内部でリセットボタンの検出を行っています。これらの処理が行われている時にコマンドを発行するとコマンド処理時間にこれら処理時間が加算されるため、コマンド処理時間に変動が生じるので注意してください。

● SMPCコマンドは、マスタ、スレーブどちらのSH-2からも発行可能ですが、システムが動作停止するなど、発行を制限しているコマンドがあります。

 表2.5に各SH-2コマンド発行制限を示します。

表2.5 SH-2のコマンド発行制限
No.  コマンド名称  コマンド略称マスタSH-2からの
コマンド発行
スレーブSH-2からの
コマンド発行
1 ×マスタ SH-2 ONMSHON
2 スレーブ SH-2 ONSSHON×
3 スレーブ SH-2 OFFSSHOFF×
4 サウンド ONSNDON
5 サウンド OFFSNDOFF
6 ×CD ONCDON
7 ×CD OFFCDOFF
8 ×システム全体リセットSYSRES
9 ×クロックチェンジ352CKCHG352×
10×クロックチェンジ320CKCHG320×
11NMIリクエストNMIREQ
12リセットイネーブルRESENAB
13リセットディセーブルRESDISA
14インタラプトバックINTBACK×
15SMPCメモリ設定SETSMEM
16時刻設定SETTIME
×印はユーザーの使用禁止

戻る進む
HARDWARE ManualSMPCユーザーズマニュアル
Copyright SEGA ENTERPRISES, LTD., 1997