输入输出与中断分析_第1页
输入输出与中断分析_第2页
输入输出与中断分析_第3页
输入输出与中断分析_第4页
输入输出与中断分析_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

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

文档简介

1、微微 机机 原原 理理 及及 其其 应应 用用 信息与计算机学院 闫 勇办公室:经技楼411 411 电话:57861605786160第六章第六章 输入输出与中断输入输出与中断教学目的、重点、难点教学目的、重点、难点目的:熟悉目的:熟悉I/OI/O接口基本概念;掌握接口基本概念;掌握CPUCPU与外设交与外设交换信息的基本方式;熟练掌握中断传送方式及相换信息的基本方式;熟练掌握中断传送方式及相关技术。关技术。重点:重点: CPU CPU与外设交换信息的基本方式;中断传与外设交换信息的基本方式;中断传送方式及相关技术。送方式及相关技术。难点:中断传送方式及相关技术。难点:中断传送方式及相关技术

2、。第六章第六章 输入输出与中断输入输出与中断6.16.1输入输出接口概述输入输出接口概述6.26.2CPUCPU与外设之间数据传输的方式与外设之间数据传输的方式6.36.3中断技术中断技术6.46.48086/80888086/8088的中断系统和中断处理的中断系统和中断处理6.1 6.1 输入输出接口概述输入输出接口概述6.1.1 CPU6.1.1 CPU与外设间的连接与外设间的连接一一. CPU. CPU与外设间的连接与外设间的连接外设与计算机的连接必须外设与计算机的连接必须通过各自的专用接口电路通过各自的专用接口电路(接口芯(接口芯片片) )与主机连接,而不能像存储器那样直接挂到总线上。

3、与主机连接,而不能像存储器那样直接挂到总线上。1. 1. 存储器与存储器与I/OI/O设备的差异设备的差异存储器存储器 I/O I/O设备设备 不同点不同点品种有限品种有限品种繁多品种繁多功能单一功能单一功能多样功能多样传送一个字节或字传送一个字节或字传送规律不同传送规律不同与与CPUCPU速度匹配速度匹配与与CPUCPU速度不匹配速度不匹配易于控制易于控制难于控制难于控制结论结论可与可与CPUCPU直接相连直接相连需经过需经过I/OI/O电路与电路与CPUCPU连接连接2. CPU2. CPU与外设间交换信息与外设间交换信息需要解决的问题需要解决的问题1. 1. 速度匹配速度匹配(Buffe

4、r)(Buffer)2. 2. 信号电平和驱动能力信号电平和驱动能力( (电平转换器、驱动器电平转换器、驱动器) )3. 3. 信号形式匹配信号形式匹配(A/D(A/D、D/A) D/A) 4. 4. 信息格式信息格式( (字节流、光盘的数据块、数据包、帧字节流、光盘的数据块、数据包、帧) ) 5. 5. 时序匹配时序匹配( (定时关系定时关系) )6. 6. 总线隔离总线隔离( (实现与存储器的交替,三态门实现与存储器的交替,三态门) )3. I/O3. I/O接口的主要功能接口的主要功能1. 1. 数据缓冲数据缓冲:CPUCPU与慢速设备之间,设置数据寄存器或锁存器。与慢速设备之间,设置数

5、据寄存器或锁存器。2. 2. 设备选择设备选择:借助于接口的地址译码器。借助于接口的地址译码器。3. 3. 信号转换信号转换:电平转换、时序配合、并电平转换、时序配合、并/ /串及串串及串/ /并、并、A/DA/D、D/AD/A转换。转换。4. 4. 监控外设监控外设:接收接收CPUCPU的命令或控制信号,控制管理外设;外设的状的命令或控制信号,控制管理外设;外设的状况以状态字或应答信号的形式通过况以状态字或应答信号的形式通过I/OI/O接口送回给接口送回给CPUCPU,以同步,以同步CPUCPU与外与外设之间的设之间的I/OI/O操作。操作。5. 5. 中断请求中断请求:接口中有中断请求信号

6、,以便及时得到接口中有中断请求信号,以便及时得到CPUCPU的服务。的服务。6. 6. 可编程功能可编程功能:只需修改程序就可改变接口的工作方式,增加了接口只需修改程序就可改变接口的工作方式,增加了接口的灵活性和可扩充性。的灵活性和可扩充性。7. 7. 地址译码电路地址译码电路:有多个外设,每个外设有多种信息,因此每个外设:有多个外设,每个外设有多种信息,因此每个外设接口有多个端口,应能够对端口进行变址并译码选中。接口有多个端口,应能够对端口进行变址并译码选中。6.1.2 6.1.2 接口电路的基本结构接口电路的基本结构一一. . 接口电路中的信息接口电路中的信息1. 1. 数据信息数据信息

7、1)1)数字量:数字量:8 8位二进制数或位二进制数或ASCIIASCII码;码;2)2)模拟量:连续变化的物理量,须经模拟量:连续变化的物理量,须经A/DA/D或或D/AD/A转换;转换;3)3)开关量:开关量: 1 1位的位的“0”0”或或“1”1”。2. 2. 状态信息状态信息 反映外设当前所处工作状态的信息,每种状态用反映外设当前所处工作状态的信息,每种状态用1 1位表示。位表示。CPUCPU根据这些状态信息决定对外设进行操作或控制。如输入设根据这些状态信息决定对外设进行操作或控制。如输入设备数据是否准备好(备数据是否准备好(Ready=1?Ready=1?)、输出设备是否空闲()、输

8、出设备是否空闲(BusyBusy0 0?)。?)。3. 3. 控制信息控制信息用于控制外设的启动或停止、是否允许中断、设置外设的工作用于控制外设的启动或停止、是否允许中断、设置外设的工作方式等。方式等。二二. . 接口电路的基本结构接口电路的基本结构接口电路中的不同种类信息分别进入不同的被称为接口电路中的不同种类信息分别进入不同的被称为端口端口的寄的寄存器。存器。CPUCPU可对端口中的信息可对端口中的信息直接读写直接读写。一般的接口电路中都设置数据端口、状态端口、命令一般的接口电路中都设置数据端口、状态端口、命令/ /控制控制端口。端口。接口电路原理图接口电路原理图- -参考参考数据数据线线

