第7章输入输出接口与中断技术_第1页
第7章输入输出接口与中断技术_第2页
第7章输入输出接口与中断技术_第3页
第7章输入输出接口与中断技术_第4页
第7章输入输出接口与中断技术_第5页
已阅读5页,还剩187页未读 继续免费阅读

下载本文档

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

文档简介

1、第第6 6章章 输入输出接口与中断技术输入输出接口与中断技术NoImage7.1 7.1 输入输出接口概述输入输出接口概述7.2 CPU7.2 CPU与外设之间数据传送的方式与外设之间数据传送的方式7.3 7.3 中断技术中断技术7.4 8086/80887.4 8086/8088的中断系统和中断处理的中断系统和中断处理7.5 7.5 可编程中断控制器可编程中断控制器NoImage1. 1. 掌握理解接口基本结构的特点。掌握理解接口基本结构的特点。2. 2. 掌握掌握CPUCPU与外设之间的数据传送方式。与外设之间的数据传送方式。3. 3. 掌握无条件传送与有条件传送的编程。掌握无条件传送与有

2、条件传送的编程。4. 4. 正确理解中断、中断系统及其功能。正确理解中断、中断系统及其功能。5. 5. 掌握单个中断源的中断的条件与过程。掌握单个中断源的中断的条件与过程。6. 6. 正确理解和灵活运用中断向量表。正确理解和灵活运用中断向量表。7. 7. 掌握中断控制器内部掌握中断控制器内部8 8个部件的功能及其关系。个部件的功能及其关系。 在计算机应用中在计算机应用中, ,必然同各种各样的外设打交道。当它必然同各种各样的外设打交道。当它被用于管理、生产过程的检测与控制以及科学计算时,都被用于管理、生产过程的检测与控制以及科学计算时,都要求把控制程序和原始数据通过相应的输入设备送入计算要求把控

3、制程序和原始数据通过相应的输入设备送入计算机;机;CPUCPU在程序的控制下,对这些信息进行加工处理,然后在程序的控制下,对这些信息进行加工处理,然后把结果以用户所需要的方式通过输出设备予以输出。把结果以用户所需要的方式通过输出设备予以输出。 外设与计算机的连接不能像存储器那样直接连接到总外设与计算机的连接不能像存储器那样直接连接到总线上,而必须通过各自的接口电路与主机相连。线上,而必须通过各自的接口电路与主机相连。7.1.1 CPU7.1.1 CPU与外设间的连接与外设间的连接7.1 7.1 输入输出概述输入输出概述MEMMEMI/OI/O设备设备不不同同点点品种有限品种有限品种繁多品种繁多

4、功能单一功能单一功能多样功能多样传送一个字节传送一个字节传送规律不同传送规律不同与与CPUCPU速度匹配速度匹配与与CPUCPU速度不匹配速度不匹配易于控制易于控制难于控制难于控制结论结论可与可与CPUCPU直接连接直接连接需经过需经过I/OI/O接口电接口电路与路与CPUCPU连接连接 CPUCPU与外设的输入输出操作类似于存储器的读写操作,与外设的输入输出操作类似于存储器的读写操作,即即I/OI/O(读(读/ /写);但外设与存储器有许多不同点,其比较写);但外设与存储器有许多不同点,其比较如下表所示。如下表所示。 接口电路传送的信息可分为接口电路传送的信息可分为数据信息、状态信息和控数据

5、信息、状态信息和控制信息制信息三类:三类: 1. 1. 数据信息数据信息 数据信息数据信息是最基本的一种信息,包括:是最基本的一种信息,包括: (1)(1)数字量:数字量:通常为通常为8 8位二进制数或位二进制数或ASCIIASCII码。码。 7.1.2 7.1.2 接口电路传送的信息接口电路传送的信息非电量信息非电量信息传感器传感器电量电量 信号信号处理处理A/DA/DCPUCPU (2)(2)模拟量:模拟量:当计算机用于检测、数据采集或控制时,当计算机用于检测、数据采集或控制时,大量的现场信息是连续变化的物理量(如:温度、压力、大量的现场信息是连续变化的物理量(如:温度、压力、流量、位移、

6、速度等),经传感器把非电量转换成电量并流量、位移、速度等),经传感器把非电量转换成电量并经过放大即得到模拟电流或电压,这些模拟量,计算机不经过放大即得到模拟电流或电压,这些模拟量,计算机不能直接接收和处理,必须经过能直接接收和处理,必须经过A/DA/D转换,才能输入计算机;转换,才能输入计算机;而计算机输出的数字量也必须经而计算机输出的数字量也必须经D/AD/A转换后才能去控制执转换后才能去控制执行机构。行机构。 (3)(3)开关量:开关量:具有具有“0”0”和和“1”1”两个状态的量,用一位两个状态的量,用一位二进制数表示。二进制数表示。 例如电机的启与停,开关的合与开等。例如电机的启与停,

7、开关的合与开等。 2.2.状态信息状态信息 反映外设当前所处工作状态的信息,以作为反映外设当前所处工作状态的信息,以作为CPUCPU与外与外设间可靠交换数据的条件。输入时,它告知设间可靠交换数据的条件。输入时,它告知CPUCPU有关输入有关输入设备的数据是否准备好(设备的数据是否准备好(ReadyReady1 1?);输出时,它告知?);输出时,它告知CPUCPU输出设备是否空闲(输出设备是否空闲(BusyBusy0 0?)。?)。CPUCPU是通过接口电是通过接口电路来掌握路来掌握I/OI/O设备的状态,以决定可否输入或输出数据。设备的状态,以决定可否输入或输出数据。 3.3.控制信息控制信

