微机原理(第六章 输入输出控制)_第1页
微机原理(第六章 输入输出控制)_第2页
微机原理(第六章 输入输出控制)_第3页
微机原理(第六章 输入输出控制)_第4页
微机原理(第六章 输入输出控制)_第5页
已阅读5页,还剩137页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、12022-5-12南京理工大学动力学院南京理工大学动力学院2009年年 11月月2022-5-122022-5-1222022-5-12 输入输出操作对一台计算机来讲是必不可少输入输出操作对一台计算机来讲是必不可少的。由于外设的工作速度相差很大,对接口的要求的。由于外设的工作速度相差很大,对接口的要求也不尽相同,因此,输入输出数据的传输控制方也不尽相同,因此,输入输出数据的传输控制方式对式对CPUCPU来讲就是一个较复杂的问题,应根据不同来讲就是一个较复杂的问题,应根据不同的外设要求选择不同的传输控制方式以满足数据传的外设要求选择不同的传输控制方式以满足数据传输的要求。输的要求。6.1 6.

2、1 输入输入/ /输出数据的传输控制方式输出数据的传输控制方式CPU与外设之间传输数据的控制方式有三种:与外设之间传输数据的控制方式有三种:程序方式程序方式中断方式中断方式DMA方式方式32022-5-12 程序方式就是指用程序来控制进行程序方式就是指用程序来控制进行信息传输的方式。很显然,这是一种软信息传输的方式。很显然,这是一种软件控制方式。件控制方式。6.1.1 6.1.1 程序方式程序方式 根据程序控制的方法不同,又可分为:根据程序控制的方法不同,又可分为:无条件传送方式无条件传送方式条件传送方式(查询方式)条件传送方式(查询方式) 42022-5-121 1无条件传送方式无条件传送方

3、式 在在CPU与慢速变化的设备交换数据时,可以与慢速变化的设备交换数据时,可以认为它们总是处于认为它们总是处于“就绪就绪”状态,随时可以状态,随时可以进行数据传送,这就是无条件传送,或称立进行数据传送,这就是无条件传送,或称立即传送、同步传送即传送、同步传送 适合于简单设备,如适合于简单设备,如LED数码管、按键或按数码管、按键或按纽及拨码开关等纽及拨码开关等 无条件传送的接口和操作均十分简单无条件传送的接口和操作均十分简单 这种传送有前提:这种传送有前提:外设必须随时就绪外设必须随时就绪52022-5-12无条件传送:无条件传送:输入示例输入示例IOR三态缓冲器OEI/O装置地址译码器CSD

4、7D0A15A1A00160HMOV DX, 160HMOV DX, 160HIN AL, DXIN AL, DX输入接口通常采用三态缓冲器如:输入接口通常采用三态缓冲器如:74LS244等等当地址译码选择和当地址译码选择和I/OI/O读信号读信号同时有效时打开三态缓冲器同时有效时打开三态缓冲器62022-5-12MOV MOV DX, 160HDX, 160HIN AL, DXIN AL, DX74LS24474LS244+5V10k10k8 8G1 G2数据总线数据总线CSRD拨码开关直接读取拨码开关直接读取按键则需消颤去抖释放按键则需消颤去抖释放双四位单向缓冲器双四位单向缓冲器8 8位拨

5、码开关位拨码开关上拉电阻上拉电阻72022-5-12无条件传送:无条件传送:输出示例输出示例地址译码器数据锁存器A15A1IOWA0CS0160H输出设备D7D0MOV DX, 160HMOV DX, 160HMOV AL, BXMOV AL, BXOUT DX, ALOUT DX, AL输出接口通常采用数据锁存器如:输出接口通常采用数据锁存器如:74LS273,373等等82022-5-12MOV DX, 160HMOV DX, 160HMOV AL, BXMOV AL, BXOUT DX, ALOUT DX, AL+5V+5V74LS37374LS373300 x 8LE OE数据总线数据

6、总线CSWR共阳共阳abcdefg.h h g f e d c b a十几毫安电流十几毫安电流通常用于驱动发光二极管通常用于驱动发光二极管状态指示灯或八段数码管状态指示灯或八段数码管限流电阻限流电阻92022-5-12 ; ;显示数字显示数字2 2MOV DX, 160HMOV DX, 160HMOV AL, 5BHMOV AL, 5BHOUT DX, ALOUT DX, AL74LS373300 x 8LE OE数据总线数据总线CSWR共阴共阴abcdefg.h 0 1 0 1 1 0 1 1GND h g f e d c b a102022-5-12无条件传送:无条件传送:输入输出接口输入

7、输出接口K7K7K1K1K0K0+5V+5VD0D7A A0 0A A1515CLKCLKLS06LS06反相反相驱动器驱动器LS273LS2738D8D锁存器锁存器LS244LS244三态三态缓冲器缓冲器8000H8000H译码译码+5V+5VLED0LED7G GIOWIORnext:mov dx,8000h;DX指向数据端口指向数据端口in al,dx;从输入端口读开关状态;从输入端口读开关状态not al;反相;反相out dx,al;送输出端口显示;送输出端口显示call delay;调子程序延时;调子程序延时jmp next;重复;重复从输入口读入开关状态从输入口读入开关状态, ,

