原理与接口技术-第9章讲述_第1页
原理与接口技术-第9章讲述_第2页
原理与接口技术-第9章讲述_第3页
原理与接口技术-第9章讲述_第4页
原理与接口技术-第9章讲述_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

1、第第9章章 输入输出控制技术输入输出控制技术学习目标学习目标输入输入/ /输出(简称输出(简称I/OI/O)设备是计算机的主要组成部分。)设备是计算机的主要组成部分。I/OI/O接口是接口是CPUCPU同输入同输入/ /输出设输出设备之间进行信息交换的重要枢纽。备之间进行信息交换的重要枢纽。本章首先介绍输入输出接口基本概念、本章首先介绍输入输出接口基本概念、CPUCPU与外设数据传送的方式。然后,重点讨论与外设数据传送的方式。然后,重点讨论中断与计数中断与计数/ /定时控制技术。定时控制技术。1第第9章章 输入输出控制技术输入输出控制技术学习要求学习要求着重理解接口基本结构的特点。着重理解接口

2、基本结构的特点。掌握掌握CPUCPU与外设之间数据的传送方式与控制方式。与外设之间数据的传送方式与控制方式。正确理解中断源、向量中断、中断优先权等基本概念。正确理解中断源、向量中断、中断优先权等基本概念。重点掌握重点掌握8086/80888086/8088中断系统及其用户定义的内部中断处理方法。能正确理解和灵活中断系统及其用户定义的内部中断处理方法。能正确理解和灵活运用中断向量表。运用中断向量表。掌握掌握8259A8259A内部内部8 8个部件的功能及其关系。个部件的功能及其关系。重点掌握重点掌握8259A8259A初始化编程。初始化编程。掌握可编程计数器掌握可编程计数器/ /定时器定时器82

3、53-58253-5的内部结构和进行计数的内部结构和进行计数/ /定时控制的原理。定时控制的原理。掌握掌握8253-58253-5的方式控制字格式的设置,能够理解各计数器有的方式控制字格式的设置,能够理解各计数器有6 6种可供选择的工作方式,种可供选择的工作方式,并完成定时、计数或脉冲发生器等多种功能。并完成定时、计数或脉冲发生器等多种功能。29.1 输入输出接口概述输入输出接口概述1 1CPUCPU与外设间的连接与外设间的连接CPUCPU与外设的连接须通过各自的专用接口电路(或接口芯片)来实现,这些接口电路与外设的连接须通过各自的专用接口电路(或接口芯片)来实现,这些接口电路简称为简称为I/

4、OI/O接口接口。2 2接口电路的基本结构接口电路的基本结构接口电路的基本结构同它传送的信息种类有关。接口电路的基本结构同它传送的信息种类有关。信息可分为信息可分为3 3类:数据信息;状态信类:数据信息;状态信息;控制信息。息;控制信息。39.2 CPU与外设之间数据传送的方式与外设之间数据传送的方式9.2.19.2.1 程序传送程序传送程序传送程序传送: :在程序控制(即在程序控制(即ININ或或OUTOUT指令控制)下进行数据传送,是指令控制)下进行数据传送,是CPUCPU与外设间最简与外设间最简单的一种数据传送方式。它可分为单的一种数据传送方式。它可分为无条件传送方式无条件传送方式和有和

5、有条件传送方式条件传送方式两种。两种。1 1无条件传送(又称同步传送)无条件传送(又称同步传送)无条件传送方式对少量数据传送来说,无条件传送方式对少量数据传送来说,是最省时间的一种传送方法,适用于是最省时间的一种传送方法,适用于各类巡回检测和过程控制。各类巡回检测和过程控制。AB :Address BusDB:Data Bus42程序查询传送(条件传送程序查询传送(条件传送异步传送)异步传送)程序查询传送是有条件的异步传送。程序查询传送是有条件的异步传送。1 1)程序查询输入)程序查询输入查询输入部分的程序:查询输入部分的程序:POLLPOLL:IN ALIN AL,STATUS_PORTST

6、ATUS_PORT;读状态端口的信息;读状态端口的信息TEST ALTEST AL,80H 80H ;设设“准备就绪准备就绪”(READYREADY)信息在)信息在D7D7位位JE POLLJE POLL;未;未“准备就绪准备就绪”,则循环再查,则循环再查IN ALIN AL,DATA_PORT DATA_PORT ;已;已“准备就绪准备就绪”(READY=1READY=1),则读入数据),则读入数据52程序查询传送(条件传送程序查询传送(条件传送异步传送)异步传送)2 2)程序查询输出)程序查询输出查询输出部分的程序:查询输出部分的程序:POLLPOLL:INALINAL,STATUS_PO

7、RTSTATUS_PORT;查状态端口中的状态信息;查状态端口中的状态信息D7D7TESTALTESTAL,80H 80H JNE POLL JNE POLL ;D7D71 1即忙线即忙线1 1,则循环再查,则循环再查MOV ALMOV AL,STORESTORE;否则,外设空闲,则由内存读取数据;否则,外设空闲,则由内存读取数据OUT DATA_PORTOUT DATA_PORT,ALAL;输出到;输出到DATADATA地址端口单元地址端口单元 ATATUSATATUS和和DATADATA分别为状态端口分别为状态端口和数据端口的符号地址;和数据端口的符号地址;STORESTORE为待输出数据

