版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Ch.6 输入输出和中断技术输入输出和中断技术n本章内容本章内容n基本概念基本概念n I/O端口的编址端口的编址n 输入输出的基本方法:输入输出的基本方法:无条件无条件、查询查询、中断中断、DMAn中断中断n中断基本概念中断基本概念n8086/8088中断系统中断系统n8259中断控制器中断控制器*nDMA*nDMA的基本概念的基本概念nDMA工作过程工作过程nDMA的三种传输方式的三种传输方式 6.1 输入输入/输出接口(输出接口(I/O接口)接口)n6.1.1 概述概述n什么是I/O接口?把外设连接到总线上的一组逻辑电路的总称。实现外设与主机之把外设连接到总线上的一组逻辑电路的总称。实现外
2、设与主机之间的间的信息交换。信息交换。 nI/O接口要解决的问题n速度匹配速度匹配(Buffer)n信号电平和驱动能力信号电平和驱动能力(电平转换器、驱动器电平转换器、驱动器) n信号形式匹配信号形式匹配(A/D、D/A) n信息格式信息格式(字节流、块、数据包、帧字节流、块、数据包、帧) n时序匹配时序匹配(定时关系定时关系)n总线隔离总线隔离(三态门三态门)nI/O接口的功能nI/O地址译码与设备选择n把选中的与总线相接,未选中的与总线隔离(高阻态)把选中的与总线相接,未选中的与总线隔离(高阻态) n数据的缓冲与暂存n缓解接口与缓解接口与CPU工作速度的差异工作速度的差异n对外设进行监测、
3、控制与管理,中断处理n信号电平与类型的转换n形式、格式、电平、功率、码制等形式、格式、电平、功率、码制等 n6.1.2 I/O接口的编址方式接口的编址方式nI/O端口: I/O信息的三种类型:数据、命令、状态。传送这三类信息的通道分别称为:数据端口(I、O)、命令端口(O)、状态端口(I)。n不同外设具有的端口数各不相同,计算机中为每一个端口都赋予一个惟一编号称为端口地址(或端口号)。n端口有两种编址方式:统一编址和独立编址。 n1. 统一编址统一编址n把外设接口与内存统一进行编址。各占据统一地址空间的不同部分。n优点n指令统一,灵活;n访问控制信号统一,使用同一组的地址/控制信号。 n缺点n
4、内存可用地址空间减小0地址空间(共1MB)内存地址(960KB)I/O地址(64KB)FFFFFHEFFFFHF0000H n2. 独立编址独立编址n外设地址空间和内存地址空间相互独立相互独立。n优点:内存地址空间不受I/O编址的影响n缺点:I/O指令功能较弱,使用不同的读写控制信号00000H内存地址空间内存空间(1MB)I/O空间(64KB)FFFFHFFFFFHI/O地址空间0000Hn例如:例如:8088/8086系统系统 8 80 08 88 8总线A19-A0A9-A0MEMR、MEMWIOR、IOW 、AEN存储器访问存储器访问I/O访问访问 n8088/8086 CPU的的I/
5、O编址方式编址方式n采用I/O独立编址方式(但地址线与存储器共用)n地址线上的地址信号用地址线上的地址信号用 来区分:来区分:n 时为时为I/O地址地址nI/O操作只使用20根地址线中的16根: A15 A0n可寻址的I/O端口数为64K(65536)个nI/O地址范围为0FFFFHnIBM PC只使用了只使用了1024个个I/O地址(03FFH)IO/M=1IO/M n6.1.3 I/O端口地址的译码端口地址的译码n 、 、 A15 A0nOUT指令将使总线的 信号有效nIN指令将使总线的 信号有效n当接口只有一个端口时,16位地址线一般应全部参与译码,译码输出直接选择该端口;当接口具有多个
6、端口时,则16位地址线的高位参与译码(决定接口的基地址),而低位则用于确定要访问哪一个端口。 例如:例如: 某外设接口有某外设接口有4个端口,地址为个端口,地址为2F0H2F3H,则其基地址为则其基地址为2F0H,由,由A15A2译码得到,而译码得到,而A1、A0用用来确定来确定4个端口中的某一个。个端口中的某一个。IORIOWIOW IOR n6.1.4 I/O数据的传送方式数据的传送方式n并行n一个数据单位(通常为字节)的各位同时传送n速度快、距离短、成本高n例:PC机的并行接口(通常用于连接打印机)n串行n数据按位按位进行传送n速度慢、距离远、成本低n例: PC机的串行接口(通常用于串行
7、通信)n6.2.1 接口电路的基本结构接口电路的基本结构6.2 简单接口电路简单接口电路数据线数据线控制线控制线状态线状态线DBCBAB数据输入寄存器数据输入寄存器(or 三态门)三态门)数据输出寄存器数据输出寄存器(锁存器)(锁存器)状态寄存器状态寄存器(or 三态门)三态门)命令寄存器命令寄存器译码译码电路电路控制控制逻辑逻辑接接外外设设接接主主机机 n数据输入数据输入/输出寄存器输出寄存器暂存输入暂存输入/输出的输出的数据数据n命令寄存器命令寄存器存放控制命令,用来设定接存放控制命令,用来设定接口功能、工作参数和工作方式。口功能、工作参数和工作方式。n状态寄存器状态寄存器保存外设当前状态
8、,以供保存外设当前状态,以供CPU读取。读取。简单接口电路简单接口电路n数据输入接口数据输入接口n必须具有三态输出能力,以便与总线挂接必须具有三态输出能力,以便与总线挂接n外设有数据保持能力时可用三态门实现n外设无数据保持能力时用三态输出的锁存器实现n数据输出接口数据输出接口n常用锁存器实现 n三态门:高电平、低电平、三态门:高电平、低电平、高阻态高阻态n通常一个器件中包含8个三态门n常用芯片:74LS244(教材图6.3)n应用例子:开关接口n工作波形图如下:A0A15IOR#译码输出D0D7开关状态开关状态地址有效地址有效简单的输入接口举例简单的输入接口举例n接口电路图如下:83FCH83
9、FFH译码器n锁存器:由锁存器:由D触发器构成触发器构成n通常一个器件包含8个D触发器n常用芯片:(教材图6.5、图6.6)n74LS273n74LS374(具有三态输出的锁存器,内部结构见图6.8)n应用例子:发光二极管接口简单的输出接口举例简单的输出接口举例译译码码器器=1=1.+5VRD0D7CPQ0Q7.D0D7A0A15IOW#74LS273R输入输入/输出接口综合应用例子输出接口综合应用例子n根据开关状态在根据开关状态在7段数码管上显示数字或符号段数码管上显示数字或符号n共阳极7段数码管结构见教材图6.10n用74LS273作为输出接口,把数据送到7段数码管n74LS273的地址假
10、设为F0Hn用74LS244作为输入口,读入开关K0K3的状态n74LS244的地址假设为F1Hn当开关的状态分别为00001111时,在7段数码管上对应显示0Fn(7段码表见下页) 符号形状7段码.gfedcba符号形状7段码.gfedcba000111111801111111100000110901100111201011011A01110111301001111B01111100401100110C00111001501101101D01011110601111101E01111001700000111F01110001O1 I1O2 I2O3 I3O4 I4#E1 K0K3+5VGG2
11、AG2BCBA1174LS244D0 Q0 | Q1D7 Q2 Q3 Q4CP Q5 Q6 Q7 abcdefgDP74068个个反相器反相器74LS273Rx81174LS138D0D7IOW#IOR#Y0Y1F0H = 0000 0000 1111 0000F1H = 0000 0000 1111 0001&1A7A4A15A8A3A2A1A0D0D1D2D3译码电路译码电路相应程序段如下相应程序段如下:Seg7DB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,67H,77H,7CH,39H,5EH,79H,71HLEABX, Seg7;取;取7段码表基地址段码
12、表基地址MOVAH, 0GO:MOVDX, 0F1H;开关接口的地址为;开关接口的地址为F1HINAL, DX;读入开关状态;读入开关状态ANDAL, 0FH;保留低;保留低4位位MOVSI, AX;作为;作为7段码表的表内位移量段码表的表内位移量MOVAL, BX+SI ;取;取7段码段码MOVDX, 0F0H;7段数码管接口的地址为段数码管接口的地址为F0HOUTDX, ALJMPGO6.3 输入输出的控制方式输入输出的控制方式 n主机与外设之间数据传送的控制方式有以下主机与外设之间数据传送的控制方式有以下四种:四种:n无条件传送n查询式传送n中断方式传送n直接存储器存取(DMA, Dir
13、ect Memory Access)6.3.1 无条件传送方式无条件传送方式n适用于适用于总是处于准备好状态总是处于准备好状态的外设的外设n以下外设可采用无条件传送方式:以下外设可采用无条件传送方式:n开关n发光器件(如发光二极管、7段数码管、灯泡等)n继电器n步进电机n优点:软件及接口硬件简单优点:软件及接口硬件简单n缺点:只适用于简单外设,适应范围较窄缺点:只适用于简单外设,适应范围较窄6.3.2 查询方式传送查询方式传送n适用于外设并不总是准备好,而且对传送速适用于外设并不总是准备好,而且对传送速率、传送效率要求不高的场合。率、传送效率要求不高的场合。nCPU在与外设交换数据前必须询问外
14、设状在与外设交换数据前必须询问外设状态态“你准备好没有?你准备好没有?”n对外设的要求:应提供设备状态信息对外设的要求:应提供设备状态信息n对接口的要求:需要提供状态端口对接口的要求:需要提供状态端口n优点:软件比较简单优点:软件比较简单n缺点:缺点:CPU效率低,数据传送的实时性差,效率低,数据传送的实时性差, 速度较慢速度较慢查询方式的流程图查询方式的流程图超时超时?READY?READY?与外设进与外设进行数据交换行数据交换超时错超时错读入并测试外设状态读入并测试外设状态YNYN传送完?传送完?防止死循环防止死循环复位计时器复位计时器NY注:多个外设时,查注:多个外设时,查询流程见教材图
15、询流程见教材图6.156.15例:用查询方式进行输出例:用查询方式进行输出外设状态端口地址为外设状态端口地址为3FBH,第,第5位位(bit5)为状态标志为状态标志(=1忙,忙,=0准备好)准备好)外设数据端口地址为外设数据端口地址为3F8H,写入数据会使状态标志,写入数据会使状态标志置置1 ;外设把数据读走后又把它置;外设把数据读走后又把它置0。试画出其电路图。(电路图见下页)试画出其电路图。(电路图见下页)D5D7-D0A9|A31&A15|A101IOWD7-D03F8H外外设设D7D6D5D4D3D2D1D0BUSYCPQ7Q6Q5Q4Q3Q2Q1Q0状态端口状态端口GG2AG2BCB
16、AA2A1A074LS138Y01IORY3OE74LS374CPQQDSSTROBE3FBH程序段?程序段?6.3.3 中断方式传送中断方式传送nCPU无需循环查询外设状态,而是外部设备无需循环查询外设状态,而是外部设备在需要进行数据传送时才中断在需要进行数据传送时才中断CPU正在进行正在进行的工作,让的工作,让CPU来为其服务。即来为其服务。即CPU在没有在没有外设请求时可以去做更重要的事情,有请求外设请求时可以去做更重要的事情,有请求时才去传输数据,从而大大提高了时才去传输数据,从而大大提高了CPU的利的利用率。用率。n优点:优点:CPU效率高,实时性好,速度快。效率高,实时性好,速度快
17、。n缺点:程序编制较为复杂。缺点:程序编制较为复杂。6.3.4 DMA传输传输 n前面三种前面三种I/O方式都需要方式都需要CPU作为中介:作为中介: 外设外设 CPU 内存内存 两个含义:两个含义:1)软件:外设与内存之间的数据传送是通过)软件:外设与内存之间的数据传送是通过CPU执行程序来完成的(执行程序来完成的(PIO方式);方式);2)硬件:)硬件:I/O接口和存储器的读写控制信号、地接口和存储器的读写控制信号、地址信号都是由址信号都是由CPU发出的(总线由发出的(总线由CPU控制)。控制)。n 缺点:程序的执行速度限定了传送的最大速缺点:程序的执行速度限定了传送的最大速度(约为几十度
18、(约为几十KB/秒)秒)解决:解决:DMA传输传输 nDMA传输传输: 外设外设 内存内存n外设直接与存储器进行数据交换外设直接与存储器进行数据交换 ,CPU不再担不再担当数据传输的中介者;当数据传输的中介者;n总线由总线由DMA控制器(控制器(DMAC)进行控制()进行控制(CPU要放弃总线控制权),内存要放弃总线控制权),内存/外设的地址和读写外设的地址和读写控制信号均由控制信号均由DMAC提供。提供。n优点:数据传输优点:数据传输由由DMA硬件来控制,数据硬件来控制,数据直直接在内存和外设之间交换,可以达到很高的接在内存和外设之间交换,可以达到很高的传输速率(可达几传输速率(可达几MB/
19、秒)秒)几个基本概念几个基本概念n总线控制权、总线控制权、mater、slavenDMAC编程周期:编程周期:slavenDMAC控制总线进行数据传输周期:控制总线进行数据传输周期:masternDMA的数据传输形式的数据传输形式:基本的:基本的:MEMI/O扩充的:扩充的:MEMMEM I/O I/ODMA传送原理示意图传送原理示意图 系统总线系统总线CPUDMAC存储器存储器外设接口外设接口AENIOWMEMWMEMRIORMEMWMEMRIOWIORAENHOLDHLDADRQDACKAENIOWIORMEMWMEMR 外设发出外设发出DMADMA请求请求 DMAC DMAC向向CPUC
20、PU申请总线申请总线 CPU CPU完成当前总线周期后完成当前总线周期后响应,并释放总线控制权响应,并释放总线控制权 DMAC DMAC得到总线控制权,并发出得到总线控制权,并发出DMADMA响应信号响应信号 由由DMACDMAC发出各种控制信号,控制外设与存储器之发出各种控制信号,控制外设与存储器之 间的数据传送间的数据传送 数据传送完后,数据传送完后,DMACDMAC撤销撤销HOLDHOLD信号信号 CPUCPU释放释放HLDAHLDA信号,并重新控制总线信号,并重新控制总线nDMA控制器的工作过程控制器的工作过程1)当外设准备好,可以进行)当外设准备好,可以进行DMA传送时,外设向传送时
21、,外设向DMA控制器发出控制器发出“DMA传送请求传送请求”信号(信号(DRQ);2)DMA控制器收到请求后,向控制器收到请求后,向CPU发出发出“总线总线请求请求”信号信号HOLD,表示希望占用总线;,表示希望占用总线;3)CPU在完成当前总线周期后会立即对在完成当前总线周期后会立即对HOLD信信号进行响应。响应包括两个动作:一是号进行响应。响应包括两个动作:一是CPU将数据将数据总线、地址总线和相应的控制信号线均置为高阻态总线、地址总线和相应的控制信号线均置为高阻态,由此放弃对总线的控制权。另一方面,由此放弃对总线的控制权。另一方面,CPU向向DMA控制器发出控制器发出“总线响应总线响应”
22、信号(信号(HLDA)。)。4)DMA控制器收到控制器收到HLDA信号后,就开始控制总信号后,就开始控制总线,并向外设发出线,并向外设发出DMA响应信号响应信号DACK;nDMA控制器的工作过程(续)控制器的工作过程(续)5)DMA控制器送出地址信号和相应的控制信号,控制器送出地址信号和相应的控制信号,实现外设与内存或内存与内存之间的直接数据传送;实现外设与内存或内存与内存之间的直接数据传送;例如,向例如,向I/O接口发出读信号,同时往地址总线上发接口发出读信号,同时往地址总线上发出存储器的地址和存储器写信号和出存储器的地址和存储器写信号和AEN信号,即可从信号,即可从外设向内存传送一个字节。
23、外设向内存传送一个字节。6)DMA控制器自动修改地址和字节计数器,并判控制器自动修改地址和字节计数器,并判断是否需要重复传送操作。当规定的数据传送完后,断是否需要重复传送操作。当规定的数据传送完后,DMA控制器就撤销发往控制器就撤销发往CPU的的HOLD信号。信号。CPU检检测到测到HOLD失效后,紧接着撤销失效后,紧接着撤销HLDA信号,并在下信号,并在下一时钟周期重新开始控制总线。一时钟周期重新开始控制总线。 nDMA的三种传输方式的三种传输方式:n连续传送(块传送)连续传送(块传送)nDMAC申请到总线后,将一块数据传送完后才释放总申请到总线后,将一块数据传送完后才释放总线,而不管中间线
24、,而不管中间DREQ是否有效。是否有效。n单次传送(每次传送一个字节)单次传送(每次传送一个字节)n每个每个DMA周期只传送一个字节就立即释放总线。周期只传送一个字节就立即释放总线。n按需传送(猝发传送)按需传送(猝发传送)n只要只要I/O接口的数据缓冲可用,就进行传送。接口的数据缓冲可用,就进行传送。 (注:注:I/O接口需要有一定大小的接口需要有一定大小的FIFO缓冲缓冲)YN允许允许DMADMA请求?请求?DMAC请求总线请求总线CPU响应响应, DMAC获总线控制权获总线控制权DMA传送一个字节传送一个字节块结束?块结束?地址增量,计数器减量地址增量,计数器减量DMAC释放总线释放总线
25、Yn数据块传送数据块传送NNYN允许允许DMADMAC请求总线请求总线CPU响应响应, DMAC获总线控制权获总线控制权DMA传送一个数据传送一个数据块结束?块结束?释放总线至少一个总线周期释放总线至少一个总线周期地址增量,计数器减量地址增量,计数器减量DMAC释放总线释放总线Yn每次传送一个字节每次传送一个字节测试测试I/O的的DREQ DMA请求?请求?NYCPU响应响应, DMAC获总线控制权获总线控制权DMA传送一个字节传送一个字节块结束?块结束?测试测试I/O的的DREQ 有效?有效?地址增量,计数器减量地址增量,计数器减量释放总线,请求中断释放总线,请求中断无效,释放总线无效,释放
26、总线允许允许DMADMA请求?请求?DMAC请求总线请求总线n按需传送按需传送YNYN一个总线周期一个总线周期TDMAC控制总线,共传送控制总线,共传送n个数据个数据DMA1DMA2DMAnCPU重新控制总线重新控制总线CPU对总线控制对总线控制连续传送连续传送TDMA共传送共传送n个数据个数据DMA1DMA2DMAn单次传送单次传送DMA3T按需传送按需传送DMA传送传送k个数据个数据DMA传送传送n-k个数据个数据FIFO可用可用FIFO满满FIFO可用可用FIFO满满图例:图例:DMA传输方式示意图传输方式示意图:6.4 中断技术中断技术n6.4.1 中断的基本概念中断的基本概念n什么是
27、中断什么是中断?n与生活场景的比较与生活场景的比较正在看书正在看书电话铃响电话铃响接电话接电话继续看书继续看书执行程序执行程序事件发生事件发生事件处理事件处理继续执行程序继续执行程序中断处理中断处理中断请求及响应中断请求及响应实际场景实际场景计算机计算机中断返回中断返回中断的定义中断的定义 nCPU执行程序时,由于发生了某种随机执行程序时,由于发生了某种随机的事件的事件(外部或内部外部或内部),引起,引起CPU暂时中暂时中断正在运行的程序,转去执行一段特殊断正在运行的程序,转去执行一段特殊的服务程序的服务程序(称为中断服务程序或中断处称为中断服务程序或中断处理程序理程序),以处理该事件,该事件
28、处理完,以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一后又返回被中断的程序继续执行,这一过程称为中断。过程称为中断。中断源中断源n引起引起CPU中断的事件中断的事件中断源。例如:中断源。例如:n外设外设请求输入输出数据,报告故障等请求输入输出数据,报告故障等n事件事件掉电、硬件故障、软件错误、非法操作、定时掉电、硬件故障、软件错误、非法操作、定时时间到等时间到等n中断源分为:外部中断、内部中断中断源分为:外部中断、内部中断n内部中断:内部中断:CPU内部执行程序时自身产生的中断内部执行程序时自身产生的中断n外部中断:外部中断:CPU以外的设备、部件产生的中断以外的设备、部件产生的
29、中断n 8086/8088的外部中断信号:的外部中断信号:INTR、NMInINTR可屏蔽中断请求,高电平有效,受可屏蔽中断请求,高电平有效,受IF标志的控标志的控制。制。IF=1时,执行完当前指令后时,执行完当前指令后CPU对它作出响应。对它作出响应。 nNMI非屏蔽中断请求,上升沿有效,任何时候非屏蔽中断请求,上升沿有效,任何时候CPU都要响应此中断请求信号。都要响应此中断请求信号。为何计算机中要引入中断?为何计算机中要引入中断?n提高数据传输率;提高数据传输率;n避免了避免了CPU不断检测外设状态的过程,提不断检测外设状态的过程,提高了高了CPU的利用率。的利用率。n实现对特殊事件的实时
30、响应。如多任务系实现对特殊事件的实时响应。如多任务系统操作系统中:统操作系统中: n缺页中断n设备中断n各类异常n实时钟,。等中断过程中断过程n五个步骤:五个步骤:n中断请求n中断判优(有时还要进行中断源识别)n中断响应n中断服务n中断返回以下以外部中断外部中断为主介绍这五个步骤。1)中断请求)中断请求n外设接口(中断源)发出中断请求信号,送到外设接口(中断源)发出中断请求信号,送到CPU的的INTR或或NMI引脚;引脚;n中断请求信号:边沿请求,电平请求中断请求信号:边沿请求,电平请求例如,例如,NMI为边沿请求,为边沿请求,INTR为电平请求为电平请求n中断请求信号应保持到中断被处理为止;
31、中断请求信号应保持到中断被处理为止;nCPU响应中断后,中断请求信号应及时撤销。响应中断后,中断请求信号应及时撤销。n在在8086/8088系统中,外设的中断要经过系统中,外设的中断要经过8259A可编程中断控制器可编程中断控制器(PIC)的排队判优后向的排队判优后向CPU发出:发出: (I/O接口接口) PIC CPUn12.1)中断源识别)中断源识别n计算机中的中断源有很多,计算机中的中断源有很多,CPU必须识别是必须识别是哪一个设备产生中断。识别中断源有两个方哪一个设备产生中断。识别中断源有两个方法:法:n软件查询。将中断信号从数据总线读入,用程序软件查询。将中断信号从数据总线读入,用程
32、序进行判别,如教材图进行判别,如教材图6.18和图和图6.19。n中断矢量法。由中断源提供中断类型号,中断矢量法。由中断源提供中断类型号,CPU根根据类型确定中断源。(据类型确定中断源。(8086/8088即采用此种即采用此种方法)方法)2.2)中断判优)中断判优n多个中断源产生中断,多个中断源产生中断,CPU首先为谁服务?首先为谁服务?中断优先级排队问题。中断优先级排队问题。n中断优先级控制要处理两种情况:中断优先级控制要处理两种情况:n对同时产生的中断:应首先处理优先级别较高的中断;若优先级别相同,则按先来先服务的原则处理;n对非同时产生的中断:低优先级别的中断处理程序允许被高优先级别的中
33、断源所中断即允许中断嵌套。n中断优先级的控制方法中断优先级的控制方法n硬件判优硬件判优链式判优、并行判优(中断向量法)链式判优、并行判优(中断向量法)n软件判优软件判优顺序查询中断请求,先查询的先服务(即先查询的优顺序查询中断请求,先查询的先服务(即先查询的优先级别高)先级别高)n通常将通常将中断判优中断判优与与中断源识别中断源识别合并在一起进行处理。合并在一起进行处理。nx86系统中,这项任务由系统中,这项任务由PIC和和CPU共同完成。共同完成。INTAinCPUINTAINTR外设外设1 1外设外设2 2外设接口外设接口1 1菊花链菊花链逻辑电路逻辑电路外设接口外设接口2 2外设外设3
34、3外设接口外设接口3 311菊花链菊花链逻辑电路逻辑电路菊花链菊花链逻辑电路逻辑电路IREQIREQIREQ中断确认中断确认链式判优电路原理图(教材图链式判优电路原理图(教材图) INTAinINTAin中断确认中断确认中断确认中断确认菊花链逻辑电路菊花链逻辑电路INTAinIREQINTR&=1 1INTAoutDB三态门中断向量码E外设接口外设接口中断确认中断确认菊花链菊花链逻辑电路逻辑电路3)中断响应)中断响应n在每条指令的最后一个时钟周期,在每条指令的最后一个时钟周期,CPU检测检测INTR或或NMI信号。若以下条件成立,则信号。若以下条件成立,则CPU响应中断:响应中断:n当前指令执
35、行完。对INTR,还应满足以下条件n当前指令是STI和和IRET,则下条指令也要执行完。n当前指令带有LOCK、REP等指令前缀时,则把它们看成一个整体,要求完整地执行完;n对INTR,CPU应处于开中断状态,即IF=1;n当前没有复位(RESET)和保持(HOLD)信号。n若NMI和 INTR 同时发生,则首先响应NMI。3)中断响应(续)中断响应(续)nCPU中断响应时,要做下述三项工作:中断响应时,要做下述三项工作:n向中断源发出INTA中断响应信号;n断点保护,包括CS、IP和PSW(FLAGS)。这主要是保证中断结束后能返回被中断的程序。n获得中断服务程序首地址(入口)。如何得到中断
36、处理程序的首地址?n固定入口法n中断向量法常用4)中断处理(中断服务)中断处理(中断服务)n中断服务子程序特点中断服务子程序特点n为”远”过程(类型为FAR)n要用IRET指令返回n中断服务子程序要做的工作中断服务子程序要做的工作n保护现场(PUSH regs) n开中断(STI) n进行中断处理 n恢复现场(POP regs) n中断返回(IRET) 5)中断返回)中断返回n执行中断返回指令执行中断返回指令IRETnIRET指令将使CPU把堆栈内保存的断点信息弹出到IP、CS和FLAG中,保证被中断的程序从断点处能够继续往下执行。IPLIPHCSLCSHFLAGLFLAGHSPIPLIPHC
37、SLCSHFLAGLFLAGHSPIPCSFLAG进入中断服务程序时中断返回后6.4.2 8088的中断系统的中断系统 n与中断有关的控制线为:与中断有关的控制线为:NMI、INTR、INTA#n8088系统的中断源系统的中断源n内部中断n除法溢出:类型号0,商大于目的操作数所能表达的范围时产生。n单步中断:类型号1,TF=1时产生(当前指令需执行完)n断点中断:类型号3,这是一个软件中断,即INT 3指令。n溢出中断:类型号4,这是一个软件中断,即INTO指令。n软件中断:即INT n指令,类型号n(0-255)。n外部中断n非屏蔽中断NMI:类型号2,不可用软件屏蔽,CPU必须响应它。n可
38、屏蔽中断INTR:类型号由PIC提供。IF=1时CPU才能响应。NMIINTR中断逻辑中断逻辑软件中断指令软件中断指令溢出中断溢出中断除法错除法错单步中断单步中断非屏蔽中断请求非屏蔽中断请求中断控中断控制器制器8259APIC8086/8088CPU8086/8088CPU内部逻辑内部逻辑断点中断断点中断8086/8088中断源类型中断源类型可可屏屏蔽蔽中中断断请请求求n43012中断源的识别中断源的识别n8088系统采用中断类型码来识别不同的中系统采用中断类型码来识别不同的中断源,断源,每个中断源都有一个与它相对应的中每个中断源都有一个与它相对应的中断类型码断类型码 。n溢出、断点、除法溢出
39、、单步、非屏蔽中断的类型码为固定值固定值n软件中断的类型码由指令给出由指令给出n可屏蔽中断的类型码由由PIC给出给出nCPU响应响应INTR中断时,会产生两个中断响中断时,会产生两个中断响应总线周期应总线周期(教材图教材图6.24),要求,要求PIC在第在第2个个中断响应总线周期把中断类型码放到数据总中断响应总线周期把中断类型码放到数据总线上,供线上,供CPU读入。读入。中断向量表(中断向量表(IVT) n存放各类中断的存放各类中断的中断服务程序的入口地址中断服务程序的入口地址(段和偏移)(段和偏移)中断向量中断向量 n表的地址位于内存的表的地址位于内存的00000H003FFH,大,大小为小
40、为1KB,共,共256个中断向量个中断向量n每个中断向量占用每个中断向量占用4 Bytes,低字为段内偏,低字为段内偏移,高字为段基址移,高字为段基址n根据中断类型号根据中断类型号获得中断服务程序入口的方获得中断服务程序入口的方法法: (n为为中断类型号中断类型号)n中断向量在中断向量在IVT中的存放地址中的存放地址4n中断向量表的初始化中断向量表的初始化n初始化初始化将中断服务程序的入口地址放入将中断服务程序的入口地址放入向量表向量表 例:中断类型码为例:中断类型码为48H的中断处理子程序的的中断处理子程序的名字为名字为int48h,编写程序段将该中断处理子,编写程序段将该中断处理子程序的入
41、口地址放入向量表。程序的入口地址放入向量表。中断向量表的初始化中断向量表的初始化 CLI MOV AX,0 MOV DS,AX MOV SI,48H*4 MOV AX,OFFSET int48h MOV SI,AX MOV AX,SEG int48h MOV SI+2,AX STI8086/8088 CPU的中断响应过程的中断响应过程 n内部中断响应过程内部中断响应过程 n无INTA#周期n中断类型码固定或由指令给出n响应过程主要步骤: PUSH FLAG IF=0 PUSH CS PUSH IP 取中断向量送入取中断向量送入IP和和CS中断响应过程(续)中断响应过程(续)n外部中断响应过程外
42、部中断响应过程n非屏蔽中断,与内部中断响应过程类似 n可屏蔽中断(时序见教材图6.24) INTA#(1),),PIC进行优先级排队判优处理进行优先级排队判优处理 INTA#(2),),PIC把中断类型码放到把中断类型码放到DB上,上,CPU读入读入 PUSH FLAG IF=0 PUSH CS PUSH IP 取中断向量送入取中断向量送入IP和和CS与内部中断一样与内部中断一样8088系统中各中断的优先级系统中各中断的优先级n优先级从高到低顺序如下:优先级从高到低顺序如下:n内部中断nNMInINTRn单步中断NYNYNNNNNYY执行指令执行完否?取指令IF=1?内部中断?NMI?INTR
43、?TF=1?类型码=0255类型码=2类型码=1中断响应,读回类型码FLAG入栈TEMPTFTF=TF=0CS、IP入栈计算向量表地址高字CS低字IP执行中断服务程序NMI?TEMP=1?转入中断服务程序恢复CS和IP恢复FLAGS返回被中断的程序YYYYNIRET指令的操作8086/8088的的中断处理流程中断处理流程NMI、INTR、单步和除法错单步和除法错中断同时产生中断同时产生时的中断处理时的中断处理过程过程DIVTF=1IF=1INTRNMIPUSH FLAGS、CS、IPCLEAR IF & TF,中断入口CS:IP除法错除法错NMI(IF、TF = 0)PUSH FLAGS、CS
44、、IPCLEAR IF & TF,中断入口CS:IPNMI中断处理程序除法错中断处理程序(IF、TF = 0) 返回返回执行下条指令识别出INTR(IF、TF = 1) 返回返回INTR仍然有效仍然有效继续单步执行程序继续单步执行程序INTR中断处理程序INTRPUSH FLAGS、CS、IPCLEAR IF & TF,中断入口CS:IP单步单步 (IF、TF = 0)PUSH FLAGS、CS、IPCLEAR IF & TF,中断入口CS:IP单步中断处理程序(IF、TF = 0) 返回返回(IF、TF = 1) 返回返回6.5 可编程中断控制器可编程中断控制器8259AnPIC,Progr
45、ammable Interrupt Controllern可对可对8个中断源实现优先级控制个中断源实现优先级控制 n可扩展至对可扩展至对64个中断源实现优先级控制个中断源实现优先级控制 n可编程设置不同工作方式可编程设置不同工作方式n根据中断源向根据中断源向x86提供不同中断类型码提供不同中断类型码n引脚分配及功能见教材图引脚分配及功能见教材图6.266.5.18259A的内部结构的内部结构n8259A的内部结构(的内部结构(教材图教材图6.27)n中断请求寄存器中断请求寄存器IRRn保存从保存从IR0IR7来的中断请求信号,某位来的中断请求信号,某位=1表示对应的表示对应的IRi有中有中断请
46、求断请求 n中断服务寄存器中断服务寄存器ISR n保存所有正在服务的中断源,某位保存所有正在服务的中断源,某位=1表示对应的表示对应的IRi中断正在被中断正在被服务服务 n中断屏蔽寄存器中断屏蔽寄存器IMRn存放中断屏蔽字,某位存放中断屏蔽字,某位=1表示对应的表示对应的IRi输入被屏蔽输入被屏蔽 n中断优先权判别电路中断优先权判别电路 n确定是否向确定是否向CPU发出中断请求,中断响应时确定发出中断请求,中断响应时确定ISR的哪位应置的哪位应置位及把相应中断的类型码放到数据总线上位及把相应中断的类型码放到数据总线上 6.5.2 8259A的工作过程的工作过程n8259A对中断请求的处理过程如
47、下:对中断请求的处理过程如下:n当某IRi有效时,IRR相应位置1n若有效的IRi未被屏蔽,则向CPU发出中断请求n检测到第1个INTA#信号后,置ISRi=1,IRRi=0 n检测到第2个INTA#信号后,把ISRi=1中最高优先级的中断类型码放到DB上n若工作在AEOI方式,在第2个INTA#结束时,使ISRi复位;否则由CPU发出EOI命令使ISRi复位6.5.3 8259A的工作方式的工作方式n8259A的工作方式有如下几类:的工作方式有如下几类:n中断优先方式与中断嵌套n中断结束处理方式 n屏蔽中断源的方式n中断触发方式n级联工作方式中断优先方式与中断嵌套中断优先方式与中断嵌套n中断
48、优先方式中断优先方式 两类优先级控制方式:固定优先级固定优先级和循环优先级循环优先级n固定优先级方式n所有中断请求IRi的中断优先级固定不变n优先级排列顺序可编程改变n加电后8259A的默认方式,默认优先级顺序从高到低为IR0IR7IR7IR6IR5IR4IR3IR2IR1IR07654321032107654最低级最高级最高级最低级优先级优先级IR7IR6IR5IR4IR3IR2IR1IR0默认优先级默认优先级优先级可编程改变优先级可编程改变中断优先方式与中断嵌套(续)中断优先方式与中断嵌套(续)n循环优先级方式 n中断源轮流处于最高优先级,即自动中断优先级循环n初始优先级顺序可用编程改变n
49、某中断请求IRi被处理后,其优先级别自动降为最低,原来比它低一级的中断上升为最高级 IR7IR6IR5IR4IR3IR2IR1IR07654321021076543最低级最高级最高级最低级ISR内容内容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服务结束以前的服务结束以前0101000001000000IR4的服务结束以后的服务结束以后ISRi中断优先方式与中断嵌套(续)中断优先方式与中断嵌套(续)n中断嵌套中断嵌套方式方式n在中断处理过程中允许被更高优先级的事件所中断称为中断嵌套。8259A有两种中断嵌套方式:n普通全嵌套方式(默认方式)普通全嵌套方式(默认方式) 一中断正被处理
50、时,只有一中断正被处理时,只有更高优先级更高优先级的事件可以打的事件可以打断当前的中断处理过程而被服务。断当前的中断处理过程而被服务。n特殊全嵌套方式特殊全嵌套方式 一中断正被处理时,允许一中断正被处理时,允许同级或更高优先级同级或更高优先级的事件的事件可以打断当前的中断处理过程而被服务。可以打断当前的中断处理过程而被服务。注注: 特殊全嵌套仅用于多个特殊全嵌套仅用于多个8259A级连时的主级连时的主8259A,而不能用于从属而不能用于从属8259A或单或单8259A系统。系统。D.主主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:一般嵌套方式:从片的从片的INT被主
51、片封被主片封锁,故更锁,故更高高级别的级别的IR0-IR2中断也无法中断也无法得到响应得到响应特殊嵌套方式:特殊嵌套方式:因主片不封锁从片的因主片不封锁从片的INT,故级别高的,故级别高的IR0-IR2中断可以得到响应。中断可以得到响应。( (但但IR3-IR7仍被本从仍被本从片封锁片封锁) )C.假定假定IR7发生中发生中断断,并获得服务并获得服务一般嵌套方式:一般嵌套方式:IR4的中断被服务的中断被服务时,这些中断将时,这些中断将被封锁。被封锁。B.特殊嵌套方式:特殊嵌套方式:IR4的中断被服的中断被服务 时 , 只 封 锁务 时 , 只 封 锁IR5-IR7。A.INTE.从从8259A
52、INTIR0IR1IR2IR3IR4IR5IR6IR7n一般全嵌套方式与特殊全嵌套方式的区别一般全嵌套方式与特殊全嵌套方式的区别 去去CPU中断结束处理方式中断结束处理方式n当某一当某一IRi中断被服务时,中断被服务时,ISR中的相应位中的相应位ISRi=1。当服务结束后,则必须清零该。当服务结束后,则必须清零该ISRi位。使位。使ISRi=0是通过向是通过向8259A发出中发出中断结束命令(断结束命令(EOI命令)实现的。命令)实现的。n三种三种EOI命令命令n自动EOI(AEOI)(自动EOI方式)n非指定EOI(NSEOI)(正常EOI方式)n指定EOI(SEOI)(特殊EOI方式) n
53、AEOI:在第2个INTA#结束时,由8259A使ISRi自动复位;n因不保留当前正在服务的中断的状态,故AEOI不能用于中断嵌套方式nSEOI:由CPU发出一条SEOI命令,该EOI命令中指出了所要复位的ISR的位号。 n用于特殊屏蔽方式nNSEOI:由CPU发出正常EOI命令,该EOI命令使ISRi=1的位中优先级最高的那一位复位。n用于普通全嵌套方式中断服务程序向从PIC发EOI命令读从PIC的ISR全0?向主PIC发EOI命令YIRET恢复现场Nn特殊全嵌套方式特殊全嵌套方式下的下的EOI处理处理n只有当从只有当从PIC的的中断全部处理完中断全部处理完后,才能向主后,才能向主PIC发发
54、EOI命令命令屏蔽中断源的方式屏蔽中断源的方式nIMR屏蔽字决定了屏蔽字决定了允许或禁止允许或禁止某位某位IRi所对应所对应的中断的中断:IMi=1 禁止,禁止, IMi=0 允许。允许。n特殊屏蔽方式:特殊屏蔽方式:n提供了允许较低优先级的中断能够得到响应的特殊手段。n原理:假定当前正在处理IR6,先进入特殊屏蔽方式,然后设置IM6=1。这时,除IR6外的所有中断请求均能得到响应。n特殊屏蔽方式中只能用SEOI命令结束中断。n特殊屏蔽例特殊屏蔽例:。 ;IR4中断处理程序中断处理程序CLIMOV AL,68H ;OCW3:0 1 1 0 1 0 0 0OUT 0C0H,AL ;设置特殊屏蔽方
55、式;设置特殊屏蔽方式IN AL,0C2H OR AL,10H ;屏蔽;屏蔽IR4OUT 0C2H,AL STI。 ;IR7请求,响应,返回请求,响应,返回。CLI ;为设命令字;为设命令字IN AL,0C2H ;读出屏蔽字;读出屏蔽字AND AL,0EFH ;清除;清除IMR4OUT 0C2H,ALMOV AL,48H ;OCW3:0 1 0 0 1 0 0 0OUT 0C0H,AL ;取消特殊屏蔽;取消特殊屏蔽STI。 ;继续;继续IR4中断服务中断服务MOV AL,20H ;OCW2:0 0 1 0 0 0 0 0 (EOI)OUT 0C0,ALIRET 中断触发方式中断触发方式n边沿触发
56、边沿触发nIRi出现上升沿表示有中断请求 n电平触发电平触发nIRi出现高电平表示有中断请求n在第在第1个个INTA#结束前,结束前,IRi必须保持高电平必须保持高电平 级联工作方式级联工作方式n单片单片8259A可支持可支持8个中断源;个中断源;n采用多片采用多片8259A级连,可最多支持级连,可最多支持64个中断个中断源。源。n片片8259A可支持可支持7n+1个中断源;个中断源;n级连时只能有一片级连时只能有一片8259A为主片,其余的均为主片,其余的均为从属片;为从属片;n涉及到的涉及到的8259A引脚包括:引脚包括:nCAS0-CAS2nSP#/EN#nIRinINT级连电路连接方法
57、级连电路连接方法6.5.4 8259A的编程使用的编程使用n8259A的控制命令分为的控制命令分为n初始化命令字初始化命令字ICWnICW1ICW4n向向8259A写入写入ICW的过程称为的过程称为初始化编程初始化编程n操作命令字操作命令字OCW nOCW1OCW3n向向8259A写入写入OCW的过程称为的过程称为操作方式编程操作方式编程8259A内部寄存器的寻址方法内部寄存器的寻址方法CS# RD# WR#A0D4D3读写操作读写操作010000写OCW2写OCW3写ICW1写ICW2,ICW3,ICW4,OCW1(顺序写入)00101x1xx00101xx读出IRR、ISR读出IMRn需要
58、需要CS#、A0、RD#、WR#和和D4、D3的配的配合合n内部寄存器的访问方法如下表:内部寄存器的访问方法如下表: 8259A的初始化顺序的初始化顺序 n8259的初始化流的初始化流程如图程如图n注意次序不可颠倒 写写ICW1写写ICW2级连?级连?写写ICW3需需ICW4?写写ICW4NNYY8259A的控制命令字的控制命令字n初始化初始化8259A必须从必须从ICW1开始开始n写写ICW1意味着重新初始化意味着重新初始化8259An写入写入ICW1后,后,8259A的状态如下:的状态如下:n清除清除ISR和和IMR(全全0);n将中断优先级设成初始状态:将中断优先级设成初始状态:IR0最
59、高,最高,IR7最低;最低;n设定为一般屏蔽方式;设定为一般屏蔽方式;n采用非自动中断结束方式;采用非自动中断结束方式;n状态读出逻辑预置为读状态读出逻辑预置为读IRR。ICW1初始化字初始化字nLTIM: 触发方式触发方式n=1 高电平触发n=0 上升沿触发nSNGL: 级连控制级连控制n=1 单片n=0 级连nIC4: ICW4控制控制n=1 要写ICW4n=0 不写ICW4(默认ICW4为全0)A0 D7D6 D5 D4 D3 D2 D1 D0 0 x x x 1 LTIM x SNGL IC4ICW2中断向量码中断向量码nT7T3: 中断向量码的高中断向量码的高5位位nT2T0: 最低
60、最低3位为中断源的序号位为中断源的序号IRnn000111分别对应分别对应IR0IR7n由由8259A根据中断源的序号自动填入根据中断源的序号自动填入 例如:例如:若若ICW2命令字为命令字为48H,则,则IR0的中断向量码为的中断向量码为48H,IR7的中断向量码为的中断向量码为4FH,等等。,等等。 A0 D7D6 D5 D4 D3 D2 D1 D0 1 T7 T6 T5 T4 T3 x x xICW3级连控制字级连控制字 n主片的级联控制字主片的级联控制字 nSi=1 对应对应IRi线上连接了从片线上连接了从片 A0 D7D6 D5 D4 D3 D2 D1 D0 1 S7 S6 S5 S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度版权维权合同2篇
- 2024年度花店绿植租赁合同3篇
- 居间工程设计2024年度合作协议5篇
- 《小儿支气管肺炎》课件
- 《手卫生规范管理》课件
- 2024电子商务平台知识产权保护合同2篇
- 2024版库房货物保管服务承包协议3篇
- 2024年度建筑工程质量保修检测合同3篇
- 工厂代加工的合同
- 《天狼指标功能介绍》课件
- 脑梗死伴高血压3级病例分析专题报告
- 孕妇心衰健康宣教
- 工程量计算表(模板)
- 急诊科的工作风险与安全防范措施
- 社区矫正法教育知识讲座
- 医疗健康管理项目推广运营方案
- 胃石症的护理查房
- 河道拉管施工方案
- 危大工程监理巡视检查用表
- 江苏省2023-2024学年四年级上学期数学期中备考卷一(南通专版)
- 常用材料物性一览表
评论
0/150
提交评论