8、从输出口显示开关状态从输出口显示开关状态输入和输出占用同一端口地址输入和输出占用同一端口地址112022-5-122 2条件传送方式条件传送方式 CPU需要先了解(查询)外设的工作状需要先了解(查询)外设的工作状态,然后在外设可以交换信息的情况下态,然后在外设可以交换信息的情况下(就绪就绪)实现数据输入或输出)实现数据输入或输出 对多个外设的情况,则对多个外设的情况,则CPU按一定顺序按一定顺序依次查询(轮询)。先查询的外设将优依次查询(轮询)。先查询的外设将优先进行数据交换先进行数据交换 查询传送的特点是:查询传送的特点是:工作可靠,适用面工作可靠,适用面宽,但传送效率低宽,但传送效率低12

9、2022-5-121)1)查询传送的两个环节查询传送的两个环节 查询环节查询环节 寻址状态口寻址状态口 读取状态寄存器的标志位读取状态寄存器的标志位 若不就绪就继续查询,直至就绪若不就绪就继续查询,直至就绪 传送环节传送环节 寻址数据口寻址数据口 是输入,通过输入指令从数据端口是输入,通过输入指令从数据端口读入数据读入数据 是输出,通过输出指令向数据端口是输出,通过输出指令向数据端口输出数据输出数据输入状态输入状态就绪?就绪?数据交换数据交换Y YN N132022-5-122 2)查询输入接口)查询输入接口IOR+5V8D8D锁存器锁存器8 8位位三态三态缓冲器缓冲器译码译码1 1位位三态三

10、态缓冲器缓冲器RQ A0A158000H8001HD D0 0D D7 7D0D输入输入设备设备IORSTBa.a.输入设备准备好数据后送上端口数据线输入设备准备好数据后送上端口数据线add.d.如满则从数据端口如满则从数据端口8001H8001H读取数据同时读取数据同时复位复位满标志满标志cc.CPUc.CPU通过读取状态端口通过读取状态端口8000H8000H查询满标志查询满标志bb.b.外设发出外设发出STBSTB* *,将数据锁存并置输入锁存器满标志,将数据锁存并置输入锁存器满标志对应外设至少应有两个端口地址对应外设至少应有两个端口地址状态端口状态端口 数据端口数据端口1mov dx,

11、8000h;DX指向状态端口指向状态端口status:in al,dx;读状态端口;读状态端口test al,01h;测试标志位;测试标志位D0jz status;D00,未就绪,继续查询,未就绪,继续查询inc dx;D01,就绪,就绪,DX指向数据端口指向数据端口in al,dx;从数据端口输入数据;从数据端口输入数据142022-5-1208D8D锁存器锁存器译码译码1 1位位三态三态缓冲器缓冲器RQ A0A158000H8001HD D0 0D D7 7D7D+5V+5V输出输出设备设备ACKACKIOWIOR3 3)查询输出接口)查询输出接口CPUCPU读取状态端口读取状态端口800

12、0H8000H 查询输出数据锁存器是否查询输出数据锁存器是否“空空” 若空则向输出数据锁存器输出一个数据,同时将输出数据锁存器标志置为满若空则向输出数据锁存器输出一个数据,同时将输出数据锁存器标志置为满当外设不忙时,将数据取走,同时发当外设不忙时,将数据取走,同时发ACKACK* *将将“满满”标志复位。标志复位。1mov dx,8000h;DX指向状态端口指向状态端口 status:in al,dx;读取状态端口的状态数据;读取状态端口的状态数据test al,80h;测试标志位;测试标志位D7jnz status;D71,未就绪,继续查询,未就绪,继续查询inc dx;D70,就绪,就绪,

13、DX指向数据端口指向数据端口mov al,buf;变量;变量buf送送ALout dx,al;将数据输出给数据端口;将数据输出给数据端口152022-5-123 3)优先级问题)优先级问题 当系统较大时,当系统较大时,CPUCPU需对多台设需对多台设备进行查询服务,就出现了设备的备进行查询服务,就出现了设备的优先级的问题,即究竟先为哪台设优先级的问题,即究竟先为哪台设备服务。备服务。 为了保证每台设备都有被查询服为了保证每台设备都有被查询服务的可能,系统可以采用轮流查询务的可能,系统可以采用轮流查询的方法来解决。先查询的设备具有的方法来解决。先查询的设备具有较高的优先级,可以得到较早的服较高的

14、优先级,可以得到较早的服务,而后查询到的设备则具有较低务,而后查询到的设备则具有较低的优先级。的优先级。 162022-5-126.1.2 6.1.2 中断方式中断方式断点断点主程序主程序中断服务程序中断服务程序中断请求中断请求对外设对外设进行处理进行处理继续执行继续执行返回断点返回断点 CPU在执行程在执行程序中,被内部序中,被内部或外部的事件或外部的事件所打断,转去所打断,转去执行一段预先执行一段预先安排好的中断安排好的中断服务程序;服服务程序;服务结束后,又务结束后,又返回原来的断返回原来的断点,继续执行点,继续执行原来的程序原来的程序172022-5-121.中断传送与接口中断传送与接

15、口 中断传送是一种效率更高的程序传送方式中断传送是一种效率更高的程序传送方式 进行传送的进行传送的中断服务程序是预先设计好的中断服务程序是预先设计好的 中断请求是外设随机向中断请求是外设随机向CPU提出的提出的 CPU对请求的检测是有规律的对请求的检测是有规律的:一般是在每条指:一般是在每条指令的最后一个时钟周期采样中断请求输入引脚令的最后一个时钟周期采样中断请求输入引脚加入中断系统以后,加入中断系统以后,CPU不需花大量的时间去查询不需花大量的时间去查询外设的工作状态,只需根据外设的中断请求,进行外设的工作状态,只需根据外设的中断请求,进行中断响应,并能正确中断返回就行了。中断响应,并能正确