8、的内存单元为待输出数据的内存单元的符号地址。的符号地址。62程序查询传送(条件传送程序查询传送(条件传送异步传送)异步传送)3 3)一个采用查询方式的数据采集系统)一个采用查询方式的数据采集系统STARTSTART:MOV DLMOV DL,0F8H0F8H;设置启动;设置启动A/DA/D转换信号,且低转换信号,且低3 3位选通多路开关通道位选通多路开关通道MOV AXMOV AX,SEG DSTORSEG DSTOR;设置输入数据的内存单元地址指针;设置输入数据的内存单元地址指针MOV ESMOV ES,AXAXLEA DILEA DI,DSTORDSTORAGAINAGAIN: MOV A

9、LMOV AL,DLDLAND ALAND AL,0EFH0EFH;使;使D4D40 0OUT 04OUT 04,ALAL;停止;停止A/DA/D转换转换CALL DELAYCALL DELAY;等待停止;等待停止A/DA/D转换操作的完成转换操作的完成MOV ALMOV AL,DLDLOUT 04OUT 04,ALAL;选输入通道并启动;选输入通道并启动A/DA/D转换转换73)一个采用查询方式的数据采集系统)一个采用查询方式的数据采集系统POLLPOLL: IN ALIN AL,0202;输入状态信息;输入状态信息SHR ALSHR AL,1 1;查;查ALAL的的D0D0JNC POLL

10、JNC POLL;判;判READYREADY1 1?若?若D0D00 0,未准备好,则循环再查,未准备好,则循环再查IN ALIN AL,0303;若已准备就绪,则经端口;若已准备就绪,则经端口3 3将采样数据输入至将采样数据输入至ALALSTOSBSTOSB;输入数据转送内存单元;输入数据转送内存单元INC DLINC DL;输入模拟量通道增;输入模拟量通道增1 1JNE AGAINJNE AGAIN;8 8个模拟量未输入完则循环个模拟量未输入完则循环;输入完毕,则执行别的程序;输入完毕,则执行别的程序89.2.2中断传送中断传送中断是外设或其他中断源中止中断是外设或其他中断源中止CPUCP

11、U当前正在执行的程序,而转向为该当前正在执行的程序,而转向为该外设服务(如完成它与外设服务(如完成它与CPUCPU之间传送一个数据)的程序,一旦服务结之间传送一个数据)的程序,一旦服务结束,又返回原程序继续工作束,又返回原程序继续工作。这样这样,外设处理数据期间,外设处理数据期间,CPUCPU就不必浪费大量时间去查询它们的状就不必浪费大量时间去查询它们的状态,只待外设处理完毕主动向态,只待外设处理完毕主动向CPUCPU提出请求(向提出请求(向CPUCPU发中断请求信发中断请求信号),而号),而CPUCPU在每一条指令执行的结尾阶段,均查询是否有中断请求在每一条指令执行的结尾阶段,均查询是否有中

12、断请求信号(这种查询是由硬件完成的,不占用信号(这种查询是由硬件完成的,不占用CPUCPU的工作时间),若有,的工作时间),若有,则暂停执行现行的程序,转去为申请中断的某个外设服务,以完成则暂停执行现行的程序,转去为申请中断的某个外设服务,以完成数据传送。数据传送。中断中断传送方式的好处是:大大提高了传送方式的好处是:大大提高了CPUCPU的工作效率。的工作效率。99.2.3直接存储器存取传送直接存储器存取传送直接存储器存取传送直接存储器存取传送DMADMA(direct memory access direct memory access )方式或称为数据通道方式是一)方式或称为数据通道方式

13、是一种由专门的硬件电路执行种由专门的硬件电路执行I/OI/O交换的交换的传送方式,它让外设接口可直接与传送方式,它让外设接口可直接与内存进行高速的数据传送,而不必内存进行高速的数据传送,而不必经过经过CPUCPU,可实现对存储器的直接,可实现对存储器的直接存取。存取。109.3中断技术中断技术9.3.19.3.1中断概述中断概述1 1中断与中断源中断与中断源中断中断: :使使CPUCPU暂停运行原来的程序而应更为急迫事件的需要转向去执行为中断源服务暂停运行原来的程序而应更为急迫事件的需要转向去执行为中断源服务的程序(称为中断服务程序),待该程序处理完后,再返回运行原程序,此即中断的程序(称为中

14、断服务程序),待该程序处理完后,再返回运行原程序,此即中断(或中断技术)。(或中断技术)。中断源,中断源,即引起中断的事件或原因,或发出中断申请的来源。通常中断源有以下几即引起中断的事件或原因,或发出中断申请的来源。通常中断源有以下几种:外部设备;实时时钟;故障源。种:外部设备;实时时钟;故障源。以上以上3 3种属于随机中断源。由随机引起的中断,称为强迫中断。种属于随机中断源。由随机引起的中断,称为强迫中断。还有一种为调试程序设置的中断源。这是指还有一种为调试程序设置的中断源。这是指CPUCPU执行了特殊指令(自陷指令)或由硬执行了特殊指令(自陷指令)或由硬件电路引起的中断,主要是供用户调试程

15、序时而采取的检查手段。如断点设置、单件电路引起的中断,主要是供用户调试程序时而采取的检查手段。如断点设置、单步调试等。这些都要由中断系统实现。一般称这种中断为自愿中断。步调试等。这些都要由中断系统实现。一般称这种中断为自愿中断。119.3.1中断概述中断概述2 2中断系统及其功能中断系统及其功能中断系统中断系统: :为实现中断而设置的各种硬件与软件,包括中断控制逻辑及相应管理中断的指为实现中断而设置的各种硬件与软件,包括中断控制逻辑及相应管理中断的指令。令。中断系统具有下列功能:中断系统具有下列功能:1 1)能响应中断、处理中断与返回)能响应中断、处理中断与返回2 2)能实现优先权排队)能实现

