第1章 PCのアドレス・マップと

割り込みコントローラ(9)

割り込みコントローラのカスケード動作

 

割り込みコントローラのカスケード動作

 カスケードになったときマスタが割り込み応答するのはシングル時と同じですが,スレーブが応答するときはマスタが「次はおまえだ」という指示を出すことになります.それがCAS(カスケード)ラインです.

 カスケード・モード時のPICの動作は次のようになっています.図1のブロックで示したように,CPUへの割り込み要求はマスタが行いますが,CPUからの応答(INTA)は双方に入っています.

(図1)割り込みコントローラの接続

 PIC自体がマスタになるかスレーブになるかは,SP/ENピンで決定されます.さらにマスタPICにはIR2にスレーブが接続されていること,またスレーブPICには自分がマスタのIR2に接続されていることをイニシャライズ時に設定します.

 以下,スレーブのIR4(IRQ12)から割り込みが入ったとして,その動作を解説します.

(1)スレーブはINT出力をアサートします.

(2)マスタはIR2でスレーブの割り込みを受け,CPUに割り込み要求を行います.

(3)CPUが割り込みに応答し,1回目のINTAが返ってきます

(4)マスタは割り込みの優先度判定を行います(ここでIR2がもっとも優先度が高いと判断されたとする).

(5)IR2にはスレーブがいるので,自分(マスタ)は割り込みベクタを出さず,CASラインを“010”(IR2にカスケードされたPICのスレーブ番号)にします.

(6)スレーブはINTAとCASが“010”(自分に設定されたスレーブ番号と同じ)であるのを見て,自分が割り込みに応答すべき状況であることを検出します.同時に自分の中でも割り込みの優先度決定を行っておきます.

(7)続いてCPUから2回目のINTAが返ってきます.1回目のINTAで応答するスレーブ・デバイスも,割り込み番号も決まっていますから,ここでスレーブがベクタ番号データ・バスに出力します.

(8)CPUは割り込みコントローラから受け取ったベクタ番号に対応したベクタ・テーブルを見て,該当する割り込みサービス・ルーチンを実行します.

 なお,(3)の段階でスレーブのISRとともに,マスタのISRもセットされる点に注意してください.通常,スレーブから割り込みがあったときのEOIはスレーブだけでなく,マスタに対しても行う必要があります


Copyright 2000 桑野 雅彦

新刊のご案内


Copyright 1997-2001 CQ Publishing Co.,Ltd.