输入输出之接口_第1页
输入输出之接口_第2页
输入输出之接口_第3页
输入输出之接口_第4页
输入输出之接口_第5页
已阅读5页,还剩198页未读 继续免费阅读

下载本文档

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

文档简介

输入输出之接口第一页,共204页。第二页,共204页。(I/O接口)I/O接口的定义把外设连接到总线上的一组逻辑电路的总称。实现外设与主机之间的信息交换。I/O接口要解决的问题速度匹配(Buffer)信号电平和驱动能力(电平转换器、驱动器)

信号形式匹配(A/D、D/A)

信息格式(字节流、块、数据包、帧)

时序匹配(定时关系)总线隔离(三态门)第三页,共204页。I/O地址译码与设备选择把选中的与总线相接,未选中的与总线隔离(高阻态)数据的缓冲与暂存缓解接口与CPU工作速度的差异输出接口有锁存环节输入接口有缓冲环节对外设进行监测、控制与管理,中断处理信号电平与类型的转换形式、格式、电平、功率、码制等

I/O接口的功能第四页,共204页。

I/O端口:

I/O信息的三种类型:数据、命令、状态。传送这三类信息的通道分别称为:数据端口(I、O)、命令端口(O)、状态端口(I)。不同外设具有的端口数各不相同,计算机中为每一个端口都赋予一个惟一编号——称为端口地址(或端口号)。端口有两种编址方式:统一编址和独立编址。I/O接口的编址方式第五页,共204页。I/O接口电路的基本结构第六页,共204页。

定义把外设接口与内存统一进行编址。各占据统一地址空间的不同部分。优点指令统一,灵活;访问控制信号统一,使用同一组的地址/控制信号。缺点内存可用地址空间减小例如:MCS-51单片机0地址空间(共1MB)内存地址(960KB)I/O地址(64KB)FFFFFHEFFFFHF0000H1.统一编址第七页,共204页。

定义:外设地址空间和内存地址空间相互独立。优点:内存地址空间不受I/O编址的影响缺点:I/O指令功能较弱,使用不同的读写控制信号00000H内存地址空间内存空间(1MB)I/O空间(64KB)FFFFHFFFFFHI/O地址空间0000H2.独立编址例如:

8088/8086微机系统第八页,共204页。MCS-51单片机第九页,共204页。8088/80862016第十页,共204页。例如:8088/8086系统

8088/8086总线A19-A0A15-A0MEMR、MEMWIOR、IOW、AEN存储器访问I/O访问D15/D7~D0D15/D7~D0第十一页,共204页。

采用I/O独立编址方式(但地址线与存储器共用)地址线上的地址信号用来区分:

/0

时为I/O地址/M地址I/O操作只使用20根地址线中的16/8根:A15/7~A0可寻址的I/O端口数为64K(65536)/256个I/O地址范围为0~FFFFH/0~FFH8088/8086CPU的I/O编址方式第十二页,共204页。

接口电路的基本结构简单接口电路数据线控制线状态线DB(D0-D7)CB(IOR、IOW)AB(A0-A15)数据输入寄存器(or三态门)数据输出寄存器(锁存器)状态寄存器(or三态门)命令寄存器译码电路控制逻辑接外设接主机第十三页,共204页。接口电路的典型结构从编程角度看,接口内部主要包括一个或多个CPU可以进行读/写操作的临时寄存器,又称I/O端口(Port)。各I/O端口由端口地址区分(80X8664K)----编址方式I/O端口1(状态端口)I/O端口2(数据端口)I/O端口3(控制端口)地址译码数据缓冲控制电路外设ABDBCBCPU数据端口:用于存放CPU与外设间传送的数据信息

状态端口:用于暂存外设的状态信息

控制端口:用于存放CPU对外设或接口的控制信息,控制外设或接口的工作方式。按存放信息的不同分类CPU对外设输入/输出的控制,通过对接口电路中各I/O端口的读/写操作完成。端口地址编号第十四页,共204页。

数据输入/输出寄存器(缓冲器/锁存器)——暂存输入/输出的数据。命令寄存器(锁存器)——存放控制命令,用来设定接口功能、工作参数和工作方式。状态寄存器(缓冲器)——保存外设当前状态,以供CPU读取。一个外设一般占用端口地址情况——数据I/O、命令、状态三个寄存器各占一个端口地址(共3个);有时把命令、状态两个寄存器共占一个端口地址(共2个);一些简单外设只有数据寄存器一个端口(共1个)。接口电路的基本结构(续)第十五页,共204页。简单接口电路(无条件传输)数据输入接口必须具有三态输出能力,以便与总线挂接外设有数据保持能力时—可用三态门实现外设无数据保持能力时—用三态输出的锁存器实现第十六页,共204页。

三态门:高电平、低电平、高阻态通常一个器件中包含8个三态门常用芯片:74LS244应用例子:开关接口工作波形图如下:A0~A15IOR译码输出D0~D7开关状态地址有效简单数据输入接口电路第十七页,共204页。CPU与外设间的数据传送方式I/O接口电路基础:三态缓冲器/锁存器问题:CPU与外设的工作速度不一致,尤其是当外设由其他CPU或时序电路控制时更加明显,应如何解决效率和可靠性。数据传送控制:使两者高效、可靠地进行数据传送(1)

无条件传送方式(2)

条件传送方式(查询方式

)(3)

中断传送方式(4)

DMA传送方式(DirectMemoryAccess)

存贮器直接存取方式四种传送方式(程序方式)第十八页,共204页。典型无条件传送方式接口电路(输入)该电路在CPU执行指令(当外设开关准备好后-开关动作时间固定)

MOVDX,284HINAL,DX功能:

将输入设备的数据读入CPU内AL中图中译码电路的作用:只当A15~A0上出现284H时,(即00000010

1000

0100B)输出0,其他输出1。三态缓冲器开关状态

DBIOR地址译码

AB