16、优先权排队3 3)高级中断源能中断低级的中断)高级中断源能中断低级的中断处理处理中断嵌套的技术。中断嵌套的技术。129.3.2单个中断源的中断单个中断源的中断简单的中断过程应包括:中断请求、中断响应、中断处理和中断返回等环节。简单的中断过程应包括:中断请求、中断响应、中断处理和中断返回等环节。1.1.中断源向中断源向CPUCPU发中断请求信号的条件发中断请求信号的条件 中断源是通过其接口中断源是通过其接口电路向电路向CPUCPU发中断请求信号的,该发中断请求信号的,该信号信号能否能否发给发给CPUCPU,应满足应满足下列两个条件:下列两个条件:1 1)设置中断请求触发器)设置中断请求触发器2

17、2)设置中断屏蔽触发器)设置中断屏蔽触发器139.3.2单个中断源的中断单个中断源的中断2. CPU2. CPU响应中断的条件响应中断的条件当中断源向当中断源向CPUCPU发出发出INTRINTR信号后,信号后,CPUCPU若要响应它,还应满足下列条件。若要响应它,还应满足下列条件。1 1)CPUCPU开放中断开放中断2 2)CPUCPU在现行指令结束后响应中断在现行指令结束后响应中断149.3.2单个中断源的中断单个中断源的中断3. CPU3. CPU响应中断及处理过程响应中断及处理过程1 1)关中断)关中断2 2)保留断点)保留断点CPUCPU响应中断后,立即封锁断点地址,且把此值压栈保护

18、,以备在中断处理完毕后,响应中断后,立即封锁断点地址,且把此值压栈保护,以备在中断处理完毕后,CPUCPU能返回断点处继续运行主程序。能返回断点处继续运行主程序。3 3)保护现场)保护现场4 4)给出中断入口(地址),转入相应的中断服务程序)给出中断入口(地址),转入相应的中断服务程序8086/80888086/8088是由中断源提供中断类型号,并根据是由中断源提供中断类型号,并根据中断类型号在中断向量表中取得中断服务程序中断类型号在中断向量表中取得中断服务程序的起始地址。的起始地址。5 5)恢复现场)恢复现场这个操作是在中断服务程序中用这个操作是在中断服务程序中用POPPOP指令来完成的。指

19、令来完成的。6 6)开中断与返回)开中断与返回159.3.39.3.3向量中断向量中断向量中断(向量中断(Vectored InterruptVectored Interrupt),是指通过中断向量进入中断服务程序的一种方法;),是指通过中断向量进入中断服务程序的一种方法;而中断向量则是用来提供中断入口地址的一个地址指针(即而中断向量则是用来提供中断入口地址的一个地址指针(即CSCS:IPIP)。)。例如例如8086/8088 CPU8086/8088 CPU的中断系统就是采用这种向量中断。的中断系统就是采用这种向量中断。9.3.49.3.4中断优先权中断优先权在实际的系统中,具有多个中断源,

20、而在实际的系统中,具有多个中断源,而CPUCPU的可屏蔽中断请求线往往只有一条。如何的可屏蔽中断请求线往往只有一条。如何解决多个中断源同时请求中断而只有一根中断请求线的矛盾呢解决多个中断源同时请求中断而只有一根中断请求线的矛盾呢? ?这就要求这就要求CPUCPU按多个中按多个中断源的优先权由高至低依次来响应中断申请。同时,当断源的优先权由高至低依次来响应中断申请。同时,当CPUCPU正在处理中断时,还要能正在处理中断时,还要能响应更高级的中断申请,而屏蔽掉同级或低级的中断申请。响应更高级的中断申请,而屏蔽掉同级或低级的中断申请。CPUCPU可以通过软件查询技可以通过软件查询技术或硬件排队电路两

21、种方法来实现按中断优先权对多个中断源的管理,也有专门用于术或硬件排队电路两种方法来实现按中断优先权对多个中断源的管理,也有专门用于协助协助CPUCPU按中断优先权处理多个中断源的中断控制芯片,如按中断优先权处理多个中断源的中断控制芯片,如8259A8259A芯片。芯片。169.4 8086/8088的中断系统和中断处理的中断系统和中断处理9.4.1 8086/80889.4.1 8086/8088的中断系统的中断系统8086/80888086/8088的中断系统采用中断向量结构,可以处理多达的中断系统采用中断向量结构,可以处理多达256256种类型的中断。种类型的中断。179.4.1 8086

22、/8088的中断系统的中断系统1 1外部中断外部中断8086/8088 CPU8086/8088 CPU有两条引脚供外部中断源请求中断:一条是高电平有效的可屏蔽中断有两条引脚供外部中断源请求中断:一条是高电平有效的可屏蔽中断INTRINTR;另一条是正跳变有效的非屏蔽中断;另一条是正跳变有效的非屏蔽中断NMINMI。 1 1)可屏蔽中断)可屏蔽中断可屏蔽中断是由用户定义的外部硬件中断。当可屏蔽中断是由用户定义的外部硬件中断。当8086/8088 CPU8086/8088 CPU的的INTRINTR引脚上出现一高引脚上出现一高电平有效请求信号时,它必须保持到当前指令的结束。若电平有效请求信号时,

23、它必须保持到当前指令的结束。若IF=0IF=0(CLICLI),),此时此时CPUCPU是是处于关中断状态,则不响应处于关中断状态,则不响应INTRINTR;若;若IF=1(STI)IF=1(STI),则则CPUCPU是处于开中断状态,将响应是处于开中断状态,将响应INTRINTR,并通过引脚向产生,并通过引脚向产生INTRINTR的设备接口(中断源)发回响应信号,启动中断过程。的设备接口(中断源)发回响应信号,启动中断过程。8086/8088 CPU8086/8088 CPU在发回第在发回第2 2个中断响应信号时,将使发出中断请求信号的接口把个中断响应信号时,将使发出中断请求信号的接口把1