9、控制控制线线状态状态线线DBCBAB数据输入寄存器数据输入寄存器(or 三态门三态门)数据输出寄存器数据输出寄存器(锁存器锁存器)状态寄存器状态寄存器(or 三态门三态门)命令寄存器命令寄存器译码译码电路电路控制控制逻辑逻辑CPUCPU外设外设1. 1. 三种信息应通过不同的端口分别传送三种信息应通过不同的端口分别传送。如数据输入。如数据输入/ /输出输出寄存器寄存器( (缓冲器)、状态寄存器与命令控制寄存器各占一缓冲器)、状态寄存器与命令控制寄存器各占一个端口,每个端口都有自己的个端口,每个端口都有自己的端口地址端口地址( (端口号端口号) )。2. 2. 外设的状态作为一种输入数据,而外设

10、的状态作为一种输入数据,而CPUCPU对外设的控制命令对外设的控制命令是作为一种输出数据是作为一种输出数据, ,均可通过数据总线来分别传送。均可通过数据总线来分别传送。因此接口电路中的数据信息、状态信息、控制信息因此接口电路中的数据信息、状态信息、控制信息都可通过都可通过DBDB传送传送,但这三种信息在接口电路中存放于不同的端口,但这三种信息在接口电路中存放于不同的端口。3. 3. 端口地址端口地址由由CPUCPU地址总线的低地址总线的低8 8位位(I/O(I/O端口直接寻址端口直接寻址) )或低或低1616位位(I/O(I/O端口间接寻址端口间接寻址) )地址信息来确定,地址信息来确定,CP

11、UCPU根据根据I/OI/O指指令提供的端口地址来寻址端口令提供的端口地址来寻址端口, ,然后同外设交换信息。然后同外设交换信息。三三. I/O. I/O端口端口1. 1. I/OI/O端口:端口:指指I/OI/O接口电路中能被接口电路中能被CPUCPU直接直接访问的寄存器或某访问的寄存器或某些特定部件。些特定部件。CPUCPU通过端口发送命令、读取状态和传送数据。通过端口发送命令、读取状态和传送数据。一个接口可以有几个端口,如命令口、状态口、数据口等。一个接口可以有几个端口,如命令口、状态口、数据口等。有的接口包括的端口多,有的少。有的接口包括的端口多,有的少。2. 2. CPUCPU对端口

12、的操作不同对端口的操作不同:有的端口只能读、或只能写,有的:有的端口只能读、或只能写,有的既可以读又可以写。既可以读又可以写。3. 3. 一般一个端口只能写入或读出一种信息一般一个端口只能写入或读出一种信息。但也有几种信息共用一个端口,如但也有几种信息共用一个端口,如82558255的一个命令口可以接的一个命令口可以接收两种不同命令,收两种不同命令,8259A8259A的一个命令口可以接收四种不同命令的一个命令口可以接收四种不同命令。四四. I/O. I/O端口的编址方式端口的编址方式-选讲选讲统一编址和独立编址统一编址和独立编址1. 1. 统一编址统一编址把外设接口与内存统一进行编址把外设接

13、口与内存统一进行编址。各占据统一地址空间的不同。各占据统一地址空间的不同部分。部分。优点优点:指令统一,灵活;访问:指令统一,灵活;访问控制信号统一。控制信号统一。 缺点缺点: :内存可用地址空间减小内存可用地址空间减小;延长;延长I/OI/O操作时间。操作时间。FFFFFHFFFFFH00000H00000H地址空间地址空间( (共共1MB)1MB)内存地址内存地址(960KB)(960KB)I/OI/O地址地址(64KB)(64KB)EFFFFHEFFFFHF0000HF0000H2. 2. 独立编址独立编址外设地址空间和内存地址空间相互独立,由外设地址空间和内存地址空间相互独立,由M/M

14、/IOIO信号区分。信号区分。优点优点:内存地址空间不受:内存地址空间不受I/OI/O编址的影响。编址的影响。缺点缺点:I/OI/O指令(指令(ININ,OUTOUT)功能较弱。)功能较弱。8 80 08 88 8总线A19-A0 A15-A0MEMR、MEMW IOR、IOW 存储器存储器I/O接口接口五五. 8086/8088 CPU. 8086/8088 CPU的的I/OI/O编址方式编址方式1. 1. 采用采用I/OI/O独立编址独立编址方式方式( (但地址线与存储器共用但地址线与存储器共用) )。2. 2. 地址线上的地址信号地址线上的地址信号用用M/M/IOIO (IO/ (IO/

15、M M) )来区分来区分:M/M/IOIO =0 =0时为时为I/OI/O地址;地址; M/ M/IOIO =1 =1时为存储器地址。时为存储器地址。3. I/O3. I/O地址只使用地址只使用2020根地址线中的根地址线中的1616根根:A A1515 A A0 0。4. I/O4. I/O地址范围为地址范围为0 0FFFFHFFFFH,可寻址的,可寻址的I/OI/O端口数为端口数为64K(65536)64K(65536)个。个。IBM PCIBM PC只使用了只使用了10241024个个I/OI/O地址地址(0(03FFH)3FFH)。6.26.2 CPUCPU与外设之间与外设之间数据传输