16、中断返回就行了。CPU与外设与外设处在并行工作的情况,大大提高了处在并行工作的情况,大大提高了CPU的工作效率的工作效率 182022-5-12(1 1)中断输入接口)中断输入接口aa.a.输入设备准备好数据后送上端口数据线输入设备准备好数据后送上端口数据线bb.b.外设发出外设发出STBSTB* *,将数据锁存并置位中断,将数据锁存并置位中断 请求请求 触发器触发器cc.当中断允许时向当中断允许时向CPU提出中断请求提出中断请求dd.CPU响应中断回响应中断回INTA*,获取中断向量号获取中断向量号ee.CPU执行中断服执行中断服务程序读取数据同务程序读取数据同时清除中断请求时清除中断请求1

17、1D0D7+5V+5V8D8D锁存器锁存器8 8位位三态三态缓冲器缓冲器三态缓冲器三态缓冲器RQ 译码译码 8001H中断向量号中断向量号D0D7INTRINTRD输入输入设备设备中断允许触发器中断允许触发器A0A15中断请求触发器中断请求触发器IORINTAINTASTB192022-5-12(2 2)中断工作过程)中断工作过程n中断请求中断请求n中断响应中断响应n关中断关中断n断点保护断点保护n中断识别中断识别n现场保护现场保护n中断服务中断服务n恢复现场恢复现场n开中断开中断n中断返回中断返回中断服务是进行数据交换的实质性环节中断服务是进行数据交换的实质性环节202022-5-12 (1

18、) 中断请求中断请求 (2) 中断响应中断响应 (3) 关中断关中断 (4) 断点保护断点保护 (5) 中断源识别中断源识别 (6) 现场保护现场保护 (7) 中断服务中断服务 (8) 恢复现场恢复现场 (9) 开中断开中断 (10) 中断返回中断返回CPUCPU完成完成中断服务中断服务在每个指令周在每个指令周期的最后一个期的最后一个T状态采样状态采样INTR若有效且若有效且IF=1则进入中断响则进入中断响应周期应周期在中断响应周期在中断响应周期CPUCPU完成完成在中断服务程序在中断服务程序CPUCPU完成完成212022-5-12中断源的识别中断源的识别2.2.中断优先权中断优先权问题问题

19、1:系统有多个中断请求,系统有多个中断请求,CPU如何识别中断源?如何识别中断源?解答解答1:向量中断向量中断解答解答2:中断查询中断查询 系统设计者事先根据轻重缓急,给每个中断源系统设计者事先根据轻重缓急,给每个中断源确定的优先服务的级别确定的优先服务的级别-中断优先权中断优先权222022-5-12(1 1)中断查询接口)中断查询接口A0A15锁锁存存器器INTRINTR三态三态缓冲器缓冲器译码译码 8001HD0D7中断中断A A中断中断B B中断中断C CIOR多个中断源通过同一引脚多个中断源通过同一引脚向向CPUCPU申请中断申请中断CPUCPU响应中断后进入中断服务程序响应中断后进

20、入中断服务程序, ,首先读取中断请求状态口,依次查首先读取中断请求状态口,依次查询,先查到的将首先得到服务。询,先查到的将首先得到服务。中断请求寄存器中断请求寄存器中断源有中断请求中断源有中断请求 置位中断请求寄存器置位中断请求寄存器232022-5-12中断查询中断查询 软件查询法只需有简单的软件查询法只需有简单的硬件电路。可以将多台设备硬件电路。可以将多台设备的中断请求信号相或作为中的中断请求信号相或作为中断请求发向断请求发向CPUCPU,当,当CPUCPU进入进入中断服务子程序后首先读取中断服务子程序后首先读取中断请求寄存器,然后用逐中断请求寄存器,然后用逐位查询的方式来确定哪个中位查询

21、的方式来确定哪个中断源提出了中断请求,并提断源提出了中断请求,并提供相应的服务。供相应的服务。 242022-5-12中断优先权排队中断优先权排队(2 2)中断优先权)中断优先权问题问题2:有多个中断同时请求,有多个中断同时请求, CPU如何应对?如何应对?解答解答1:链式优先权排队电路链式优先权排队电路解答解答2:优先权编码电路优先权编码电路252022-5-12中断嵌套中断嵌套CPUCPU正在执行低优先级的服务程序,又有高优先正在执行低优先级的服务程序,又有高优先问题问题3:中断处理过程中,中断处理过程中, 又有中断提出请求,怎么办?又有中断提出请求,怎么办?解答解答1:链式优先权排队电路

22、链式优先权排队电路解答解答2:优先权编码电路优先权编码电路262022-5-12当当CPU正在为一个中断源服务时,又有一个高优先级正在为一个中断源服务时,又有一个高优先级的中断请求打断当前的中断服务,从而的中断请求打断当前的中断服务,从而CPU进入一个进入一个新的中断服务的情况。新的中断服务的情况。272022-5-12(3 3)链式优先权排队电路)链式优先权排队电路D0D7INTR. 每个中断源都有一个中断请求每个中断源都有一个中断请求触发器和一个中断矢量寄存器触发器和一个中断矢量寄存器将所有的中断将所有的中断源排成一个链。源排成一个链。各中断源在链各中断源在链中的前后顺序中的前后顺序是根据