24、1字节字节的中断类型号通过数据总线传送给的中断类型号通过数据总线传送给CPUCPU。由该中断类型号指定了中断服务程序入口地。由该中断类型号指定了中断服务程序入口地址在中断向量表中的位置。址在中断向量表中的位置。中断允许标志中断允许标志IFIF位的状态可用指令位的状态可用指令STISTI使其置位,即开中断;也可用使其置位,即开中断;也可用CLICLI指令使其复指令使其复位,即关中断。位,即关中断。181外部中断外部中断2 2)非屏蔽中断)非屏蔽中断当当8086/8088 CPU8086/8088 CPU的的NMINMI引脚上出现一上升沿的边沿触发有效请求信引脚上出现一上升沿的边沿触发有效请求信号

25、时,它将由号时,它将由CPUCPU内部的锁存器将其锁存起来。内部的锁存器将其锁存起来。8086/80888086/8088要求要求NMINMI上上的请求脉冲的有效宽度(高电平的持续时间)大于两个时钟周期。的请求脉冲的有效宽度(高电平的持续时间)大于两个时钟周期。一旦此中断请求信号产生,不管标志位一旦此中断请求信号产生,不管标志位IFIF的状态如何,即使在关中的状态如何,即使在关中断(断(IF=0IF=0)的情况下,)的情况下,CPUCPU也能响应它。也能响应它。199.4.1 8086/8088的中断系统的中断系统2. 2. 内部中断内部中断8086/80888086/8088的内部中断又叫软

26、件中断,它包括以下几种内部中断的内部中断又叫软件中断,它包括以下几种内部中断:除法除法出错中断出错中断类型类型0 0;溢出溢出中断中断类型类型4 4;单步单步中断中断类型类型1 1;断点断点中断中断类型类型3 3;用户用户定义的软件中断定义的软件中断类型类型n n。应应着重掌握用户定义的软件中断着重掌握用户定义的软件中断类型类型n n。它是一个可由用户定义。它是一个可由用户定义的双字节的中断指令的双字节的中断指令INT nINT n,其第,其第1 1个字节为个字节为INTINT的操作码,第的操作码,第2 2个字个字节节n n是它的中断类型号。中断类型号是它的中断类型号。中断类型号n n由程序员

27、编程时给定,用它指由程序员编程时给定,用它指出中断服务程序的入口地址。出中断服务程序的入口地址。203内部中断的特点内部中断的特点1 1) 内部中断由一条内部中断由一条INT nINT n指令直接产生。指令直接产生。2 2) 除单步中断以外,所有内部中断都不能被屏蔽。除单步中断以外,所有内部中断都不能被屏蔽。3 3) 所有内部中断都没有中断响应机器总线周期。所有内部中断都没有中断响应机器总线周期。4 4) 8086/80888086/8088中断系统规定了硬、软中断的优先级排队。中断系统规定了硬、软中断的优先级排队。5 5) 作为软件调试手段,单步中断是逐条地跟踪调试,而断点中断(作为软件调试

28、手段,单步中断是逐条地跟踪调试,而断点中断(INT 3INT 3)是逐段)是逐段地调试,它们均可用中断服务程序在屏幕上显示有关的各种信息。地调试,它们均可用中断服务程序在屏幕上显示有关的各种信息。6 6) 为了避开由外设硬件产生为了避开由外设硬件产生INTRINTR中断请求信号和提供中断类型号的麻烦,可以用中断请求信号和提供中断类型号的麻烦,可以用软件中断指令软件中断指令INT nnINT nn来模拟外设提供的硬件中断。来模拟外设提供的硬件中断。214中断向量表中断向量表8086/80888086/8088中断系统的中断向量表中给出了与中断类型对应的中断系统的中断向量表中给出了与中断类型对应的

29、256256个中断向量,每个向量个中断向量,每个向量包含包含4 4个字节,个字节,2 2个低地址字节是个低地址字节是IPIP偏移量,偏移量,2 2个高地址字节是个高地址字节是CSCS段地址。用来存放段地址。用来存放256256个向量的中断向量表需要占用个向量的中断向量表需要占用1K1K字节的存字节的存储空间,且设置在存储器的最低端(储空间,且设置在存储器的最低端(000H000H3FFH3FFH)。这样,每个中断都可转到)。这样,每个中断都可转到1MB1MB空空间的任何地方。间的任何地方。224中断向量表中断向量表当当CPUCPU响应中断访问中断向量表时,外设通过接口将一个响应中断访问中断向量

30、表时,外设通过接口将一个8 8位的中断类型编码位的中断类型编码n n放在数放在数据总线上,据总线上,CPUCPU对编号对编号n n乘以乘以4 4得到得到4n4n指向该中断向量的首字节;指向该中断向量的首字节;4n4n和和4n+14n+1单元单元中存放中存放的是中断向量的偏移地址值,其低字节在的是中断向量的偏移地址值,其低字节在4n4n地址中,高字节在地址中,高字节在4n+14n+1地址中;地址中;4n+24n+2和和4n+34n+3单元单元中存放的是中断中存放的是中断向量的段地址值,也是向量的段地址值,也是低低字节在前,高字节在后字节在前,高字节在后。实现中断转移时,实现中断转移时,CPUCP