284H000D7~D0A15~A0与非IO总线74LS244E1/E2例:开关第十九页,共204页。典型无条件传送方式接口电路(输出)图中译码电路的作用:只当A15~A0上出现288H时,(即0000001010001000B)输出0,其他输出1。该电路在CPU执行指令(当外设LED指示灯准备好后—实际上一直处于准备好)

MOVAL,81H

MOVDX,288HOUTDX,AL

功能:

CPU内AL中的数据81H送至输出设备IO总线锁存器输出设备数据线IOW地址译码地址线

288H000D7~D0A15~A0与非例:LED指示灯74LS273第二十页,共204页。无条件传送方式

(同步传送方式)实现方法CPU不查询外设工作状态,与外设速度的匹配通过在软件上延时完成,在程序中直接用I/O指令,完成与外设的数据传送特点1.适用于外设动作时间已知,

前提:CPU与外设进行数据传送时,外设保证已准备好。如开关、发光器件(如发光二极管、7段数码管、灯泡等)、继电器、步进电机等。2.软硬件十分简单。(程序方式之一)第二十一页,共204页。条件传送方式(查询传送方式)实现方法:在与外设进行传送数据前,CPU先查询外设状态,当外设准备好后,再才执行I/O指令,实现数据传送。特点:1.CPU通过不断查询外设状态,实现与外设的速度匹配;2.CPU的工作效率低,响应速度慢;3.适用于简单、慢速的或实时性要求不高的外设.(程序方式之二)NY从状态端口读入状态信息从数据端口传送一个数据外设准备好否?编程流程第二十二页,共204页。第二十三页,共204页。查询方式输入例假设外设的状态端口为28CH,其中D7=1时,表示外设数据准备好外设的数据端口为288H。实现从外设读50H个字节到内存缓冲区buffer中。28CH端口状态端口288H端口数据端口地址译码数据缓冲控制电路输入外备CPU地址线数据线控制线状态信号数据信号I/O接口第二十四页,共204页。查询方式输入接口电路状态端口D7=1表示外设准备好输入装置+5vSTB三态缓冲器数据线288H

数据端口地址译码地址线

状态端口地址译码锁存器IOR

R

Q

D三态缓冲器D728CH

PC总线IORA15~A0D7~D0&&MOVDX,288HINAL,DXMOVDX,28CHINAL,DXBUSYD0:D7GNDREADYD7D6D0READY第二十五页,共204页。从28CH状态端口读入外设状态信息从288H数据端口读入一个字节数据YND7=1,外设准备好否?N50H个数据传送结束?Y编程从外设读入50H个字节到内存缓冲区buffer中流程图第二十六页,共204页。

STATUSEQU28CHMOVAX,SEGbuffer;取缓冲区首地址

MOVDS,AX

LEADI,bufferMOVCX,50H;传送个数

next:

MOVDX,STATUS

ask:

INAL,DX;从状态端口读入状态信息

TESTAL,1000

0000B;80H,检测D7位

JZ

ask;D7=0,继续查询MOVDX,288H

INAL,DX;从数据端口读入数据MOV[DI],AL;送缓冲区INCDI;修改缓冲区指针

LOOPnext;传送下一个….查询方式输入程序片段第二十七页,共204页。DMA传输方式前面3种I/O方式共性:都需要CPU作为中介:

外设

CPU

内存

两个含义:

1)软件:外设与内存之间的数据传送是通过CPU执行程序来完成的(PIO方式);

2)硬件:I/O接口和存储器的读写控制信号、地址信号都是由CPU发出的(总线由CPU控制)。

缺点:程序的执行速度限定了传送的最大速度(约为几十KB/秒)—解决办法:DMA传输外设

内存DMAC第二十八页,共204页。

DMA传送方式(直接存储器存取方式)

实现方法1.由专用接口芯片DMA控制器(称DMAC)控制传送过程,2.当外设需传送数据时,通过

DMAC向CPU发出总线请求HOLD

;3.CPU发出总线响应信号HLDA,释放总线;4.DMAC接管总线,控制外设、内存之间直接数据传送第二十九页,共204页。DMA

传送方式过程CPUDMAC内存外设总线响应总线请求(i8237)第三十页,共204页。第三十一页,共204页。DMAC内部包括四个基本寄存器

①地址寄存器:用于存取下一个要访问的内存单元的地址,地址寄存器的内容加1或减1操作,取决于DMAC的设计②字节计数器:用于存放尚未传送完毕字节的数量,字节计数器在DMA过程中自动作减1操作③控制寄存器:用于对DMAC操作的控制④状态寄存器:反映DMAC当前所处的状态,例如,数据块传输是否结束等状态信息第三十二页,共204页。HLDA发存储器地址传送数据传送结束?DMA结束修改地址指针图7.17DMA流程图DMA传送流程:第三十三页,共204页。DMA操作方式有哪些?1.周期挪用

CPU不访问存储器时的那些周期,用来进行DMA操作。2.周期扩展使用专门时钟电路需要DMA操作时,使CPU的时钟周期加宽,在加宽的时钟周期进行DMA操作。3.CPU停机方式最常见方式第三十四页,共204页。1.外设和内存之间,直接进行数据传送,不通过CPU,传送效率高。

适用于在内存与高速外设、或两个高速外设之间进行大批量数据传送。2.电路结构复杂,硬件开销较大。DMA传送方式的特点第三十五页,共204页。*I/O处理器控制方式(通道方式)第三十六页,共204页。几种数据传送方式特点?无条件传送:慢速外设需与CPU保持同步查询传送:简单实用,效率较低,硬件开销小中断传送:外设主动,可与CPU并行工作,但中断服务保护现场等需要额外时间开销,需要硬件开销进行中断管理DMA传送:DMAC控制,外设直接和存储器进行数据传送,适合大量、快速数据传送,需要硬件开销第三十七页,共204页。6.3输入输出的控制方式主机与外设之间数据传送的控制方式