23、中断源是根据中断源优先级别的高优先级别的高低来排列。排低来排列。排在链前面的优在链前面的优先级最高先级最高。 abcde若中断源若中断源A A有中断请求则对应触发器输有中断请求则对应触发器输出为出为1,1,同时封锁与门同时封锁与门A2A2、B2B2、C2C2、D2D2通过或门向通过或门向CPUCPU提出中断请求提出中断请求CPUCPU响应中断回响应中断回INTAINTA* *获得中断源获得中断源A A的中断向量的中断向量由于与门由于与门A2被封锁所以后面被封锁所以后面的中断向量不会送出的中断向量不会送出若中断源若中断源A A没有没有中断请求则对中断请求则对应触发器输出应触发器输出为为0, 0,

24、 与门与门A2A2开开放放中断向量A282022-5-12(4 4) 专用硬件方式专用硬件方式 可编程中断控制器作为专用的中断优先权管理芯片,可编程中断控制器作为专用的中断优先权管理芯片,可以接收多级中断请求,并对多级中断请求的优先权进行可以接收多级中断请求,并对多级中断请求的优先权进行排队,从中选出级别最高的中断请求,将其传给排队,从中选出级别最高的中断请求,将其传给CPUCPU。 可编程中断控制器设有中断屏蔽字寄存器,用户可以可编程中断控制器设有中断屏蔽字寄存器,用户可以通过编程设置中断屏蔽字,从而改变原有的中断优先级。通过编程设置中断屏蔽字,从而改变原有的中断优先级。中断控制器还支持中断

25、的嵌套。中断的嵌套是指,当中断控制器还支持中断的嵌套。中断的嵌套是指,当CPUCPU正在为一个中断源服务时,又有一个高优先级的中断请求正在为一个中断源服务时,又有一个高优先级的中断请求打断当前的中断服务,从而打断当前的中断服务,从而CPUCPU进入一个新的中断服务的进入一个新的中断服务的情况。情况。 292022-5-12 系统中采用可编程中断控制器以后,硬件的连线也发生了改变系统中采用可编程中断控制器以后,硬件的连线也发生了改变。这时,。这时,CPUCPU的的INTINT和引脚不再与中断接口电路相连,而是与中断控和引脚不再与中断接口电路相连,而是与中断控制器相连,来自外设的中断请求信号通过中

26、断控制器的中断请求输制器相连,来自外设的中断请求信号通过中断控制器的中断请求输入引脚入引脚IRiIRi进入中断控制器。进入中断控制器。CPUCPU发出信号以后,由中断控制器将送发出信号以后,由中断控制器将送出的级别最高的中断请求的中断类型码送出,使出的级别最高的中断请求的中断类型码送出,使CPUCPU可以转向相应的可以转向相应的中断服务子程序。中断服务子程序。 图图6-11 6-11 中断控制器的系统连接中断控制器的系统连接302022-5-12(5 5)中断优先权编码电路)中断优先权编码电路正在服务的中断源编码正在服务的中断源编码当当CPUCPU正在执行中断服务程序时,正在服务的中断正在执行

27、中断服务程序时,正在服务的中断源的优先权编码存于优先权寄存器,比较器失效源的优先权编码存于优先权寄存器,比较器失效信号为信号为“0”0”,封锁与门,封锁与门2 2若有新中断源提出请求若有新中断源提出请求其优先权编码与优先权其优先权编码与优先权寄存器比较,若比其少寄存器比较,若比其少则比较器输出为则比较器输出为“1”1”经与门经与门2 2向向CPUCPU申请中断申请中断CPUCPU执行主程序时,执行主程序时,优优先权寄存器各位为先权寄存器各位为0,0,比较器比较器失效信号输出失效信号输出为为“1”1”中断请求经与中断请求经与门门2 2向向CPUCPU申请中断申请中断 0 0 0 0 0 0 0

28、1中断请求中断请求0 0正在服务正在服务优先权寄存器优先权寄存器B2B1B0=000中断控制器8259A中断服务寄存器中断服务寄存器312022-5-12中断方式的工作是通过中断源发中断请求信号进行联系的。中断方式的工作是通过中断源发中断请求信号进行联系的。中断的工作过程可分为中断的工作过程可分为五大步骤五大步骤:中断请求中断请求中断判优中断判优中断响应中断响应中断服务中断服务中断返回中断返回322022-5-12 DMADMA即存储器直接存取,外部设备利用专门的接口电即存储器直接存取,外部设备利用专门的接口电路直接和存储器进行高速数据传送,不需经过路直接和存储器进行高速数据传送,不需经过CP

29、UCPU,不必,不必进行现场保护等一系列额外操作,数据传输的速度基本上进行现场保护等一系列额外操作,数据传输的速度基本上取决于外设和存储器的速度,效率大大提高。存储器直接取决于外设和存储器的速度,效率大大提高。存储器直接存取需要有专门的控制电路,用来控制外设与存储器之间存取需要有专门的控制电路,用来控制外设与存储器之间的数据传输,这种设备称为的数据传输,这种设备称为DMADMA控制器。控制器。 DMADMA方式是方式是存储器存储器与外设之间传送数据的一种方式,与外设之间传送数据的一种方式,它适用于高速外设及大量数据块传输的场合。外设与存储它适用于高速外设及大量数据块传输的场合。外设与存储器之间

