发新话题
打印

8259A的内部结构及引脚信号

8259A的内部结构及引脚信号


8259A的内部结构及引脚信号
) b- i3 {8 A9 P. C/ n0 ^2 H9 {- Q, t1.8259A的内部结构
( Z+ ~' _+ e+ |' s9 z8259A的内部结构图如图5.8所示。它有8根中断请求输入线IR7~IR0,内部有8个主要的功能块。其中3个寄存器是可编程的,即用户可用程序访问它们,这3个寄存器都是8位的。
5 m0 ^- k0 y9 s2 `4 o+ d, V1 F    (1)中断请求寄存器IRR(Interrupt Request Register) 1 e+ [: }5 K7 d3 c: J
    IRR用来存放中断请求。某位为l表示相应的中断请求线IR有请求,为O表示该引脚无请求。将IRR某位置1的方式称为触发方式。有两种触发方式:边沿触发和电平触发,前者是利用IR线由低到高的跳变,后者要求IR线为高电平并保持到第一个中断响应信号INTA结束之前。在电平触发方式下,要求中断请求得到响应之后请求输入端必须及时撤除高电平。如果在CPU进入中断处理过程并且开放中断前未去掉高电平信号,则可能引起不应该发生的第二次中断。相比之下,边沿触发方式用起来要方便一些。触发方式由初始化命令字ICWl来设置。: c& q7 S; j. m
# K7 Z6 c8 w4 {: P. Z+ _! t. w

7 M0 ]4 p/ }6 O- M* s/ i. m
0 f9 `% f: \4 c, k
) {1 h9 Y' U1 [% X0 V6 |     (2)中断屏蔽寄存器IMR(Interrupt Mask Register)
6 Z6 l+ s1 h* H# l    IMR存放着8个屏蔽位信息,某位为0表示对应的中断源未被屏蔽,为1表示对应的中断源被屏蔽。被屏蔽的中断源的请求不能参与中断判优,也就不可能向cPu提出中断请求。
( f; o! R% N( i/ I( u/ R) {    (3)正在服务寄存器ISR(In-Service Register)
' a% K5 E% V  U" R0 {. T    ISR存放着当前正在服务的所有中断级。某位为1表示相应的中断正在服务中。ISR中可能有多位为l,这表明当前出现了中断嵌套。
0 Q, j2 o8 S1 n, r0 \    (4)控制逻辑
: X" e& K) A( c! d/ Z; s    控制逻辑含一组初始化命令寄存器和一组操作命令寄存器,按预置的工作方式(初始化命令字)或程序员的干预(操作命令字)来管理8259A的全部工作。
0 L, }% j; c+ ]& r& X  \. V(5)优先权判决电路 9 ?) B& n# m. X
    优先权判决电路对保存在IRR中的各种中断请求以及IMR的内容进行判断,确定出最高优先级,如果当前没有正在服务的中断或者它比当前正在服务的级别高,则在CPU中断响应期间把它选通至ISR。简言之,在中断响应期间,优先权判决电路找出应该服务的中断,将ISR相应位置位。 , \: [, m9 o2 o- e1 u0 s
  (6)级联缓冲器/比较器 ) e" G- u" Q: b/ P+ ~4 e9 `4 t8 Y: e
  级联是指使多片8259A连接起来,管理更多级中断。该功能部件在级联方式的主片一从片结构中用来存放和比较系统中各从片标识(ID)。 ( W5 T6 u! B1 @7 ^5 i7 g& a
  (7)数据总线缓冲器
7 y, A* Q, }/ j4 V1 @$ {  数据总线缓冲器是8259A与系统数据总线的接口,它是双向三态缓冲器。所有CPU对8259A编程时的控制命令字都是通过它写入的;且8259A的状态信息以及中断响应期间的中断向量也是通过它提供给CPU。
+ F% Q' ~4 `/ |* A  作为一个能与系统数据总线直接相连的芯片,都应设置数据总线缓冲器。在该芯片被选中时提供与系统数据总线的传送通道;在该芯片未被选中时使芯片内部的数据线与系统数据总线“脱开”(呈现高阻抗),这样不影响CPU与其他芯片的联系。
) p0 o  f$ \% y1 S  (8)读/写控制逻辑 ; b7 ~6 l8 M5 f, t
  该电路接收CPU的读/写命令,完成命令字的写入和状态字的读出等操作。
2 b- e0 t5 i0 T2.8259A的引脚
9 I" Y1 d  h- |# s2 B2 H  8259A是28个引脚的双列直插式芯片,其引脚如图5.9 所示。* q0 g$ x# S! v8 n! j
; r' ?+ f5 ~' b9 v" i
- b7 @* j+ ?$ U" V% v+ I/ t
   D7~D0为数据线,双向,三态,可与系统数据总线直接相连。 . g: l. d9 \' n/ @! K% H
  IR7~IR0为中断请求输入线,接收来自外界的中断请求。
' ]+ T9 E/ s0 r, ]: e, _3 e/ h  INT为送至CPU的中断请求输出线。高电平有效。
; U- Q6 d, T. G% z3 \/ w  iNTA为中断响应输入线,接收CPU在中断响应周期中发来的中断响应信号。
) X! \7 H  e7 {% w1 n( {$ v  RD读命令线,低电平有效。有效时,使信息由8259A读至CPU。
; G! A! E+ R; j! p/ l; X  WR是写命令线,低电平有效。有效时,控制信息由CPU写入8259A。   i- ^  |$ L, S4 @( n6 X
  A0是片内端口选择输入线。对8259A内部寄存器的操作需要通过端口进行。一片 ; ]6 W( X+ }( t4 ?! e- R
8259A占用两个端口地址,用A0来选择。一般情况下,A0直接接系统地址总线的最低位A0,在8086系统中,一般接系统地址总线的A1。 + p8 y8 z* d6 v/ F% Q: [0 |5 A& f# B& o
    CAS2~CASO为级联信号线,当8259A作为主片时,这三条线是输出线;作为从片时,则为输入线。
" ~* u7 p7 B- [& [4 b( Q    SP/EN为从片编程/允许缓冲器信号,这是一个多功能引脚。这里涉及到缓冲器方式的概念,在此先作一些解释。8259A的数据线引脚设计是可与系统数据总线直接相连,但有时有一片或多片8259A希望有自己的局部数据总线,这时需要在8259A的数据线与系统数据总线之间加一个缓冲器,因为数据传送是双向的,所以,该缓冲器也应是双向的。在缓冲器方式下,SE/EN为输出信号,用作允许缓冲器接收和发送的控制信号(EN)。当不处于缓冲方式时,它为输入信号,用来指明该8259A是主片(sP=1)还是从片(sP=0)。 ) l3 K$ ^. o0 ]% t, @; {6 _
    在一个系统中可将多片(最多9片)8259A级联,但只能有一片是主片,其他都为从片。
  h* i3 T" [# Y" }# v8 x所谓主片,是INT线接至CPU的INTR端的8259A。从片的INT线都接到主片的IR输入端。
2 j9 }! B0 g6 V+ I4 ?6 v图5.10是8259A级联(非缓冲器方式)的示意图。4 P( q- k& K. r5 `

3 j* G' A$ ~- k$ j# j9 T% q



点击图标进入精品网摘收藏 欢迎大家加入网络收藏夹

TOP

发新话题