第7章输入输出技术.ppt

上传人:sccc 文档编号:5116005 上传时间:2023-06-05 格式:PPT 页数:69 大小:524.02KB
返回 下载 相关 举报
第7章输入输出技术.ppt_第1页
第1页 / 共69页
第7章输入输出技术.ppt_第2页
第2页 / 共69页
第7章输入输出技术.ppt_第3页
第3页 / 共69页
第7章输入输出技术.ppt_第4页
第4页 / 共69页
第7章输入输出技术.ppt_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《第7章输入输出技术.ppt》由会员分享,可在线阅读,更多相关《第7章输入输出技术.ppt(69页珍藏版)》请在三一办公上搜索。

1、第七章 输入/输出与中断,7.1 I/O接口概述7.2 I/O传送方式 7.3 中断技术7.4 8086微处理器的中断方式7.5 可编程中断控制器8259A,7.1 I/O接口概述,I/O接口:指CPU与外围设备或外围设备与系统设备之间进行数据交换和通信的连接电路,是CPU与外界进行信息交换的中转站。I/O接口技术:是研究CPU如何与外设进行最佳耦合与匹配,实现双方高效、可靠地交换信息的一门技术,是软件、硬件结合的体现,是微机应用的关键。,速度匹配 光电隔离驱动外设 信号特性匹配 数据缓冲与锁存 信息格式转换 设备选择 中断控制,7.1.1 I/O接口的作用,1、数据信息 通常包括数字量、模拟

2、量和开关量3种信息数字量 以二进制形式或是以ASCII码表示的数或字符。模拟量 指在计算机控制系统中,某些现场信息经传感器转换为电信号,再通过放大得到模拟电压或电流。开关量 指只含两种状态的量,如开关的断开与闭合,电路的通与断等,故只需用一位二进制数即可描述一个开关量。2、状态信息 状态信息作为一种CPU与I/O设备之间的接口信号,主要用来反映I/O设备当前的状态。3、控制信息 控制信息是CPU通过I/O接口传送给外设的,专门用来控制I/O设备的操作,是向外设传送的控制命令。,7.1.2 CPU与外设交换的信息,7.1.3 I/O接口的基本结构,数据信息、状态信息和控制信息作为CPU与I/O设

3、备间的接口信号,在接口电路中,将这3种信息分别存放在不同的寄存器中,这些寄存器称为接口电路的I/O端口。,接口电路有3种端口:数据端口,状态端口和控制端口。数据端口:数据端口可分为数据输入端口和数据输出端 口两类。在输入时,由数据输入端口保存外设发往CPU或内存的数据;在输出时,由数据输出端口保存CPU或内存发往外设的数据。状态端口:状态端口用来保存I/O设备或接口部件本身的工作状态信息,让微处理器了解数据传送过程中正在发生或最近已发生的状态。控制端口:控制端口用来存放处理器发来的控制命令与其他信息,确定接口电路的工作方式和功能,便于控制接口电路和I/O设备的动作。,CPU和外部设备之间进行数

4、据传输时,各类信息在接口中将进入不同的寄存器,一般称这些寄存器为I/O端口;每个端口分配一个地址号,称之为端口地址,CPU通过指令对它们进行访问。8086CPU最大可用地址总线的低16位作为对8位I/O端口的寻址线,相邻的两个8位端口可以组成一个16位端口,所以8086CPU可访问的8位I/O端口有64K个,16位I/O端口有32K个。,7.1.4 I/O端口的编址方式,一、I/O端口与存储器统一编址,优点:不需要专门的I/O指令I/O数据存取与存储器数据存取一样灵活缺点:I/O端口要占去部分存储器地址空间寻址速度比专用的I/O指令慢,二、I/O端口独立编址,优点:I/O端口的地址空间独立,不

5、占用内存空间指令的执行速度快缺点:I/O指令没有存储器指令丰富,指令功能比较弱,1、门电路地址译码(与门、非门、或门、与非门、或非门),三、I/O端口地址的译码,2、译码器地址译码,常用的译码器有74LS139、74LS138、74LS154等,一、直接程序控制方式(程序方式)无条件传送方式 外部控制过程的各种动作在时间上是固定的,而且是已知的。条件传送方式(查询方式)传送前,先查询外设状态,准备好才传送,否则CPU处于等待状态。,7.2 I/O与外设之间的数据传送的方式,1、无条件传送方式,输入时外设必须已准备好数据,输出时接口锁存器必须为空。即接口和I/O设备在无条件传送时必须要保持“就绪