30、的数据传送不再经过器之间的数据传送不再经过CPUCPU,而是在,而是在DMADMA控制器的控制控制器的控制下直接进行。下直接进行。DMADMA方式大大提高了数据传输的效率,被广方式大大提高了数据传输的效率,被广泛应用于软盘,硬盘等外设的数据传输中。泛应用于软盘,硬盘等外设的数据传输中。 6.1.3 DMA ( Direct Memory Access )6.1.3 DMA ( Direct Memory Access )方式方式332022-5-121.DMA1.DMA传送方式传送方式 希望克服程序控制传送的不足:希望克服程序控制传送的不足:外设外设CPU存储器存储器外设外设CPU存储器存储器

31、 直接存储器存取方式(直接存储器存取方式(DMA):):外设外设存储器存储器外设外设存储器存储器 CPU释放总线,由释放总线,由DMA控制器管理控制器管理342022-5-122.DMA2.DMA传送的工作过程传送的工作过程 CPU对对DMA控制器进行初始化设置控制器进行初始化设置 工作方式,缓冲区首址,字节数工作方式,缓冲区首址,字节数 外设、外设、DMAC和和CPU三者通过应答信号三者通过应答信号建立联系:建立联系:CPU将总线交给将总线交给DMAC控制控制 DMA传送传送 DMA读存储器:存储器读存储器:存储器 外设外设 DMA写存储器:存储器写存储器:存储器 外设外设 自动增减地址和计

32、数,判断传送完成否自动增减地址和计数,判断传送完成否352022-5-123.DMA3.DMA传送流程传送流程HLDAHLDA发存储器地址发存储器地址传送数据传送数据传送结束?传送结束?DMADMA结束结束修改地址指针修改地址指针CPUCPU响应响应DMADMA请求发请求发HLDAHLDA,交出总,交出总线控制权由线控制权由DMACDMAC接管总线控制权接管总线控制权362022-5-12372022-5-124.DMA4.DMA传送的实现方式传送的实现方式 CPU停机方式停机方式:在:在DMA传送时,传送时,CPU停停 止工作,不再使用总线。止工作,不再使用总线。 周期挪用方式周期挪用方式:

33、窃取:窃取CPU不进行总线操作不进行总线操作的周期,来进行的周期,来进行DMA传送。传送。 周期扩展方式周期扩展方式:需要专门时钟电路支持。:需要专门时钟电路支持。 382022-5-12 所谓中断,就是指当所谓中断,就是指当CPUCPU正在执行正在执行程序时,外设程序时,外设( (或其它中断源或其它中断源) )向向CPUCPU发出请求,发出请求,CPUCPU暂停当前程序的执行,暂停当前程序的执行,转向该外设服务转向该外设服务( (或称中断服务或称中断服务) )程程序,当中断服务程序运行结束后,序,当中断服务程序运行结束后,返回原程序继续执行的过程。返回原程序继续执行的过程。 6.2 8086

34、/80886.2 8086/8088的中断操作的中断操作392022-5-12 在在8086/80888086/8088中,中断分为中,中断分为硬件中断硬件中断和和软件中断软件中断两类。两类。 硬件中断硬件中断也称为外部中断,是由外部硬件电路产生的,如打印机、也称为外部中断,是由外部硬件电路产生的,如打印机、键盘等。硬件中断又可分为键盘等。硬件中断又可分为可屏蔽中断可屏蔽中断和和不可屏蔽中断不可屏蔽中断。不可屏蔽中断。不可屏蔽中断比可屏蔽中断具有较高的优先级。每个系统中只有一个,都是用来处理比可屏蔽中断具有较高的优先级。每个系统中只有一个,都是用来处理紧急情况的。大部分硬件中断属可屏蔽中断,当

35、紧急情况的。大部分硬件中断属可屏蔽中断,当IF=1IF=1时,系统才能响应时,系统才能响应可屏蔽中断。这类中断还受中断屏蔽字的影响,用户可以通过写中断屏可屏蔽中断。这类中断还受中断屏蔽字的影响,用户可以通过写中断屏蔽字来改变中断的优先级。可屏蔽中断源数量较多,可通过优先级排队蔽字来改变中断的优先级。可屏蔽中断源数量较多,可通过优先级排队电路电路( (如如8259A)8259A)进行控制。进行控制。 软件中断软件中断是根据某条指令或者对标志寄存器中的某个标志的设置而是根据某条指令或者对标志寄存器中的某个标志的设置而产生,它与硬件电路无关。常见的如除数为产生,它与硬件电路无关。常见的如除数为0 0

36、,溢出,溢出( (由由INT 0INT 0指令引起指令引起) )或由或由 INT NINT N指令产生。指令产生。 6.2.1 中断分类与中断类型码中断分类与中断类型码402022-5-121.8088/80861.8088/8086中断系统中断系统 8088的中断系统采用向量中断机制的中断系统采用向量中断机制 能够处理能够处理256个中断个中断 用中断向量号用中断向量号0 255区别区别 可屏蔽中断还需要借助专用中断控制器可屏蔽中断还需要借助专用中断控制器Intel 8259A实现优先权管理实现优先权管理412022-5-122.80882.8088的中断类型的中断类型非屏蔽中断源非屏蔽中断

37、源中断逻辑中断逻辑INTOINTO指令指令单步单步中断中断除法除法错误错误INT NINT N指令指令CPUINTRINTRNMI可屏蔽中断源可屏蔽中断源8259A8259A中断中断控制器控制器IR0IR1IR2IR3IR4IR5IR6IR7外外设设中中断断源源 INTAINTA 内部中断内部中断 除法错中断除法错中断 指令中断指令中断 溢出中断溢出中断 单步中断单步中断 外部中断外部中断 非屏蔽中断非屏蔽中断 可屏蔽中断可屏蔽中断内部中断内部中断外部中断外部中断422022-5-12 8086/80888086/8088为每个中断源分配了一个中断类型码,为每个中断源分配了一个中断类型码, P