31、U将把将把有关的标志位和断点地址的有关的标志位和断点地址的CSCS和和IPIP值入栈,然后通过中值入栈,然后通过中断向量间接转入中断服务程断向量间接转入中断服务程序。序。中断处理结束,用返回指令中断处理结束,用返回指令弹出断点地址的弹出断点地址的IPIP与与CSCS值以值以及标志位,然后返回被中断及标志位,然后返回被中断的程序。的程序。239.4.2 8086/8088的中断处理过程的中断处理过程8086/8088的中断处理过程的中断处理过程259.4.2 8086/8088的中断处理过程的中断处理过程(1 1)所有中断处理都包括中断请求、中断响应、中断处理和中断返回)所有中断处理都包括中断请

32、求、中断响应、中断处理和中断返回4 4个基本过程。个基本过程。(2 2)响应顺序均按预先设计的中断优先权来响应。优先权由高到低依次为:内部中)响应顺序均按预先设计的中断优先权来响应。优先权由高到低依次为:内部中断;断;NMINMI中断;中断;INTRINTR中断;单步中断。中断;单步中断。(3 3)CPUCPU开始响应中断的时刻,在一般情况下,都要待当前指令执行完后方可响应开始响应中断的时刻,在一般情况下,都要待当前指令执行完后方可响应中断申请。但有少数情况是在下一条指令完成之后才响应中断请求。例如,中断申请。但有少数情况是在下一条指令完成之后才响应中断请求。例如,REPREP(重(重复前缀)

33、,复前缀),LOCKLOCK(封锁前缀)和段超越(封锁前缀)和段超越前缀前缀(ES:)(ES:)等等指令都应当将前缀看作指令的一指令都应当将前缀看作指令的一部分,在执行前缀和指令间不允许中断。段寄存器的传送指令部分,在执行前缀和指令间不允许中断。段寄存器的传送指令MOVMOV和段寄存器的弹出和段寄存器的弹出指令指令POPPOP也是一样,在执行下条指令之前都不能响应中断。也是一样,在执行下条指令之前都不能响应中断。(4 4)在)在WAITWAIT指令和重复数据串操作指令执行的过程中间可以响应中断请求,但必须指令和重复数据串操作指令执行的过程中间可以响应中断请求,但必须要等一个基本操作或一个等待检

34、测周期完成后才能响应中断。要等一个基本操作或一个等待检测周期完成后才能响应中断。(5 5)由于)由于NMINMI引脚上的中断请求是需要立即处理的,所以在进入执行任何中断(包引脚上的中断请求是需要立即处理的,所以在进入执行任何中断(包括内部中断)服务程序之前,都要安排测试括内部中断)服务程序之前,都要安排测试NMINMI引脚上是否有中断请求,以保证它实引脚上是否有中断请求,以保证它实际上有最高的优先权。这时要为转入执行际上有最高的优先权。这时要为转入执行NMINMI中断服务程序而再次保护现场和断点,中断服务程序而再次保护现场和断点,并在执行完并在执行完NMINMI中断服务程序后返回到所中断的服务

35、程序。中断服务程序后返回到所中断的服务程序。269.4.2 8086/8088的中断处理过程的中断处理过程(6 6)若在执行某个中断服务时无)若在执行某个中断服务时无NMINMI中断发生,则接着去查看暂存寄存器中断发生,则接着去查看暂存寄存器TEMPTEMP的状的状态。若态。若TEMPTEMP1 1,则在中断前,则在中断前CPUCPU已处于单步工作方式,就和已处于单步工作方式,就和NMINMI一样重新保护现场和一样重新保护现场和断点,转入单步中断服务程序。若断点,转入单步中断服务程序。若TEMPTEMP0 0,也就是在中断前,也就是在中断前CPUCPU处于非单步工作方处于非单步工作方式,则这时

36、式,则这时CPUCPU将转去执行最先引起中断的中断服务程序。将转去执行最先引起中断的中断服务程序。(7 7)待中断处理程序结束时,由中断返回指令将堆栈中存放的)待中断处理程序结束时,由中断返回指令将堆栈中存放的IPIP、CSCS以及以及PSWPSW值还值还原给指令指针原给指令指针IPIP、代码段寄存器、代码段寄存器CSCS以及程序状态字以及程序状态字PSWPSW。注意:当有多个中断请求同时产生时,注意:当有多个中断请求同时产生时,8086/8088 CPU8086/8088 CPU将根据各中断源优先权的高低将根据各中断源优先权的高低来处理,首先响应优先权较高的中断请求,等具有较高优先权的中断请

37、求处理完以来处理,首先响应优先权较高的中断请求,等具有较高优先权的中断请求处理完以后,再去依次响应和处理其他中断申请。后,再去依次响应和处理其他中断申请。279.4.3可屏蔽中断的过程可屏蔽中断的过程1 1INTRINTR中断的全过程中断的全过程图中所示的是可屏蔽中断从中断发生到中断图中所示的是可屏蔽中断从中断发生到中断服务结束并返回的整个操作过程。服务结束并返回的整个操作过程。CPUCPU响应响应NMINMI或内部中断请求时的操作顺序或内部中断请求时的操作顺序基本上与上述过程相同,只是不需要前基本上与上述过程相同,只是不需要前3 3步步操作和读取中断类型码。一旦操作和读取中断类型码。一旦CP