6、”状态。,N,Y,从状态端口读入状态信息,从数据端口传送一个数据,外设准备好否?,2、条件传送方式,查询方式输入接口,查询方式输出接口,条件传送方式优点:接口简单缺点:CPU不断查询外设状态,降低了CPU的利用率。为了提高CPU的效率以及使系统具有实时性,通常采用中断方式传送数据。,二、中断传送方式 中断传送方式是指由于某些随机事件的产生,使CPU暂停当前正在执行的程序,而转去处理相应的外部事件,执行一个为外设服务的I/O程序,执行完毕后,CPU返回原来程序的断点处继续执行。,INTA,中断方式输入接口,中断请求,D,Q,三态缓冲器,&,&,中断屏蔽触发器,Q,端口 译码,地址总线,RD,IN

7、TR,输入设备,数据,输入锁存器,+5V,D0D7,中断传送方式优点:CPU和外设大部分时间处在并行工作状态,只在CPU响应外设的中断申请后,进入数据传送的过程,提高了CPU的效率。缺点:利用中断方式传送数据,为了可靠的进行数据传送,必须花费一定的时间进行断点的保护和恢复,现场的保护和恢复等工作,浪费了CPU很多时间。因此中断方式一般适合传送少量的数据及中低速外设,对于大量的输入/输出数据,应采用高速的直接存储器存取方式DMA。,DMA 传送方式过程,三、DMA控制方式(直接存储器存取方式),实现方法:1、由专用接口芯片DMA控制器(称DMAC)控制传 送过程;2、当外设需传送数据时,通过DM

8、AC向CPU发出 总线请求;3、CPU发出总线响应信号,释放总线;4、DMAC接管总线,控制外设、内存之间直接数据 传送;5、DMA操作结束,将总线控制权交还给CPU。,DMA传送方式优点:传送速度快缺点:需用DMA控制器进行控制,硬件连接也比较复杂,四、接口设计实例,例:显示器采用7段LED,由BCD-7段译码/驱动器所驱动,并采用共阳极接法,假定任何时候至多只有一个开关闭合。编写一程序段,显示闭合开关序号,若无开关闭合,则显示器不发光。,DATA SEGMENT TAB DB 10H,11H,12H,13H,14H,15H,16H,17HDATA ENDSCODE SEGMENT ASSU

9、ME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV BX,OFFSET TAB IN AL,20HCOUN:SHR AL,1 JNC NEXT MOV AL,BX OUT 20H,AL JMP EXITNEXT:INC BX JMP COUNEXIT:CODE ENDS END START,7.3.1 中断的基本概念,一、中断与异常 1、中断 在CPU正常运行程序时,由于内部或外部某个非预料事件的发生,使CPU暂停正在运行的程序,而转去执行处理引起中断事件的程序,然后再返回被中断了的程序,继续执行。这个过程就是中断。,7.3 中断技术,早期中断概

10、念的引入,是为解决CPU与外设间的速度匹配问题,提高CPU 的工作效率。中断源主要是由外部硬件产生。当今的中断技术,不再限于外部硬件产生中断(称硬件中断或外中断),还可由CPU内部产生。2、异常(软件中断或内中断)因内部意外条件而改变程序执行流程以报告出错情况和非正常状态的过程或者由程序预先安排,即由指令INT n调用中断服务程序产生的中断。(286以上称内中断为异常),二、中断原理(外中断)1)中断请求 2)中断判优 3)中断响应 响应条件:无总线请求和非屏蔽中断请求;中断允许控制位IF=1;CPU执行完当前指令;当前中断级别最高。响应时自动完成以下工作:发送两个INTA负脉冲,取中断类型号

11、N;将FLAGS入栈,关中断,即IF=0、TF=0;保护断点,将CS、IP入栈;根据中断类型号N取得中断向量送入IP、CS;进入中断服务子程序。,4)中断处理 保护现场;开中断,以允许嵌套,也可不开中断;中断服务;关中断,保证无干扰恢复现场;恢复现场。5)中断返回 开中断;中断返回。,1、中断优先级的识别 当有多个中断源同时提出中断申请时,究竟应该先响应哪个中断源的申请;当CPU正在执行中断服务程序时,又接收到新的中断申请,是否应该响应这个中断请求,这些问题都应当通过设置与判断中断的优先级来得以解决。1)软件查询法 2)硬件排队电路,2、中断嵌套 指当CPU因响应某一中断源的中断请求而正在执行

