動作コマンドワード2(OCW2)
対応モデル : 全モデル
I/Oアドレス : 0000h/0010h
ビット構成 | ||||||||
---|---|---|---|---|---|---|---|---|
R/W | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
W | R | SL | EOI | 0 | 0 | LS | L1 | L0 |
R,SL,EOI : 動作順位の回転と割り込み終了の設定
R | SL | EOI | 機能 |
---|---|---|---|
0 | 0 | 1 | 割り込み優先順モードで非特殊EOIコマンドを使用 |
0 | 1 | 1 | 割り込み優先順モードで特殊EOIコマンドを使用* |
0 | 0 | 0 | 自動EOIにおける回転モードを解除 |
1 | 0 | 1 | 自動回転モードで非特殊EOIコマンドを使用 |
1 | 1 | 1 | 自動回転モードで特殊EOIコマンドを使用* |
1 | 0 | 0 | 自動回転モードで自動EOIモード |
1 | 1 | 0 | プライオリティコマンドの設定 |
0 | 1 | 0 | ノーオペレーション |
*は割り込みビットの指定にL2=0を使用する。
L2,L1,L0 : SLが1の時に動作する割り込みレベルの設定
L2 | L1 | L0 | 割り込みレベル(マスタ) | 割り込みレベル(スレーブ) |
---|---|---|---|---|
0 | 0 | 0 | 0 | 8 |
0 | 0 | 1 | 1 | 9 |
0 | 1 | 0 | 2 | 10 |
0 | 1 | 1 | 3 | 11 |
1 | 0 | 0 | 4 | 12 |
1 | 0 | 1 | 5 | 13 |
1 | 1 | 0 | 6 | 14 |
1 | 1 | 1 | 7 | 15 |
割り込みレベル7はスレーブ側の割り込みを示す
割り込み優先モードと自動回転モード
- 割り込みに優先順位を付けて、優先度の高い割り込みを処理中には優先度の低い割り込みを行わないのが優先モード
- 受け付けた割り込みをハンドラの起動時に最低の優先度に下げるのが自動回転モード
非特殊EOIコマンドと特殊EOIコマンド
- EOIコマンドとはEnd Of Interruptつまり割り込みの終了を通知するコマンドの事
- 非特殊EOIとは、受けた割り込みと同じ割り込みを終了する事(非特殊と書かずに通常と書いた方が解りやすい)
- 特殊EOIとは、割り込み完了時にL2~L0で指定した割り込みを終了する事
自動EOIモード
- EOIコマンドの手続きが自動的に行われる
- 設定は初期化時のICW4のAOEIを1にする
- 便利そうでは有るが、以下の問題もある
- 問題1 : 割り込み処理中に再度割り込みを受けてしまうことが有る
- 問題2 : マスタのみに使用出来、スレーブには使用できない
問題1はよく解らない、これでは割り込みコントローラとしてどうなのか ?
問題2はPICをカスケード接続したマシン(PCや98も含むほとんどになるが)では、マスターとスレーブで割り込み完了時の処理が異なる事から利用する意味は薄い
コメント
最新を表示する
NG表示方式
NGID一覧