有以下四种:无条件传送查询(条件)方式传送中断方式传送直接存储器存取(DMA,DirectMemoryAccess)第三十八页,共204页。6.3.1无条件传送方式适用场合:适用于总是处于准备好状态(定时固定或已知)的外设以下简单外设可采用无条件传送方式:开关发光器件(如发光二极管、7段数码管、灯泡等)继电器步进电机优点:软件及接口硬件简单缺点:只适用于简单外设,适应范围较窄第三十九页,共204页。6.3.2查询(条件)方式传送适用场合:适用于外设并不总是准备好,而且对传送速率、传送效率要求不高的场合。CPU在与外设交换数据前必须询问外设状态——“你准备好没有?”对外设的要求:应提供设备状态信息对接口的要求:需要提供状态端口优点:软件比较简单缺点:CPU效率低,数据传送的实时性差,速度较慢第四十页,共204页。查询方式的流程图超时?READY?与外设进行数据交换超时错读入并测试外设状态YNYN传送完?防止死循环复位计时器NY注:多个外设时,查询流程见教材图6.15第四十一页,共204页。例如:用查询方式进行输出

外设状态端口地址为3FBH,第5位(D5)为状态标志(=1忙,=0准备好)

外设数据端口地址为3F8H,写入数据会使状态标志置1;外设把数据读走后又把它置0。

试画出其电路图。(电路图见下页)第四十二页,共204页。D5D7-D0A9|A3≥1&A15|A10≥1IOWD7-D03F8H外设D7D6D5D4D3D2D1D0BUSYCPQ7Q6Q5Q4Q3Q2Q1Q0状态端口GG2AG2BCBAA2A1A074LS138Y0≥1IORY3OE74LS374CPQQDSSTROBE3FBH思考:

程序段?打印机(1忙/0闲)(=1忙,=0准备好)第四十三页,共204页。6.3.3中断方式传送概念:CPU无需循环查询外设状态,而是外部设备在需要进行数据传送时才中断CPU正在进行的工作,让CPU来为其服务。即CPU在没有外设请求时可以去做更重要的事情,有请求时才去传输数据,从而大大提高了CPU的利用率。优点:CPU效率高,实时性好,速度快。缺点:程序编制较为复杂。第四十四页,共204页。6.3.4DMA传输前面三种I/O方式共性:都需要CPU作为中介:

外设

CPU

内存

两个含义:

1)软件:外设与内存之间的数据传送是通过CPU执行程序来完成的(PIO方式);

2)硬件:I/O接口和存储器的读写控制信号、地址信号都是由CPU发出的(总线由CPU控制)。

缺点:程序的执行速度限定了传送的最大速度(约为几十KB/秒)—解决办法:DMA传输第四十五页,共204页。

DMA传输:

外设

内存外设直接与存储器进行数据交换,CPU不再担当数据传输的中介者;总线由DMA控制器(DMAC)进行控制(CPU要放弃总线控制权),内存/外设的地址和读写控制信号均由DMAC提供。优点:数据传输由DMA硬件来控制,数据直接在内存和外设之间交换,可以达到很高的传输速率(可达几MB/秒)第四十六页,共204页。几个基本概念总线控制权、mater、slaveDMAC编程周期:slave DMAC控制总线进行数据传输周期:masterDMA的数据传输形式:

基本的:MEM——I/O

扩充的:MEM——MEM I/O——I/O第四十七页,共204页。I/O电路的I/O接口(含DMAC)CPUDMA第四十八页,共204页。DMA传送原理示意图①系统总线CPUDMAC存储器外设接口AENIOWMEMWMEMRIORMEMWMEMRIOWIORAENHOLDHLDADRQDACK②③④⑤AENIOWIORMEMWMEMR①外设发出DMA请求②DMAC向CPU申请总线③CPU完成当前总线周期后响应,并释放总线控制权④DMAC得到总线控制权,并发出DMA响应信号⑤由DMAC发出各种控制信号,控制外设与存储器之间的数据传送⑥数据传送完后,DMAC撤销HOLD信号⑦CPU释放HLDA信号,并重新控制总线⑥⑦第四十九页,共204页。DMA控制器的工作过程:1)当外设准备好,可以进行DMA传送时,外设向DMA控制器发出“DMA传送请求”信号(DRQ);2)DMA控制器收到请求后,向CPU发出“总线请求”信号HOLD,表示希望占用总线;3)CPU在完成当前总线周期后会立即对HOLD信号进行响应。响应包括两个动作:一是CPU将数据总线、地址总线和相应的控制信号线均置为高阻态,由此放弃对总线的控制权。另一方面,CPU向DMA控制器发出“总线响应”信号(HLDA)。4)DMA控制器收到HLDA信号后,就开始控制总线,并向外设发出DMA响应信号DACK;第五十页,共204页。DMA控制器的工作过程(续)5)DMA控制器送出地址信号和相应的控制信号,实现外设与内存或内存与内存之间的直接数据传送;例如,向I/O接口发出读信号,同时往地址总线上发出存储器的地址和存储器写信号和AEN信号,即可从外设向内存传送一个字节。6)DMA控制器自动修改地址和字节计数器,并判断是否需要重复传送操作。当规定的数据传送完后,DMA控制器就撤销发往CPU的HOLD信号。CPU检测到HOLD失效后,紧接着撤销HLDA信号,并在下一时钟周期重新开始控制总线。第五十一页,共204页。总线保持/响应时序第五十二页,共204页。