8、息 用于控制外设的启停。用于控制外设的启停。CPUCPUI/OI/O设备设备I/OI/O接口接口123ABABDBDBCBCBDATADATASTATUSSTATUS CONTROL CONTROLCPU CPU 与外设之间的接口信息与外设之间的接口信息 接口电路基本结构及其连接如图所示。接口电路根接口电路基本结构及其连接如图所示。接口电路根据传送不同信息的需要,其基本结构安排有其特点。据传送不同信息的需要,其基本结构安排有其特点。 (1 1)3 3种信息的性质不同,应通过不同的端口分别传送。种信息的性质不同,应通过不同的端口分别传送。如,数据输入如,数据输入/ /输出寄存器、状态寄存器与命令

9、控制寄存器各输出寄存器、状态寄存器与命令控制寄存器各占占1 1个端口,每个端口都有自己的端口地址,故能用不同的端个端口,每个端口都有自己的端口地址,故能用不同的端口地址来区分不同性质的信息。口地址来区分不同性质的信息。 (2 2)在用输入输出指令寻址外设的)在用输入输出指令寻址外设的CPUCPU中,中,外设的状态作外设的状态作为一种输入数据为一种输入数据,而,而CPUCPU的控制命令是作为一种输出数据的,的控制命令是作为一种输出数据的,从而可通过数据总线来分别传送。从而可通过数据总线来分别传送。 (3 3)端口地址由端口地址由CPUCPU地址总线的低地址总线的低8 8位或低位或低1616位地址

10、信息位地址信息来确定来确定,CPUCPU根据根据I/OI/O指令提供的端口地址来寻址端口,然后指令提供的端口地址来寻址端口,然后同外设交换信息。同外设交换信息。 在微型计算机系统中,主要的输入输出方法有以下在微型计算机系统中,主要的输入输出方法有以下3 3种:种: 程序传送程序传送 中断方式中断方式 直接存贮器存取直接存贮器存取(DMA)(DMA)方式方式 这些方式不仅要实现主机与外设之间数据的传输,还要实这些方式不仅要实现主机与外设之间数据的传输,还要实现状态信息、命令信息的传输。现状态信息、命令信息的传输。7.2 7.2 CPUCPU与与I/OI/O设备之间的数据传送方式设备之间的数据传送

11、方式 一般,这些外设随时做好了数据传送的准备一般,这些外设随时做好了数据传送的准备, ,而无须检而无须检测其状态。测其状态。 这里先要弄清有关输入缓冲与输出锁存的基本概念。这里先要弄清有关输入缓冲与输出锁存的基本概念。 输入数据输入数据时时, ,因简单外设输入数据的保持时间相对于因简单外设输入数据的保持时间相对于CPUCPU的接收速度来说较长,故输入数据通常不用加锁存器来的接收速度来说较长,故输入数据通常不用加锁存器来锁存锁存, ,而直接使用三态缓冲器与而直接使用三态缓冲器与CPUCPU数据总线相连即可。数据总线相连即可。 输出数据时输出数据时, ,一般都需要锁存器将要输出的数据保持一一般都需

12、要锁存器将要输出的数据保持一段时间段时间, ,其长短和外设的动作相适应。锁存时,在锁存允许其长短和外设的动作相适应。锁存时,在锁存允许端端CE=1(CE=1(为无效电平为无效电平) )时时, ,数据总线上的新数据不能进入锁存数据总线上的新数据不能进入锁存器。只有当确知外设已取走器。只有当确知外设已取走CPUCPU上次送入锁存器的数据上次送入锁存器的数据, ,方方能在能在CE=0CE=0(为有效电平)时将新数据再送入锁存器保留。(为有效电平)时将新数据再送入锁存器保留。输入输出输入输出( (无条件程序传送无条件程序传送) )原理图如图所示。原理图如图所示。 在输入时,假定来自外设的数据已输入至三

13、态缓冲器,在输入时,假定来自外设的数据已输入至三态缓冲器,于是当于是当CPUCPU执行执行ININ指令时,所指定的端口地址经地址总线的指令时,所指定的端口地址经地址总线的低低1616位或低位或低8 8位送至地址译码器,位送至地址译码器,CPUCPU进入了输入周期进入了输入周期, ,选中选中的地址信号和的地址信号和M/IOM/IO(以及(以及RDRD)相)相“与与”后后, ,去选通输入三态缓去选通输入三态缓冲器,把外设的数据与数据总线连通并读入冲器,把外设的数据与数据总线连通并读入CPUCPU。显然,这。显然,这样做必须是当样做必须是当CPUCPU执行执行ININ指令时指令时, ,外设的数据是已

14、准备好的,外设的数据是已准备好的,否则就会读错。否则就会读错。在输出时,假定在输出时,假定CPUCPU的输出信息经数据总线已送到输的输出信息经数据总线已送到输出锁存器的输入端;当出锁存器的输入端;当CPUCPU执行执行OUTOUT指令时指令时, ,端口的地址由端口的地址由地址总线的低位地址送至地址译码器,地址总线的低位地址送至地址译码器,CPUCPU进入了输出进入了输出周期周期, ,所选中的地址信号和所选中的地址信号和M/IOM/IO(以及(以及WR WR 信号)相信号)相“与与”后,去选通锁存器,把输出信息送至锁存器保留后,去选通锁存器,把输出信息送至锁存器保留, ,由它再由它再把信息通过外