12、其中断服务程序时,若此时中断是开放的,那必然可以把正在执行的中断服务程序暂停下来转而响应和处理中断优先级更高的中断请求,等到处理完后再转回来继续执行原来的中断服务程序。,7.3.2 中断优先级和中断的嵌套,从8086/8088到以上系统中,可以处理256个不同类型的中断,其编号从00H0FFH,称为中断类型号。内部中断:除法出错 类型号0 自动产生 单步中断 类型号1 DEBUG执行T命令 断点中断 类型号3 DEBUG执行G命令 溢出中断 类型号4 执行INTO INT n 类型号n(05H 0FFH),7.4 8086/8088中断系统,7.4.1 8086/8088中断源类型,外部中断:

13、不可屏蔽中断 类型号2 自动产生可屏蔽中断 类型号(32 255)由8259管理,当有多个中断源同时产生中断申请时,CPU先响应优先权最高的中断源,再响应优先级较低的中断源。,8086/8088CPU的中断优先级,优先级 高 低内部中断(除法出错,INT 指令,断点,INTO指令)非屏蔽中断 可屏蔽中断低 内部中断(单步),7.4.2 中断向量表,中断向量:中断服务程序入口地址。中断向量表:用于存放256个中断向量的存储区域,共占1KB存储空间。中断向量指针:在向量表中存放每个中断向量的地址。,例:NMI中断,为2号中断 中断向量存于 IP 0000H:0008H 0000H:0009H CS

14、 0000H:000AH 0000H:000BH 中断响应后CPU根据CS和IP内容进入中断子程序。例:中断类型号30H(30H4=C0H)中断向量存于IP 0000H:00C0H 10H 0000H:00C1H 20H CS 0000H:00C2H 30H 0000H:00C3H 40H 则中断所对应的中断向量为4030H:2010H,也即该中断服务程序的入口地址。,1、直接装入法 PUSH DS XOR AX,AX MOV DS,AX MOV BX,N*4 MOV AX,OFFSET NEWINT MOV WORD PTRBX,AX MOV AX,SEG NEWINT MOV WORD P

15、TRBX+2,AX POP DS NEWINT PROC IRET NEWINT ENDP,7.4.3 中断向量表的建立,2、使用串送存指令装入法 MOV AX,0 MOV ES,AX MOV DI,N*4 MOV AX,OFFSET NEWINT CLD STOSW MOV AX,SEG NEWINT STOSW,3、使用DOS功能调用设置中断向量预置:AH=25H 功能号 AL=N 中断类型号 DS:DX=中断向量执行:INT 21H例如:PUSH DS MOV AX,SEG NEWINT MOV DS,AX MOV DX,OFFSET NEWINT MOV AL,N MOV AH,25H

16、 INT 21H POP DS,7.5 可编程中断控制器Intel8259A,1.具有8级优先级控制,通过级联可扩充到64级;2.每一级中断可由程序单独屏蔽或允许;3.可提供中断类型号传送给CPU;4.可通过编程选择多种不同的工作方式。,7.5.1 8259A的功能,D7D0 RD WR A0 CS CAS0 CAS1 CAS2 SP/EN,数据缓冲器,读写逻辑,级联比较/缓冲,控制逻辑,中断屏蔽寄存器IMR,ISR,PR,IRR,INTINTAIR0IR7VccGND,7.5.2 8259A的内部结构及外部引脚 1、内部结构,级联比较/缓冲器CAS0CAS2是级联信号SP/EN控制电路 是8

17、259A的内部控制器 根据IRR的置位情况和IMR的设置情况,通过PR判定优先级,向8259A内部及其它部件发控制信号和INT,接收INTA使ISR相应位置1,并使IRR相应位置0,同时送中断类型号。,主片 输出从片 输入,非缓冲方式缓冲方式 控制数据缓冲器,单片结构 输入接“1”少量级联结构 输入,主片 接“1”从片 接地,主片 输出从片 接地,数据缓冲器 双向8位三态缓冲器与系统数据总线接口 与CPU交换的信息包括注:通常连接低8位数据总线读写逻辑 控制数据传送方向及选择数据端口,写入8259A的编程控制字8259A状态信息的读出中断响应时送出的中断类型号,IRR 中断请求寄存器 用来存放