DMA的三种传输方式:连续传送(块传送)DMAC申请到总线后,将一块数据传送完后才释放总线,而不管中间DREQ是否有效。单次传送(每次传送一个字节)每个DMA周期只传送一个字节就立即释放总线。按需传送(猝发传送)只要I/O接口的数据缓冲可用,就进行传送。(注:I/O接口需要有一定大小的FIFO缓冲)第五十三页,共204页。YN允许DMADMA请求?DMAC请求总线CPU响应,DMAC获总线控制权DMA传送一个字节块结束?地址增量,计数器减量DMAC释放总线Y数据块传送N第五十四页,共204页。NYN允许DMADMAC请求总线CPU响应,DMAC获总线控制权DMA传送一个数据块结束?释放总线至少一个总线周期地址增量,计数器减量DMAC释放总线Y每次传送一个字节测试I/O的DREQDMA请求?第五十五页,共204页。NYCPU响应,DMAC获总线控制权DMA传送一个字节块结束?测试I/O的DREQ有效?地址增量,计数器减量释放总线,请求中断无效,释放总线允许DMADMA请求?DMAC请求总线按需传送YNYN第五十六页,共204页。一个总线周期TDMAC控制总线,共传送n个数据DMA1DMA2DMAnCPU重新控制总线CPU对总线控制连续传送TDMA共传送n个数据DMA1DMA2DMAn单次传送DMA3T按需传送DMA传送k个数据DMA传送n-k个数据FIFO可用FIFO满FIFO可用FIFO满图例:DMA传输方式示意图:第五十七页,共204页。6.4中断技术6.4.1中断的基本概念什么是中断?与生活场景的比较正在看书电话铃响接电话继续看书执行程序事件发生事件处理继续执行程序中断处理中断请求及响应实际场景计算机中断返回第五十八页,共204页。中断的定义

CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(称为中断服务程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。INTIRET中断服务程序主程序×发生事件第五十九页,共204页。中断源定义:引起CPU中断的事件——中断源。例如:外设—请求输入输出数据,报告故障等事件—掉电、硬件故障、软件错误、非法操作、定时时间到等中断源分类:外部中断、内部中断内部中断:CPU内部执行程序(INTn等)时自身产生的中断外部中断:CPU以外的设备、部件产生的中断

8086/8088的外部中断信号:INTR、NMIINTR——可屏蔽中断请求,高电平有效,受IF标志的控制。IF=1时,执行完当前指令后CPU对它作出响应。NMI——非屏蔽中断请求,上升沿有效,任何时候CPU都要响应此中断请求信号。第六十页,共204页。计算机中要引入中断的原因?提高数据传输率;避免了CPU不断检测外设状态的过程,提高了CPU的利用率(并行操作)。实现对特殊事件的实时响应(实时处理/故障处理)。如多任务系统操作系统中:缺页中断设备中断各类异常实时时钟,…等第六十一页,共204页。中断过程五个步骤:中断请求中断判优/排队(有时还要进行中断源识别)中断响应中断服务/处理中断返回请求排队响应服务/处理返回IRET硬/软INTn主程序中断服务程序以下以外部中断为主介绍这五个步骤。第六十二页,共204页。1)中断请求外设接口(中断源)发出中断请求信号,送到CPU的INTR或NMI引脚;中断请求信号类型:边沿请求,电平请求 例如,NMI为边沿请求,INTR为电平请求中断请求信号应保持到中断被处理为止(防止重复响应);CPU响应中断后,中断请求信号应及时撤销。在8086/8088系统中,外设的中断要经过8259A可编程中断控制器(PIC)的排队判优后向CPU发出:

(I/O接口)

→PIC(8259)→CPU第六十三页,共204页。2.1)中断源识别计算机中的中断源有很多,CPU必须识别是哪一个设备产生中断。识别中断源有两个方法:软件查询。将中断信号从数据总线读入,用程序进行判别,如教材图6.18和图6.19。硬件法(中断矢量法)。由中断源提供中断类型号n,CPU根据类型确定中断源。(8086/8088即采用此种方法)第六十四页,共204页。2)中断判优多个中断源产生中断,CPU首先为谁服务? ——中断优先级排队问题。中断优先级控制要处理两种情况:对同时产生的中断:应首先处理优先级别较高的中断;若优先级别相同,则按先来先服务的原则FIFO处理;对非同时产生的中断:低优先级别的中断处理程序允许被高优先级别的中断源所中断——即允许中断嵌套。中断优先级的控制方法:硬件判优——链式判优、并行判优(中断向量法)软件判优——顺序查询中断请求,先查询的先服务(即先查询的优先级别高)通常将中断判优与中断源识别合并在一起进行处理。x86系统中,这项任务由PIC(8259)和CPU(8086/8088)共同完成。第六十五页,共204页。用软件确定中断优先权第六十六页,共204页。软件判优的特点查询方法的优点是:

(1)询问的次序即是优先权的次序。显然,最先询问的,优先权的级别最高。 (2)省硬件。不需要有判断与确定优先权的硬件排队电路。 但随之而来的缺点是: 由询问转至相应的服务程序入口的时间长,尤其是在中断源较多的情况下。第六十七页,共204页。硬件优先权排队电路1.中断优先权编码电路正在进行中断处理的外设的优先权编码8个新中断源8个中任一个有中断请求时,通过“或”门,即可有一个中断请求信号产生第六十八页,共204页。硬件编码器和比较器的优先权排队电路若有8个中断源,当任一个有中断请求时,通过“或”门,即可有一个中断请求信号产生,但它能否送至CPU的中断请求线,还要受比较器的控制(若优先权失效信号为低电平,则与门2关闭)。 8条中断输入线的任一条,经过编码器可以产生三位二进制优先权编码A2A1A0,优先权最高的线的编码为111,优先权最低的线的编码为000。而且若有多个输入线同时输入,则编码器只输出优先权最高的编码。第六十九页,共204页。正在进行中断处理的外设的优先权编码,通过CPU的数据总线,送至优先权寄存器,然后输出编码B2B1B0至比较器,以上过程是由软件实现的。 比较器比较编码A2A1A0与B2B1B0的大小,若A≤B,则“A>B”端输出低电平,封锁与门1,就不向CPU发出新的中断申请(即当CPU正在处理中断时,当有同级或低级的中断源申请中断时,优先权排队线路就屏蔽它们的请求);只有当A>B时,比较器输出端才为高电平,打开与门1,将中断请求信号送至CPU的INTR输入端,CPU就中断正在进行的中断处理程序,转去响应更高级的中断。第七十页,共204页。 若CPU不在进行中断处理时(即在执行主程序),则优先权失效信号为高电平,当有任一中断源请求中断时,都能通过与门2,发出INTR信号。这样的优先权电路,如何能做到转入优先权最高的外设的服务程序的入口呢?当外设的个数≤8时,则它们公用一个产生中断矢量的电路,它有三位由比较器的编码A2A1A0供给,就能做到不同的编码转入不同的入口地址。第七十一页,共204页。INTAinCPUINTAINTR外设1外设2外设接口1菊花链逻辑电路外设接口2外设3外设接口3≥1菊花链逻辑电路菊花链逻辑电路┇IREQIREQIREQ中断确认链式判优电路原理图(教材图6.20)