15、设输出。显然,在把信息通过外设输出。显然,在CPUCPU执行执行OUTOUT指令时指令时, ,必须必须确信所选外设的锁存器是空的。确信所选外设的锁存器是空的。例:一个采用同步传送的数据采集系统如图所示。例:一个采用同步传送的数据采集系统如图所示。 这是一个这是一个1616位精度的数据采集系统。被采集的数据是位精度的数据采集系统。被采集的数据是8 8个模拟量,由继电器绕组个模拟量,由继电器绕组P0P0、P1P1、P7P7分别控制触点分别控制触点K0K0、K1K7K1K7逐个接通。每次采样用一个逐个接通。每次采样用一个4 4位位( (每位为一个十进制每位为一个十进制数数) )数字电压表测量,把被采

16、样的模拟量转换成数字电压表测量,把被采样的模拟量转换成1616位位BCDBCD代代码码( (即对应即对应4 4位十进制数的位十进制数的4 4个个BCDBCD码码),),高高8 8位和低位和低8 8位通过两位通过两个不同的端口(其地址分别为个不同的端口(其地址分别为10H10H和和11H)11H)输入。输入。CPUCPU通过端通过端口口20H 20H 输出控制信号输出控制信号, ,以控制某个继电器的吸合以控制某个继电器的吸合, ,实现采集实现采集不同通道的模拟量。不同通道的模拟量。 采集过程要求:采集过程要求: (1)(1)先断开所有的继电器线圈及触头先断开所有的继电器线圈及触头, ,不采集数据

17、。不采集数据。 (2)(2)延迟一段时间后延迟一段时间后, ,使使K0K0闭合闭合, ,采集第采集第1 1个通道的模拟个通道的模拟量量, ,并保持一段时间并保持一段时间, ,以使数字电压表能将模拟电压转换为以使数字电压表能将模拟电压转换为1616位位BCDBCD码。码。 (3)(3)分别将高分别将高8 8位与低位与低8 8位位BCDBCD码存入内存码存入内存, ,完成第完成第1 1个模个模拟量的输入与存。拟量的输入与存。 (4)(4)利用移位与循环实现利用移位与循环实现8 8个模拟量的依次采集、输入个模拟量的依次采集、输入与转存与转存。数据采集程序如下:数据采集程序如下: START: STA

18、RT: MOV DX,0100H ;01HDH,MOV DX,0100H ;01HDH,置吸合第置吸合第1 1个继电器代码个继电器代码 ;00HDL,;00HDL,置断开所有继电器代码置断开所有继电器代码 LEA BX,DSTOR ;LEA BX,DSTOR ;置输入数据缓冲器的地址指针置输入数据缓冲器的地址指针 XOR AL,AL ;XOR AL,AL ;清清ALAL及进位位及进位位CFCF AGAIN: AGAIN: MOV AL,DLMOV AL,DL OUT 20H,AL ; OUT 20H,AL ;断开所有继电器线圈断开所有继电器线圈 CALL NEAR DELAY1 ;CALL N

19、EAR DELAY1 ;模拟继电器触点的释放时间模拟继电器触点的释放时间 MOV AL,DHMOV AL,DH OUT 20H,AL ; OUT 20H,AL ;先使先使P0P0吸合吸合 CALL NEAR DELAY2 ;CALL NEAR DELAY2 ;模拟触点闭合及数字电压表的转换时间模拟触点闭合及数字电压表的转换时间 IN AX,10H ;IN AX,10H ;输入输入 MOV BX,AX ;MOV BX,AX ;存入内存存入内存 INC BX INC BX INC BX INC BX RCL DH,1 ;DH RCL DH,1 ;DH左移左移( (大循环大循环)1)1位位, ,为下

20、一个触点吸合为下一个触点吸合 作准备作准备 JNC AGAIN ;8JNC AGAIN ;8位都输入完了吗?没有,则循环位都输入完了吗?没有,则循环 DONEDONE: ; ;输入已完,则执行别的程序段。输入已完,则执行别的程序段。 数据的传输靠执行指令实现。数据的传输靠执行指令实现。 IN AL(AX)IN AL(AX),PORTPORT MOV MEM MOV MEM,AL(AX)AL(AX)7.2.1 7.2.1 程序传送程序传送 外部设备的状态信息用外部设备的状态信息用ININ指令输入,然后测试;指令输入,然后测试;主机用主机用OUTOUT指令向外设提供状态信息,从而达到联络的目的。指

21、令向外设提供状态信息,从而达到联络的目的。 这种输入输出方式的优点简单、这种输入输出方式的优点简单、 实现容易。实现容易。 但存但存在明显的在明显的缺点缺点:第第1 1,为了测试和等待外部设备作好传输数据的准备,为了测试和等待外部设备作好传输数据的准备,常常要花费大量的时间,在这段时间内,程序不能完成其它常常要花费大量的时间,在这段时间内,程序不能完成其它任务,所以使系统的时间利用率大大降低。任务,所以使系统的时间利用率大大降低。 第第2 2,CPUCPU在一段时间里只能和一个外部设备之间传输数在一段时间里只能和一个外部设备之间传输数据,其它设备只能等待。据,其它设备只能等待。 第第3 3,不

22、能发现和处理预先无法估计的错误和异常现象。,不能发现和处理预先无法估计的错误和异常现象。所以这种输入输出方式只适用于所以这种输入输出方式只适用于CPUCPU数据处理任务不繁忙,数据处理任务不繁忙,而且外部设备数较少的情况。而且外部设备数较少的情况。 程序传送方式可分为无条件传送和有条件传送两种:程序传送方式可分为无条件传送和有条件传送两种: 1 1、无条件传送、无条件传送( (又称同步传送又称同步传送) ) 这种传送方式这种传送方式只对固定的外设只对固定的外设(如开关、继电器、(如开关、继电器、7 7段码显示器、机械式传感器等简单外设)段码显示器、机械式传感器等简单外设)在规定的时间用在规定的

