版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、,第5章 输入/输出技术与中断系统,I/O接口的功能,I/O端口与其寻址方式,CPU与外设之间的数据传送方式,中断系统的基本概念,8086CPU的中断系统,8259A可编程中断控制器,掌握微型计算机接口技术的基本概念,了解主机与外设之间的各种数据传送方式,了解I/O端口的寻址方式,掌握8086CPU的中断系统,掌握 8259A可编程中断控制器,5.1 I/O接口的功能和传送的接口信号,CPU可通过系统总线与外设相连,进行系统的扩展与开发,而外设必须通过接口才能与CPU交换信息。,5.1.1 I/O接口的功能,1、数据的缓冲与锁存; 2、I/O设备的寻址; 3、提供CPU与外设间交换数据 所需的
2、控制与状态信号; 4、信号的转换; 5、可编程功能。,5.1.2 CPU与外设间交换的信号,1、数据 (1)数字量: 是以二进制形式或以ASCII码表示的数字或字符 (2)模拟量: 外部的模拟量必须先经过A/D转换成数字量后才能进入CPU; CPU对现场的控制信号也必须经过D/A转换成模拟量后,才能去控制某些执行机构。,(3)开关量: 只有两个状态的量,最终转化为两个电平电量,对应一位二进制的“1”或“0”。 (4)脉冲量: 以脉冲形式表示的一种信号,例如计数脉冲、定时脉冲、控制脉冲等。 在8086中,数据信息最终都转化成为8位、16位或32位二进制数。,2. 状态 (STATUS)信息,对输
3、入设备为是否准备好? (READY),对输出设备为是否空闲?(Empty或BUSY),反映当前外设工作状态的信息,例如:,3. 控制(Control)信息 CPU通过接口输出用以控制外设 工作的信息, 如控制I/O设备的运行模式等控制信号。,上述数据、状态信息及控制信息是三类不同性质的接口信号,必须分别传送; 但大部分微机系统中都只有通用的输入、输出指令,因此状态信息与控制信息也必须作一种数据来传送; CPU与接口连接时为使三者之间能区分开,必须给它们安排各自不同的端口地址。,图5.1 I/O接口示意图,I/O接口内部一般由数据、状态、控制三类寄存器组成。,状态寄存器保存状态信息,CPU可从状
4、态口读取当前状态;,控制寄存器用来保存CPU写入的控制字。,外部设备与微处理器进行信息交换,必须通过访问该外设相对应的端口来实现。 寻找这些外设端口的过程叫做寻址。,通常有两种寻址方式: 存储器映像的I/O寻址方式; I/O端口单独寻址方式。,5.2 I/O 端口的寻址方式,5.2.1 存储器映像的I/O寻址方式,将I/O端口地址与存储器地址统一分配,即把一个外设端口作为存储器的一个单元来对待,占有存储器的一个地址。 CPU没有专门的输入、输出指令,当从外设做一次输入/输出操作时,是作为一次存储器的读/写操作。,1.端口寻址手段丰富,且不需要专门的I/O指令,2.I/O寄存器数目(或外设数目)
5、仅受总存储容量的限制。,3.读写控制逻辑比较简单。,I/O端口要占用存储器的一部分地址空间,使可用的内存空间减少; 用访问内存的指令来访问外设,延长了指令执行的时间。,5.2.2 I/O端口单独寻址方式,I/O端口和存储器分开寻址; CPU有专用的I/O指令,故也称为专用I/O指令方式; 专用的I/O指令通常有两类,即:输入指令、输出指令及其相关指令组。,1. I/O端口的地址空间独立,不占用存储器的地址空间;,2. 对I/O端口的寻址只需用到较少的地址线,因此寻址速度相对较快;,3. 专门I/O指令的使用,使编制的汇编语言源程序中的输入/输出部分更为清晰,便于理解和调试。,I/O指令的类型较
6、少,访问外设的程序设计灵活性较差; 需要存储器和I/O端口两套控制逻辑电路,增加了硬件的复杂性。,5.2.3 8086 CPU对I/O端口的寻址方式,采用I/O端口单独寻址方式,用低16位地址总线(A15A0)寻址I/O端口; 支持字节型和字型I/O传送; 最多支持64K个字节型I/O端口,或者说最多支持32K个字型端口; 有两种寻址方式: 直接寻址,地址范围为0255; DX间接寻址,地址范围为065535。,为解决8086与8位I/O设备数据线的连接问题,与存储器的奇/偶体方式相类似,也可以把I/O设备分成2个体,其中: 偶I/O体的数据线与CPU的D0D7连接,用地址总线A0作为偶体(低
7、8位数据传送)选通信号; 奇I/O体的数据线与CPU的D8D15连接,用 作为奇体(高8位数据传送)选通信号。,对于16位的字型端口,其端口地址应是偶地址; 对于8位的字节型端口: 若接低8位数据总线,则是偶地址端口; 若接高8位数据总线,则是奇地址端口。,如果一个I/O接口系统中多个字节型端口都接到数据总线的低8位(也可以接高8位),则这些端口地址的A0均固定为0,全部为偶地址。 因此,A0不能参与各接口芯片的片内端口寻址,这时可用A1来替代。,5.3 CPU与外设之间的数据传送方式,5.3.1 无条件传送方式,无条件传送一般适合于数据传送不太频繁的情况,如对开关、数码显示器等一些简单外设的
8、操作。 所谓无条件,就是假设外设已处于就绪状态,数据传送时,程序不必去查询外设的状态,而直接执行I/O指令进行数据传输。,5.3.2 查询传送方式,查询传送方式流程图,查询传送方式工作流程包括两个基本工作环节,(1)查询环节,主要通过读取状态寄存器的标志位来检查外设是否“就绪”。,(2)传送环节,通过输入指令从数据端口输入数据,或利用输出指令向数据端口输出数据。,1.查询式输入,一个典型的查询式输入接口电路如图5.2所示。 图中,由输入设备提供8位数据和1个选通信号,通过数据端口(8位锁存器和三态缓冲器1#)或状态端口(D型触发器和三态缓冲器2#)将信息传送到CPU, 其中状态端口仅用到1位,
9、只接数据总线的DB0,图5.2 查询式输入接口电路,工作过程: 当输入设备的数据已经准备好后,一方面将数据送入8位锁存器,另一方面对D触发器触发,使状态信息标志位D0为1。 当CPU要求外设输入信息时,先检查状态信息。若数据已经准备好,则输入相应数据,并使状态信息清“0”。 否则,等待数据准备“就绪”。,查询式输入时的数据和状态信息,查询式输入程序流程图,WAIT:IN A ,STATUS-PORT ;从状态口输入状态信息 TEST AL ,01H ;测试标志位是否为1 JZ WAIT ;未就绪,继续查询 IN AL ,DATA-PORT ;从数据端口输入数据,2.查询式输出,与查询式输入相类
10、似。一个典型的查询式输出电路如图5.4所示, 图中,8位锁存器为数据端口,D型触发器与1位的三态缓冲器构成状态端口,其输出的状态信号Busy经三态缓冲器接数据总线DB7。,图5.4 查询式输出电路,工作过程: 当输出设备将数据输出后,发出一个ACK信号,使D触发器翻转为0。 CPU查询到这个状态信息后,执行输出指令,将新的输出数据发送到数据总线上,同时把数据端口地址发送到地址总线上。 由地址译码器产生的译码信号和 相“与”后,发出选通信号,将输出数据送至8位锁存器。 同时将D触发器置为1,并通知外设进行数据传输操作。,查询式输出的端口信息,WAIT0:IN AL ,STATUS_PORT ;从
11、状态口输入状态信息 TEST AL ,80H ;测试标志位D7 JNZ WAIT0 ;未就绪,继续查询 MOV AL ,BUF ;从缓冲区BUF取数据 OUT DATA_PORT ,AL ;向数据端口输出,3.查询传送方式的特点,接口电路和工作程序均相当简单,较好地解决了CPU与外设之间的速度匹配问题; 在一些CPU不太忙且传送速度不高的情况下,常采用这种方式。 但这种方式实际上是CPU与外设之间的一种串行(交替)工作的方式,大大降低了CPU的效率。,5.3.3 中断传送方式,CPU和外设并行运行的工作方式: CPU启动外设后,继续执行其他的工作程序,不需要去查询外设的状态; 当外设准备好后,
12、主动向CPU发出中断申请; CPU响应后,暂时停止当前程序,转去执行数据的输入或输出操作,待I/O处理完成后,再返回到被打断的程序继续运行,这一过程即为中断。 CPU通过反复响应中断,来完成批量数据的输入或输出。,中断方式的数据输入,采用中断传送方式时, 无需CPU花费大量时间去查 询外设的工作状态。 与程序方式相比,大大提高了CPU的效率。,5.3.4 DMA方式,1.问题的提出 利用中断方式进行数据传送,可以大大地提高CPU的效率,但中断传送也是通过CPU执行指令来完成的,传送一个数据常需要执行十几条指令,几十微秒的时间。 这对于高速的I/O设备与内存间批量数据交换来说,显得太慢了。为解决
13、这个问题,可以采用: DMA (Direct Memory Access) 方式。,DMA与程序控制数据传送路径比较,DMA与程序控制数据传送路径的比较,2. DMA传送的特点,(1)数据传送过程中的一些操作,如:存/取数、修改地址、计数等不是由软件,而是由硬件(DMA控制器)来实现的; (2)传送的速度上限一般主要取决于存储器的存取速度; (3)DMA传送过程中,CPU需让出系统总线的控制权,让DMA控制器接管,因此DMA控制器电路结构复杂,硬件成本高。,DMA传送的工作原理,DMA传送原理图,(1)在收到外设的DMA请求后,能向CPU 发出 BUSRQ 请求信号。,3. DMA控制器的基本
14、功能,(5) 能对传送的字节计数,判断DMA传送是否结束,(4)能向存储器和I/O设备发出读/写控制信号,DMA工作流程,4. 8086 CPU的DMA方式,通过HOLD、HLDA来接受、响应DMA控制器的总线请求:当DMA控制器发出HOLD (总线请求) 时, CPU在完成当前的总线操作后,输出HLDA (总线请求响应) ; DMA控制器收到此信号后接管系统总线,在它的控制下完成DMA传送(单个字节,或是成块数据) DMA控制器将HOLD信号变成低电平,放弃对总线的控制。 CPU检测到HOLD为低电平后,将HLDA也置为低电平,且重新控制总线,8086 对总线请求HOLD信号的响应条件,(1
15、)最通常的情况是,当前的总线周期执行完毕即响应; (2)当正在执行加LOCK前缀的指令时,是让当前的指令执行完毕后响应; (3)若当前执行的是中断响应周期,则只能在其第二个总线周期时才能响应HOLD请求。 结论:DMA请求获得CPU响应的优先权高于所有的中断请求的优先权。,5.4 中断系统的基本概念,5.4.1 中断与中断系统的功能 1. 什么叫中断,中断示意图,三个关键字概括了中断的基本特性,(1)“中止”CPU的正常程序被打断; (2)“临时”中断的发生大部分都是随机的,事先并不能准确地知道在哪条指令后面会产生中断; (3)“返回”正常程序被打断只是暂时的、插入性的,而不是破坏性的,否则便
16、不能称之为中断。,2.中断的功能,(1)CPU分时操作 分时执行多个用户程序或多道作业,使多台设备同时并行工作; (2)实现实时处理 随时接受现场的各种信息,并及时处理; (3)故障处理 包括:硬件故障和软件故障; (4)程序调试 实现步进或分段执行程序,但这种中断不是随机产生的。,3. 中断源,即引起中断的原因,或中断请求的来源。通常有以下几种:,(1)由硬件故障引起; (2)由程序引起; (3)由外部请求引起,如I/O设备、实时 时钟、现场突发信号等,4. 中断系统的功能,计算机内实现中断功能的硬件和软件的集合称为该机器的中断系统。 一个完善的中断系统应具备以下功能:,(1)中断请求信息如
17、何产生?请求中断的标志是什么? (2)CPU如何响应?(如何知道有请求,是否立即响应,响应后如何处理等); (3)中断优先权问题,即当多个中断源同时申请中断时,CPU应先为哪一个服务? (4)中断服务,即完成中断源要求的各项工作 (5)返主问题,中断服务完成后,如何准确返回到原来的程序。,5.4.2 中断响应与中断服务程序,1.中断请求 请求中断的标志是中断请求触发器,即对每个中断源用一个触发器的状态来表征其是否需要申请中断。 以外设作为中断源的情况为例,如图5.7所示。,图5.7 中断请求电路,2.中断响应, CPU响应外设中断请求的条件: (1)当前的指令已执行完毕; (2)无DMA访问请
18、求; (3)当前的程序允许中断(对8086而言,中断允许标志IF=1)。, CPU响应中断的过程 (1)关中断。CPU一响应中断,便自动将中断关闭。 (2)保留断点地址。即把当前程序(主程序)中,将要执行的下一条指令的地址送入堆栈中保护起来。 (3)找到中断服务程序入口地址,转去执行中断服务程序。,3.中断服务程序,通常中断 服务程序的 流程图, 如右图所示。,4.中断识别与向量中断的概念,当多个中断源共用一个中断请求引脚向CPU申请中断时,CPU响应后,首先要解决的是中断源的识别问题,即搞清楚这一次是哪个中断源在申请中断。 常用的方法有软件查询中断法和向量中断法。,(1)软件查询中断法,各中
19、断触发器的状态作为中断标志位可以共用一个输入端口进入CPU中。 CPU按事先安排的次序逐个地查询各中断源, 若查到某个外设有中断请求,则转去执行该设备的服务程序, 否则顺序查询下一个外设的请求状态。 CPU查询中断源的先后次序就确定了中断源优先权的级别高低(先查的级别高)。,.,图5.9 软件查询中断服务程序流程图,(2)向量中断法,中断响应的过程实质是程序切换的过程, 即CPU在保存好现有程序的断点地址后,转到某个中断源所对应的中断服务程序的过程。 为了避免软件查询中断这一费时环节,加快中断响应速度,提高系统的实时性,常采用向量中断的方法。,向量中断的基本思想是:,把所有中断源进行编号或按特
20、征进行分类,形成具有指向特征的信息,称为中断向量信息。 预先设置好每个中断源对应的服务程序入口地址。 当外设申请中断并得到响应时,自动形成中断向量信息, 由此信息CPU能方便、快捷地获得对应的中断服务程序的入口地址, 从而转去执行该中断服务程序。,5.4.3 中断优先权,判断和确定中断源的中断优先权,可以采用软件和硬件两种方法。,一般系统中有多个中断源存在,若有几个中断源同时提出申请,CPU先响应谁? 当CPU正响应某一中断过程中,又有另外的中断源提出新的中断请求,CPU是否响应? 为此提出了中断优先权的概念。,1. 用软件确定中断优先权,优先权管理电路,软件查询流程图,优先权管理电路,在 中
21、 断 服 务 中 读 入 请 求 状 态,A 申请 ?,B 申请 ?,中断返回,为中断源A 服务的程序段,C 申请 ?,为中断源B 服务的程序段,为中断源C 服务的程序段,N,N,N, 采用软件查询方式的特点:, 询问的次序,即为优先权的次序。 硬件简单。 由查询转至相应的服务程序的时间长,尤其在中断源较多的情况。,2、硬件方式 优先权排队电路,1,5.5 8086CPU的中断系统,中断类型:,8086CPU能处理256种中断, 分为两大类:外部中断和内部中断。 其中断分类如右图,8086的中断分类,5.5.1 外部中断,8086 条外部CPU有两个中断请求输入引脚:NMI(非屏蔽中断)和IN
22、TR(可屏蔽中断) 1.可屏蔽中断 是用户可以用指令来禁止或允许的中断。 当CPU收到INTR请求信号时: 若IF=1时,则CPU在执行完当前指令后,响应此中断请求; 若IF=0,则禁止CPU响应。,2.非屏蔽中断,出现在NMI引脚上的中断请求, 不受中断允许标志位IF的控制,在当前指令执行完毕后,CPU便会响应NMI的请求。 在系统设计时,NMI一般用来通知CPU发生了极为严重的事件, 如电源掉电、存储器读/写错、I/O通道奇/偶校验错等。,5.5.2 内部中断,8086的内部中断含有以下三种类型: 1. INT n指令中断 CPU每执行一条INT n指令,将立即产生一次中断; 其中n代表中
23、断类型号,可由用户编程时指定 n可选的范围为0255号。,2、除法出错中断 CPU执行DIV指令或IDIV指令时,若发现除数为0或商超出了其目的寄存器所能表达的范围,则立即产生一个类型号为0的内部中断。 3、溢出中断(INTO) 这是一条指令。执行本指令时,若溢出标志位OF=1,则产生一个类型号为4的溢出中断,否则顺序执行,不进入中断过程。,4、单步中断,为方便用户调试程序所设置的一种中断。 当单步中断标志位TF=1时,CPU每执行完一条指令,内部便会自动产生一个类型号为1的中断,由此可实现单步执行用户程序。 例如:汇编语言的软件调试程序DEBUG中所提供的单步执行命令,就是通过将TF置1实现
24、的。,5、断点中断,这是一条单字节的INT3指令。 中断类型号是3,但只占一个字节,故可看成是INT n指令的特例(INT n指令要占2个字节)。 本指令也是8086为方便用户调试程序而设置的, 只占一个字节的原因就是为了便于调试程序过程中设置断点,实现分段调试程序。,5.5.3 中断优先级,8086的中断优先级由高到低依次为: 内部中断(单步中断除外) 非屏蔽中断 可屏蔽中断 单步中断 即:优先权最低的是单步中断, 除此以外的其他内部中断的优先级均高于外部中断,且不能被禁止。,5.5.4 中断向量表,8086CPU将256种类型的中断服务程序的入口地址(称为中断向量)依次集中在一起,组成中断
25、向量表。 由于一个完整的逻辑地址占4个字节,故能容纳256个中断服务程序入口地址的中断向量表总长度为1024个字节(1KB)。 中断向量表位于内存物理地址的前1KB区间,即00000H003FFH之间,如图5.11所示。,中断向量表,中断向量在表中的位置称为中断向量地址 中断向量地址与中断类型号的关系为: 中断向量地址(首地址)= 中断类型号*4 由此式可以确定每个中断服务程序入口地址的存放地址。 图5.12描述了8086 CPU响应中断时,通过查中断向量表转入中断服务程序的过程。,图5.12 8086转入中断服务程序的过程,由图5.12可知,整个转入过程包括4个步骤: (1)取中断类型号;
26、(2)计算向量地址:中断类型号*4 (3)根据向量地址查中断向量表,取出表中存放的偏移地址送入IP,段地址送入CS中; (4)转入到CS:IP所指定的中断服务程序中执行服务程序。,5.5.5 中断响应流程,8086 CPU响应中断的流程如图5.13所示。 由图5.13可见整个响应中断过程可分为: 中断请求信号采样与响应、 中断处理、 中断服务、 中断返回 等四个阶段。,. 图5.13 8086响应 中断的过程,内部中断?,NMI?,INTR?,TF0?,执行下条指令,完成当前指令,IF1?,第一个中断响应周期 AD7 AD0 浮空 第二个响应周期,取中断类型码,A,Y,Y,Y,Y,Y,N,N,
27、N,N,N,Y,1.中断请求信号采样与响应阶段,CPU总是在每条指令的最后一个机器周期,采样中断请求信号。 8086采用不同的方式,获取中断类型号: 对INTR,CPU进入中断响应周期,并从数据总线上输入中断类型号。 对于除法出错、单步、NMI、断点、溢出等中断,CPU分别自动形成04的中断类型号 对INT n指令的中断类型号则是指令中的 n,标志寄存器FR入栈; TFTEMP,暂存TF的状态; 0IF,禁止可屏蔽中断; 0TF,取消单步操作; CS和IP入栈; 查中断向量表,获得中断服务程序的入口地址。,2.中断处理阶段,3.中断服务阶段 即执行相应的中断服务程序 4.中断返回 即执行一条I
28、RET,将依次恢复断点处的IP和CS值,恢复标志寄存器FR,从而返回到中断前的程序继续执行。,讨论:,1. 为什么要在中断服务程序中执行开中断( STI ) 指令? 2. STI 指令在中断服务程序中的不同位置时,对CPU 处理中断有何影响?,Y,N,5.6 8259A 可编程中断控制器,Intel 8259A是与8086系列兼容的可编程中断 控制器,它的主要功能有: (1)可以管理8级中断源的优先中断处理,通过 级联方式,最多可扩展至64级优先权控制; (2)具有向量中断功能,在中断响应周期,能向 CPU提供中断类型号; (3)具有可编程的多种工作方式供用户选择。,5.6.1 8259A的内
29、部结构与引脚信号,控制逻辑,中断服务 寄存器 ISR,优先权 电路 PR,中断请求 寄存器 IRR,中断屏蔽寄存器IMR,读写控制 逻辑,级联缓冲 比较器,数据总线 缓冲器,D0D7,A0,CAS0 CAS1 CAS2,INT,IR0 IR1 IR7,1.内部结构,(1) 数据总线缓冲器,8位、双向、三态,是8259A与 CPU 之间的数据接口。,D0D7直接与CPU 数据总线的低8位连结。,(2) 读/写控制逻辑,A0:常与地址总线AB0或AB1相连。,8259A占用两个端口地址,CPU 执行OUT指令时,利用:,CPU 执行IN指令时,利用:,(3)中断请求寄存器 IRR,8 位,若IRi
30、 有效(“1”,或 ),对应位置“1”,直到IRi 得到响应。,因此,IRR用于记录外部中断源IRi的请求信息。,(4) 中断服务寄存器 ISR,8位, ISRi 用于记录正在处理的IRi, 当IRi得到响应时,ISR的对应位置“1”。 中断嵌套时,ISR可能有多位被置“1”。,因此,ISR记录CPU对IRi的响应情况。,(5)中断屏蔽寄存器 IMR,8位,某位(IMRi)置“ 1”,则对应的IRi 禁止产生中断。,因此,IMR控制是否对IRi进行屏蔽操作,(6)优先权电路,实现优先权的判断与处理,采用编码器和比较器电路,如下图所示。,8259A中的中断优先权电路,(7)控制逻辑,(1)根据I
31、RR和PR的情况,向8259A其它部件发出控制信息。,(2)向CPU 发出INT 信号,接收CPU 的,信号。,(8) 级联缓冲/比较器,实现多片8259A之间的主从式级连, 使得系统中的中断源可由8级最多可扩展至64级。 主从系统中只有一个主片,最多8个从片, 从片的INT输出接主片的IRi输入,通过主片向CPU申请中断。,问题:8259A级联时,如何连接? 如何确定: 主8259A的哪个IRi接受从片 ? 某个从片接入主8259A的哪个IRi ?,2. 8259A的引脚信号,8259A共有28个引脚,采用双列直插式封装,其引脚排列如图5.15所示,28根引脚可按功能分为四组: (1)电源引
32、脚(2个) VCC、GND:+5V电源输入 (2)与外部设备相连的引脚信号(8个) IR0IR7:来自不同外设的8个中断请求信号,8259A 的引脚图,(3)与CPU总线相连的引脚信号 D0D7:双向、三态,可直接也可通过驱动器 与数据总线DB0DB7相连; :读命令,为0时允许读8259A状态信息 :写命令,为0时允许CPU写入控制字 :片选信号线 INT:用于向CPU申请中断; :用于接受CPU给出的中断响应信号;,A0:地址线,用以选择8259A内部寄存器中的两个不同的端口地址,分别称为偶地址(A 0=0)和奇地址(A 0=1) 一般情况下(如:8085、8088等CPU系统中)可直接接
33、地址总线AB0 在8086系统中,因为要用AB0来选择偶地址端口与DB7 DB0交换数据, 8259A的A 0常与AB1相连,(4)级连引脚信号,CAS0CAS2:级连信号线 8259A级连系统中,所有8259A CAS0CAS2均应分并别连在一起,其中: 主片的CAS0CAS2用作输出, 从片的CAS0CAS2用作为输入,在CPU中断响应周期接受来自主片的从片标志码。,:主从定义/缓冲器允许引脚信号,这是一个双功能的双向I/O线。 当用作输入线时,用来决定本片8259 A在系统中是主片还是从片,即当输入为0时,此片为从片; 而当用作输出时,信号用于在8259A的数据传送到CPU时,使总线缓冲
34、(驱动)器启动。如果8259A采用缓冲方式(即8259A与CPU之间加了缓冲器) 工作,则此引脚只能作为输出,否则此引脚用作输入。,5.6.2 8259A的级连,使用8259A的级连方式,可以使系统中的中断源由8个最多扩展到64个, 级连时有且只能有一片8259A为主片,其余的均为从片,从片最多只能有8片。 图5.16是一个3片8259A构成的级连系统。,从片A标志码:011,从片B标志码:110,1.级连系统的连线,由图5.16可知,主片与从片的连线不同之处有二点: (1)从片输出的中断请求信号INT,是作为主片的中断请求输入,接到主片的IR0 IR7中任一引脚;而主片的输出INT,则是作为
35、外部系统统一的中断请求信号连接到CPU的INTR引脚。 (2)从片的 接地(GND),主片的 接VCC。,SP/EN,SP/EN,2. 级连系统中的优先权,在图5.16的电路中,最多可外接22个中断源的中断请求信号; 设8259A采用的是一种最常用的中断全嵌套方式,即对同一片的8个中断源中,优先级固定为IR0最高,依次为IR1,IR7为最低级; 则图5.16的系统中各中断源的优先级排列如下:,主片: IR0(最高优先级)、 IR1、IR2 从片A:IR0、IR1、IR2、IR3、IR4、IR5、 IR6、 IR7 (全部由主片的IR3引入,对主片而言属同一个优先级) 主片: IR4、IR5 从
36、片B:IR0、IR1、IR2、IR3、IR4、IR5、IR6、IR7 (全部由主片的IR6引入,对主片而言属同一个优先级) 主片: IR7 (最低优先级),3、级连系统中的8259A的工作流程,(1)从片判优后,产生INT信号送主片的IR端; (2)主片判优后,发出INT信号送CPU的INTR引脚; (3)CPU进入中断响应周期,连续发出二个 信号;主片接收到第一个后,通过CAS0CAS2输出当前申请中断的优先权最高的从片的标志码; (4)与该标志码对应的从片则在第二个 到来时,将申请中断外设的中断类型号送到数据总线上; (5)CPU读取中断类型号,转去执行相应的中断服务程序。,5.6.3 8
37、259A的工作方式,8259A有多种工作方式; 从对8259A编程的角度来看,8259A共有7个可编程寄存器,即ICW1 ICW4和OCW1 OCW3 ; CPU通过对这7个寄存器的编程,即写入不同的控制字来实现让8259A按不同的方式工作。,1.优先级设置的方式,全嵌套方式 中断优先级按IR0 IR7顺序进行排队,只允许中断级别高的中断源去中断级别低的中断服务程序。,特殊全嵌套方式 它和全嵌套方式基本相同,所不同的是在特殊全嵌套方式下,当执行某一级中断服务程序时,可响应同级的中断请求; 从而实现对同级中断请求的特殊嵌套。 特殊全嵌套方式用于多片级联。 ( 8259A级联使用时,某从片的8个中
38、断源对主片来说,可以认为是同级的 );,优先级自动循环方式 在这种方式下,优先级顺序不是固定不变的,一个设备得到中断服务后,其优先级自动降为最低; 其初始的优先级顺序规定为: IR0,IR1,IR7; 该方式用在系统中多个中断源优先级相等的场合。,优先级特殊循环方式 这种方式与优先级自动循环方式唯一的区别是: 其初始的优先级顺序不是固定IR0为最高,然后开始循环; 而是由程序指定IR0 IR7中任意一个为最高优先级,然后再按顺序自动循环,决定优先级。,2.屏蔽中断源的方式,普通屏蔽方式。 8259A的每个中断请求(IR0IR7)都可以通过对相应的屏蔽位(IMR0IMR7)置“1”来屏蔽掉, 即
39、对IMRi写入“1”,则屏蔽IRi的请求, 反之,对IMRi写入“0”,则开放IRi的请求。,(2) 特殊屏蔽方式,当CPU正在为某级中断服务时,若要求仅对本级中断进行屏蔽,而允许其它的中断源(特别是较低级的)发出中断请求,从而进入中断嵌套,这便是特殊屏蔽方式。,3.中断触发方式,(1)边沿触发方式。 以上跳沿向8259A请求中断,上跳沿后可一直维持高电平,不会再产生中断。,(2)电平触发方式。 以高电平申请中断,但在响应中断后必须及时清除高电平,以免引起第二次误中断。,4.中断查询方式,这是一种将中断与查询相结合的新型中断传送方式,一般用于多于64级中断源的场合。 外设通过8259A申请中断
40、,但8259A却不使用INT信号向CPU申请中断, CPU用软件查询来了解外设的中断请求,并根据8259A提供的优先级次序,依次为外设服务。,5.中断结束处理方式,使ISRi清0,表示第i级中断源的中断服务已结束的操作称为中断结束处理。,在这种方式中,任何一级中断服务程序结束时,必须给8259A写入一条中断结束命令(EOI); 8259A收到EOI后,便将ISR寄存器中优先级别最高的且已被置为“1”的那一位清0。 这种结束方式较简单,但只适于全嵌套工作方式中。,(1)一般的中断结束方式,(2)自动中断结束方式(AEOI) 当某级中断IRi被CPU响应后,8259A在CPU的第二个中断响应周期的
41、信号结束时,自动将ISRi清0,完成中断结束动作。,(3)特殊的中断结束方式,当中断服务程序结束,CPU在给8259A发出EOI命令的同时,也将当前结束的中断源的级别传送给8259A,8259A根据此级别,则可顺利地将ISR中所对应的位清0。 这种方式可在任何优先权设置方式下使用,它既允许在中断服务程序中修改中断优先权级别,也不用担心在中断结束时,ISR无法确定当前正在处理的是哪一级中断的情况出现。,6.连接系统总线的方式,(1)缓冲方式 这种方式中,每片8259A的D0D7均通过总线驱动器与系统数据总线相连,适用于多片8259A级连的大系统。,(2)非缓冲方式 在单片或少数几片8259A的系
42、统中,8259A的D0D7与数据总线直接连接的方式,5.6.4 8259A的编程,对8259A的编程包括初始化编程和工作方式编程两部分; 初始化编程是对ICW1ICW4写入初始化命令字。它必须在8259A开始工作之前写入,且在整个工作中一般不再改变; 工作方式编程则是对OCW1OCW3写入操作命令字,可以在8259A初始化以后的任何时间写入,也可以随时进行修改。,1. 8259A寄存器的读写地址,8259A有7个可编程的控制寄存器和几个可读的状态寄存器; 只有一根端口地址选择线A0用于片内寻址; 因此必有多个寄存器共用一个端口地址; 8259A内部可读/写的寄存器及其地址分配情况如表5.1所示
43、。,表5.1 8259A的寄存器读写地址表,.,由表5.1可知,8259 A将7个可编程的寄存器及可读出的状态寄存器分为四类:写偶地址、写奇地址,读偶地址、读奇地址; 前三类中,仍有多个寄存器共用同一个偶或奇地址,故CPU对这些寄存器访问时,还需进一步区分读、写的是哪一个寄存器; 进一步区分的方式有: (1)利用命令字写入的先后顺序; (2)利用命令字中的某些特征位(标志位)。,2.初始化编程与初始化命令字(ICW) (1)ICW1控制字格式 8259A芯片的控制初始化命令字 写入它便启动了8259A芯片内部的一系列初始化过程, LTIM (D3) 位规定IRi的触发方式 :,1 高电平触发,
44、0 正跳变( )触发,D3=,实现写入ICW1的条件是: 寻址8259A的端口地址为偶地址(A0=0) 且写入的控制字中D4位必须为1控制字的功能有三条:, SNGL (D1) 位规定是否单片使用 :,1单片使用,0级联使用,D1 =, IC4 (D0) 位规定是否写入ICW4 : 1后面要写入ICW4 D0 = 0不写入ICW4,例:某8088微机系统中使用单片8259A,中断请求信号为上升沿触发,需要设置ICW4,端口地址为20H,21H,则其初始化命令字ICW1应为:0001001113H,设置ICW1的程序为:,MOV AL , 13H,OUT 20H , AL,(2)ICW2控制字格
45、式 本初始化命令字用于设置接入8259A的各中断源的中断类型号,格式如下:,注:中断类型号的低3位由8259A 自动编码产生。,同一片8259A的8个中断源的中断类型号,CPU在初始化编程时,只需写入一次; 当指定高5位后,则8个中断类型号也随之确定,且这8个类型号的大小是顺序连续的。,例:某PC机中8个可屏蔽中断(IR0 IR7)的类型号为08H 0FH,端口地址为21H,则 ICW2为:08H; 设置ICW2的程序为:,MOV AL , 08H OUT 21H , AL,(3)ICW3的控制字格式 专用于级连方式的级连控制字; 在单片8259A系统中,不需要对ICW3编程; 而在级连系统中
46、,主片和从片都必须设置ICW3 ; 且两者的格式和含义均不相同。,即:若ICW1 中SNGL=,1不要写入ICW3,0必须写入ICW3, 写给主片的ICW3,用于指示主片的8个中断请求输入端IR7IR0上, 哪些引脚接入的是来自从片的INT信号。 Si = 1, 表示主片IRi上接有从片。, 写给从片的ICW3,例:某8088微机系统中,主片8259A的IR2,IR6引脚上分别接有从片8259A,则主、从片的ICW3初始化命令字设置如下:,主片初始化命令字:(端口地址设为20H, 21H),MOV AL , 44H;44H表示其IR6 ,IR2上接有从片,OUT21H ,AL ;将ICW3 写
47、入奇地址端口,从片1的初始化命令:(端口地址为30H,31H),MOVAL ,02H ;表示本从片接到主片的IR2上 OUT31H ,AL,从片2的初始化命令:(端口地址为40H,41H),MOVAL ,06H ;表示本从片接到主片的IR6上 OUT41H ,AL,(4)ICW4的控制字格式 方式控制的初始化命令字,用于8259A的特殊全嵌套方式、缓冲方式以及中断结束方式的设置。格式如下:,0 正常的完全嵌套方式,1 特殊的完全嵌套方式, SFNM: 规定8259A中断的嵌套方式,(单片使用时,两种方式是一样的。),SFNM=,正常的完全嵌套方式,特殊的完全嵌套方式,注意:级联使用时,某一从片
48、的IRi对主片来说是同级的(同级中断)。,此处,要理解同级中断的概念!,若主、从8259A工作于固定优先权方式,从片的优先级为IR0IR1 IR7。但对主片来说,从片的IR0 IR7 是同级的。,1缓冲方式,0非缓冲方式, BUF: 用于指示8259A与系统数据总线的连接方式 。,D3=, M/S: 与D3位配合使用, 当8259A 工作于缓冲方式时 (BUF=1) , M/S位用于定义主、从芯片。, 当8259A工作于非缓冲方式时 (BUF = 0) , 引脚为输入,用于定义主从芯片,此时 M/S 位不起作用。, AEOI = 1 自动中断结束方式,当CPU 发出第二个 后,ISR 中的相应
49、位复位,此时不宜用于中断嵌套。, AEOI = 0 非自动中断结束方式 则在中断服务程序完毕后需由程序发出 EOI 命令 ,使ISR 中相应位复位。,图5.17 8259A的初始化流程,例:PC/XT 系统中8259A的初始化编程,20H、21H为8259A的端口地址,在DOS操作系统的BIOS中,8259A的初始化程序段如下:,MOVAL , 13H; ICW1=0001,0011B, 边沿触发,单片使用, ; 要 ICW4OUT20H , ALMOVAL , 08H; ICW2=00001000B , ; IR0IR7 对应的中断类型号为:08H0FHOUT21H , ALMOVAL ,
50、01H; ICW4= 00000001B, 正常的嵌套方式,非缓冲; 方式,非自动中断结束方式,8086系统。 OUT 21H ,AL,3.工作方式编程,由CPU向8259A写入OCW1OCW3实现。 写入OCW1OCW3可在初始化编程以后的任何时候进行,写入时没有严格的顺序要求。 对3个OCW的写入除了采用奇偶地址区分外,还采用了命令字本身的D4D3位作为特征位来区分。,(1)OCW1控制字格式 中断屏蔽控制字,用于禁止某些接入到8259A的中断源向CPU申请中断(这种屏蔽一般是临时性的)。,Mi=1 表示IRi被屏蔽 Mi=0 表示IRi被开放,例:设OCW106H,则表示IR1,IR2
51、两 个引脚上的中断申请被屏蔽,其他的中断申请 (IR0,IR3IR7)则得到允许。相应的8259A编程程序为:,MOV AL,00000110B ;OCW1屏蔽字 OUT 21H,AL ;屏蔽字写入奇地址端口的 ; OCW1寄存器,(2)OCW2控制字格式 用来设置优先级循环方式和非自动结束中断方式的控制字。, 8259A 工作于非自动中断结束方式时,如何复位ISR 中的对应位? 有两种方法:,a.一般方法:令SL = 0,EOI =1,则OCW2写入8259A后,便可将ISR中被置为“1”,且优先权最高的那一位复位。 (即:刚刚被服务完成的IRi对应位复位)。,b. 特殊方法:令 SL =
52、1, EOI = 1,写入OCW2后,使L2L1L0指定的位复位。,定义8259A 的优先权工作方式,a. R = 0 固定优先权方式(非循环方式),IR0 IR1 IR7 即IR0为最高优先权,IR7为最低优先权,b. R = 1, SL = 0 优先权自动循环方式,即:IR4降为最低优先权。,c. R = 1, SL = 1 优先权特殊循环方式,由L2L1L0 规定循环开始时的最低优先权,此时,各中断源的优先权为:,表5.2 OCW2能实现的功能,.,例:试编一段程序,结束中断并清除8259A的ISR第6位(ISR6),8259A的偶地址为20H。,为实现题意要求,应先确定OCW2的内容,然后将OCW2写入8259A的偶地址端口。,OCW2:,MOV AL ,66H ;OCW2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年武汉市儿童医院(汉阳门诊部)医护人员招聘考试参考试题及答案详解
- 2026年衢州市第三医院医护人员招聘考试备考题库及答案详解
- 2026年济南施尔明眼科医院医护人员招聘考试参考题库及答案详解
- 2026年惠州市中医医院(东江新城院区)医护人员招聘笔试备考试题及答案详解
- 2026年湖南省儿童医院医护人员招聘考试备考试题及答案详解
- 2026年义乌市中医医院医护人员招聘笔试参考试题及答案详解
- 2026年中国人民解放军一六零医院医护人员招聘笔试参考题库及答案详解
- 2026年同济大学附属口腔医院医护人员招聘笔试备考试题及答案详解
- 2026年长沙市第一人民医院医护人员招聘考试备考试题及答案详解
- 2026年三亚市人民医院医护人员招聘笔试备考题库及答案详解
- 人教版历史2024年第二学期期末考试七年级历史试卷(含答案)
- 人教版初中数学目录
- 知识竞赛抢答赛活动方案
- 3.室内设计手绘-第三部分 基本透视
- 电脑安装施工方案
- 地质灾害治理工程设计-以滑坡为例--地质灾课件
- 大学线性代数作业答案
- 孙子兵法智慧树知到答案章节测试2023年湖南大学
- 泵类设备安装工艺标准
- 2023年山西万家寨水务控股集团有限公司招聘笔试题库及答案解析
- GB/T 7759.1-2015硫化橡胶或热塑性橡胶压缩永久变形的测定第1部分:在常温及高温条件下
评论
0/150
提交评论