18、由外部输入的中断请求信号IR0IR7,允许多位置1。ISR 中断服务寄存器 保存、记录正在处理中的中断请求,当任何一级中断被响应,CPU正在执行它的中断服务程序时,ISR相应位置1。PR 优先级判别器 对保存在IRR中的中断请求进行优先级识别,送出最高级别中断请求到ISR中;当出现多重中断时,PR判定是否允许所出现的中断去打断正在处理的中断。IMR 中断屏蔽寄存器 实现对各级中断的有选择的屏蔽,当某位为1,表示禁止这一级中断请求进入系统。,2、引脚功能及与CPU连接,8259A,WR,A0,CS,A0,数 据 线,RD,RD,WR,IR0IR1IR2IR3IR4IR5IR6IR7,A5A4A3

19、A2A1,D0D7,D0D7,Vcc,SP/ENCA0CA1CA2GND,+5V,用于多片8259A级连情况,INTA,INT,INTA,INTR,8088最小模式,+5V,M/IO,GG2AG2BCBA,Y2,1,+5V,多片8259A连接,主片8259A端口地址 20H 22H从片1端口地址 24H 26H从片2端口地址 28H 2AH,D0 D7,A1,G1G2A Y2G2B Y1 C Y0 B A,A0 M/IO,A6A5A4 A3 A2,8086最小模式,RD,INTA,WR,INT,主片8259A,从片1,从片2,A0 CS,INT IR7 IR0,IR7 IR2 IR1IR0,I

20、NT IR7 IR0,1,7.5.3 8259A的工作方式,1、中断优先级方式全嵌套方式 这是8259A的默认方式,也是最基本最常用的工作方式。该方式下8259A的中断优先级是从IR0IR7,优先级依次降低。自动循环方式 该方式下中断的优先级队列随时发生变化,当某个外设的中断请求得到CPU响应后,其中断的优先级自动降为最低。(初始的优先级队列规定为IR0 IR7)特殊循环方式 与自动循环方式不同之处是:特殊循环方式下的初始优先级队列可由编程决定。,特殊全嵌套方式 中断正被处理时,允许同级或更高优先级的事件可以打断当前的中断处理过程而被服务。注:特殊全嵌套仅用于多个8259A级连时的主8259A

21、,而不能用于从属8259A或单8259A系统。2、中断结束的管理方式(固定优先级的中断结束)中断结束的管理就是用不同的方式使ISR中相应位清零。普通结束方式EOI 8259A每得到一次EOI命令,就将ISR中已置位的各位中优先级最高的位复位。,特殊结束方式SEOI 该方式的特殊性在于,除了普通EOI方式的功能外,将明确指明本次复位的ISR位。自动结束方式AEOI 自动EOI方式是利用响应中断时最后一个响应脉冲的后沿执行一次普通EOI,而不需要CPU发送EOI指令。3、循环优先级的中断结束方法 在循环优先级方式中,与中断结束方式联合,有三种循环结束,结束时并确定下面的优先权排队。普通EOI循环方

22、式特殊EOI循环方式自动EOI循环方式,4、中断源屏蔽方式,普通屏蔽方式 中断屏蔽寄存器IMR的8个位与中断请求IR0IR7一一对应。对IMR编程,指定某些位为1,则屏蔽掉相应的中断请求。,特殊屏蔽方式提供了允许较低优先级的中断能够得到响应的特殊手段。原理:假定当前正在处理IR6,先进入特殊屏蔽方式,然后设置IM6=1。这时,除IR6外的所有中断请求均能得到响应。特殊屏蔽方式中只能用SEOI命令结束中断。,5、中断请求引入方式,电平触发方式 8259A依靠IR引脚上的有效高电平信号来触发,而与有效电平出现的方式和时间无关。,边沿触发方式 利用IR输入信号由低电平跳向高电平时触发。当IR产生上升

23、沿后,应保持高电平直到中断被响应为止。,查询方式 允许8259A不工作于中断方式,而是以查询方式工作。因为CPU中的IF=0,CPU要使用软件查询来确定中断源,才能实现对外设的中断服务。因此即有中断的特点,又有查询的特点。,6、连接系统总线方式,缓冲方式 多片级连时,8259A通过8286与系统总线相连。,非缓冲方式 单片或少量级连时,一般将它直接与系统总线连接。,7.5.4 8259A的编程,初始化命令字ICW,操作命令字OCW;系统复位后,应初始化编程,按次序只写一次;设定触发方式、缓冲方式、中断类型号基值、优先级、结束方式初始化后,在任何位置可操作编程,没有严格的顺序,允许重置,以动态改