38、C/XTPC/XT机中部机中部分中断类型码的功能如下:分中断类型码的功能如下:中断类型码中断类型码 中断功能中断功能 中断类型码中断类型码 中断功能中断功能 0 除数为除数为0中断中断 10 CRT显示驱动程序显示驱动程序 1 单步中断单步中断 11 设备检测设备检测 2 NMI中断中断 12 存储器大小检测存储器大小检测 3 断点中断断点中断 13 硬盘硬盘I/O驱动程序驱动程序 4 溢出中断溢出中断 14 RS-232I/O驱动程序驱动程序 5 打印中断打印中断 15 盒式磁带机处理盒式磁带机处理 67 保留保留 16 键盘键盘I/O驱动程序驱动程序 8 电子钟定时中断电子钟定时中断 17

39、 打印机打印机I/O驱动程序驱动程序 9 键盘中断键盘中断 18 ROMBASIC A 保留的硬件中断保留的硬件中断 19 引导引导(BOOT) B 串行通信串行通信(COM2) 1A 一天的时间一天的时间 C 串行通信串行通信(COM1) 1B 用户键盘用户键盘I/O D 硬盘中断硬盘中断 1C 用户定时器时标用户定时器时标 E 软盘中断软盘中断 1D CRT初始化参数初始化参数 F 并行打印机中断并行打印机中断 1E 磁盘参数磁盘参数 1F 图形字符集图形字符集432022-5-126.2.2 6.2.2 中断向量与中断向量表中断向量与中断向量表 在处理中断时重要的是,如何根据不同的中断源

40、进入相应的中断在处理中断时重要的是,如何根据不同的中断源进入相应的中断服务子程序。服务子程序。8086/80888086/8088系统采用的是向量式中断。每个中断服务子程系统采用的是向量式中断。每个中断服务子程序的入口称为一个序的入口称为一个中断向量中断向量,系统中所有的中断向量按照一定的规律,系统中所有的中断向量按照一定的规律排列成一个排列成一个中断向量表中断向量表。当中断源发出中断请求,。当中断源发出中断请求,CPUCPU响应中断后,即响应中断后,即可查表找出该中断源的中断向量,以便转入相应的中断服务子程序。可查表找出该中断源的中断向量,以便转入相应的中断服务子程序。 8086/80888

41、086/8088中断系统中,中断向量表位于内存的中断系统中,中断向量表位于内存的 0 0 段段0000 0000 03FFH03FFH的存储区内。各中断向量按其中断类型码的大小顺序依次存放。的存储区内。各中断向量按其中断类型码的大小顺序依次存放。每个中断向量每个中断向量占四个单元占四个单元,其中前两个单元存放中断服务子程序入口,其中前两个单元存放中断服务子程序入口地址的偏移量地址的偏移量(IP)(IP),低位在前,高位在后。后两个单元存放中断服务,低位在前,高位在后。后两个单元存放中断服务子程序入口地址的段地址子程序入口地址的段地址(CS)(CS),也是低位在前,高位在后。,也是低位在前,高位

42、在后。 442022-5-12 中断向量:中断向量:中断服务程序的入口地址(首地址)中断服务程序的入口地址(首地址) 逻辑地址含有段地址逻辑地址含有段地址CS和偏移地址和偏移地址IP(32位)位) 每个中断向量的低字是偏移地址、高字是段地址,每个中断向量的低字是偏移地址、高字是段地址,需占用内存需占用内存4个字节个字节 8088微处理器从物理地址微处理器从物理地址00000H开始,依次安排开始,依次安排各个中断向量,向量号也从各个中断向量,向量号也从0开始开始 256个中断占用个中断占用1KB内存区域,就形成内存区域,就形成中断向量表中断向量表存放向量号为存放向量号为N N的中断向量的物理地址

43、的中断向量的物理地址N N4 4452022-5-12类型类型0 IP0000:0000H0000:0004H0000:0008H0000:0078H0000:007CH0000:0080H0000:3FCH0000:03FFH CS类型类型1 IP CS类型类型2 IP CS 类型类型30 IP CS类型类型31 IP CS类型类型32 IP CS类型类型255 IP CS中断向量表中断向量表462022-5-12 PCPC机采用向量中断方式处理机采用向量中断方式处理8 8级外部中断级外部中断, ,中断号中断号依次为依次为08H08H0FH.0FH.在在RAM 0:2CHRAM 0:2CH单

44、元开始依次存放单元开始依次存放 23H,FFH,00H23H,FFH,00H和和F0HF0H四个字节四个字节, ,问该向量对应的中问该向量对应的中断号和中断程序入口是断号和中断程序入口是_ (A A)0CH,23FF:00F0H 0CH,23FF:00F0H (B B)0BH,F000:FF23H 0BH,F000:FF23H (C C)0BH,00F0:23FFH0BH,00F0:23FFH(D D)0CH,F000:FF23H 0CH,F000:FF23H (E E)0CH,00F0:23FFH 0CH,00F0:23FFH (F F)0BH,F000:23FFH0BH,F000:23FF

