8259A的初始化命令字ICW - 中断系统 - 快乐群体→http://klqt.net

来源:百度文库 编辑:神马文学网 时间:2024/05/24 04:52:49
8259A的初始化命令字ICW
初始化命令字ICWl~ICW4.用来对8259A进行初始化。在初始化命令字中有一些位是针对8080/8085 CPU的,因为这两种CPU早已不用了,所以,在下面命令字的说明中对这些位不再作进一步的解释。在写命令字时这些位取0。
初始化命令字是要写入相应的初始化命令字寄存器中的。对8259A内部寄存器的操作需要通过端口进行。一片8259A占用两个端口地址,用端口选择引脚A0来选择。对于一般的微机系统,A0接系统地址总线的最低位A0,这样,一片8259A占用的两个地址是连续的,一个为偶地址(A0=0),另一个为奇地址(A0=1)。在下面命令字格式图示中,左边都有一个上方标“A0”的方框,框内有的为0,有的为1,这分别表示该命令字应写入8259A的AO为0的端口和写人A0为1的端口,在一般的微机系统中,分别表示写入8259A的偶地址端口和写入奇地址端口。
1)ICWl
ICWl主要用来设定中断请求的触发方式,是否级联,初始化过程中用不用ICW4等。
它的格式和含义如图5.11所示。图中一些位格中有英文缩写,如D1位中有SNGL
(single)”,这是给每一位起一个名称,表示出这一位(也可以是几位)的含义(一般是该位为l 时的含义)。这样说起来比较方便,例如,选择单片或级联是SNGL位,而不必说成Icwl的第1位。

ICWl的D4位恒为1,连同A0为0,作为ICWl的标志。这是因为在初始化时,ICWl是第一个应写入的,它必须有区别于其他初始化命令字,包括操作命令字的特征(ICW2、ICW3、ICW4的A0都为1,而A0为0对应的操作命令字有两个:OCW2和OCW3,它们的D4位都为0)。
2)ICW2
ICW2用来设置中断向量(在8086系统或PC系列机中,这里所说的中断向量实际是中断类型码)。在用于8086/8088系统时,该命令字的格式和含义如图5.12所示。高5位规定中断向量的高5位,即同一片8259A的8级中断的中断向量的高5位是相同的,而低3位是对应IR线的编码(000~111)。图中低3位标“×”表示取值任意,一般取0。有时将ICW2称为中断向量字节。

3)ICW3
ICW3仅在8259A级联时才需要。对于主片和从片,ICW3的意义不同。
对于主片,ICW3的格式和含义如图5.13所示。8位的意义相同,某位为0,对应的IR线接中断请求信号;为1,对应的IR线接从片的中断请求信号INT。

对于从片,ICW3的格式和含义如图5.14所示。高5位固定为0。低3位是从片的标识码,等于从片所连接的主片IR输入端的编码。例如,一从片的INT接到主片的IR2,则该从片的ICW3应为00000010B(后3位为IR2的编码010)。

从片的标识码在中断响应时要用到。当CPU响应来自某从片的中断请求时,连续产生两个中断响应周期。在第一个中断响应周期,主片把得到响应的IR编码送上级联线(CAS2~CAS0),从片拿它与自己的标识码进行比较,若结果相同,表明cPu正在响应本片的中断,于是准备该中断的中断向量,在第二个中断响应周期将其送上数据总线。
4)ICW4
ICW4的功能较多,用来设置是否为特殊全嵌套方式,是否为缓冲器方式,是否为自动中断结束中断方式,是否为8086/8088系统等,其格式和含义如图5.15所示。