INTAinINTAin中断确认中断确认中断控制器2.雏菊花环式或称为链式优先权排队电路E第七十二页,共204页。菊花链逻辑电路INTAinIREQINTR&=1

≥1INTAoutDB三态门中断向量码nE外设接口中断确认菊花链逻辑电路第七十三页,共204页。3)中断响应在每条指令的最后一个时钟周期,CPU检测INTR或NMI信号。若以下中断响应条件成立,则CPU响应中断:当前指令执行完。有中断请求发出且没有被屏蔽掉(中断请求可送到CPU的INTR或NMI)。对INTR,还应满足以下特殊条件:当前指令是STI和IRET,则下条指令也要执行完。当前指令带有LOCK、REP等指令前缀时,则把它们看成一个整体,要求完整地执行完;对INTR,CPU应处于开中断状态,即IF=1;当前没有复位(RESET)和保持(HOLD)信号。若NMI和INTR同时发生,则首先响应NMI。第七十四页,共204页。3)中断响应(续)CPU中断响应时,要做下述几项工作:对INTR,向中断源发出INTA中断响应信号;自动关中断,即IF=TF=0(关可屏蔽中断和单步中断)

;断点保护,包括CS、IP和FLAGS。主要是保证中断结束后能返回被中断的程序----PUSHCS/IP/FLAGS获得中断服务程序首地址(入口)---JMPCS’:IP’如何得到中断处理程序的首地址?固定入口法----MCS-51单片机中中断向量法——常用,如:X86中为何关单步中断?第七十五页,共204页。4)中断处理(中断服务)中断服务子程序特点为”远”过程(类型为FAR或far)要用IRET指令返回---POPFLAGS/IP/CS中断服务子程序要做的工作保护现场(PUSH

reg’s)

开中断IF=1(STI)---允许中断嵌套进行中断处理---用户根据中断处理任务编写恢复现场(POP

reg’s)

中断返回(IRET)

中断返回IRET主程序中断服务程序保护现场PUSH开中断STI中断处理恢复现场POP关中断CLI开中断STI现场断点中断嵌套第七十六页,共204页。5)中断返回执行中断返回指令IRETIRET指令将使CPU把堆栈内保存的断点信息弹出到IP、CS和FLAGS中,保证被中断的程序从断点处能够继续往下执行。---相当于POPIP/CS/FLAGS

IPLIPHCSLCSHFLAGLFLAGHSPIPLIPHCSLCSHFLAGLFLAGHSPIPCSFLAG进入中断服务程序时中断返回后第七十七页,共204页。6.4.28088/8086的中断系统

8088/8086系统的中断源1内部中断除法溢出:类型号0,执行除法指令时,若发现除数为0或商大于目的操作数所能表达的范围时产生。单步中断:类型号1,TF=1时产生(当前指令需执行完)。断点中断:类型号3,这是一个软件中断,即INT3指令。一般用于程序调试,在断点中断服务程序中,可显示有关寄存器、存储单元等内容,以便程序员分析到断点为止程序是否正确。溢出中断:类型号4,这是一个软件中断,即INTO指令。

若算术指令的执行结果发生举出(OF=1),则执行指令后立即产生一个中断类型码为4的中断。软件中断:即INTn指令,类型号n(0-255)。第七十八页,共204页。单步中断---1型中断CPU每执行完一条指令都会检查陷阱标志TF的状态。若TF=1,则CPU就产生中断类型1的中断,使CPU转向单步中断的处理程序。单步中断可用于程序的调试,使CPU一次执行一条指令,从而能够逐条地观察程序运行情况。注意:(1)所有类型的中断在其处理过程中,CPU会自动地把状态标志压入堆栈,然后清除TF和IF。因此,当CPU进入单步中断处理程序时,就不再处于单步工作方式,而以正常方式工作。只有在单步处理结束时,从堆栈中弹出原来的标志,才使CPU又回到单步方式;

(2)8086/8088指令系统中无设置或清除TF标志指令,但可通过其他方式对TF置位或复位。PUSHFPHSHFPOPAXPOPAX

ORAX,0100H

;置位TF

ANDAX,0FEFFH;复位TFPUSHAXPUSHAXPOPFPOPFODITSZAPC1502467891011FLAGS第七十九页,共204页。2外部中断与中断有关的控制线为:NMI和INTR、INTA非屏蔽中断NMI:类型号2,不可用软件屏蔽,CPU必须响应它。可屏蔽中断INTR:类型号n由PIC(8259)提供。IF=1时CPU才能响应,CPU响应信号为INTA。第八十页,共204页。NMIINTR中断逻辑软件中断指令溢出中断除法错单步中断非屏蔽中断请求中断控制器8259APIC8086/8088CPU内部逻辑断点中断8086/8088中断源类型可屏蔽中断请求n43012n

内部/软件中断请求中断请求\排队\屏蔽INTA内部排队中断开关外部/硬件中断请求DB中断指令INTn软件硬件(n=0~255)第八十一页,共204页。中断源的识别8088/8086系统采用中断类型码n来识别不同的中断源。每个中断源都有一个与它相对应的中断类型码n

