资源预览内容
第1页 / 共25页
第2页 / 共25页
第3页 / 共25页
第4页 / 共25页
第5页 / 共25页
第6页 / 共25页
第7页 / 共25页
第8页 / 共25页
第9页 / 共25页
第10页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
输入输出接口,第4章 输入输出接口,基本知识,第4.1节 基本知识 输入/输出设备是外部设备,简称外设。微机与外设之间的信息交换称为输入和输出。 存储器与系统总线相连,CPU可直接访问,外设则需要通过接口与系统总线相连 接口:外设与总线之间的中间环节,是计算机与外设交换信息的控制电路,接口的功能: 数据缓冲外设数据输入到总线时需要缓冲 数据锁存输出总线数据到外设时需要锁存 传输控制命令和状态信息计算机与外设有时需使用硬件握手 信息转换串并转换、数模转换,CPU与外设传送的信息,一. CPU与外设传输的信息 1)数据信息:数字量、开关量、模拟量 2)状态信息:反映外设工作状态,由外设通过接口传送给CPU 输入设备:如准备好信号(READY) ,表明输入数据是否准备就绪 输出设备:如忙信号(BUSY),表明输出设备是否处于空闲 3)控制信息:CPU通过接口传送给外设,如启动信号或停止信号 端口:接口电路中可以被寻址访问的存储单元 数据信息存放在接口的数据端口或数据缓冲器中 状态信息存放在接口的状态端口中 控制信息存放在接口的控制端口中 三种信息按理应分别传送,但微机中CPU只能通过IN和OUT指令与外设交换信息,因此状态信息和控制信息也被广义地看作一种数据信息 状态信息被看作一种输入数据, 控制信息被看作一种输出数据,二者均通过数据总线来传送,I/O端口编址,CPU对外设的输入输出操作,实质是对接口芯片中各端口的读写操作 二. I/O端口的编址 1. 内存与I/O端口统一编址:外设端口的地址空间是内存地址空间的一部分,所有访问内存空间的指令均能访问I/O端口 2. 独立编址:内存与I/O端口具有独立的地址空间,CPU通过专用的IN和OUT指令访问I/O端口,8086系统的I/O空间,8086计算机系统的I/O空间 8086计算机系统采用独立编址,内存范围: 00000FFFFFH,I/O地址范围:0000FFFFH,8086用低16根地址线,寻址64KB端口 偶地址端口数据由低8位数据总线(D7D0)传送 奇地址端口数据由高8位数据总线(D15D8)传送 奇、偶地址端口的访问由/BHE和A0控制 I/O端口的读/写控制信号为/IOR和/IOW 注: IBM PC/XT机实际只使用低10位地址线A9A0寻址1KB端口,多使用8位端口,由D7D0传送数据,端口多为偶地址,访问时,接口芯片片选信号/CS由A9A1译码产生,要求A0总为0,现代计算机中,通过转换电路可实现连续奇、偶端口地址访问,CPU与外设的数据传送方式,第4.2节 CPU与外设的数据传送方式 各种外设工作速度相差较大,因此CPU与不同外设应采用不同方式传送 一. 无条件传送方式 CPU不需要检测外设状态,直接使用IN和OUT命令完成输入和输出 1。无条件输入 注:名为无条件,实为有条件,传送不能太频繁,以保证每次传送时,外设都已准备就绪,无条件传送方式,无条件输出,MOV DX, 160H OUT DX, AL 输出的数据在AL中存放 输出端口地址为160H,查询传送方式,二. 查询传送方式 CPU不断检测外设状态,外设满足条件时才传送数据。特点:电路和程序简单,但占CPU时间,效率较低。常用一位或几位表示外设状态 1. 查询输入,三态,缓冲,器,/OE,160H,D7,D0,D0,/IOW,地址,译码,器,A15,A1,/CE,A0,/IOR,162H,164H,/EN,EOC,ADC,DB,锁,存,器,/R,Q,C,D,+5V,查询输入工作原理,状态锁存器,查询传送方式,1)启动ADC:对164H端口执行写操作,164H & /IOW有效,即ADC的/EN有效,启动ADC转换(写的数据不重要) 2)外设转换结束,置状态信息为1 ADC转换结束,由EOC产生负脉冲,将AD数据锁存到锁存器,并置状态锁存器输出为1 (锁存状态位) 3)查询状态位:对162H端口执行读操作, 162H & /IOR有效,读取D7D0,状态位由D0位传送 4)读取数据:若D0位为1,则对160H端口执行读操作,160H & /IOR有效,即三态缓冲器/OE有效,通过D7D0读入转换数据,同时状态锁存器/R有 效,清除状态,防止CPU重读数据,从ADC读取数据,存放到AL READ PROC MOV DX, 160H IN AL, DX ;清状态 MOV DX, 164H OUT DX, AL ;启动ADC READ1: MOV DX, 162H IN AL, DX ;读状态 TEST AL, 1 ;判断状态位 JZ READ1 MOV DX, 160H IN AL, DX ;读取数据 RET READ ENDP,查询传送方式,查询输出,D7,D0,D0,160H,/IOW,地址,译码,器,A15,A1,CS,A0,162H,164H,RDY,DB,锁,存,器,Q,C,D,+5V,R,C,ACK,/IOR,DAC,CLK,状态锁存器,查询输出工作原理,查询传送方式,1)CPU输出数据:对160H端口执行写操 作,160H & /IOW有效,即锁存器CLK有 效,输出数据通过D7D0被锁存到锁存器输 出,同时状态锁存器C有效,置状态信息位 为1,向DAC表明输出数据已准备好 2)启动DAC工作:对164H端口执行写操 作,164H & /IOW有效,即DAC的/C有效, 启动DAC 4)DAC转换:若DAC取走数据,开始转 换,则发ACK信号,清除状态触发器输出 3)查询状态位:对162H端口执行读操 作,162H & /IOR有效,读取状态锁存器输 出,状态位由D0传送,若D0为0,表明DAC 已取走数据,CPU可输出下一次数据。,将AL中的数据输出 WRITE PROC MOV DX, 160H OUT DX, AL ;输出数据 MOV DX, 164H OUT DX, AL ;启动DAC MOV DX, 162H WRITE1: IN AL, DX ;查询状态 TEST AL, 1 JNZ WRITE1 RET WRITE ENDP,中断传送方式,三. 中断传送方式 CPU变主动查询为被动中断,提高了系统效率 1. 中断工作原理说明 外设“准备好”后,向CPU发中断请求 CPU响应请求,停止当前运行程序,转到中断服务程序,处理请求 处理完请求后,回到断点处继续执行 数据交换等中断处理在中断服务程序中完成,中断服务程序,CPU响应中断时,原程序被打断的地方称为断点。断点地址是指中断服务程序结束后,返回原程序恢复执行的第一条指令的地址,又称返回地址 。现场是指进入中断服务程序之前CPU各个寄存器的状态,中断传送方式,中断源任何能引发中断的事件都称为中断源,可分为: 硬件中断源:I/O设备,系统时钟,故障源等 软件中断源:程序中断指令(INT 3)、指令运行出错(INTO)等 2. 中断方式接口电路,中断传送方式,中断方式接口电路工作过程说明 外设准备好数据后,发EOC信号(负脉冲),把数据锁存到锁存器,同时置中断请求触发器输出为1,若此时中断屏蔽触发器输出Q为1,则INTR信号有效,向CPU产生中断请求 当INTR为高电平,且CPU中断开放(IF1),则CPU响应中断,CPU输出/INTA信号,读取中断类型码,并清除中断请求触发器 CPU根据所获得的中断类型码进入相应中断服务程序,读取数据 MOV DX, 162H ;对输入数据 IN AL, DX,对中断的控制 1)控制中断请求置中断屏蔽触发器输出为0,屏蔽中断请求 MOV AL, 0 / 1 ;屏蔽 / 允许 MOV DX, 160H OUT DX, AL,2)控制中断响应标志寄存器Flag中IF标志可控制CPU是否查询INTR引脚 STI 置IF=1 允许中断 CLI 清IF=0 禁止中断,中断处理过程,3. 中断处理过程(重要) 1)中断检测 CPU在每条指令执行的最后一个时钟周期检测中断请求,若出现以下情况之一,则进入中断响应周期。 有软件中断请求 有NMI中断请求信号 有INTR中断请求信号,且CPU允许中断响应,即IF=1 2)获取中断类型码 进入中断响应周期以后: 若是INTR,则产生/INTA信号,中断源通过数据总线的低8位将中断类型码传送给CPU; 若是NMI,则类型码是2; 若程序出错产生中断,则使用默认的类型码; 若是中断指令,则指令中有类型码。 3)保护断点 系统自动将标志寄存器FLAG压入堆栈,清除TF和IF,并将断点处的CS和IP压入堆栈,先压CS后压IP,中断响应过程,4)得到中断向量 系统根据中断类型码形成中断服务程序的入口地址,转入中断服务程序执行,每个中断都有自己的处理程序。 5)中断服务处理 进入中断服务程序后,通常由以下步骤组成 保护现场 中断处理 恢复现场 用中断返回指令(IRET)返回 6)中断返回 从堆栈中依次恢复断点处CS:IP和FLAG,中断优先级,4. 中断优先级 当系统中多个中断源同时发出中断请求时,CPU按照重要性和急迫性(中断优先级)择优响应,处理原则为: CPU先响应高优先级中断,再响应低优先级中断 高优先级中断请求可以打断当前低优先级中断处理(中断嵌套) 低优先级中断请求不能打断高优先级中断处理 若出现同级中断请求,则等当前中断处理完后,才处理新的请求,中断优先级,链式优先权排队电路 每个接口有一个中断允许输入IEI和中断允许输出IEO,只有IEI为高电平时才允许该接口芯片发中断请求 IEO = IEI INT INT表示该设备有中断请求 每个接口芯片的中断请求输出为OC门,具有负逻辑的“线或”关系 响应中断时由INTA从接口读取中断类型码,中断优先级,中断优先权编码电路,电路说明 中断请求锁存器锁存IR0 IR7上的中断请求。 优先级编码器把当前最高优先级的中断请求输入的序号进行编码后输出 中断服务寄存器记录正在处理的最高级中断输入序号 中断请求的最高级与正在处理的中断最高级比较,只有高于正在处理的最高级时,才能提出产生INTR信号,中断源的查找,5. 中断源的查找 有中断请求时需要查找中断源,以决定进入相应的中断服务程序 1)应答方式 CPU接收到中断请求INTR,发出中断响应信号/INTA,中断源收到此信号后返回相应中断类型码给CPU。(如8086可屏蔽中断请求) 2)预先约定 当有中断申请时,则转到固定地址执行中断服务程序 如NMI请求、软件中断请求、8051单片机中断系统 3)查询 方式 在中断服务程序中通过软件查询中断源,中断源的查找,软件查询中断源,查询方法优点: 查询次序即是优先权次序 省硬件,不需要硬件排队电路 缺点:转至服务程序入口时间长,查询程序 IN AL, 20H LEA BX, TAB CIRCLE: SHR AL, 1 JC NEXT ADD BX, 2 CMP AL, 0 JNZ CIRCLE JMP ERROR NEXT: JMP CS : BX TAB DW SUB1, SUB2 DW SUB3, SUB4 DW SUB5, SUB6 DW SUB7, SUB8,DMA传送方式,四. DMA传送方式(Direct Memory Access) 传统方式传送数据,均需要CPU参与,占用CPU时间,而在DMA方式下,利用专用接口电路(DMA控制器)可以在外设与存储器之间直接进行高速数据
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号