割り込みコントローラのレジスタ(1) PICがもつレジスタは初期化時だけ使用するICW1〜ICW4のイニシャライズ・コントロール・ワード,動作中にアクセス可能なOCW1〜OCW3のオペレーション・コントロール・ワード,割り込みのマスク状態を読み出すIMR(インタラプト・マスク・レジスタ)があります. このうちOCW1はIMRのセット/リセットを行うものということで,実体はIMRと読み換えても構いません. これらのレジスタは表6のように配置されています.PICは使用するI/Oポートを削りながら多くの機能を盛り込んだため,レジスタの配置は少々ややこしくなっています.
まず,ICW1〜ICW4をみていきましょう.ベース・アドレス+0番地(0020h,または00A0h)への書き込みが行われたとき,データのビット4が“1”になっていると,PICは書き込まれたデータをICW1と解釈し,初期化モードに入ります.いったん初期化モードに入ると,その後ベース・アドレス+1番地(0021hまたは00A1h)へ書き込んだデータは,順にICW2,ICW3,ICW4へと格納されます. 初期化の詳細については後述しますが,ここでは必要なICWへのセットが完了するまで,PICは初期化モードのままで他の設定はできません.また,ICWは必ずこのシーケンスにしたがってセットされるため,任意のレジスタを選択して書き換えるということもできません.ICWへの設定が完了するとPICは通常動作モードになります. ではOCWのほうを見てみましょう.OCWは動作中,常に書き換え可能です.OCWはOCW2とOCW3がベース・アドレス+0番地側を,OCW1(IMR)がベース・アドレス+1番地側を使用します.通常動作中ベース・アドレス+1番地側をアクセスすると,割り込みマスクの設定/読み出しが行えるというわけです. OCW2とOCW3の区別はデータ・ビットのビット4とビット3で決定されます.ビット4は“0”に固定です(“1”にするとICW1への書き込みになり,初期化モードに入る).ビット3が“0”ならOCW2,“1”ならOCW3への書き込みです. Copyright 2000 桑野 雅彦 |
|
Copyright 1997-2001 CQ Publishing Co.,Ltd.