。溢出、断点、除法溢出、单步、非屏蔽中断的类型码为固定值(4、3、0、1、2)软件中断的类型码由指令INTn给出(n)可屏蔽中断的类型码由PIC(8259)给出(n)CPU响应INTR中断时,会产生两个中断响应总线周期INTA(教材p273图6.24),要求PIC在第2个中断响应总线周期把中断类型码n放到数据总线上,供CPU读入。第八十二页,共204页。INTR中断响应INTA周期时序nLOCK为最大模式下的总线封锁信号。它有效时,CPU锁定总线,不允许其他的总线控制设备申请使用系统总线。参见p273图6-24第八十三页,共204页。中断向量表(IVT)存放各类中断的中断服务程序的入口地址CS:IP(段CS和偏移IP)——中断向量

表的地址位于内存的00000H~003FFH,大小为1KB,共256个中断向量(中断向量表)每个中断向量占用4Bytes,低字为段内偏移IP,高字为段基址CS根据中断类型号n获得中断服务程序入口的方法:(n为中断类型号)中断向量在IVT中的存放地址=4×n(中断向量地址)第八十四页,共204页。中断向量表的初始化初始化——将中断服务程序的入口地址放入向量表

例:中断类型码n为48H的中断处理子程序的名字为int48h,编写程序段将该中断处理子程序的入口地址(中断向量)放入中断向量表。高8位低8位第八十五页,共204页。中断向量表的初始化

CLI

PUSHDSMOVAX,0;也可XORAX,AXMOVDS,AXMOVSI,48H*4MOVAX,OFFSETint48hMOV[SI],AXMOVAX,SEGint48hMOV[SI+2],AXPOPDS

STI

RETIInt48h48H*4第八十六页,共204页。8086/8088CPU的中断响应过程

内部中断响应过程:无INTA周期中断类型码固定(0、1、3、4)或由指令给出(n)响应过程主要步骤: ①PUSHFLAGS

②IF=TF=0(关可屏蔽中断和单步中断) ③PUSHCS ④PUSHIP ⑤取中断向量送入IP’和CS’PUSHCS/IP/FLAGSJMPCS’:IP’第八十七页,共204页。中断响应过程(续)外部中断响应过程非屏蔽中断NMI,中断类型码为固定(2)与内部中断响应过程类似可屏蔽中断INTR

①INTA(1)PIC进行优先级排队判优处理 ②INTA(2)PIC把中断类型码n放到DB上,CPU读入 ③PUSHFLAG

④IF=TF=0(关可屏蔽中断和单步中断) ⑤PUSHCS ⑥PUSHIP ⑦取中断向量送入IP’和CS’与内部中断一样第八十八页,共204页。8088/8086系统中各中断的优先级优先级从高到低顺序如下:内部中断(除单步中断外)NMIINTR单步中断高低第八十九页,共204页。NYNYNNNNNYY执行指令执行完否?取指令IF=1?内部中断?NMI?INTR?TF=1?类型码=0~255类型码=2类型码=1中断响应,读回类型码FLAG入栈TEMP←TFIF=TF=0CS、IP入栈计算向量表地址高字→CS低字→IP执行中断服务程序NMI?TEMP=1?转入中断服务程序恢复CS和IP恢复FLAGS返回被中断的程序YYYYNIRET指令的操作8086/8088的中断处理流程第九十页,共204页。NMI、INTR、单步和除法错中断同时产生时的中断处理过程DIVTF=IF=1INTRNMIPUSHFLAGS、CS、IPCLEARIF&TF,中断入口→CS:IP除法错NMI(IF=TF=0)PUSHFLAGS、CS、IPCLEARIF&TF,中断入口→CS:IPNMI中断处理程序除法错中断处理程序(IF=TF=0)返回执行下条指令识别出INTR(IF=TF=1)返回INTR仍然有效继续单步执行程序INTR中断处理程序INTRPUSHFLAGS、CS、IPCLEARIF&TF,中断入口→CS:IP单步

(IF=TF=0)PUSHFLAGS、CS、IPCLEARIF&TF,中断入口→CS:IP单步中断处理程序(IF、TF=0)返回(IF、TF=1)返回第九十一页,共204页。6.5可编程中断控制器8259APIC,ProgrammableInterruptController作用:CPU大门的“看门人”可对8个中断源实现优先级控制

(单个管8个)可扩展至对64个中断源实现优先级控制(9个管64个)

可编程设置不同工作方式(多套管理方案)根据中断源向x86提供不同中断类型码n(来访者1人1号)引脚分配及功能见右图8259A第九十二页,共204页。8259A内部结构第九十三页,共204页。8259A逻辑结构及连接第九十四页,共204页。6.5.1.8259A的内部结构8259A的内部结构(教材p276图6.27)中断请求寄存器IRR保存从IR0~IR7来的中断请求信号,某位=1表示对应的IRi有中断请求

中断服务寄存器ISR

保存所有正在服务的中断源,某位=1表示对应的IRi中断正在被服务

中断屏蔽寄存器IMR存放中断屏蔽字,某位=1表示对应的IRi输入被屏蔽

中断优先权判别电路确定是否向CPU发出中断请求,中断响应时确定ISR的哪位应置位及把相应中断的类型码放到数据总线上

第九十五页,共204页。6.5.28259A的工作过程8259A对中断请求的处理过程如下:当某IRi有效时,IRR相应位置1若有效的IRi未被屏蔽,则向CPU发出中断请求INT检测到第1个INTA信号后,置ISRi=1,IRRi=0

检测到第2个INTA信号后,把ISRi=1中最高优先级的中断类型码n放到DB上若工作在AEOI方式,在第2个INTA结束时,使ISRi复位;否则由CPU发出EOI命令使ISRi复位第九十六页,共204页。6.5.38259A的工作方式8259A的工作方式有如下几类:中断优先方式与中断嵌套中断结束处理方式

屏蔽中断源的方式中断触发方式级联工作方式第九十七页,共204页。中断优先方式与中断嵌套中断优先方式