23、时间用ININ或或OUTOUT指令来进行信息的的输入或输出,其实质是用程指令来进行信息的的输入或输出,其实质是用程序来定时同步传送数据。序来定时同步传送数据。 对少量数据传送来说,它是最省时间的一种传送方法,对少量数据传送来说,它是最省时间的一种传送方法,适用于各类巡回检测和过程控制。一般的说,这些外设随适用于各类巡回检测和过程控制。一般的说,这些外设随时做好了数据传送的准备,而无需检测其状态。时做好了数据传送的准备,而无需检测其状态。 2 2、条件传送、条件传送( (又称程序查询传送,异步传送又称程序查询传送,异步传送) ) 它是一种程序查询,但与前述的无条件的同步传送不同,它是一种程序查询

24、,但与前述的无条件的同步传送不同,是有条件的。是有条件的。此条件是:在执行输入或输出指令前,要先查此条件是:在执行输入或输出指令前,要先查询接口中状态寄存器的状态。询接口中状态寄存器的状态。输入时,由其指示要输入的数输入时,由其指示要输入的数据是否据是否“准备就绪准备就绪”;而输出时,又由它指示输出设备是否而输出时,又由它指示输出设备是否“空闲空闲”,由此条件来决定执行输入或输出。由此条件来决定执行输入或输出。 图图6.3 查询工作方式示意图查询工作方式示意图 (1) (1) 单一外设的查询工作单一外设的查询工作数据输出口和状态输入口共用一个地址。数据输出口和状态输入口共用一个地址。 (2)

25、(2) 多个外设查询方式工作多个外设查询方式工作 CPUCPU逐个外设进行查询,若发现哪个外设准备就逐个外设进行查询,若发现哪个外设准备就绪,就对该外设实施数据传送。绪,就对该外设实施数据传送。 读入的数据是位读入的数据是位, ,而而读入的状态信息往往是读入的状态信息往往是位,如图位,如图6.66.6所示。所以所示。所以, ,不同的外设其状态信息可不同的外设其状态信息可以使用同一个端口,但只以使用同一个端口,但只要使用不同的位就行。要使用不同的位就行。 这种查询输入方式的程这种查询输入方式的程序流程图如图序流程图如图6.76.7所示。所示。 查询输入部分的程序:查询输入部分的程序: POLL:

26、POLL:IN AL,STATUSPORT ;IN AL,STATUSPORT ;读状态端口的信息读状态端口的信息 TEST AL,80TEST AL,80 ; ;设设“准备就绪准备就绪”(READY)(READY)信信息息 在在D7D7位位 JE POLL ;JE POLL ;未未“准备就绪准备就绪”,则循环再,则循环再查查 IN AL,DATA_PORT ;IN AL,DATA_PORT ;已已“准备就绪准备就绪”(READY=1),(READY=1),则则 读入数据读入数据 )程序查询输出程序查询输出 同样的同样的, ,在输出时也必须了解外设的状态,看外设是在输出时也必须了解外设的状态,

27、看外设是否有否有“空闲空闲”( (即外设数锁存器已空,或未正处于输出状态即外设数锁存器已空,或未正处于输出状态),),若若有有 “ “ 空闲空闲 ” ”,则,则 执行输执行输 出指令;否则出指令;否则 就等待再查。就等待再查。 因此,接口电因此,接口电 路中也必须要路中也必须要 有状态信息的有状态信息的 端口,其方框端口,其方框 图如图图如图6.86.8所所 示。示。 输出过程输出过程: :当输出装置把输出的数据输出以后,当输出装置把输出的数据输出以后,发出一个发出一个(Acknowledge)(Acknowledge)信号,使触发器置信号,使触发器置“”,也即使也即使“BUSY”BUSY”线

28、为线为0(Empty0(EmptyBUSY),BUSY),当输入这个状当输入这个状态信息后态信息后( (经经337 7),知道外设为),知道外设为“空空”,于是就执行,于是就执行输出指令。待输出指令执行后,由地址信号和输出指令。待输出指令执行后,由地址信号和/ /及及相相“与与”, ,经经1 1发出选通信号发出选通信号, ,把在数据总线上的输出把在数据总线上的输出数据送至锁存器;同时,触发触发器为数据送至锁存器;同时,触发触发器为“”状态状态, ,它一它一方面通知外设:输出数据已准备好,可以执行输出操作,方面通知外设:输出数据已准备好,可以执行输出操作,另一方面在数据由输出装置输出以前,一直为

29、另一方面在数据由输出装置输出以前,一直为“”, ,告知告知(CPU(CPU通过读状态端口知道通过读状态端口知道) )外设外设“”,阻止,阻止输出新的数据。输出新的数据。 查询式输出的端口信与程序流程图分别如图查询式输出的端口信与程序流程图分别如图6.96.9与与6.106.10所示。所示。 查询输出部分的程序:查询输出部分的程序: POLL: IN AL,STATUS_PORT ;POLL: IN AL,STATUS_PORT ;查状态端口中的状态信息查状态端口中的状态信息D7 D7 TEST AL TEST AL,80H 80H JNE POLL JNE POLL; ;D7;D71 1即忙线

30、即忙线1,1,则循环再查则循环再查 MOV ALMOV AL,STORE STORE ; ;否则否则, ,外设空闲外设空闲, ,由内存读取数据由内存读取数据 OUT DATA_PORT,AL ;OUT DATA_PORT,AL ;输出到输出到DATADATA地址端口单元地址端口单元 其中其中,STATUS,STATUS和和TATATATA分别为状态端口和数据端口的符号址;分别为状态端口和数据端口的符号址;STORESTORE为待输出为待输出数据的内存单元的符号地址。数据的内存单元的符号地址。 ) )一个采用查询方式的数据采集系统一个采用查询方式的数据采集系统 一个有个模拟量输入的数据采集系统,