16、的方式数据传输的方式CPUCPU与外设之间的数据传送与外设之间的数据传送, ,通常采用以下通常采用以下3 3种种I/OI/O传送方式:传送方式: 程序传送程序传送、 中断传送中断传送、 DMADMA传送传送程序传送方式、中断传送方式主要由程序传送方式、中断传送方式主要由软件实现软件实现,数据传输,数据传输过程需要过程需要CPUCPU的干预;的干预;DMADMA传送方式主要由传送方式主要由硬件实现硬件实现,数据传输过程不需要,数据传输过程不需要CPUCPU的的干预。干预。6.2.1 6.2.1 程序传送程序传送6.2.1.1 6.2.1.1 无条件传送无条件传送程序传送是指程序传送是指CPUCP

17、U与外设间的数据交换在程序控制(即与外设间的数据交换在程序控制(即ININ或或OUTOUT指令控制指令控制) )下进行。分为无条件传送和程序查询传送。下进行。分为无条件传送和程序查询传送。6.2.1.1 6.2.1.1 无条件传送(同步传送)无条件传送(同步传送)适用于适用于总是处于准备好状态总是处于准备好状态的或的或在某些固定时刻处于数据就在某些固定时刻处于数据就绪或准备接收状态绪或准备接收状态外设。外设。如:开关、发光器件如:开关、发光器件( (如发光二极管、如发光二极管、7 7段数码管、灯泡等段数码管、灯泡等) )、继电器、步进电机、机械式传感器等。、继电器、步进电机、机械式传感器等。优

18、点优点:软件及接口硬件简单。:软件及接口硬件简单。缺点缺点:只适用于简单外设,适应范围较窄。:只适用于简单外设,适应范围较窄。一一. . 无条件传送无条件传送输入输出原理图输入输出原理图输出锁存器输出锁存器( (数据输出端口数据输出端口) )输入缓冲器输入缓冲器( (数据输入端口数据输入端口) )输入缓冲器输入缓冲器:输入数据时,因简单外设保持数据时间相对:输入数据时,因简单外设保持数据时间相对CPUCPU接收速度较接收速度较长,直接使用三态缓冲器与长,直接使用三态缓冲器与CPUCPU数据线相连即可。数据线相连即可。输出锁存器输出锁存器:输出数据时,因:输出数据时,因CPUCPU保持待发送数据

19、时间相对外设接收速度保持待发送数据时间相对外设接收速度较短,故需要在数据线上加锁存器以将较短,故需要在数据线上加锁存器以将CPUCPU发送的数据保持较长时间。发送的数据保持较长时间。锁存允许端锁存允许端CECE=1=1时,时,DBDB上新的数据不能进入锁存器;只有当确知外设取走上新的数据不能进入锁存器;只有当确知外设取走锁存器中数据,才使锁存器中数据,才使CECE=0=0,新数据进入锁存器保存。,新数据进入锁存器保存。二二. . 无条件传送无条件传送输入输出过程输入输出过程输入时输入时,假定假定来自外设的数据已输入至三态缓冲器;来自外设的数据已输入至三态缓冲器;当当CPUCPU执行执行ININ

20、指令指令时,所指定的时,所指定的端口地址端口地址经地址总线的低经地址总线的低1616位或低位或低8 8位送至地址译码器,位送至地址译码器,CPUCPU进入了进入了输入周期输入周期, ,选中选中的地址信号和的地址信号和IO/IO/M M(及(及RDRD)相与后)相与后, ,去去选通选通输入三态缓冲输入三态缓冲器,把外设的数据与数据总线器,把外设的数据与数据总线连通并读入连通并读入CPUCPU。输出时输出时,假定假定CPUCPU的输出信息经数据总线已送到输出锁存的输出信息经数据总线已送到输出锁存器的输入端;器的输入端;当当CPUCPU执行执行OUTOUT指令指令时时, ,端口地址端口地址由地址总线

21、的低位地址由地址总线的低位地址送至地址译码器,送至地址译码器,CPUCPU进入了进入了输出周期输出周期, ,所选中的地址信号所选中的地址信号和和IO/IO/M M (及(及WRWR 信号)相与后,去信号)相与后,去选通选通锁存器,把输出信锁存器,把输出信息送至锁存器保留息送至锁存器保留, ,由它再把信息由它再把信息通过外设输出通过外设输出。三三. . 必要的前提条件必要的前提条件CPUCPU执行执行ININ指令指令读入读入数据时数据时, ,外设的外设的数据必须是已准备好数据必须是已准备好的的,否则就会读错。,否则就会读错。CPUCPU执行执行OUTOUT指令指令输出输出数据时数据时, ,必须确

22、信所选必须确信所选外设的锁存器外设的锁存器是空的是空的,即原有数据已被外设读完。,即原有数据已被外设读完。四四. . 无条件传送实例无条件传送实例例:一个采用同步传送的数据采集系统如图例:一个采用同步传送的数据采集系统如图6.46.4所示。所示。端口地址端口地址数据端口数据端口控制端口,控制端口,8 8位的寄存器位的寄存器1. 1. 数据采集系统说明数据采集系统说明这是一个这是一个1616位精度的数据采集系统。位精度的数据采集系统。被采集的数据是被采集的数据是8 8个模拟量,由继电器绕组个模拟量,由继电器绕组P0P0、P1P1、P7P7分分别控制触点别控制触点K0K0、K1K7K1K7逐个接通