45、H例:例:472022-5-12 8086/80888086/8088中断向量表的建立方法中断向量表的建立方法为了让为了让CPUCPU响应中断后正确转入中断服务,中断向量表的建立是非常重响应中断后正确转入中断服务,中断向量表的建立是非常重要的。要的。1 1绝对地址置入法绝对地址置入法ATAT可指定段地址可指定段地址(16(16位位) ),ORGORG指定偏移地址。中断向量表的指定偏移地址。中断向量表的段地址,可以用下面指令设定:段地址,可以用下面指令设定:INT-TBL SEGMENT AT 0INT-TBL SEGMENT AT 0,而中断类型码乘而中断类型码乘4 4为该段的偏移地址,可用为

46、该段的偏移地址,可用ORG nORG n4 4设定,设定,然后可用然后可用DDDD伪指令将中断服务子程序的首地址装入。伪指令将中断服务子程序的首地址装入。 INT-TBL INT-TBL SEGMENT AT 0SEGMENT AT 0 ORG 40H x 4ORG 40H x 4 SINTR0 DW 2640H SINTR0 DW 2640H,4000H 4000H ;从片;从片IRIR0 0中断服务地址中断服务地址 ORG 43H x 4ORG 43H x 4 SINTR3 DW 4620H SINTR3 DW 4620H,4000H 4000H ;从片;从片IRIR3 3中断服务地址中断

47、服务地址 ORG 62H x 4ORG 62H x 4 MINTR2 DW 2500H MINTR2 DW 2500H,2000H 2000H ;主片;主片IRIR2 2中断服务地址中断服务地址 ORG 65H x 4ORG 65H x 4 MINTR5 DW 2600H MINTR5 DW 2600H,2000H 2000H ;主片;主片IRIR5 5中断服务地址中断服务地址 482022-5-122 2使用使用DOSDOS调用法调用法 利用利用DOSDOS中断中断21H21H以及专门为更新中断服务程序地址的以及专门为更新中断服务程序地址的25H25H号功能来号功能来设置中断地址。设置中断地

48、址。 使用使用25H25H功能调用时要求:功能调用时要求:ALAL中断类型码中断类型码,DSDS:DXDX中断服务子中断服务子程序首地址的段地址和偏移地址程序首地址的段地址和偏移地址。下面程序完成中断类型码为下面程序完成中断类型码为60H60H的中断向量的装入。的中断向量的装入。 PUSH DS PUSH DS ;保存当前数据段;保存当前数据段 MOV DXMOV DX,SEG INT60HSEG INT60H ;取中断服务子程序段地址;取中断服务子程序段地址 MOV DSMOV DS,DXDX MOV DX MOV DX,OFFSET INT60HOFFSET INT60H ;取中断服务子程

49、序偏移地址;取中断服务子程序偏移地址 MOV ALMOV AL,60H60H;送中断类型码;送中断类型码 MOV AHMOV AH,25H25H INT 21H INT 21H POP DS POP DS ;恢复当前数据段;恢复当前数据段492022-5-12(1 1)设置新中断向量)设置新中断向量push dsmov dx,offset new80h;取中断程序偏移地址;取中断程序偏移地址mov ax,seg new80h;取中断程序段地址;取中断程序段地址mov ds,axmov ax,2580hint 21hpop ds设置中断向量(设置中断向量(DOSDOS功能调用功能调用INT 21

50、HINT 21H)功能号:功能号:AHAH25H25H入口参数:入口参数:ALAL中断向量号中断向量号DS:DXDS:DX中断向量(段地址:偏移地址)中断向量(段地址:偏移地址)对对80H80H号中断设置新的中断向量,指向新的中断服务程序号中断设置新的中断向量,指向新的中断服务程序NEW80H,NEW80HNEW80H,NEW80H为为新中断服务程序的过程名。新中断服务程序的过程名。502022-5-12(2 2)获取原中断向量)获取原中断向量;代码段;代码段mov ax,3580h;利用;利用DOS功能功能35H号号int 21h;获取原;获取原80H中断向量中断向量mov intoff,b