31、用查询方式一个有个模拟量输入的数据采集系统,用查询方式与传送信息,电路如图与传送信息,电路如图6.116.11所示。所示。 8 8个输入模拟量,经过多路开关个输入模拟量,经过多路开关它由端口它由端口4 4输出的输出的3 3位二进制码(位二进制码(D2D2、D1D1、D0D0)控制)控制(000(000相应于相应于UA0UA0输入输入相应于相应于UA7UA7输入输入) ),每次送出一个模拟量至,每次送出一个模拟量至转换器;同时,转换器由端口转换器;同时,转换器由端口4 4输出的输出的4 4位控制启位控制启动与停止。转换器的信号由端口动与停止。转换器的信号由端口2 2的的0 0输至数据总线输至数据

32、总线; ;经转换后的数据由端口经转换后的数据由端口3 3输入输入至数据总线。所以,这样的一个数据采集系统,需要用到至数据总线。所以,这样的一个数据采集系统,需要用到3 3个端口,它们有各自的地址。个端口,它们有各自的地址。 采集过程要求:采集过程要求: (1) (1) 初始化。初始化。 (2) (2) 先停止转换。先停止转换。 (3) (3) 启动转换,查输入状态信息。启动转换,查输入状态信息。 (4) (4) 当输入数据已转换完(当输入数据已转换完(REAREA1,1,即准备就绪)即准备就绪), ,则经则经由端口输入至由端口输入至CPUCPU的累加器的累加器ALAL中中, ,并转送内存。并转

33、送内存。 (5) (5) 设置下一个内存单元与下一个输入通道设置下一个内存单元与下一个输入通道, ,循环次循环次。数据采集过程的程序为:数据采集过程的程序为: STARE: MOV DL,0F8H ;STARE: MOV DL,0F8H ;设置启动设置启动A/DA/D转换的信号转换的信号, ,且低位选通多路且低位选通多路 开关通道开关通道 MOV AX,SEG DSTOR ;MOV AX,SEG DSTOR ;设置输入数据的内存单元地址指针设置输入数据的内存单元地址指针 MOV ES,AXMOV ES,AX LEA DI,DSTOR LEA DI,DSTOR AGAIN AGAIN:MOV A

34、L,DLMOV AL,DL AND AL,0EFH ; AND AL,0EFH ;使使D4D4 OUT 04,AL ;OUT 04,AL ;停止停止A/DA/D转换转换 CALL DELAY ;CALL DELAY ;等待停止等待停止A/DA/D转换操作的完成转换操作的完成 MOV AL,DL MOV AL,DL OUT 04,AL ; OUT 04,AL ;选输入通道并启动选输入通道并启动A/DA/D转换转换 POLLPOLL: IN AL,02 ;IN AL,02 ;输入状态信息输入状态信息 SHR AL,1 ;SHR AL,1 ;查查ALAL的的D0D0 JNC POLL ; JNC P

35、OLL ;判判READY=1?READY=1?若若D0=0,D0=0,未准备好未准备好, ,则循环再查则循环再查 IN AL,03 ;IN AL,03 ;若已准备就绪若已准备就绪, ,则经端口将采样数据输入至则经端口将采样数据输入至A A STOSB ; STOSB ;输入数据转送内存单元输入数据转送内存单元 IN CDL ;IN CDL ;输入模拟量通道增输入模拟量通道增1 1 JNE AGAIN ;8 JNE AGAIN ;8个模拟量未输入完则循环个模拟量未输入完则循环 ; ;输入已完输入已完, ,执行别的程序执行别的程序 总结上述程序查询输入总结上述程序查询输入/ /输出传送方式的执行过

36、程输出传送方式的执行过程, , 其步骤是:其步骤是: ( ()CPU)CPU从从I/OI/O接口的状态端口中读入所寻址的外设接口的状态端口中读入所寻址的外设的状态的状态 信息信息“”“”或或“BUSY”BUSY”。 ( () )根据读入的状态信息进行判断。程序查询输入根据读入的状态信息进行判断。程序查询输入时,若状态信息时,若状态信息READYREADY0 0,则外设数据未准备好,则外设数据未准备好,CPUCPU继继续等待查询续等待查询, ,直至直至READYREADY,外设已准备好数据,外设已准备好数据, ,执行下执行下一步操作一步操作; ;程序查询输出时,若状态信息程序查询输出时,若状态信

37、息BUSYBUSY,则外,则外设正在设正在“忙忙”,CPU,CPU继续等待查询继续等待查询, ,直至外设直至外设“空闲空闲”,BUSY,BUSY0 0时,执行下一步操作。时,执行下一步操作。( () )执行输入执行输入/ /输出指令,进行输出指令,进行I/OI/O传送。完成数据的传送。完成数据的输入输出,同时将外设的状态信息复位,一个位的数据输入输出,同时将外设的状态信息复位,一个位的数据传送结束。传送结束。 当计算机工作任务较轻或当计算机工作任务较轻或CPUCPU不太忙时,可以应用程序不太忙时,可以应用程序查询输入输出传送方式查询输入输出传送方式, ,它能较好地协调外设与它能较好地协调外设与

38、CPUCPU之间定之间定时的差别;程序和接口电路比较简单。其主要缺点是时的差别;程序和接口电路比较简单。其主要缺点是:CPU:CPU必必须作程序等待循环须作程序等待循环, ,不断测试外设的状态不断测试外设的状态, ,直至外设为交换数直至外设为交换数据准备就绪时为止。这种循环等待方式很花费时间,大大降据准备就绪时为止。这种循环等待方式很花费时间,大大降低了低了CPUCPU的运行效率。的运行效率。 程序查询传送方式不仅要降低程序查询传送方式不仅要降低CPUCPU的运行效率,而的运行效率,而且,在一般实时控制系统中,往往有数十乃至数百个外且,在一般实时控制系统中,往往有数十乃至数百个外设,由于它们的