38、UCPU接到接到NMINMI引脚上的中断请求或内部中断请求时,引脚上的中断请求或内部中断请求时,CPUCPU就会自动地转向它们各自的中断服务程序。就会自动地转向它们各自的中断服务程序。289.4.3可屏蔽中断的过程可屏蔽中断的过程2 2中断类型号的获得中断类型号的获得获得中断类型号有获得中断类型号有3 3个途径:个途径:(1 1) 除法错误,单步中断,非屏蔽中断,断点中断和溢出中断分别由除法错误,单步中断,非屏蔽中断,断点中断和溢出中断分别由CPUCPU芯片内的芯片内的硬件自动提供类型号硬件自动提供类型号0 04 4。(2 2) 软件中断则是从软件中断则是从INT nINT n指令流中,即在第

39、指令流中,即在第2 2个字节中读得中断类型号个字节中读得中断类型号n n。(3 3) 外部中断外部中断INTRINTR可以用不同的方法获得中断类型号。例如,在可以用不同的方法获得中断类型号。例如,在PCPC系列微机中,系列微机中,可以由可以由Intel 8259AIntel 8259A芯片或集成了芯片或集成了8259A8259A的超大规模集成外围芯片来提供中断类型号。的超大规模集成外围芯片来提供中断类型号。299.4.4中断响应时序中断响应时序了解中断响应时序的组成以及中断类型号的获取方法与时间。了解中断响应时序的组成以及中断类型号的获取方法与时间。309.5可编程中断控制器可编程中断控制器8

40、259A9.5.1 8259A9.5.1 8259A的引脚与功能结构的引脚与功能结构8259A8259A是一个是一个2828引脚的双列直插式芯片。要了解引脚的功能,较好地理解引脚的双列直插式芯片。要了解引脚的功能,较好地理解CAS0CAS0CAS2CAS2这这3 3根级联控制信号。根级联控制信号。319.5.2 8259A内部结构框图和中断工作过程内部结构框图和中断工作过程1 18259A8259A内部结构框图内部结构框图8259A8259A中断控制器包括中断控制器包括8 8个主要功能部件,其内部结构框图如图所示。个主要功能部件,其内部结构框图如图所示。8259A8259A内部除上述几个处理内

41、部除上述几个处理8 8级中断请求(级中断请求(IR0IR0IR7IR7)的功能部件)的功能部件IRRIRR、ISRISR与与PRPR之外,还之外,还有一组用于寄存控制命令字的有一组用于寄存控制命令字的8 8位寄存器。位寄存器。329.5.2 8259A内部结构框图和中断工作过程内部结构框图和中断工作过程2 28259A8259A的中断工作过程的中断工作过程8259A8259A的的8 8个功能部件组成一个有机的整体,共同协调处理其中断工作过程。个功能部件组成一个有机的整体,共同协调处理其中断工作过程。难点:当难点:当CPUCPU对某个中断请求做出的中断响应结束后,对某个中断请求做出的中断响应结束

42、后,8259A8259A将如何根据一个名为方将如何根据一个名为方式控制器的结束方式位的不同设置,在不同时刻将式控制器的结束方式位的不同设置,在不同时刻将ISRISR中置中置1“1“的中断请求位复的中断请求位复“0”0”。实际情况是:在自动结束中断(实际情况是:在自动结束中断(AEOIAEOI)方式下,)方式下,8259A8259A会将会将ISRISR中原来在第中原来在第1 1个负脉冲个负脉冲到来时设置的到来时设置的“1”1”(即响应此中断请求位)在第(即响应此中断请求位)在第2 2个脉冲结束时,自行复位成个脉冲结束时,自行复位成“0”0”。若是非自动结束中断方式(若是非自动结束中断方式(EOI

43、EOI),则),则ISRISR中该位的中该位的“1”1”状态将一直保持到中断过程状态将一直保持到中断过程结束,由结束,由CPUCPU发发EOIEOI命令才能复位成命令才能复位成“0”0”。8 8级中断请求信号所对应的中断类型码(或中断向量)规定:其前级中断请求信号所对应的中断类型码(或中断向量)规定:其前5 5位位T7T7T3T3由用户由用户在在8259A8259A初始化编程时选择的,后初始化编程时选择的,后3 3位则由位则由8259A8259A自动插入的。自动插入的。339.5.3 8259的控制字格式的控制字格式8259A8259A的中断处理功能和各种工作方式,都是通过编程设置的。即对的中

44、断处理功能和各种工作方式,都是通过编程设置的。即对8259A8259A内部有关寄存器写内部有关寄存器写入控制命令字来实现控制的。入控制命令字来实现控制的。按照控制字功能及设置的要求不同,可分为两种按照控制字功能及设置的要求不同,可分为两种类型的命令字:类型的命令字:(1 1)初始化命令字)初始化命令字ICWICW:ICW1ICW1ICW4ICW4,它们必须在,它们必须在初始化时分别写入初始化时分别写入4 4个相应的寄存器。并且,一旦个相应的寄存器。并且,一旦写入,一般在系统运行过程中就不再改变。写入,一般在系统运行过程中就不再改变。(2 2)工作方式命令字或操作命令字)工作方式命令字或操作命令

45、字OCW:OCW1OCW:OCW1OCW3OCW3,它们必须在设置初始化命令后方能分别写入它们必须在设置初始化命令后方能分别写入3 3个相应个相应的寄存器。它们用来对中断处理过程进行动态的操作的寄存器。它们用来对中断处理过程进行动态的操作与控制。在一个系统运行过程中,操作命令字可以与控制。在一个系统运行过程中,操作命令字可以被多次设置。被多次设置。341初始化命令字初始化命令字1 1) ICW1ICW1ICW1ICW1叫芯片控制初始化命令字,用于启动叫芯片控制初始化命令字,用于启动8259A8259A中的初始化顺序。该字写入中的初始化顺序。该字写入8 8位的芯位的芯片控制寄存器。写片控制寄存器