51、x;保存偏移地址;保存偏移地址mov intseg,es;保存段基地址;保存段基地址获取中断向量(获取中断向量(DOSDOS功能调用功能调用INT 21HINT 21H)功能号:功能号:AHAH35H35H入口参数:入口参数:ALAL中断向量号中断向量号出口参数:出口参数:ES:BXES:BX中断向量(段地址:偏移地址中断向量(段地址:偏移地址)把系统原把系统原80H80H中断向量先保存下来准备以后再恢复中断向量先保存下来准备以后再恢复512022-5-12中断类型码中断类型码中断源中断源中断向量地址中断向量地址08H电子钟时间基准电子钟时间基准20H 23H09H键盘键盘24H 27H0AH

52、保留保留28H 2BH0BH串行口串行口22CH 2FH0CH串行口串行口130H 33H0DH硬盘硬盘34H 37H0EH软盘软盘38H 3BH0FH打印机打印机3CH 3FH 中断源和中断类型码中断源和中断类型码522022-5-126.2.3 6.2.3 中断响应过程与时序中断响应过程与时序NMINMIN N软件中断软件中断INTRINTRTF=1TF=1中断响应周期中断响应周期读中断向量号读中断向量号下条指令下条指令现行指令现行指令IFIF1 1N NN NN NN NY YY YY YY YY Y查询中断的顺序,查询中断的顺序,决定了各种中断源的优先权决定了各种中断源的优先权 软件中

53、断软件中断 除法错中断除法错中断 指令中断指令中断 溢出中断溢出中断 非屏蔽中断非屏蔽中断 可屏蔽中断可屏蔽中断 单步中断单步中断高高低低532022-5-12Y还有还有NMINMITEMPTEMP1 1标志寄存器入栈标志寄存器入栈TEMPTEMPTFTF,IFIFTFTF0 0CSCS:IPIP入栈入栈获取中断向量获取中断向量执行服务程序执行服务程序弹出弹出CSCS:IPIP弹出标志寄存器弹出标志寄存器返回被中断程序返回被中断程序(1)(2)(3)(4)(5)NNY(6)保护状态标志保护状态标志复制单步标志,关复制单步标志,关中断,清单步标志中断,清单步标志保护断点保护断点根据中断向量号获取

54、根据中断向量号获取中断服务入口地址中断服务入口地址中断服务中断服务中断返回中断返回 8088各种中断源的优先权,各种中断源的优先权,实际上是指被识别出来的先后实际上是指被识别出来的先后 多种中断同时请求时,多种中断同时请求时,最先响应的则可能是最先响应的则可能是单步中断或单步中断或NMI中断中断542022-5-122硬件中断的时序硬件中断的时序 中断操作是中断操作是8086/8088的基本操作之一。的基本操作之一。 8086/8088的中断响应要用两个总线周期,的中断响应要用两个总线周期, 8086/8088中断请求中断请求INTR信号是一个电平信号,并且要维持信号是一个电平信号,并且要维持

55、2 2个时钟周期。个时钟周期。CPUCPU在每一条在每一条指令的最后一个时钟周期指令的最后一个时钟周期T T采样采样INTRINTR,进入中断响应以后,它在第一,进入中断响应以后,它在第一个中断响应总线周期的下仍需采样个中断响应总线周期的下仍需采样INTR,以确信是一个有效的中断,以确信是一个有效的中断请求。请求。 中断源在第二个中断源在第二个INTA有效时送来的中断类有效时送来的中断类 型码是通过数据总线型码是通过数据总线的低的低8位传送的。位传送的。 552022-5-121 18259A8259A的主要功能的主要功能(1)(1)当当多个多个中断请求时,中断请求时,8259A8259A能判

56、别中断源的中断优先级,一次可能判别中断源的中断优先级,一次可以向以向CPUCPU送出一个最高级别的中断请求信号。送出一个最高级别的中断请求信号。(2) (2) 一片一片8259A8259A可以管理可以管理8 8级中断,可在不增加任何其它电路的情况级中断,可在不增加任何其它电路的情况下多片下多片8259A8259A级联,形成对多于级联,形成对多于8 8级级的中断请求的管理。最多可以的中断请求的管理。最多可以用用9 9片片8259A8259A来构成来构成6464级级的主从式中断管理系统。的主从式中断管理系统。(3) (3) 可以通过编程,使可以通过编程,使8259A8259A工作在不同的工作方式下

57、,使用起来工作在不同的工作方式下,使用起来灵活方便。灵活方便。(4) (4) 单电源单电源+5V+5V,NMOSNMOS工艺制造。工艺制造。 6.3 6.3 中断控制器中断控制器8259A8259A562022-5-128259A8259A中断控制器引脚图中断控制器引脚图CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GNDVCCA0INTAIRQ7IRQ6IRQ5IRQ4IRQ3IRQ2IRQ1IRQ0INTSP/ENCAS28259A8259A11415282 28259A8259A的引脚信号及功能的引脚信号及功能 Intel8259AIntel8259A为双列直插式封装,为双

58、列直插式封装,2828个引脚。个引脚。 572022-5-12 D0D7:数据线,双向,用来与CPU 交换数据。 INT : 中断请求,输出信号,由 8259A传给CPU。 :中断响应,输入信号,来自 CPU。 IR0IR7:中断请求输入,由外设传 给8259A。 CAS0CAS2:级联信号。对主片是输出信号,从片是输入信号。 : 片选信号,输入。来自地址 译码器的输出,作为系统对 8259A的选择信号。 INTA CS :从设备编程/允许缓冲器, 双向。做输入信号使用时,为 ,作为主设备/从设备的 选择控制信号;作输出信号使 用时,为 ,做为允许缓冲 器接收发送的控制信号。 A0 :内部寄存

59、器选择,输入信号。 A0=0时,对应的寄存器为ICW1, OCW2和OCW3;当A0=1时,对 应寄存器为ICW2ICW4和OCW1。 :来自CPU的读信号。 :来自CPU的写信号。 WRSP/ENSPEN RD WR RD CSINTAD0D1D2D3D4D5D6D7CAS0CAS1GNDIR0IR1IR2IR3IR4IR5IR6IR7INTCAS2A0VCC123456789101112131415161718192021222324252627288259ASP/EN D0D7:数据线,双向,用来与CPU 交换数据。D0D1D2D3D4D5D6D7 INT : 中断请求,输出信号,由 8

60、259A传给CPU。INT :中断响应,输入信号,来自 CPU。 INTAINTA IR0IR7:中断请求输入,由外设传 给8259A。 IR0IR1IR2IR3IR4IR5IR6IR7 CAS0CAS2:级联信号。对主片是 输出信号,从片是输入信号。CAS0CAS1CAS2 : 片选信号,输入。来自地址 译码器的输出,作为系统对 8259A的选择信号。 CS CS A0 :内部寄存器选择,输入信号。 A0=0时,对应的寄存器为ICW1, OCW2和OCW3;当A0=1时,对 应寄存器为ICW2ICW4和OCW1。A0 :从设备编程/允许缓冲器, 双向。做输入信号使用时,为 ,作为主设备/从设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论