39、工作速度不同,要求设,由于它们的工作速度不同,要求CPUCPU为它们服务是为它们服务是随机的,有些要求很急迫,若用查询方式除浪费大量等随机的,有些要求很急迫,若用查询方式除浪费大量等待查询时间外,还很难使每一个外设都能工作在最佳工待查询时间外,还很难使每一个外设都能工作在最佳工作状态。作状态。 为了提高为了提高CPUCPU执行有效程序的工作效率和提高系统执行有效程序的工作效率和提高系统中多台外设的工作效率,可以让外设处于能主动申请中中多台外设的工作效率,可以让外设处于能主动申请中断的工作方式,这在有多个外设及速度不匹配时,尤为断的工作方式,这在有多个外设及速度不匹配时,尤为重要。重要。7.2.

40、2 7.2.2 中断传送中断传送 所谓所谓中断中断是外设或其它中断源中止是外设或其它中断源中止CPUCPU当前正在执行当前正在执行的程序,而转向为该外设服务(如完成它与的程序,而转向为该外设服务(如完成它与CPUCPU之间传送之间传送一个数据)的程序,一旦服务结束,又返回原程序继续工一个数据)的程序,一旦服务结束,又返回原程序继续工作。作。 这样,外设处理数据期间,这样,外设处理数据期间,CPUCPU就不必浪费大量的时就不必浪费大量的时间去查询他们的状态,只待外设处理完毕主动向间去查询他们的状态,只待外设处理完毕主动向CPUCPU提出提出请求(向请求(向CPUCPU发出中断请求信号),而发出中

41、断请求信号),而CPUCPU在每一条指令执在每一条指令执行的结尾阶段,均查询是否有中断请求信号行的结尾阶段,均查询是否有中断请求信号(这种查询是(这种查询是由硬件完成的,不占用由硬件完成的,不占用CPUCPU的工作时间),若有,则暂停的工作时间),若有,则暂停执行现行的程序,转去为申请中断的某个外设服务,以完执行现行的程序,转去为申请中断的某个外设服务,以完成数据传送。成数据传送。 中断传送方式的好处是:大大提高了中断传送方式的好处是:大大提高了CPUCPU的工作效率。的工作效率。 中断传送方式的特点:中断传送方式的特点: 虽然程序中断功能参与了控制,但数据的传输仍然要虽然程序中断功能参与了控

42、制,但数据的传输仍然要靠在程序中排入靠在程序中排入I/OI/O指令完成。这一点和程序直接控制输入输指令完成。这一点和程序直接控制输入输出方式是相同的。出方式是相同的。 外部设备要求与外部设备要求与CPUCPU传输数据的状态信息,不是用指令传输数据的状态信息,不是用指令输入和测试的,而是从输入和测试的,而是从CPUCPU的中断请求输入端直接加入的。的中断请求输入端直接加入的。 正正是由于是由于CPUCPU具有响应外部中断请求的能力,避免了用指令查询具有响应外部中断请求的能力,避免了用指令查询外部设备状态造成的大量时间浪费,从而使系统的时间利用率外部设备状态造成的大量时间浪费,从而使系统的时间利用

43、率大大提高了大大提高了。 中断控制输入输出是靠硬件和软件相配合实现的。中断控制输入输出是靠硬件和软件相配合实现的。 与程序直接控制输入输出相比较,中断控制输入输出大与程序直接控制输入输出相比较,中断控制输入输出大大提高了大提高了CPUCPU的时间利用率,的时间利用率, 这是这种输入输出方式的这是这种输入输出方式的主要主要优点优点。 但它实现起来相对地复杂了。一个微机系统中,但它实现起来相对地复杂了。一个微机系统中, 微微处理器本身必须设计得具有响应和处理地中断请求的能力,处理器本身必须设计得具有响应和处理地中断请求的能力,而且在组成微机系统时,往往还需要配有专用的逻辑电路而且在组成微机系统时,

44、往往还需要配有专用的逻辑电路中断控制器,共同组成中断控制机构,增强中断控制和管中断控制器,共同组成中断控制机构,增强中断控制和管理的能力。理的能力。 利用程序中断传送方式,虽然可以提高利用程序中断传送方式,虽然可以提高CPUCPU的工作效的工作效率,但它仍需由率,但它仍需由CPU CPU 通过程序来传送数据,并在处理中断通过程序来传送数据,并在处理中断时,还要时,还要“保护现场保护现场”和和“恢复现场恢复现场”,而这两部分操作,而这两部分操作的程序段又与数据传送没有直接关系,却要占用一定时间,的程序段又与数据传送没有直接关系,却要占用一定时间,使每传送一个字节大约需要几十微秒到几百微秒。这对高

45、使每传送一个字节大约需要几十微秒到几百微秒。这对高速外设以及成组交换的场合,就显的太慢了。速外设以及成组交换的场合,就显的太慢了。 7.2.3 7.2.3 直接存储器存取直接存储器存取(DMA)(DMA)传送传送 直接存储器存取直接存储器存取DMA(Direct Memory Access)DMA(Direct Memory Access)又称又称为数据通道方式,为数据通道方式,是一种由专门的硬件电路执行是一种由专门的硬件电路执行I/OI/O交交换的传送方式换的传送方式,它让外设接口可直接与内存进行高速的,它让外设接口可直接与内存进行高速的数据传送,数据传输不是靠执行数据传送,数据传输不是靠执