24、变8259A的操作与控制。,8259A初始化流程图,1、初始化编程,ICW1,ICW2,ICW4,ICW3,2、操作命令编程,OCW1,OCW2,OCW3,8259A的操作编程并没有固定顺序,各命令字之间用地址信号A0及特征位加以区分。,说 明,1)查询方式 OCW3中D2位P=1,关闭中断,即可通过查询方式响应外设的服务请求:从数据总线上读取一个字节,内容为:其中I=1表示该8259A芯片有外设服务请求,W2W0表明了请求服务的最高优先权编码。I=0则表示无请求。,2)读8259A 读IMR:地址信号A0为1时读8259A,可取得中断屏蔽寄存器IMR的状态。读IRR:地址信号A0为0,且当O

25、CW3的D1位RR、D0位RIS被置为10时,可在下一个读脉冲期间读得中断请求寄存器IRR的状态。读ISR:地址信号A0为0,且当OCW3的RR、RIS位被置为11时,可在下一个读脉冲期间读得中断服务寄存器ISR的状态。,3.8259A应用举例,例1:8086最小模式与8259A接口如下,外设中断请求分别从IR2、IR4、IR7引入,中断类型号从0C0H0C7H,采用上升沿触发,写出8259A初始化程序。,端口地址:10000100B 84H10000110B 86H,CLI;关中断MOVAL,13H;ICW1:00010011B边沿触发,单片,需要ICW4OUT84H,ALMOVAL,0C0

26、H;ICW2:中断类型码的D7D3位为11000OUT86H,ALMOVAL,01H;ICW4:00000001B 全嵌套,非缓冲,非自动EOI,80X86OUT86H,ALMOVAL,6BH;OCW1:01101011B屏蔽IR0.1.3.5.6OUT86H,ALSTI;开中断,若要读IRR的内容,MOV AL,0AH;OCW3:00001010BOUT 84H,ALNOPIN AL,84H,若要读ISR的内容,MOV AL,0BH;OCW3:00001011BOUT 84H,ALNOPIN AL,84H,若要读IMR的内容,可直接从高地址读入,IN AL,86H,若中断是关闭的,可采用查询

27、方式,看是否有中断,NEXT:MOV AL,0CH;OCW3:00001100B OUT 84H,AL NOP IN AL,84H TEST AL,80H JZ NEXT,例2:某8086系统中有两片8259A,从片接主片的IR4,主片IR2、IR5有外部中断引入,类型号分别为62H、65H;从片IR0、IR3有外部中断引入,类型号分别为40H、43H。设主片的一个端口地址为82H,从片的一个端口地址为84H,分别进行初始化编程。,分析端口地址:主片 10000010 82H 10000000 80H从片 10000100 84H 10000110 86H类型号基值:主片 60H从片 40H,

28、主片初始化程序,MOV AL,11H;00010001B 边沿触发 级连OUT 80H,AL;MOV AL,60H;类型号基值OUT 82H,AL;MOV AL,00010000B;OUT 82H,AL;MOV AL,11H;00010001B 特殊嵌套 非缓冲 非自动 80X86OUT 82H,AL;MOV AL,11001011B;OUT 82H,AL;,从片初始化程序,MOV AL,11H;00010001B 边沿触发 级连OUT 84H,AL;MOV AL,40H;类型号基值OUT 86H,AL;MOV AL,00000100B;OUT 86H,AL;MOV AL,11H;000000

29、01B 完全嵌套 非缓冲 非自动 80X86OUT 86H,AL;MOV AL,11110110B;OUT 86H,AL;,中断服务程序,主片:INT2 PROC MOV AL,00100000BOUT 80H,AL;中断结束STI IRETINT2 ENDP从片:INT0 PROCMOV AL,00100000BOUT 80H,ALOUT 84H,AL;中断结束STI IRETINT0 ENDP,DATA SEGMENTDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX PUSH DS MOV AL,

30、N2;N2为中断类型号 MOV AH,25H;中断向量装入 MOV DX,SEG NEW_PR MOV DS,DX;DS指向段基值 MOV DX,OFFSET NEW_PR;DX指向偏移地址 INT 21H POP DS,例:带有中断的完整程序结构,MOV AL,20H;发送中断结束命令 OUT 20H,AL STI IRET;中断返回 NEW_PR ENDP;中断程序结束CODE ENDS END START;源程序结束,;主程序主体(包括初始化略)MOV AX,4C00H;主程序终止退出,返回DOS INT 21H NEW_PR PROC FAR;中断服务程序;中断服务程序主体(略),STI,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号