《第7章-输入输出接口-微机原理、汇编语言与接口技术课件.ppt》由会员分享,可在线阅读,更多相关《第7章-输入输出接口-微机原理、汇编语言与接口技术课件.ppt(194页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第7章章 输入和输出接口输入和输出接口 输入与输出设备是微型计算机系统的重要输入与输出设备是微型计算机系统的重要组成部分。组成部分。接口电路是用来实现微型计算机与外部设接口电路是用来实现微型计算机与外部设备之间的数据交换的,其主要作用是提供备之间的数据交换的,其主要作用是提供数据缓冲,完成信息格式的相容性变换,数据缓冲,完成信息格式的相容性变换,管理数据传送,实现电气特性的适配及进管理数据传送,实现电气特性的适配及进行地址译码或设备选择等行地址译码或设备选择等。7.1 I/O接口接口一、一、I/O接口的功能接口的功能I/O地址译码与设备选择地址译码与设备选择把选中的与总线相接,未选中的与总线
2、隔离(高阻态)把选中的与总线相接,未选中的与总线隔离(高阻态)数据的缓冲与暂存数据的缓冲与暂存缓解接口与缓解接口与CPU工作速度的差异工作速度的差异对外设进行监测、控制与管理,中断处理对外设进行监测、控制与管理,中断处理信号电平与类型的转换信号电平与类型的转换形式、格式、电平、功率、码制等形式、格式、电平、功率、码制等CPU与外部设备交换与外部设备交换信息的过程,其实与信息的过程,其实与它和存储器交换数据它和存储器交换数据的过程类似,同样是的过程类似,同样是在控制信号的作用下在控制信号的作用下通过数据总线来完成,通过数据总线来完成,它们连接示意图如右它们连接示意图如右图所示。图所示。基本结构基
3、本结构1、三类信息的性质不同,应通过不同的端口、三类信息的性质不同,应通过不同的端口分别传送。分别传送。2、在用输入输出指令来寻址外设(实际寻址、在用输入输出指令来寻址外设(实际寻址端口)的端口)的CPU中,外设的状态作为一种输入数中,外设的状态作为一种输入数据,而据,而CPU的控制指令是作为一种输出数据,的控制指令是作为一种输出数据,可以通过数据总线来分别传送。可以通过数据总线来分别传送。3、端口地址由、端口地址由CPU地址总线的低地址总线的低8位或低位或低16位位地址信息来确定,地址信息来确定,CPU根据根据I/O指令提供的端指令提供的端口地址来寻址端口,与外设交换信息。口地址来寻址端口,
4、与外设交换信息。三、三、I/O端口的寻址方式端口的寻址方式1、统一编址统一编址 把外设接口与内存统一进行编址。把外设接口与内存统一进行编址。各占据统一地址空间的不同部分。各占据统一地址空间的不同部分。优点优点指令统一,灵活;指令统一,灵活;访问控制信号统一。访问控制信号统一。缺点缺点内存可用地址空间减小内存可用地址空间减小2、独立编址独立编址 外设地址空间和内存地址空间相外设地址空间和内存地址空间相互独立。互独立。优点:内存地址空间不受优点:内存地址空间不受I/O编址的影响编址的影响缺点:缺点:I/O指令功能较弱指令功能较弱一、无条件传送方式一、无条件传送方式 又称同步传送方式,只对外设,如开
5、又称同步传送方式,只对外设,如开关、继电器、关、继电器、7段显示器、机械式传感器等段显示器、机械式传感器等简单设备,在规定的时间用简单设备,在规定的时间用IN或或OUT指令指令来进行信息的输入或输出。来进行信息的输入或输出。无条件传送输入无条件传送输入数据线数据线PC总总线线D0D7A0A15IOR地址线地址线三态三态缓冲器缓冲器输输入入设设备备地址地址译码译码无条件传送输入无条件传送输入无条件传送输出无条件传送输出数据线数据线PC总总线线D0D7A0A15IOW地址线地址线锁存器锁存器输输出出设设备备地址地址译码译码 无条件传送输出无条件传送输出一个采用同步传送的数据采集系统,如一个采用同步
6、传送的数据采集系统,如下页图所示。被采样的数据是下页图所示。被采样的数据是8个模拟量,个模拟量,由继电器绕组由继电器绕组P0、P1、P7控制接触控制接触点点K0、K1、K7逐个接通。用一个逐个接通。用一个4位的十进制数字电压表测量,把被采样位的十进制数字电压表测量,把被采样的模拟量转换成的模拟量转换成16位位BCD代码,高代码,高8位和位和低低8位通过两个不同的端口输入,其地址位通过两个不同的端口输入,其地址分别是分别是10和和11。CPU通过端口通过端口20输出控输出控制信号,从而控制继电器的吸合顺序,制信号,从而控制继电器的吸合顺序,实现采集不同的模拟量。实现采集不同的模拟量。8位二、程序
7、查询传送方式二、程序查询传送方式1、查询式输入、查询式输入 查询式输入的接口电路包含状态口和输查询式输入的接口电路包含状态口和输入数据口两部分,分别由入数据口两部分,分别由I/O端口译码器端口译码器的两个片选信号和的两个片选信号和RD信号控制。信号控制。状态口由一个状态口由一个D触发器和一个三态门构成。触发器和一个三态门构成。输入数据口由一个输入数据口由一个8位锁存器和一个位锁存器和一个8位位缓冲器构成,它们可以被分别选通。缓冲器构成,它们可以被分别选通。查询式输入的接口电路查询式输入的接口电路 D0输入设备准备好数据后,就向输入设备准备好数据后,就向I/O接口电路接口电路送选通信号。送选通信
8、号。CPU先执行先执行IN指令读取状态口的信息,这指令读取状态口的信息,这时时M/IO为高,使为高,使I/O译码器输出低电平的状译码器输出低电平的状态口片选信号态口片选信号CS1。CS1和和RD经门经门1相与后的低电平输出,使三相与后的低电平输出,使三态缓冲器开启,于是态缓冲器开启,于是Q端的高电平经缓冲器端的高电平经缓冲器(1位)传送到数据线上的位)传送到数据线上的READY位(如位(如D0),并被读入累加器。),并被读入累加器。查询式输入的接口电路查询式输入的接口电路 程序检测到程序检测到RAEDY位为位为1后,执行后,执行IN指指令读数据口。令读数据口。这时这时M/IO和和RD信号再次有
9、效,使信号再次有效,使CS2片片选信号置零,选信号置零,CS2和和RD经门经门2输出低电输出低电平:一方面开启数据缓冲器,将外设送平:一方面开启数据缓冲器,将外设送到锁存器中的数据经到锁存器中的数据经8位数据缓冲器送到位数据缓冲器送到数据总线上后进入累加器,另一方面将数据总线上后进入累加器,另一方面将D触发器清零,这样一次数据传送完毕。触发器清零,这样一次数据传送完毕。接着就可以开始下一个数据的传送。接着就可以开始下一个数据的传送。2、查询式输出、查询式输出与输入接口相类似,输出接口电路也包与输入接口相类似,输出接口电路也包含两个端口:状态口和数据输出口。含两个端口:状态口和数据输出口。状态口
10、也由一个状态口也由一个D触发器和一个三态门构触发器和一个三态门构成,而数据输出口只有一个成,而数据输出口只有一个8位数据锁存位数据锁存器。器。查询式输出的接口电路查询式输出的接口电路 CPU准备向外设输出数据时,它先执行准备向外设输出数据时,它先执行IN指令读取状态口的信息。这时,高电指令读取状态口的信息。这时,高电平的平的M/IO和有效的端口地址信号使和有效的端口地址信号使I/O译译码器的状态口片选信号变低,码器的状态口片选信号变低,CS1再和再和有效的有效的RD信号经门信号经门1相与后输出低电平,相与后输出低电平,使状态口的三态门开启,从使状态口的三态门开启,从D1位读入位读入BUSY位的
11、状态。位的状态。若若BUSY1,表示外设正处在接收上一,表示外设正处在接收上一个数据的忙状态;只有当个数据的忙状态;只有当BUSY0时,时,CPU才能向外设输出新的数据。才能向外设输出新的数据。CPU检查到检查到BUSY0时,便执行时,便执行OUT指令将指令将数据送往数据输出口。数据送往数据输出口。这时这时M/IO高电平的使高电平的使I/O译码器的状态口片选译码器的状态口片选信号信号CS2变为低电平,变为低电平,CS2再和再和WR信号经门信号经门2相与后输出低电平的选通信号,它用来选通数相与后输出低电平的选通信号,它用来选通数据锁存器,将数据送往外设。据锁存器,将数据送往外设。同时,选通信号的
12、下降沿还使同时,选通信号的下降沿还使D触发器翻转,触发器翻转,使使Q端置端置1,即把状态口的,即把状态口的BUSY位置位置1,表示,表示忙碌。当输出设备从接口中取走数据后,就送忙碌。当输出设备从接口中取走数据后,就送回一个应答信号,它将回一个应答信号,它将D触发器清零,即使触发器清零,即使BUSY0,允许,允许CPU送出下一个数。送出下一个数。假设状态口的地址为假设状态口的地址为60H,输出数据口的地址为,输出数据口的地址为70H,传送数据的总字节数为传送数据的总字节数为NUMBER,数据放在内存,数据放在内存BUFFER开始的单元开始的单元,则查询式输入数据的程序段为:则查询式输入数据的程序
13、段为:MOVCX,NUMBERLEABX,BUFFEROUTPUT_STATUS:INAL,60HTESTAL,02HJNZOUTPUT_STATUS MOVAL,BXINC BXOUT70H,ALLOOP OUTPUT_STATUSCONTI:D2D1D0程序如下:CLD;下面用到字符串指令,地址指针自动增START:MOV DL,11111000B;启动信号的初始状态,;低3位选通多路开关通道 LEA DI,DSTOR;设置数据区指针AGAIN:MOV AL,DL;读取启动信号 AND AL,11101111B;使D40 OUT 04H,AL;停止A/D转换 CALL DELAY;等待停止
14、A/D转换的完成 MOV AL,DL OUT 04H,AL;选输入通道并启动A/D转换POLL:IN AL,02H;读入状态信息 SHR AL,1;查AL的D0 JNCPOLL;若D00,未准备好则循环再查 INAL,03H;若已准备就绪,;则经端口3将采样数据输至AL STOSB;输入数据存至内存单元 INCDL;选择下一个模拟量输入 JNEAGAIN;8个模拟量未输入完则循环CONTI:7.3 中断控制系统中断控制系统采用中断方式,采用中断方式,CPU平时可以执行主程序,只平时可以执行主程序,只有当输入设备将数据准备好了以后,或者输出有当输入设备将数据准备好了以后,或者输出端口的数据缓冲器
15、已空时,才向端口的数据缓冲器已空时,才向CPU发中断请发中断请求。求。CPU响应中断后,暂停执行当前的程序,转去响应中断后,暂停执行当前的程序,转去执行管理外设的中断服务子程序。在中断服务执行管理外设的中断服务子程序。在中断服务程序中,用输入或输出指令在程序中,用输入或输出指令在CPU和外设之间和外设之间进行一次数据交换。等输入或输出操作完成以进行一次数据交换。等输入或输出操作完成以后,后,CPU又会去执行原来的程序。又会去执行原来的程序。这样,外设在处理数据期间,这样,外设在处理数据期间,CPU就不必浪费就不必浪费大量的时间去查询它们的状态。大量的时间去查询它们的状态。一、中断的基本概念一、
16、中断的基本概念执行程序执行程序事件发生事件发生事件处理事件处理继续执行程序继续执行程序中断处理中断处理中断请求及响应中断请求及响应计算机计算机中断返回中断返回7.3.1概述概述图7-12 中断控制I/O示意图二、中断的定义二、中断的定义 CPU执行程序时,由于发生了某种随执行程序时,由于发生了某种随机的事件机的事件(外部或内部外部或内部),引起,引起CPU暂暂时中断正在运行的程序,转去执行一时中断正在运行的程序,转去执行一段特殊的服务程序段特殊的服务程序(称为中断服务程称为中断服务程序或中断处理程序序或中断处理程序),以处理该事件,以处理该事件,该事件处理完后又返回被中断的程序该事件处理完后又
17、返回被中断的程序继续执行,这一过程称为中断。继续执行,这一过程称为中断。三、中断源三、中断源引起引起CPU中断的事件:中断源。例如:中断的事件:中断源。例如:外设:请求输入输出数据,报告故障等外设:请求输入输出数据,报告故障等事件:掉电、硬件故障、软件错误、非法操作、定时时间事件:掉电、硬件故障、软件错误、非法操作、定时时间到等到等中断源分为:外部中断、内部中断中断源分为:外部中断、内部中断内部中断:内部中断:CPU内部执行程序时自身产生的中断内部执行程序时自身产生的中断外部中断:外部中断:CPU以外的设备、部件产生的中断以外的设备、部件产生的中断8086/8088的外部中断信号:的外部中断信
18、号:INTR、NMIINTR:可屏蔽中断请求,高电平有效,受:可屏蔽中断请求,高电平有效,受IF标志的控制。标志的控制。IF=1时,执行完当前指令后时,执行完当前指令后CPU对它作出响应。对它作出响应。NMI:非屏蔽中断请求,上升沿有效,任何时候:非屏蔽中断请求,上升沿有效,任何时候CPU都要都要响应此中断请求信号。响应此中断请求信号。7.3.2 可屏蔽中断处理过程可屏蔽中断处理过程五个步骤:五个步骤:中断请求中断请求中断判优中断判优(有时还要进行中断源识别有时还要进行中断源识别)中断响应中断响应中断服务中断服务 保护现场、执行中断服务程序、恢复现场、开中断保护现场、执行中断服务程序、恢复现场
19、、开中断中断返回中断返回以下以外部中断为主介绍这五个步骤。以下以外部中断为主介绍这五个步骤。中断处理流程图(1)中断请求中断请求1、外设接口(中断源)发出中断请求信号,送到、外设接口(中断源)发出中断请求信号,送到CPU的的INTR或或NMI引脚;引脚;中断请求信号:边沿请求,电平请求中断请求信号:边沿请求,电平请求例如,例如,NMI为边沿请求,为边沿请求,INTR为电平请求为电平请求2、中断请求信号应保持到中断被处理为止、中断请求信号应保持到中断被处理为止;3、CPU响应中断后,中断请求信号应及时撤销。响应中断后,中断请求信号应及时撤销。4、在、在8086/8088系统中,外设的中断要经过系
20、统中,外设的中断要经过8259A可编可编程中断控制器程中断控制器(PIC)的排队判优后向的排队判优后向CPU发出:发出:(I/O接口接口)PIC CPU(3)中断响应)中断响应在每条指令的最后一个时钟周期,在每条指令的最后一个时钟周期,CPU检测检测INTR或或NMI信号。若以下条件成立,则信号。若以下条件成立,则CPU响应中断:响应中断:(1)当前指令执行完。)当前指令执行完。(2)对)对INTR,CPU应处于开中断状态,即应处于开中断状态,即IF=1;(3)当前没有复位)当前没有复位(RESET)和保持和保持(HOLD)信号。信号。(4)若)若NMI和和 INTR 同时发生,则首先响应同时
21、发生,则首先响应NMI。8086/8088 CPU响应中断请求的条件响应中断请求的条件对可屏蔽中断,CPU响应中断是有条件的。对8086/8088来讲,条件有以下三个:(1)在现行指令周期内无总线请求(最小方式时HOLD无效,最大方式时RQ/GT无效),而且无非屏蔽中断请求;(2)中断允许标志IF置位;(3)如果现行指令是HLT或WAIT指令,则 可以立即响应中断,否则必须完成正在执行的指令后才能响应中断。另外,对于加有前缀的指令,CPU在前缀和指令之间不识别中断请求;对目标地址是段寄存器的MOV和POP的指令,则CPU是在这些指令的后一条指令执行后才响应中断。这是因为改变存储区必须两条指令才
22、完成,第一条指令改变段寄存器,第二条指令改变偏移量,若执行完改变段寄存器的指令就识别中断,则新的基地址与旧的偏移量结合将是无意义的。在有些情况下,即使中断允许标志位IF1,CPU也不能立即响应外部的可屏蔽中断请求,而是要再执行完下一条指令才响应外部中断。例如,发出中断请求时,CPU正在执行封锁指令。如果执行向段寄存器传送数据的指令,如MOV和POP指令,也要等下一条指令执行完后,才允许中断。当遇到等待指令或串操作指令时,允许在指令执行过程发中断请求,但在一个基本操作完成后响应中断。CPU中断响应时,要做下述三项工中断响应时,要做下述三项工(1)向中断源发出)向中断源发出INTA#中断响应信;中
23、断响应信;(2)保护断点,包括)保护断点,包括CS、IP和和PSW(FLAGS)。这主要是保证中断结)。这主要是保证中断结束后能返回被中断的程序。束后能返回被中断的程序。(3)获得中断服务程序首地址(入口)。)获得中断服务程序首地址(入口)。如何得到中断处理程序的首地址?如何得到中断处理程序的首地址?中断向量法中断向量法 8086/8088CPU中断响应的过程:中断响应的过程:当有中断请求且满足响应条件时,CPU就进入中断响应的过程。对8086/8088来讲,响应过程如下:1、在相邻的两个总线周期内发出响应信号INTA;2、CPU接收中断类型码n;3、保护处理器的当前状态,将PSW、下一条指令
24、的CS和IP压入堆栈,以保证在中断处理程序完成后能正确返回断点;4、清除IF和TF标志。清除IF标志的目的是避免在响应中断的过程中或进入中断处理程序后受到其他中断源的干扰。只有在中断处理程序中出现开中断指令(STI)才允许CPU接收其他设备的中断请求;5、根据中断类型码n查找中断处理程序入口。将中断向量表中(n4)所指的两个字节送给IP,(n4+2)所指的两个字节送给CS。中断向量表中(n4),(n4+2)所存放的内容就是相应的中断处理程序的入口地址。(4)中断处理(中断服务)中断处理(中断服务)中断服务子程序特点中断服务子程序特点为为“远远”过程(类型为过程(类型为FAR)要用要用IRET指
25、令返回指令返回中断服务子程序要做的工作中断服务子程序要做的工作保护现场保护现场(PUSH regs)开中断开中断(STI)进行中断处理进行中断处理 关中断关中断恢复现场恢复现场(POP regs)中断返回中断返回(IRET)(5)中断返回)中断返回执行中断返回指令执行中断返回指令IRETIRET指令将使指令将使CPU把堆栈内保存的断点信息弹把堆栈内保存的断点信息弹出到出到IP、CS和和FLAG中,保证被中断的程序从断中,保证被中断的程序从断点处能够继续往下执行。点处能够继续往下执行。IPLIPHCSLCSHFLAGLFLAGHSPIPLIPHCSLCSHFLAGLFLAGHSPIPCSFLAG
26、进入中断服进入中断服务程序时务程序时中断返回后中断返回后中断源和中断优先权的识别中断源和中断优先权的识别计算机中的中断源有很多,计算机中的中断源有很多,CPU必须识别必须识别是哪一个设备产生中断。识别中断源有两是哪一个设备产生中断。识别中断源有两个方法:个方法:软件查询。将中断信号从数据总线读入用程序软件查询。将中断信号从数据总线读入用程序进行判别。进行判别。中断矢量法。由中断源提供中断类型号,中断矢量法。由中断源提供中断类型号,CPU根根据类型确定中断源。(据类型确定中断源。(8086/8088即采用此种即采用此种方法)方法)中断判优中断判优多个中断源产生中断,多个中断源产生中断,CPU首先
27、为谁服务?首先为谁服务?中断优先级排队问题。中断优先级排队问题。中断优先级控制要处理两种情况:中断优先级控制要处理两种情况:对同时产生的中断:应首先处理优先级别较高的中断;对同时产生的中断:应首先处理优先级别较高的中断;若优先级别相同,则按先来先服务的原则处理;若优先级别相同,则按先来先服务的原则处理;对非同时产生的中断:低优先级别的中断处理程序允许对非同时产生的中断:低优先级别的中断处理程序允许被高优先级别的中断源所中断被高优先级别的中断源所中断即允许中断嵌套。即允许中断嵌套。中断优先级的控制方法中断优先级的控制方法硬件判优:链式判优、并行判优(中断向量法)硬件判优:链式判优、并行判优(中断
28、向量法)软件判优:顺序查询中断请求,先查询的先服务(即先查询的优软件判优:顺序查询中断请求,先查询的先服务(即先查询的优先级别高)先级别高)通常将中断判优与中断源识别合并在一起进行处理。通常将中断判优与中断源识别合并在一起进行处理。x86系统中,这项任务由系统中,这项任务由8259A和和CPU共同完成。共同完成。软件查询中断优先级 图8-4(a)软件中断查询接口电路硬件查询中断优先级 图8-5 菊花链单元逻辑图8-6 菊花链接口逻辑电路 链式判优电路原理图链式判优电路原理图CPUINTAINTR外设外设1 1外设外设2 2外设接口外设接口1 1菊花链菊花链逻辑电路逻辑电路外设接口外设接口2 2
29、外设外设3 3外设接口外设接口3 31菊花链菊花链逻辑电路逻辑电路菊花链菊花链逻辑电路逻辑电路IREQIREQIREQ中断确认中断确认中断确认中断确认中断确认中断确认INTAinINTAinINTAin菊花链逻辑电路菊花链逻辑电路IREQINTR&=1 1DB三态门中断向量码E外设接口外设接口中断确认中断确认菊花链菊花链逻辑电路逻辑电路INTAinINTAout编码优先权法编码优先权法 中断嵌套 7.3.3 8086/8088的中断系统的中断系统1、与中断有关的控制线为:、与中断有关的控制线为:NMI、INTR、INTA2、8088系统的中断源系统的中断源内部中断内部中断除法溢出:类型号除法溢
30、出:类型号0,商大于目的操作数所能表达的范围,商大于目的操作数所能表达的范围时产生。时产生。单步中断:类型号单步中断:类型号1,TF=1时产生(当前指令需执行完)时产生(当前指令需执行完)断点中断:类型号断点中断:类型号3,这是一个软件中断,即,这是一个软件中断,即INT 3指令。指令。溢出中断:类型号溢出中断:类型号4,这是一个软件中断,即,这是一个软件中断,即INTO指令。指令。软件中断:即软件中断:即INT n指令,类型号指令,类型号n(0-255)。外部中断外部中断非屏蔽中断非屏蔽中断NMI:类型号:类型号2,不可用软件屏蔽,不可用软件屏蔽,CPU必须必须响应它。响应它。可屏蔽中断可屏
31、蔽中断INTR:类型号由:类型号由PIC提供。提供。IF=1时时CPU才能响才能响应。应。8086/8088中断源类型中断源类型NMIINTR中断逻辑中断逻辑软件中断指令软件中断指令溢出中断溢出中断除法错除法错单步中断单步中断非屏蔽中断请求非屏蔽中断请求中断控中断控制器制器8259A8259APICPIC8086/8088CPU8086/8088CPU内部逻辑内部逻辑断点中断断点中断n430121、8088系统采用中断类型系统采用中断类型(向量向量)码来识别不码来识别不同的中断源,同的中断源,每个中断源都有一个与它相对每个中断源都有一个与它相对应的中断类型码应的中断类型码。(1)溢出、断点、除
32、法溢出、单步、非屏蔽中)溢出、断点、除法溢出、单步、非屏蔽中断的类型码为固定值断的类型码为固定值(2)软件中断的类型码由指令给出)软件中断的类型码由指令给出(3)可屏蔽中断的类型码由)可屏蔽中断的类型码由PIC给出给出2、CPU响应响应INTR中断时,会产生两个中断响中断时,会产生两个中断响应总线周期,要求应总线周期,要求PIC在第在第2个中断响应总线个中断响应总线周期把中断类型码放到数据总线上,供周期把中断类型码放到数据总线上,供CPU读入。读入。三、中断向量表三、中断向量表1、存放各类中断的中断服务程序的入口地址、存放各类中断的中断服务程序的入口地址(段和偏移)(段和偏移)2、表的地址位于
33、内存的、表的地址位于内存的00000H003FFH,大小为大小为1KB,共,共256个入口个入口3、每个入口占用、每个入口占用4 Bytes,低字为段内偏移,低字为段内偏移,高字为段基址高字为段基址3、根据中断类型号、根据中断类型号获得中断服务程序入口的获得中断服务程序入口的方法方法:(n为为中断类型号中断类型号)中断向量在中断向量在IVT中的存放地址中的存放地址4n四、四、8086/8088 CPU的中断响应过程的中断响应过程 1、内部中断响应过程、内部中断响应过程 无无INTA周期周期中断类型码固定或由指令给出中断类型码固定或由指令给出响应过程步骤:响应过程步骤:PUSH FLAG LET
34、 TEMP=TF CLEAR IF,TF PUSH CS PUSH IP(I P)=(TYPE*4+1):(TYPE*4+0)(CS)=(TYPE*4+3):(TYPE*4+2)2、外部中断响应过程、外部中断响应过程非屏蔽中断,与内部中断响应过程类似非屏蔽中断,与内部中断响应过程类似 可屏蔽中断可屏蔽中断 INTA(1),),PIC进行优先级排队判优处理进行优先级排队判优处理 INTA(2),),PIC把中断类型码放到把中断类型码放到DB上,由上,由CPU读入读入 PUSH FLAG LET TEMP=TF CLEAR IF,TF PUSH CS PUSH IP (I P)=(TYPE*4+1
35、):(TYPE*4+0)(CS)=(TYPE*4+3):(TYPE*4+2)五、五、8088系统中各中断的优先级系统中各中断的优先级1、优先级从高到低顺序如下:、优先级从高到低顺序如下:内部中断内部中断NMIINTR单步中断单步中断NYNYNNNNNYY执行指令执行完否?取指令IF=1?内部中断?NMI?INTR?TF=1?类型码=0255类型码=2类型码=1中断响应,读回类型码FLAG入栈TEMPTFTF=IF=0CS、IP入栈计算向量表地址高字CS低字IP执行中断服务程序NMI?TEMP=1?转入中断服务程序恢复CS和IP恢复FLAGS返回被中断的程序YYYYNIRET指令的操作8086/
36、8088的中的中断处理流程断处理流程NMI、INTR、单步和除法错中单步和除法错中断同时产生时的断同时产生时的中断处理过程中断处理过程DIVTF=1IF=1INTRNMIPUSH FLAGS、CS、IPCLEAR IF&TF,中断入口CS:IP除法错除法错NMI(IF、TF=0)PUSH FLAGS、CS、IPCLEAR IF&TF,中断入口CS:IPNMI中断处理程序除法错中断处理程序(IF、TF=0)返回返回执行下条指令识别出INTR(IF、TF=1)返回返回INTR仍然有效仍然有效继续单步执行程序继续单步执行程序INTR中断处理程序INTRPUSH FLAGS、CS、IPCLEAR IF
37、&TF,中断入口CS:IP单步单步(IF、TF=0)PUSH FLAGS、CS、IPCLEAR IF&TF,中断入口CS:IP单步中断处理程序(IF、TF=0)返回返回(IF、TF=1)返回返回7.3.4 可编程中断控制器可编程中断控制器8259APIC,Programmable Interrupt Controller可对可对8个中断源实现优先级控制个中断源实现优先级控制 可扩展至对可扩展至对64个中断源实现优先级控制个中断源实现优先级控制 可编程设置不同工作方式可编程设置不同工作方式根据中断源向根据中断源向x86提供不同中断类型码提供不同中断类型码引脚分配引脚分配:8259引脚8259A2
38、8272625242322212019181716151234567891011121314CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GNDVcc(+5V)A0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS2一、一、8259A的内部结构的内部结构1、8259A的内部结构的内部结构中断请求寄存器中断请求寄存器IRR保存从保存从IR0IR7来的中断请求信号,某位来的中断请求信号,某位=1表示对应的表示对应的IRi有中断请求有中断请求 中断服务寄存器中断服务寄存器ISR 保存所有正在服务的中断源,某位保存所有正在服务的中断源,某位=1表示对应的表示对
39、应的IRi中断正中断正在被服务在被服务 中断屏蔽寄存器中断屏蔽寄存器IMR存放中断屏蔽字,某位存放中断屏蔽字,某位=1表示对应的表示对应的IRi输入被屏蔽输入被屏蔽 中断优先权判别电路中断优先权判别电路 确定是否向确定是否向CPU发出中断请求,中断响应时确定发出中断请求,中断响应时确定ISR的哪的哪位应置位及把相应中断的类型码放到数据总线上位应置位及把相应中断的类型码放到数据总线上 8259A8259A结构示意图结构示意图数数据据总总线线缓冲器缓冲器读读/写写逻辑逻辑级级连连缓缓冲冲/比较器比较器控制逻辑控制逻辑中断服中断服务寄存务寄存器器ISR优先权优先权电路电路中断请中断请求寄存求寄存器器
40、IRR中断屏蔽寄存器中断屏蔽寄存器IMRD7D0RDWRA0CSCAS0CAS1CAS2SP/ENINTAINT内部总线内部总线IR7IR6IR5IR4IR3IR2IR1IR0图8-14 8259A优先权判决逻辑示意图二、二、8259A的工作过程的工作过程1、8259A对中断请求的处理过程如下:对中断请求的处理过程如下:当某当某IRi有效时,有效时,IRR相应位置相应位置1若有效的若有效的IRi未被屏蔽,则未被屏蔽,则向向CPU发出中断发出中断请求请求检测到第检测到第1个个INTA#信号后,信号后,置置ISRi=1,IRRi=0 检测到第检测到第2个个INTA#信号后,信号后,把把ISRi=1
41、中最中最高优先级的中断类型码放到高优先级的中断类型码放到DB上上若工作在若工作在AEOI方式,在第方式,在第2个个INTA#结束时,结束时,使使ISRi复位;否则由复位;否则由CPU发出发出EOI命令使命令使ISRi复位复位图8-15 中断响应周期时序三、三、8259A的工作方式的工作方式8259A的工作方式有如下几类:的工作方式有如下几类:中断优先权方式与中断嵌套中断优先权方式与中断嵌套中断结束处理方式中断结束处理方式 屏蔽中断源的方式屏蔽中断源的方式中断触发方式中断触发方式级联工作方式级联工作方式四、中断优先权方式与中断嵌套四、中断优先权方式与中断嵌套1、中断优先全方式、中断优先全方式 两
42、类优先级控制方式:固定优先级和循环优先级两类优先级控制方式:固定优先级和循环优先级固定优先级方式固定优先级方式所有中断请求所有中断请求IRi的中断优先级固定不变的中断优先级固定不变优先级排列顺序可编程改变优先级排列顺序可编程改变加电后加电后8259A的默认方式,默认优先级顺序从高到低为的默认方式,默认优先级顺序从高到低为IR0IR7IR7IR6IR5IR4IR3IR2IR1IR07654321032107654最低级最低级最高级最高级最高级最高级最低级最低级优先级优先级IR7IR6IR5IR4IR3IR2IR1IR0默认优先级默认优先级优先级可编程改变优先级可编程改变2、循环优先级方式、循环优
43、先级方式(1)优先权优先权自动循环方式自动循环方式(等优先权方式等优先权方式)中断源轮流处于最高优先级,即自动中断优先级中断源轮流处于最高优先级,即自动中断优先级循环循环初始优先级顺序可用编程改变初始优先级顺序可用编程改变某中断请求某中断请求IRi被处理后,其优先级别自动降为被处理后,其优先级别自动降为最低,原来比它低一级的中断上升为最高级最低,原来比它低一级的中断上升为最高级 IS7IS6IS5IS4IS3IS2IS1IS07654321021076543最低级最低级最高级最高级最高级最高级最低级最低级ISR内容内容IS7IS6 IS5IS4IS3IS2IS1IS0IR4的服务结束以前的服务
44、结束以前0101000001000000IR4的服务结束以后的服务结束以后ISRi(2)优先权特殊循环方式优先权特殊循环方式-允许在程序中(主程序或中断服务程序)改变中断源的优先等级,即允许在程序中(主程序或中断服务程序)改变中断源的优先等级,即允许指定某个中断的优先权为最低,而其他中断源的优先权也随之改允许指定某个中断的优先权为最低,而其他中断源的优先权也随之改变。变。若当前的中断优先级状态和中断服务寄存器状态如图若当前的中断优先级状态和中断服务寄存器状态如图8-18。在在IR2的服务程序执行过程中,执行一条使的服务程序执行过程中,执行一条使IR4优先权为最低的命令,优先权为最低的命令,则优
45、先权状态发生改变,即则优先权状态发生改变,即IR4的优先级最低,而的优先级最低,而IR5的优先级最高,的优先级最高,原来优先级较高的原来优先级较高的IR2现在也改变为具有较低的优先权级别。现在也改变为具有较低的优先权级别。优先权特殊循环方式也是由优先权特殊循环方式也是由8259A的操作命令字的操作命令字OCW2来设定的。来设定的。3、中断嵌套、中断嵌套方式方式在中断处理过程中允许被更高优先级的事件所中在中断处理过程中允许被更高优先级的事件所中断称为中断嵌套。断称为中断嵌套。8259A有两种中断嵌套方式:有两种中断嵌套方式:普通的完全嵌套方式(默认方式)普通的完全嵌套方式(默认方式)一中断正被处
46、理时,只有更高优先级的事件可以打一中断正被处理时,只有更高优先级的事件可以打断当前的中断处理过程而被服务。断当前的中断处理过程而被服务。特殊的全嵌套方式特殊的全嵌套方式 一中断正被处理时,允许同级或更高优先级的事件一中断正被处理时,允许同级或更高优先级的事件可以打断当前的中断处理过程而被服务。可以打断当前的中断处理过程而被服务。注注:特殊全嵌套仅用于多个特殊全嵌套仅用于多个8259A级连时的主级连时的主8259A,而不能用于从属而不能用于从属8259A或单或单8259A系统。系统。D.主主8259A8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:一般嵌套方式:从从片片的
47、的INTINT被被主主片片封封锁锁,故故更更高高级级别别的的IR0-IR2IR0-IR2中中断断也也无无法法得到响应得到响应特殊嵌套方式:特殊嵌套方式:因因主主片片不不封封锁锁从从片片的的INTINT,故故级级别别高高的的IR0-IR0-IR2IR2中中断断可可以以得得到到响响应应。(但但IR3-IR7IR3-IR7仍仍被被本本从从片封锁片封锁)C.假定假定IR3IR3发生中断发生中断,并获得服务并获得服务一一般般嵌嵌套套方方式式:IR4的的中中断断被被服服务务时时,这这些些中中断断将将被封锁。被封锁。B.特特殊殊嵌嵌套套方方式式:IR4的的中中断断被被服服务务 时时,只只 封封 锁锁IR5-
48、IR7。A.INTE.从从8259AINTIR0IR1IR2IR3IR4IR5IR6IR7一般全嵌套方式与特殊全嵌套方式的区别一般全嵌套方式与特殊全嵌套方式的区别 去去CPUCPU五、中断结束处理方式五、中断结束处理方式1、当某一、当某一IRi中断被服务时,中断被服务时,ISR中的相应位中的相应位ISRi=1。当服务结束后,则必须清零该当服务结束后,则必须清零该ISRi位。使位。使ISRi=0是是通过向通过向8259A发出中断结束命令(发出中断结束命令(EOI命令)实现的。命令)实现的。2、三种、三种EOI命令命令自动自动EOI(AEOI)(自动(自动EOI方式)方式)非指定非指定EOI(NS
49、EOI)(正常(正常EOI方式)方式)指定指定EOI(SEOI)(特殊(特殊EOI方式方式)AEOI:在第在第2个个INTA#结束时,由结束时,由8259A使使ISRi自动复位;自动复位;因不保留当前正在服务的中断的状态,故因不保留当前正在服务的中断的状态,故AEOI不能用于中断嵌套方式不能用于中断嵌套方式指定指定EOI:由:由CPU发出一条发出一条SEOI命令,该命令,该EOI命令中指出了所要复位的命令中指出了所要复位的ISR的位号。的位号。用于特殊屏蔽方式用于特殊屏蔽方式非指定非指定EOI:由由CPU发出正常发出正常EOI命令,该命令,该EOI命令使命令使ISRi=1的位中优先级最高的那一
50、的位中优先级最高的那一位复位。位复位。用于普通全嵌套方式用于普通全嵌套方式中断服务程序中断服务程序向从向从PIC发发EOI命令命令读从读从PIC的的ISR全全0?向主向主PIC发发EOI命令命令YIRET恢复现场恢复现场N特殊全嵌套方式特殊全嵌套方式下的下的EOI处理处理只有当从只有当从8259的中断全部处理完的中断全部处理完后,才能向主后,才能向主8259发发EOI命令命令六、屏蔽中断源的方式六、屏蔽中断源的方式1、IMR屏蔽字决定了屏蔽字决定了允许或禁止允许或禁止某位某位IRi所所对应的中断对应的中断:IMi=1 禁止,禁止,IMi=0 允许。允许。2、特殊屏蔽方式:、特殊屏蔽方式:提供了