46、行I/OI/O指令,数据不经过指令,数据不经过CPUCPU内的任何寄存器,也就不破坏任何寄存器原来存的内的任何寄存器,也就不破坏任何寄存器原来存的内容,而是在存储器和外部设备之间的通路上直接传输内容,而是在存储器和外部设备之间的通路上直接传输数据。这样就不必进行保护现场之类的额外操作,可实数据。这样就不必进行保护现场之类的额外操作,可实现对存储器的直接存取。现对存储器的直接存取。 这种专门的硬件电路就是这种专门的硬件电路就是DMADMA控制器,简称为控制器,简称为DMACDMAC。 DMADMA的查询过程:的查询过程: DMADMA的工作过程大致如下:的工作过程大致如下: 当接口准备就绪当接口

47、准备就绪, ,便向便向DMACDMAC发发DMADMA请求请求; ; CPU CPU通过通过HOLDHOLD引脚接收引脚接收DMACDMAC发出的总线请求;发出的总线请求; 通常通常CPUCPU在完成当前总线操作以后,就会立即在在完成当前总线操作以后,就会立即在HLDA HLDA 引脚上向引脚上向DMACDMAC发出允许信号而响应总线请求;发出允许信号而响应总线请求; 待待CPUCPU将总线置高阻将总线置高阻( (放弃总线控制权放弃总线控制权) ); DMA DMA请求得到请求得到DMACDMAC的确认,的确认,DMACDMAC开始对总线实施控制并向外设送出开始对总线实施控制并向外设送出DMA

48、DMA的应答信号的应答信号, ,同时送出地址信号和控制信号,以实现外设与内存同时送出地址信号和控制信号,以实现外设与内存或内存与内存的数据传送。或内存与内存的数据传送。 数据传送;数据传送; DMAC DMAC将规定的数据传送完之后,通过向将规定的数据传送完之后,通过向CPUCPU发发HOLDHOLD信号(将信号(将HOLDHOLD信号信号变为低电平);变为低电平); DMAC DMAC放弃对总线的控制,亦即撤消对总线的请求;放弃对总线的控制,亦即撤消对总线的请求; CPU CPU检测到检测到HOLDHOLD信号变为低电平后,也将信号变为低电平后,也将HLDAHLDA信号变为低电平信号变为低电

49、平, ,于于是是,CPU,CPU又恢复对系统总线的控制权。又恢复对系统总线的控制权。 归纳起来归纳起来,DMADMA数据传送与程序控制数据传送相比较,数据传送与程序控制数据传送相比较, 首先是传送途径不同:程序控制数据传送必须经过首先是传送途径不同:程序控制数据传送必须经过CPU(CPU(其中其中某个寄存器某个寄存器) ),而,而DMADMA传送不经过传送不经过CPUCPU。其次,程序控制数据传。其次,程序控制数据传送涉及的源地址、目的地址是由送涉及的源地址、目的地址是由CPUCPU提供的,地址的修改和传提供的,地址的修改和传送数据块长度的控制也由送数据块长度的控制也由CPUCPU完成,数据传

50、送所需要的控制信完成,数据传送所需要的控制信号也由号也由CPUCPU发出,但发出,但DMADMA传送,这一切都由传送,这一切都由DMADMA控制器提供、控制器提供、 发出和完成。发出和完成。 这就是说,本来该由程序完成的数据传送,在这就是说,本来该由程序完成的数据传送,在DMADMA传送时传送时由硬件取代了。因而不仅减轻了由硬件取代了。因而不仅减轻了CPUCPU的负担,而且可以使数据的负担,而且可以使数据传输速度大大提高。但是,传输速度大大提高。但是,DMADMA传送必须由程序或中断方式提传送必须由程序或中断方式提供协助,供协助,DMADMA传送的初始化或结束处理是由程序或中断服务完传送的初始

51、化或结束处理是由程序或中断服务完成的。成的。 中断是一种十分重要而复杂的软硬件相结合的技中断是一种十分重要而复杂的软硬件相结合的技术,它的出现给计算机结构与应用带来了新的突破。术,它的出现给计算机结构与应用带来了新的突破。 ( (一一) ) 中断中断 在在CPUCPU执行程序过程中,由于某种事件发生,强迫执行程序过程中,由于某种事件发生,强迫CPUCPU暂时停止正在执行的程序而转向对发生的事件进行暂时停止正在执行的程序而转向对发生的事件进行处理,事件处理结束后又能回到原中止的程序,接着中处理,事件处理结束后又能回到原中止的程序,接着中止前的状态继续执行原来的程序,这一过程称为止前的状态继续执行

52、原来的程序,这一过程称为中断中断。7.3.1 7.3.1 中断概述中断概述7.3 7.3 中断技术中断技术中断源中断源中断中断请求请求 当当 前前 程程 序序中断中断服务服务程序程序程序断点程序断点中断返回中断返回中断响应中断响应 (二)中断源(二)中断源 即引起中断的事件或原因,或发出中断申请的来源。即引起中断的事件或原因,或发出中断申请的来源。通常中断源有以下几种通常中断源有以下几种 : (1)(1)外部设备外部设备: :一般中、慢速外设如键盘、行式打印机、一般中、慢速外设如键盘、行式打印机、A/DA/D转换器等,在完成自身的操作后,向转换器等,在完成自身的操作后,向CPUCPU发出中断请

53、求发出中断请求, ,要求要求CPUCPU为它服务。对于高速的外设如磁盘或磁带,它可为它服务。对于高速的外设如磁盘或磁带,它可以向以向CPUCPU提出总线请求,进行提出总线请求,进行DMADMA传送。传送。 (2)(2)实时时钟实时时钟:在自动控制中,常遇到定时检测与控:在自动控制中,常遇到定时检测与控制,这时可采用外部时钟电路制,这时可采用外部时钟电路, ,并可编程控制其定时间隔。并可编程控制其定时间隔。当需要定时的时刻,当需要定时的时刻,CPUCPU发出命令发出命令, ,启动时钟电路开始计时启动时钟电路开始计时, ,待定时已到,时钟电路就发中断申请,由待定时已到,时钟电路就发中断申请,由CP