23、。逐个接通。每次采样用一个每次采样用一个4 4位位( (每位为一个十进制数每位为一个十进制数) )数字电压表测量数字电压表测量,把被采样的模拟量转换成,把被采样的模拟量转换成1616位压缩位压缩BCDBCD代码代码( (即对应即对应4 4位十位十进制数的进制数的4 4个个BCDBCD码码),),高高8 8位和低位和低8 8位通过两个不同的端口(其位通过两个不同的端口(其地址分别为地址分别为10H10H和和11H)11H)输入。输入。CPUCPU通过端口通过端口20H 20H 输出控制信号输出控制信号, ,以控制某个继电器的吸合以控制某个继电器的吸合, ,实现采集不同通道的模拟量。实现采集不同通

24、道的模拟量。2. 2. 采集过程要求采集过程要求1. 1. 先断开先断开所有的继电器线圈及触头所有的继电器线圈及触头, ,不采集数据。不采集数据。2. 2. 延迟一段时间后延迟一段时间后, ,使使K0K0闭合闭合, ,采集第采集第1 1个通道的模拟量个通道的模拟量, ,并保并保持持一段时间一段时间, ,以使数字电压表能将模拟电压转换为以使数字电压表能将模拟电压转换为1616位位BCDBCD。3. 3. 分别将高分别将高8 8位与低位与低8 8位位BCDBCD码码存入内存存入内存, ,完成第完成第1 1个模拟量的个模拟量的输入与存储。输入与存储。4. 4. 利用移位与循环实现利用移位与循环实现8

25、 8个模拟量的个模拟量的依次采集依次采集、输入与转存、输入与转存。3. 3. 电磁继电器示意图电磁继电器示意图R RV VP PK K4. 4. 程序程序START: START: MOV DX,0100H MOV DX,0100H ;01HDH,;01HDH,用于设置吸合第用于设置吸合第1 1个继电器代码个继电器代码 ;00HDL,;00HDL,用于设置断开所有继电器代码用于设置断开所有继电器代码LEA BX,DSTOR LEA BX,DSTOR ; ;置输入数据缓冲器的地址指针置输入数据缓冲器的地址指针XOR AL,AL XOR AL,AL ; ;清清ALAL及进位位及进位位CF(XORC

26、F(XOR指令使指令使CFCF清零清零) )AGAIN: AGAIN: MOV AL,DLMOV AL,DLOUT 20H,AL OUT 20H,AL ; ;断开所有继电器线圈断开所有继电器线圈CALL NEAR DELAY1 CALL NEAR DELAY1 ; ;模拟继电器触点的释放时间模拟继电器触点的释放时间MOV AL,DHMOV AL,DHOUT 20H,AL OUT 20H,AL ; ;先使先使P0P0吸合吸合CALL NEAR DELAY2 CALL NEAR DELAY2 ; ;模拟触点闭合及数字电压表的转换时间模拟触点闭合及数字电压表的转换时间 IN AX,10H IN AX

27、,10H ; ;从数据端口从数据端口10H10H、11H11H输入采集并经转换的数据输入采集并经转换的数据MOV BX,AX MOV BX,AX ; ;电压数据存入内存电压数据存入内存INC BX INC BX INC BX INC BX ;BX;BX指向下一内存单元,用于存储下一电压数据指向下一内存单元,用于存储下一电压数据RCL DH,1 RCL DH,1 ;DH;DH左移左移( (大循环大循环)1)1位位, ,为下一个触点吸合作准备为下一个触点吸合作准备JNC AGAIN JNC AGAIN ;8;8位都输入完了吗?位都输入完了吗?CF=0CF=0说明没输入完,循环说明没输入完,循环DO

28、NEDONE: ; ;输入已完,则执行别的程序。输入已完,则执行别的程序。 6.2.1.26.2.1.2 程序查询传送程序查询传送( (条件传送、异步传送条件传送、异步传送) )它也是一种程序传送,但与前述无条件的同步传送不同它也是一种程序传送,但与前述无条件的同步传送不同, ,是是有条件有条件的异步传送。的异步传送。条件是条件是: :在执行输入在执行输入(IN(IN指令指令) )或输出或输出(OUT(OUT指令指令) )前,要先查询前,要先查询接口中状态寄存器的状态。接口中状态寄存器的状态。输入时输入时, ,由该状态信息指示要输入的数据是否已由该状态信息指示要输入的数据是否已“准备就准备就绪

29、绪”,由此条件来决定是否立即执行输入;,由此条件来决定是否立即执行输入;输出时输出时, ,由它指示输出设备是否由它指示输出设备是否“空闲空闲”,由此条件来决,由此条件来决定是否立即执行输出。定是否立即执行输出。程序查询传送程序查询传送适用场合适用场合适用于外设并不总是准备好,而且对传送速率、传送效率要适用于外设并不总是准备好,而且对传送速率、传送效率要求不高的场合。求不高的场合。CPUCPU在与外设交换数据前必须询问外设状在与外设交换数据前必须询问外设状态态“你准备好没有?你准备好没有?”对外设的要求对外设的要求:外设能够向接口提供设备状态信息。:外设能够向接口提供设备状态信息。对接口的要求对