46、。写ICW1ICW1的标记为:的标记为:A0A00 0,D4D41 1。351初始化命令字初始化命令字2 2) ICW2ICW2ICW2ICW2是设置中断类型码的初始化命令字。该字写入是设置中断类型码的初始化命令字。该字写入8 8位的中断类型寄存器。位的中断类型寄存器。 写写ICW2ICW2的标记为:的标记为:A0A01 1。361初始化命令字初始化命令字3 3) ICW3ICW3ICW3ICW3是标志主片是标志主片/ /从片的初始化命令字,该字写入从片的初始化命令字,该字写入8 8位的主位的主/ /从标志寄存器,它只用于从标志寄存器,它只用于级联方式。写级联方式。写ICW3ICW3的标记为:

47、的标记为:A0A01 1。371 1初始化命令字初始化命令字3 3) ICW3ICW3在在IBM PC/XTIBM PC/XT机中,仅用机中,仅用1 1片片8259A8259A,能提供,能提供8 8级中断请求。在级中断请求。在IBM PC/ATIBM PC/AT机中用机中用2 2片片8259A8259A组成级联方式,最多可以提供组成级联方式,最多可以提供1515级中断请求。级中断请求。381 1初始化命令字初始化命令字4 4)ICW4ICW4ICW4ICW4叫方式控制初始化命令字。该字写入叫方式控制初始化命令字。该字写入8 8位的方式控制寄存器。写位的方式控制寄存器。写ICW4ICW4控制字标

48、记控制字标记为:为:A0A01 1。392操作命令字操作命令字当当8259A8259A经预置经预置ICWiICWi后已进入初始化状态,便可接收来后已进入初始化状态,便可接收来IRiIRi端的中断请求。然后自动端的中断请求。然后自动进入操作命令状态,准备接收由进入操作命令状态,准备接收由CPUCPU写入写入8259A8259A的操作命令字的操作命令字OCWiOCWi。1 1) OCW1OCW1写写OCW1OCW1的标记为:的标记为:0 01 1。OCW1OCW1用来写入用来写入IMRIMR寄存器。寄存器。402操作命令字操作命令字2 2) OCW2OCW2OCW2OCW2是用来设置中断优先级循环

49、方式和中断结束方式的操作命令字。是用来设置中断优先级循环方式和中断结束方式的操作命令字。写写OCW2OCW2的标记为:的标记为:A0A00 0、D3D3D4D40 041OCW2的编码的编码及功能说明及功能说明 2操作命令字操作命令字3 3) OCW3 OCW3 OCW3OCW3叫多功能操作命令字。叫多功能操作命令字。写写OCW3OCW3的标记为:的标记为:A0A00 0、D7D7D4D40 0、D2D21 1。该命令字有项功能:一是设置和撤消特。该命令字有项功能:一是设置和撤消特殊屏蔽方式;二是设置中断查询方式;三是设置对殊屏蔽方式;二是设置中断查询方式;三是设置对8259A8259A内部寄

50、存器的读出命令。内部寄存器的读出命令。439.5.4 8259A应用举例应用举例在在IBM PC/XTIBM PC/XT机中,只采用了机中,只采用了1 1片片8259A8259A中断控制器来提供中断控制器来提供8 8级中断请求,其中级中断请求,其中IR0IR0优先优先级最高,级最高,IR7IR7优先级最低。它们分别用于日历时钟中断、键盘中断、保留、网络通信、优先级最低。它们分别用于日历时钟中断、键盘中断、保留、网络通信、异步通信中断、硬盘中断、软盘中断及打印机中断。异步通信中断、硬盘中断、软盘中断及打印机中断。8259A8259A片选地址设定为片选地址设定为20H20H、21H21H。 1 1

51、初始化初始化MOVMOVALAL,13H13H;写;写ICW1ICW1,单片,边沿触发,要,单片,边沿触发,要ICW4ICW4OUTOUT20H20H,ALALMOVMOVALAL,8 8;写;写ICW2ICW2,中断类型号从,中断类型号从8 8开始开始OUTOUT21H21H,ALALMOVMOVALAL,0DH0DH;写;写ICW4ICW4,缓冲工作方式,缓冲工作方式,8088/80868088/8086配置配置OUTOUT21H21H,ALALMOVMOVALAL,0 0;写;写OCW1OCW1,允许,允许IR0IR0IR7IR7全部全部8 8级中断请求级中断请求OUTOUT21H21H

52、,ALAL442 2送中断向量入口地址送中断向量入口地址例如,异步通信中断例如,异步通信中断IR4IR4,其中断向量类型号为,其中断向量类型号为8+48+41212(0CH0CH),则中断入口地址的偏移量(),则中断入口地址的偏移量(IPIP值)与段地址(值)与段地址(CSCS)在入口地址表中的存放地址为)在入口地址表中的存放地址为12124 44848(30H30H),),4949(31H31H),),5050(32H32H),),5151(33H33H)。其中)。其中30H30H、31H31H存放指令指针存放指令指针IPIP;32H32H,33H33H存放指令段码存放指令段码CSCS。3

53、3中断子程序结束中断子程序结束由于由于8259A8259A采用中断工作方式,且采用中断工作方式,且ICW4ICW4中的中的1 1位(即位(即AEOIAEOI)为)为0 0,这意味着采用正常结束中断,这意味着采用正常结束中断,因此,在中断子程序结束前必须发因此,在中断子程序结束前必须发EOIEOI命令和命令和IRETIRET命令。命令。MOVMOVALAL,20H20H;写;写OCW2OCW2命令,使命令,使ISRISR相应位复位(即发相应位复位(即发EOIEOI命令)。命令)。OUTOUT20H20H,ALALIRETIRET;开放中断允许,并从中断返回;开放中断允许,并从中断返回4 4中断嵌