54、UCPU转向去执行转向去执行服务程序。服务程序。 (3)(3)故障源故障源:计算机内设有故障自动检测装置,如发:计算机内设有故障自动检测装置,如发生运算出错(溢出生运算出错(溢出) )、存储器读出出错、外部设备故障、存储器读出出错、外部设备故障、电源掉电以及越限报警等意外事件时,这些装置都能使电源掉电以及越限报警等意外事件时,这些装置都能使CPUCPU中断,进行相应的中断处理。中断,进行相应的中断处理。 以上以上3 3种属于随机中断源。由随机引起的中断种属于随机中断源。由随机引起的中断, ,称为称为强迫中断强迫中断。 (4)(4)为调试程序设置的中断源为调试程序设置的中断源:这是:这是CPUC

55、PU执行了特殊执行了特殊指令指令( (自陷指令)或由硬件电路引起的中断自陷指令)或由硬件电路引起的中断, ,主要是供用主要是供用户调试程序时而采取的检查手段。如断点设置、单步调户调试程序时而采取的检查手段。如断点设置、单步调试等试等. .这些都要由中断系统实现。一般称这种中断为自这些都要由中断系统实现。一般称这种中断为自愿中断。愿中断。 (三)(三) 中断的类型中断的类型 8086/80888086/8088微机最多可以支持微机最多可以支持256256种中断,它们被分为种中断,它们被分为四种类型:四种类型: 异常中断异常中断 软件中断软件中断 外部可屏蔽中断外部可屏蔽中断 外部非屏蔽中断外部非

56、屏蔽中断 每个中断都指定了一个类型码,也称为中断号。对应每个中断都指定了一个类型码,也称为中断号。对应每一种中断应当有一个中断服务程序每一种中断应当有一个中断服务程序(ISP(ISPInterrupt Interrupt Service Program Service Program ) (1) (1) 异常中断异常中断 是指令执行过程中引起的内部异常操作处理。包括除是指令执行过程中引起的内部异常操作处理。包括除法错误异常、调试异常、断点中断等。法错误异常、调试异常、断点中断等。 异常中断的例子:异常中断的例子: 0 0型型除法错误异常除法错误异常 1 1型型调试异常调试异常 . (2) (2

57、) 软件中断软件中断 执行有定义的执行有定义的 INT n INT n 指令而引发的中断,称为软件指令而引发的中断,称为软件中断。软件中断进一步分为中断。软件中断进一步分为BIOSBIOS中断和中断和DOSDOS中断中断。 软件中断使用软件中断使用05H05H、10H10H0FFH0FFH中的若干个中断号;中的若干个中断号; 异常中断和软件中断是由处理器内部产生的。异常中断和软件中断是由处理器内部产生的。 (3) (3) 外部可屏蔽中断外部可屏蔽中断 外部可屏蔽中断是处理器响应各种外部硬件中断的最常用的方法,外部可屏蔽中断是处理器响应各种外部硬件中断的最常用的方法, 通过处理器的通过处理器的I

58、NTRINTR引脚产生引脚产生; 外部可屏蔽中断受处理器内部的中断允许标志位外部可屏蔽中断受处理器内部的中断允许标志位IFIF的控制;的控制; 处理器只有一个处理器只有一个INTRINTR引脚可以接受外部可屏蔽中断请求,为了管理引脚可以接受外部可屏蔽中断请求,为了管理 众多的外部中断源,微机系统中采用可编程中断控制器众多的外部中断源,微机系统中采用可编程中断控制器82598259; PC PC系列机通过两片系列机通过两片82598259级连可以响应级连可以响应1515个外部中断源。个外部中断源。 (4 4) 外部非屏蔽中断外部非屏蔽中断 为外部紧急请求提供服务的中断,为外部紧急请求提供服务的中

59、断,通过处理器的通过处理器的NMINMI引脚产生引脚产生; NMI NMI与与IFIF标志的状态无关;标志的状态无关; NMI NMI有一个专用的类型号有一个专用的类型号02H02H; 使用非屏蔽中断的典型例子是电源故障中断。使用非屏蔽中断的典型例子是电源故障中断。 ( (二二) ) 中断系统及其功能中断系统及其功能 中断系统是指为实现中断而设置的各种硬件与中断系统是指为实现中断而设置的各种硬件与软件软件, ,包括中断控制逻辑及相应管理中断的指令。包括中断控制逻辑及相应管理中断的指令。 中断系统应具有下列功能:中断系统应具有下列功能: 1. 1. 能响应中断、处理能响应中断、处理 中断与返回中

60、断与返回 当某个中断源发出中断请求时当某个中断源发出中断请求时, ,CPUCPU能根据条件决能根据条件决定是否响应该中断请求定是否响应该中断请求。若允许响应,则。若允许响应,则CPUCPU必须在执必须在执行完现行指令后行完现行指令后, ,保护断点和现场保护断点和现场( (即把断点处的即把断点处的PCPC值值和各寄存器的内容与标志位的状态推入堆栈和各寄存器的内容与标志位的状态推入堆栈),),然后再然后再转到需要处理的中断服务程序的入口,同时转到需要处理的中断服务程序的入口,同时, ,清除中断清除中断请求触发器。当处理完中断服务程序后请求触发器。当处理完中断服务程序后, ,再恢复现场和再恢复现场和

温馨提示

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

评论

0/150

提交评论