30、接口的要求:接口需要向:接口需要向CPUCPU提供能够反映外设状态的提供能够反映外设状态的状态端口。状态端口。优点优点:软件比较简单;:软件比较简单;缺点缺点:CPUCPU效率低,数据传送的实时性差,速度较慢。效率低,数据传送的实时性差,速度较慢。一一. . 程序查询输入程序查询输入= =1 1CPCP数据端口数据端口(DATA)(DATA)8 8位位( (输入输入) ) 状态端口状态端口(STATUS)(STATUS)只用只用1 1位位( (输入输入) )图图6.5 6.5 查询式输入的接口电路查询式输入的接口电路CP R D QCP R D Q1 1 11 1 11 0 01 0 0 0

31、0 0 0D D触发器部分逻辑图触发器部分逻辑图程序查询输入过程程序查询输入过程当输入装置的当输入装置的数据已准备好后数据已准备好后发出一个发出一个STBSTB选通信号,一选通信号,一边把数据边把数据送入锁存器送入锁存器,一边使,一边使D D触发器为触发器为“”,给出给出“准备准备”READYREADY的状态信号的状态信号。而数据与状态必须有不同的端口分别输入至而数据与状态必须有不同的端口分别输入至CPUCPU数据总线数据总线。当。当CPUCPU要由外设输入数据时,要由外设输入数据时,CPUCPU先输入状态信息先输入状态信息至累加至累加器,检查数据是否已准备好;当数据已准备好器,检查数据是否已

32、准备好;当数据已准备好后,才输入后,才输入数据数据至累加器。读入数据的命令,至累加器。读入数据的命令,使状态信息清使状态信息清0 0( (通过先通过先使使D D触发器复位触发器复位) ),防止防止CPUCPU重复读入同一数据重复读入同一数据。查询输入部分的程序查询输入部分的程序查询输入部分的程序:查询输入部分的程序: POLL:POLL:IN AL,STATUSPORT ;IN AL,STATUSPORT ;读状态端口的信息读状态端口的信息 TEST AL,80TEST AL,80 ; ;设设“准备就绪准备就绪”(READY)(READY)信息在信息在D7D7位位 JE POLL ;JE PO

33、LL ;未未“准备就绪准备就绪”,则循环再查,则循环再查 IN AL,DATA_PORT ;IN AL,DATA_PORT ;已已”准备就绪准备就绪”(READY=1),(READY=1),则读入数据则读入数据图图6.7 6.7 查询式输入程序流程图查询式输入程序流程图二二. . 程序查询输出程序查询输出图图6.8 6.8 查询式输出的接口电路查询式输出的接口电路数据端口数据端口( (锁存器锁存器) )8 8位位( (输出输出) )状态端口状态端口(G3)(G3)只用只用1 1位位( (输入输入) )“BUSYBUSY”(1(1位位) )程序查询输出过程程序查询输出过程当输出装置把当输出装置把