54、套中断嵌套为了使中断嵌套,即在中断响应过程中,允许比本中断优先级高的中断进入,只要在进入中断处为了使中断嵌套,即在中断响应过程中,允许比本中断优先级高的中断进入,只要在进入中断处理程序后,执行开中断指令理程序后,执行开中断指令STISTI即可达到此目的。即可达到此目的。9.5.4 8259A应用举例应用举例459.6计数计数/定时控制技术定时控制技术在微机应用中,一般常用可编程计数器在微机应用中,一般常用可编程计数器/ /定时器定时器8253-58253-5来进行计数来进行计数/ /定时控制。定时控制。9.6.1 8253-59.6.1 8253-5的引脚与功能结构的引脚与功能结构8253-5

55、8253-5是一种是一种2424脚封装的双列直插式芯片。脚封装的双列直插式芯片。功能:计数与定时功能:计数与定时, ,两者的工作原理在实质上是一样的,都是利用计数器作减两者的工作原理在实质上是一样的,都是利用计数器作减1 1计数,计数,减至减至0 0发信号;两者的差别只是用途不同。发信号;两者的差别只是用途不同。469.6.28253-5的内部结构和寻址方式的内部结构和寻址方式1 1内部结构内部结构8253-58253-5的内部结构如图所示。它有的内部结构如图所示。它有3 3个独立结构完全相同的个独立结构完全相同的1616位计数器和位计数器和1 1个个8 8位控制位控制字寄存器。字寄存器。47

56、2寻址方式寻址方式8253-58253-5的寻址与相应操作的寻址与相应操作489.6.3 8253-5的的6种工作方式及时序关系种工作方式及时序关系8253-58253-5的各计数器都有的各计数器都有6 6种可供选择的工作方式,以完成定时、计数或脉冲发生器等种可供选择的工作方式,以完成定时、计数或脉冲发生器等多种功能。多种功能。491方式方式0 计数结束产生中断计数结束产生中断8253-58253-5方式方式0 0有以下特点:有以下特点:(1 1)当写入控制字后,)当写入控制字后,OUTOUT端输出低电平作为起始电平,在有两个负脉冲宽度的信号端输出低电平作为起始电平,在有两个负脉冲宽度的信号的

57、上升沿将初值写入初值寄存器的上升沿将初值写入初值寄存器CRCR,待计数初值装入计数器后,输出仍待计数初值装入计数器后,输出仍保持低电平。保持低电平。(2 2)GATEGATE为计数控制门。为计数控制门。(3 3)计数过程中可重新装入计数初值。)计数过程中可重新装入计数初值。8253-58253-5利用方式利用方式0 0既可计数,也可定时。既可计数,也可定时。502方式方式1可编程单稳触发器可编程单稳触发器8253-58253-5方式方式1 1有以下特点:有以下特点:(1 1)当写入控制字后,)当写入控制字后,OUTOUT端将输出高电平作为起始电平。端将输出高电平作为起始电平。(2 2)工作时,

58、由)工作时,由GATEGATE输入触发脉冲的上升沿使输入触发脉冲的上升沿使OUTOUT变为低电平,每来一个计数脉冲,计变为低电平,每来一个计数脉冲,计数器作减数器作减1 1计数,当计数值减为计数,当计数值减为0 0时,时,OUTOUT再变为高电平。再变为高电平。(3 3)如果在计数器未减到)如果在计数器未减到0 0时,门控端时,门控端GATEGATE又来一个触发脉冲,则由下一个时钟脉冲开又来一个触发脉冲,则由下一个时钟脉冲开始,计数器将从原有的初始值(始,计数器将从原有的初始值(n=4n=4)重新作)重新作减减1 1计数。当减至计数。当减至0 0时,输出端又变为高电平。时,输出端又变为高电平。

59、这样,使输出脉冲宽度延长。这样,使输出脉冲宽度延长。(4 4)若在计数过程中,又写入一个新的计数)若在计数过程中,又写入一个新的计数初值,它并不影响本次计数过程,输出也初值,它并不影响本次计数过程,输出也不变。只是在下一次触发时,计数器按新的不变。只是在下一次触发时,计数器按新的输入初值重新计数。输入初值重新计数。513方式方式2分频器(又叫分频脉冲产生器)分频器(又叫分频脉冲产生器)方式方式2 2是是n n分频计数器,分频计数器,n n是写入计数器的初值。是写入计数器的初值。当计数器的控制寄存器写入控制字后,当计数器的控制寄存器写入控制字后,OUTOUT端输出高电平作为起始电平。当计数初值(

60、图端输出高电平作为起始电平。当计数初值(图中给出了两个初值即中给出了两个初值即n=4n=4或或n=3n=3)在信号的上升沿写入计数器后,从下一个时钟脉冲起,计)在信号的上升沿写入计数器后,从下一个时钟脉冲起,计数器开始作减数器开始作减1 1计数。当减到计数。当减到1 1(而不是减(而不是减到到0 0)时,)时,OUTOUT端输出将变为低电平。当端输出将变为低电平。当计数端计数端CLKCLK输入输入n n个计数脉冲后,在输出个计数脉冲后,在输出端端OUTOUT输出一个输出一个n n分频脉冲,其正脉冲宽分频脉冲,其正脉冲宽度为(度为(n n1 1)个输入脉冲时钟周期,而)个输入脉冲时钟周期,而负脉

温馨提示

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

最新文档

评论

0/150

提交评论