两类优先级控制方式:固定优先级和循环优先级固定优先级方式所有中断请求IRi的中断优先级固定不变优先级排列顺序可编程改变加电后8259A的默认方式,默认优先级顺序从高到低为IR0~IR7IR7IR6IR5IR4IR3IR2IR1IR07654321032107654最低级最高级最高级最低级优先级IR7IR6IR5IR4IR3IR2IR1IR0默认优先级优先级可编程改变第九十八页,共204页。中断优先方式与中断嵌套(续)循环优先级方式中断源轮流处于最高优先级,即自动中断优先级循环初始优先级顺序可用编程改变某中断请求IRi被处理后,其优先级别自动降为最低,原来比它低一级的中断上升为最高级IR7IR6IR5IR4IR3IR2IR1IR07654321021076543最低级最高级最高级最低级ISR内容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服务结束以前0101000001000000IR4的服务结束以后ISRi第九十九页,共204页。8259A内部中断优先级电路第一百页,共204页。优先级的管理方式第一百零一页,共204页。中断优先方式与中断嵌套(续)中断嵌套方式在中断处理过程中允许被更高优先级的事件所中断称为中断嵌套。8259A有两种中断嵌套方式:普通全嵌套方式(默认方式)

一中断正被处理时,只有更高优先级的事件可以打断当前的中断处理过程而被服务。特殊全嵌套方式

一中断正被处理时,允许同级或更高优先级的事件可以打断当前的中断处理过程而被服务。注:

特殊全嵌套仅用于多个8259A级连时的主8259A,而不能用于从属8259A或单8259A系统。第一百零二页,共204页。D.主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:从片的INT被主片封锁,故更高级别的IR0-IR2中断也无法得到响应特殊嵌套方式:因主片不封锁从片的INT,故级别高的IR0-IR2中断可以得到响应。(但IR3-IR7仍被本从片封锁)C.假定IR3发生中断,并获得服务一般嵌套方式:IR4的中断被服务时,这些中断将被封锁。B.特殊嵌套方式:IR4的中断被服务时,只封锁IR5-IR7。A.INTE.从8259AINTIR0IR1IR2IR3IR4IR5IR6IR7一般全嵌套方式与特殊全嵌套方式的区别

去CPU第一百零三页,共204页。中断结束处理方式当某一IRi中断被服务时,ISR中的相应位ISRi=1。当服务结束后,则必须清零该ISRi位。使ISRi=0是通过向8259A发出中断结束命令(EOI命令)实现的。三种EOI命令自动EOI(AEOI)——(自动EOI方式)非指定EOI(NSEOI)——(正常EOI方式)指定EOI(SEOI)——(特殊EOI方式)第一百零四页,共204页。

AEOI:在第2个INTA结束时,由8259A使ISRi自动复位;因不保留当前正在服务的中断的状态,故AEOI不能用于中断嵌套方式SEOI:由CPU发出一条SEOI命令,该EOI命令中指出了所要复位的ISR的位号。用于特殊屏蔽方式NSEOI:由CPU发出正常EOI命令,该EOI命令使ISRi=1的位中优先级最高的那一位复位。用于普通全嵌套方式第一百零五页,共204页。中断服务程序┇向从PIC发EOI命令读从PIC的ISR全0?向主PIC发EOI命令YIRET恢复现场N特殊全嵌套方式下的EOI处理只有当从PIC的中断全部处理完后,才能向主PIC发EOI命令第一百零六页,共204页。屏蔽中断源的方式IMR屏蔽字决定了允许或禁止某位IRi所对应的中断:IMi=1禁止,IMi=0允许。特殊屏蔽方式:提供了允许较低优先级的中断能够得到响应的特殊手段。原理:假定当前正在处理IR6,先进入特殊屏蔽方式,然后设置IM6=1。这时,除IR6外的所有中断请求均能得到响应。特殊屏蔽方式中只能用SEOI命令结束中断。第一百零七页,共204页。特殊屏蔽例:

。;IR4中断处理程序 CLI MOVAL,68H;OCW3:01101000 OUT0C0H,AL;设置特殊屏蔽方式 INAL,0C2H ORAL,10H;屏蔽IR4 OUT0C2H,AL STI 。;IR7请求,响应,返回 。 CLI;为设命令字 INAL,0C2H;读出屏蔽字 ANDAL,0EFH;清除IMR4 OUT0C2H,AL MOVAL,48H;OCW3:010

01000 OUT0C0H,AL;取消特殊屏蔽 STI 。 ;继续IR4中断服务 MOVAL,20H;OCW2:00100000(EOI) OUT0C0,AL IRET

第一百零八页,共204页。中断触发方式边沿触发IRi出现上升沿表示有中断请求

电平触发IRi出现高电平表示有中断请求应注意及时撤除高电平,否则可能引起重复响应在第1个INTA结束前,IRi必须保持高电平第一百零九页,共204页。级联工作方式单片8259A可支持8个中断源;采用多片8259A级连,可最多支持64个中断源。n片8259A可支持7n+1个中断源;级连时只能有一片8259A为主片,其余的均为从属片;(一主多从)涉及到的8259A引脚包括:CAS0-CAS2SP/ENIRiINT第一百一十页,共204页。级连电路连接方法最多1主8从64个中断源主片:SP/EN接+5V;从片:SP/EN接地。第一百一十一页,共204页。6.5.48259A的编程使用8259A的控制命令分为:初始化命令字ICWICW1~ICW4向8259A写入ICW的过程称为初始化编程操作命令字OCW

OCW1~OCW3向8259A写入OCW的过程称为操作方式编程第一百一十二页,共204页。8259A内部寄存器的寻址方法需要CS、A0、RD、WR和D4、D3的配合内部寄存器的访问方法如下表:

由表可见,CPU用A0寻址82C59A的端口共有2个:1个为偶地址,1个为奇地址

第一百一十三页,共204页。8259A的初始化顺序8259的初始化流程如图注意次序不可颠倒写ICW1写ICW2级连?写ICW3需ICW4?写ICW4NNYY第一百一十四页,共204页。送ICW1,是否用ICW4用ICW2设中断类型码级连方式?设ICW3需要ICW4?设ICW4准备接受中断Y