34、CPUCPU上一次输出的数据上一次输出的数据可靠输出后可靠输出后,发出一,发出一个个ACKACK信号,信号,使使D D触发器清触发器清0 0(使(使BUSY=0BUSY=0);CPUCPU读入此状态读入此状态信息后(即信息后(即BUSY=0BUSY=0,经,经G3G3DBDB的的D7D7),知),知道外设为空,道外设为空,执行输出指令执行输出指令;输出指令执行后,地址信号和输出指令执行后,地址信号和M M/IO/IO及及WRWR相与,经相与,经G1G1发选通发选通信号,把信号,把DBDB上的输出数据送入锁存器上的输出数据送入锁存器;同时,同时,触发触发D D触发器为触发器为1 1:一方面通知外

35、设数据已准备好,:一方面通知外设数据已准备好,可以输出可以输出;另一方面数据在由外设输出完之前;另一方面数据在由外设输出完之前D D一直为一直为1 1,告知告知CPUCPU外设状态外设状态BUSY=1BUSY=1,阻止阻止CPUCPU输出新数据输出新数据,直至外设,直至外设输出完数据发出一个输出完数据发出一个ACKACK信号,使信号,使D D触发器清触发器清0 0。查询输出部分的程序查询输出部分的程序查询输出部分的程序:查询输出部分的程序:POLL: IN AL,STATUS_PORT ;POLL: IN AL,STATUS_PORT ;查状态端口中的状态信息查状态端口中的状态信息D7 D7

36、TEST AL TEST AL,80H 80H JNE POLL JNE POLL; ;D7;D71 1即即BUSYBUSY1,1,则循环再查则循环再查 MOV ALMOV AL,STORE ;STORE ;否则否则, ,外设空闲外设空闲, ,由内存读取数据由内存读取数据 OUT DATA_PORT,AL ;OUT DATA_PORT,AL ;输出到输出到DATADATA地址端口单元地址端口单元图图6.10 6.10 查询式输出程序流程图查询式输出程序流程图三三. . 程序查询传送实例程序查询传送实例例例 一个采用查询方式的数据采集系统一个采用查询方式的数据采集系统 数据输入端口数据输入端口状

37、态端口状态端口控制端口控制端口采集过程要求采集过程要求(1) (1) 初始化。初始化。(2) (2) 先停止先停止A/DA/D转换。转换。(3) (3) 启动启动A/DA/D转换,查输入状态信息转换,查输入状态信息READYREADY。(4) (4) 当输入数据已转换完(当输入数据已转换完(READYREADY1,1,即准备就绪)即准备就绪), ,则经由则经由端口输入至端口输入至CPUCPU的累加器的累加器ALAL中中, ,并转送内存。并转送内存。(5) (5) 设置下一个内存单元与下一个输入通道设置下一个内存单元与下一个输入通道, ,循环次。循环次。数据采集过程的程序数据采集过程的程序STA

38、RE: 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,DSTORAGAINAGAIN:MOV AL,DLMOV AL,DL AND AL,0EFH ; AND AL,0EFH ;使使D4D4 OUT 04,AL ;OUT 04,AL ;停止停止A/DA/D转换转

39、换 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 POLL ;判判READY=1?READY=1?若若D0=0,D0=0,未准备好未准备好, ,则循环再查则循环再查 IN AL,03 ;IN AL,03 ;若已准备就绪若

40、已准备就绪, ,则经端口将采样数据输入至则经端口将采样数据输入至ALAL STOSB ; STOSB ;输入数据转送内存单元输入数据转送内存单元 IN CDL ;IN CDL ;输入模拟量通道增输入模拟量通道增1 1 JNE AGAIN ;8 JNE AGAIN ;8个模拟量未输入完则循环个模拟量未输入完则循环 ; ;输入已完输入已完, ,执行别的程序执行别的程序四四. . 小结小结1.1.过程过程:程序查询输入程序查询输入/ /输出传送方式的执行步骤是:输出传送方式的执行步骤是: ( ()CPU)CPU从从I/OI/O接口的状态端口中接口的状态端口中读入读入所寻址的外设的所寻址的外设的状态信

41、息状态信息“READY”READY”或或“BUSY”BUSY”。( () )根据读入的状态信息进行根据读入的状态信息进行判断判断。程序查询输入时,若状态。程序查询输入时,若状态信息信息READYREADY0 0,则外设数据未准备好,则外设数据未准备好,CPUCPU继续等待查询继续等待查询, ,直直至至READYREADY、外设已准备好数据、外设已准备好数据, ,执行下一步操作执行下一步操作; ;程序查程序查询输出时,若状态信息询输出时,若状态信息BUSYBUSY,则外设正在,则外设正在“忙忙”,CPU,CPU继继续等待查询续等待查询, ,直至外设直至外设“空闲空闲”、BUSYBUSY0 0时,

42、执行下一步操时,执行下一步操作。作。( () )执行输入执行输入/ /输出指令输出指令,进行,进行I/OI/O传送。完成数据的输入传送。完成数据的输入/ /输输出,并将外设的状态信息复位,一个位的数据传送结束。出,并将外设的状态信息复位,一个位的数据传送结束。2.2.主要优点主要优点:当计算机工作任务较轻或当计算机工作任务较轻或CPUCPU不太忙时,可以应用程序查询不太忙时,可以应用程序查询输入输出传送方式输入输出传送方式, ,它能较好地协调外设与它能较好地协调外设与CPUCPU之间定时之间定时的差别;程序和接口电路比较简单。的差别;程序和接口电路比较简单。3.3.主要缺点主要缺点: :CPU

43、CPU必须作程序必须作程序等待循环等待循环, ,不断测试外设的状态不断测试外设的状态, ,直至外设为直至外设为交换数据准备就绪时为止。这种循环等待方式很花费时间交换数据准备就绪时为止。这种循环等待方式很花费时间,大大降低了,大大降低了CPUCPU的运行效率。的运行效率。6.2.2 6.2.2 中断传送中断传送1.1.定义定义:中断是外设或其他中断源中止中断是外设或其他中断源中止CPUCPU当前正在执行的程序当前正在执行的程序, ,而转而转向为该外设服务向为该外设服务( (如完成它与如完成它与CPUCPU之间传送一个数据)的程之间传送一个数据)的程序序, ,一旦服务结束,又返回原程序继续工作。一

44、旦服务结束,又返回原程序继续工作。2.2.执行中断时间执行中断时间:CPUCPU在每一条指令执行的结尾阶段,均查询是否有中断请求在每一条指令执行的结尾阶段,均查询是否有中断请求信号;若有且此中断允许执行,则暂停执行现行的程序,信号;若有且此中断允许执行,则暂停执行现行的程序,转去为申请中断的某个外设服务,以完成数据传送。转去为申请中断的某个外设服务,以完成数据传送。优缺点优缺点CPUCPU无需循环查询外设状态,而是外部设备在需要进行数据无需循环查询外设状态,而是外部设备在需要进行数据传送时才中断传送时才中断CPUCPU正在进行的工作,让正在进行的工作,让CPUCPU来为其服务。大来为其服务。大

45、大提高了大提高了CPUCPU的利用率。的利用率。优点:优点:CPUCPU效率高,实时性好,速度快。效率高,实时性好,速度快。缺点:需要编写专门的中断服务程序,较为复杂。缺点:需要编写专门的中断服务程序,较为复杂。6.2.3 6.2.3 直接存储器存取(直接存储器存取(DMADMA)传输)传输一一. DMA. DMA方式产生的背景方式产生的背景前两类前两类I/OI/O方式都需要方式都需要CPUCPU作为中介:外设作为中介:外设 CPU CPU 内存内存 两个含义:两个含义:软件软件:外设与内存之间的数据传送是通过:外设与内存之间的数据传送是通过CPUCPU执行程序来完执行程序来完成的;成的; (

46、 (即即“IN IN 累加器,端口号累加器,端口号”或或 “ “OUT OUT 端口号,累加器端口号,累加器”) )硬件硬件:I/OI/O接口和存储器的读写控制信号、地址信号都是由接口和存储器的读写控制信号、地址信号都是由CPUCPU发出的(总线由发出的(总线由CPUCPU控制)。控制)。缺点缺点:程序的执行速度限定了传送的最大速度:程序的执行速度限定了传送的最大速度( (约为几十约为几十KB/KB/秒秒) )。二二. . 何为何为DMADMA传输?传输?1.1.基本形式基本形式 : 外设外设 内存内存外设直接与存储器进行数据交换外设直接与存储器进行数据交换 ,CPUCPU不再担当数据传输的不

47、再担当数据传输的中介者(中介者(CPUCPU此时被挂起)。此时被挂起)。2.2.总线控制总线控制:由:由DMADMA控制器(控制器(DMACDMAC)进行控制(此时)进行控制(此时CPUCPU要放要放弃总线控制权),内存弃总线控制权),内存/ /外设的地址和读写控制信号均由外设的地址和读写控制信号均由DMACDMAC提供。提供。3.3.优点优点:数据传输由:数据传输由DMACDMAC来控制,数据直接在内存和外设之来控制,数据直接在内存和外设之间交换,可以达到很高的传输速率(可达几间交换,可以达到很高的传输速率(可达几MB/MB/秒);在秒);在连续传送连续传送大量的数据如数据块大量的数据如数据

48、块等时,效率极高。等时,效率极高。4. DMA4. DMA数据传输的扩充形式数据传输的扩充形式: MEM MEM : MEM MEM 、I/O I/OI/O I/O数据数据三三. DMA. DMA输出单个数据的过程输出单个数据的过程HOLD=1HOLD=1HLDA=1HLDA=1HOLD=0HOLD=0HLDA=0HLDA=06.3 6.3 中断技术中断技术中断是一种十分重要而复杂的中断是一种十分重要而复杂的软硬件相结合软硬件相结合的技术,它的出的技术,它的出现给计算机结构与应用带来了新的突破。现给计算机结构与应用带来了新的突破。本节将介绍中断的基本概念、中断的响应与处理过程、优先本节将介绍中

49、断的基本概念、中断的响应与处理过程、优先权的安排等有关问题。权的安排等有关问题。6.3.1 6.3.1 中断概述中断概述一一. . 中断与中断源中断与中断源1.1.中断与中断源中断与中断源中断中断:使:使CPUCPU暂停暂停运行当前的程序,按照运行当前的程序,按照更为急迫更为急迫事件的需事件的需要要转去执行转去执行为中断服务的程序为中断服务的程序( (即中断服务程序即中断服务程序) );待该程序;待该程序处理完后,处理完后,再返回再返回运行原来的程序,称为中断运行原来的程序,称为中断( (技术技术) )。中断源中断源:引起中断的事件或原因,或发出中断申请的来源。:引起中断的事件或原因,或发出中

50、断申请的来源。2.2.中断源的类别中断源的类别(1)(1)外部设备外部设备: :中、低速外设。中、低速外设。( (高速外设如磁盘进行高速外设如磁盘进行DMADMA传输传输) )(2)(2)实时时钟实时时钟:自动控制中的外部时钟,当定时已到,则向:自动控制中的外部时钟,当定时已到,则向CPUCPU发中断申请。发中断申请。(3)(3)故障源故障源:当发生溢出错误、存储器读出出错、外设故障、:当发生溢出错误、存储器读出出错、外设故障、电源掉电、越限报警等,计算机内部的故障检测装置能使电源掉电、越限报警等,计算机内部的故障检测装置能使CPUCPU中断。中断。(4)(4)为调试程序设置的中断源为调试程序

51、设置的中断源:CPUCPU执行了特殊指令执行了特殊指令( (自陷指令自陷指令) )或由硬件电路引起的中断,主要供用户调试程序采取的检查或由硬件电路引起的中断,主要供用户调试程序采取的检查手段,如断点设置、单步中断等。手段,如断点设置、单步中断等。其中前三种为其中前三种为随机中断源随机中断源,由此引起的中断称为,由此引起的中断称为强迫中断强迫中断。最后一种为最后一种为自愿中断自愿中断。二二. . 中断系统及其功能中断系统及其功能1. 1. 能响应中断、处理中断与返回能响应中断、处理中断与返回判断是否响应该中断请求判断是否响应该中断请求保护断点和现场保护断点和现场找中断服务程序的入口,并清找中断服

52、务程序的入口,并清除中断请求触发器;除中断请求触发器;恢复现场和断点恢复现场和断点返回断点返回断点2. 2. 能实现优先权排队能实现优先权排队当系统中有多个中断源时,有可能出现两个或两个以上中断当系统中有多个中断源时,有可能出现两个或两个以上中断源同时提出中断请求。源同时提出中断请求。CPUCPU应能够根据事先确定的优先权应能够根据事先确定的优先权由高到低依次处理这些中断。由高到低依次处理这些中断。3. 3. 中断嵌套中断嵌套高级中断源能中断低级的中断。如图高级中断源能中断低级的中断。如图6.146.14所示。所示。三三. . 中断的应用中断的应用能解决快速能解决快速CPUCPU与中、慢速外设

53、速度不匹配的矛盾以提高与中、慢速外设速度不匹配的矛盾以提高主机的工作效率;主机的工作效率;在实现分时操作、实时处理、故障处理、多机连接以及人在实现分时操作、实时处理、故障处理、多机连接以及人机联系等方面均有广泛的应用。机联系等方面均有广泛的应用。6.3.2 6.3.2 单个中断源的中断单个中断源的中断以外部可屏蔽中断为例以外部可屏蔽中断为例,介绍单个中断源的情况。,介绍单个中断源的情况。简单的中断过程应包括:简单的中断过程应包括:中断请求、中断请求、中断响应、中断响应、中断处理和中断处理和中断返回等环节。中断返回等环节。6.3.2.1 6.3.2.1 中断源向中断源向CPUCPU发中断请求信号

54、发中断请求信号的的2 2个条件个条件1. 1. 设置中断请求触发器设置中断请求触发器每一个中断源,要能向每一个中断源,要能向CPUCPU发中断请求信号发中断请求信号, ,首先应能由它的首先应能由它的接口电路提出中断请求,且该请求能保持着接口电路提出中断请求,且该请求能保持着, ,直至直至CPUCPU接受接受并响应该中断请求后并响应该中断请求后, ,才能清除它。才能清除它。 这要求在每个中断源的接口电路中设置一个中断请求触发器这要求在每个中断源的接口电路中设置一个中断请求触发器A,A,由它产生中断请求,即由它产生中断请求,即QA=1QA=1。2 2设置中断屏蔽触发器设置中断屏蔽触发器中断请求能否

55、被允许以中断请求信号中断请求能否被允许以中断请求信号( (如如INTR)INTR)发向发向CPUCPU,应,应能受能受CPUCPU的控制,以增加处理中断的灵活性。的控制,以增加处理中断的灵活性。 这要求在接口电路中增设一个中断屏蔽触发器这要求在接口电路中增设一个中断屏蔽触发器B B,由,由CPUCPU通过通过指令控制其指令控制其QBQB端,进而控制中断请求能否发向端,进而控制中断请求能否发向CPUCPU。具有中断请求触发器具有中断请求触发器A A和中断屏蔽触发器和中断屏蔽触发器B B的接口电路的接口电路复位,防止复位,防止重复响应同重复响应同一中断一中断AB如何接收外设的中断请求信号?如何接收

56、外设的中断请求信号?条件条件:Q QB B=1/Q=1/QB B=0=0。(预先将控制端口写。(预先将控制端口写“0 0”,使得,使得Q QB B=1 =1 )过程过程:外设发中断请求:外设发中断请求“1 1”,使,使QA=1QA=1,经与门送入,经与门送入INTRINTR。 CPU CPU执行中断服务程序执行中断服务程序“IN AL,DATAPORTIN AL,DATAPORT”读入数据;读入数据;同时使触发器同时使触发器A A清清0 0,防止重复响应同一中断。,防止重复响应同一中断。如何阻止接收外设的中断请求信号?如何阻止接收外设的中断请求信号?条件条件:Q QB B=0/Q=0/QB B

57、=1=1。(预先将控制端口写。(预先将控制端口写“1 1”,使得,使得Q QB B=0 =0 )过程过程:外设发中断请求:外设发中断请求“1 1”,使,使QA=1QA=1,被与门屏蔽,无法送,被与门屏蔽,无法送入入INTRINTR。6.3.2.2 CPU6.3.2.2 CPU响应中断的响应中断的2 2个条件个条件一一. CPU. CPU开放中断开放中断CPUCPU采样到采样到INTRINTR来的中断请求信号后是否响应它,由来的中断请求信号后是否响应它,由CPUCPU内设内设置的中断允许触发器置的中断允许触发器(IFF)(IFF)的状态决定。的状态决定。当当IFFIFF的输出的输出Q Q1 1时

58、,开中,响应;时,开中,响应;当当IFFIFF的输出的输出Q Q 0 0时,关中,不响应。时,关中,不响应。IFFIFF的状态可由开中断指令的状态可由开中断指令(STI)(STI)和关中断指令和关中断指令(CLI)(CLI)实现。实现。( (正在响应或处理当前中断服务程序时正在响应或处理当前中断服务程序时HLDA=1)HLDA=1)IFF二响应中断的时间在二响应中断的时间在CPUCPU结束现行指令后结束现行指令后在在CPUCPU开中时,若有中断请开中时,若有中断请求信号发至求信号发至CPU,CPU,它也并不它也并不立即响应。而只有当立即响应。而只有当现行现行指令运行到最后一个机器指令运行到最后

59、一个机器周期的最后一个周期的最后一个T T状态时状态时, , CPUCPU才才采样采样INTRINTR信号信号;若;若有此信号,则把与门的有此信号,则把与门的允许中断输出端置允许中断输出端置1 1,于,于是,是,CPUCPU进入中断响应周进入中断响应周期。期。6.3.2.36.3.2.3 CPUCPU响应中断响应中断及处理过程及处理过程1 1关中断关中断( (执行执行CLICLI指令指令) )2 2保留断点保留断点(IP(IP值入栈值入栈) )3 3保护现场保护现场( (有关寄存器值入栈有关寄存器值入栈) )4 4给出中断入口给出中断入口( (地址地址) ),转入相应,转入相应的中断服务程序的

60、中断服务程序8086/80888086/8088是由中断源提供中断类型是由中断源提供中断类型号号, ,并根据中断类型号在中断向量并根据中断类型号在中断向量表中取得中断服务程序的起始地表中取得中断服务程序的起始地址址5 5恢复现场恢复现场( (上述寄存器值出栈上述寄存器值出栈) )6 6开中断与返回开中断与返回( (执行执行STISTI、IPIP出栈出栈) )6.3.3 6.3.3 向量中断向量中断1. 1. 向量中断向量中断(Vectored Interrupt)(Vectored Interrupt)指通过中断向量来找中断入口地址进而转向中断服务程序的指通过中断向量来找中断入口地址进而转向中

温馨提示

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

评论

0/150

提交评论