NNY第一百一十五页,共204页。8259A的控制命令字初始化8259A必须从ICW1开始写ICW1意味着重新初始化8259A写入ICW1后,8259A的状态如下:清除ISR和IMR(全0);将中断优先级设成初始状态:IR0最高,IR7最低;设定为一般屏蔽方式;采用非自动中断结束方式;状态读出逻辑预置为读IRR。第一百一十六页,共204页。ICW1——初始化字LTIM:触发方式=1高电平触发=0上升沿触发SNGL:级连控制=1单片=0级连IC4:ICW4控制=1要写ICW4=0不写ICW4(默认ICW4为全0)A0 D7 D6 D5 D4 D3 D2 D1 D0

0 x x

x 1 LTIM x SNGL IC4第一百一十七页,共204页。例:

某8086微机系统中,使用单片82C59A,中断请求信号为上升沿触发,需要设置ICW4,端口地址为20H和21H,则其初始化命令字ICW1应为:00010011=13H,设置ICW1的指令为:MOVAL,13HOUT20H,AL第一百一十八页,共204页。ICW2——中断向量码T7~T3:中断向量码的高5位T2~T0:最低3位为中断源的序号IRn000~111分别对应IR0~IR7由8259A根据中断源的序号自动填入例如: 若ICW2命令字为48H,则IR0的中断向量码为48H,IR7的中断向量码为4FH,等等。A0 D7 D6 D5 D4 D3 D2 D1 D0

1 T7T6 T5 T4 T3

x x x第一百一十九页,共204页。例:

8259A采用前沿触发,单片使用,需要ICW4,假设IR0的类型码为08H,试确定ICW1,ICW2.8259A端口地址:20H,21HICW1=00010011B;前沿触发,单片,需ICW4ICW2=00001000B MOVAL,00010011B OUT20H,AL MOVAL,00001000B OUT21H,AL第一百二十页,共204页。ICW3——级连控制字主片的级联控制字Si=1对应IRi线上连接了从片A0 D7 D6 D5 D4 D3 D2 D1 D0

1 S7S6 S5 S4 S3

S2 S1 S0从片的级联控制字ID2~ID0标识码,说明本从片连接到主片的哪个IR引脚上。000~111分别对应IR0~IR7。

A0 D7 D6 D5 D4 D3 D2 D1 D0

1 00 0 0 0

ID2 ID1 ID0第一百二十一页,共204页。ICW3——级连控制字(续)ICW3必须与主从片的连接关系一致:

例如,主片的IR4与从片的INT线连接,则主片的ICW3=10H,从片的ICW3=04H。中断响应时,主片通过级连线CAS2-CAS0送出被允许中断的从片标识码,各从片用自己的ICW3与CAS2-CAS0比较,二者一致的从片才可发送中断向量码。第一百二十二页,共204页。例:

假设主片8259A的IR3和IR6接了2个从片.主片端口地址:20H,21H;1#从片端口地:A0H,A1H

试设置ICW3.主片:ICW3=0100100B=48H从片1#:ICW3=00000011=03H从片2#:ICW3=00000110=06H

主片ICW3的初始化程序段:MOVAL,48HOUT21H,AL1#从片ICW3的初始化:MOVAL,03HOUT0A1H,AL第一百二十三页,共204页。ICW4——中断结束方式字SFNM:特殊全嵌套1特殊全嵌套方式0一般全嵌套方式AEOI:自动EOI1自动EOI方式0非自动EOI方式A0 D7 D6 D5D4 D3 D2 D1 D0

1 00 0SFNM BUF M/S AEOI 1BUF:缓冲方式M/S:主/从缓冲选择BUFM/S11缓冲方式/主PIC10缓冲方式/从PIC0x非缓冲方式/正常第一百二十四页,共204页。初始化编程举例例:

某8086微机系统中有一片82C59A,中断请求信号为电平触发,中断类型码为40H~47H,中断优先级管理采用普通全嵌套方式,中断结束方式采用自动结束方式,系统中未使用数据缓冲器,系统分配给82C59A的端口地址为20H和21H,试对该82C59A进行初始化编程。第一百二十五页,共204页。分析:由于系统中使用单片82C59A,所以初始化时不需要ICW3,本例中82C59A要求工作在非缓冲方式,故在硬件上将SP*/EN*接+5V,ICW4中的M/S*位无意义,可设置为0

对82C59A的初始化程序如下: MOVAL,00011011B;设置ICW1初始化命令字 OUT20H,AL;将ICW1输出到偶地址端口 MOVAL,01000000B;ICW2中断类型号基值 OUT21H,AL;将ICW2送入奇地址端口 MOVAL,00000011B;ICW4OUT21H,AL ;将ICW4送入奇地址瑞口

第一百二十六页,共204页。8259A的操作命令字OCWOCW用于设置8259的工作状态在初始化后写入OCW的写入顺序可任意写入地址要求:OCW1必须写入奇地址端口(A0=1)OCW2,OCW3必须写入偶地址端口(A0=0)

第一百二十七页,共204页。OCW1——中断屏蔽字Mi=1中断请求线IRi被屏蔽(不允许中断)=0允许该IRi中断OCW1将写入IMR寄存器。A0=1时读OCW1可读出设置的IMR内容。A0 D7 D6 D5 D4 D3 D2 D1 D0

1 M7M6 M5 M4 M3

M2

M1

M0第一百二十八页,共204页。OCW2——中断结束和优先级循环L2~L0:优先级编码R:优先级自动循环SL:指定优先级EOI:结束中断命令

RSLEOI001非指定EOI命令(NSEOI),全嵌套方式011指定EOI命令(SEOI),全嵌套方式,按L2-L0编码复位ISR101NSEOI命令,优先级自动循环100自动EOI,设置优先级自动循环000自动EOI,取消优先级自动循环(固定优先级)111SEOI命令,按L2-L0编码循环优先级(L2-L0设为最低优先级)110按L2-L0编码循环优先级(L2-L0设为最低优先级)

A0 D7 D6 D5 D4

温馨提示

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

评论

0/150

提交评论