1 / 58

第 6 章

输入输出接口. 第 6 章. 第 6 章 输入输出接口. 教学重点 I/O 接口电路的典型结构 无条件传送 查询传送 中断传送. 6.1 I/O 接口概述. 为什么需要 I/O 接口(电路) ? 微机的外部设备多种多样 工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大 它们不能与 CPU 直接相连 必须经过中间电路再与系统相连 这部分电路被称为 I/O 接口电路. 多种外设. CPU. 接口 电路. I/O 设备. 6.1 I/O 接口概述 (续 1 ). 什么是 I/O 接口(电路)?

noah-jordan
Download Presentation

第 6 章

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 输入输出接口 第6章

  2. 第6章 输入输出接口 教学重点 I/O接口电路的典型结构 无条件传送 查询传送 中断传送

  3. 6.1 I/O接口概述 为什么需要I/O接口(电路)? • 微机的外部设备多种多样 • 工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大 • 它们不能与CPU直接相连 • 必须经过中间电路再与系统相连 • 这部分电路被称为I/O接口电路 多种外设

  4. CPU 接口 电路 I/O 设备 6.1 I/O接口概述(续1) 什么是I/O接口(电路)? • I/O接口是位于系统与外设间、用来协助完成数据传送和控制任务的逻辑电路 • PC机系统板的可编程接口芯片、I/O总线槽的电路板(适配器)都是接口电路

  5. 6.1 I/O接口概述(续2) 什么是微机接口技术? • 处理微机系统与外设间联系的技术 • 注意其软硬结合的特点 • 根据应用系统的需要,使用和构造相应的接口电路,编制配套的接口程序,支持和连接有关的设备

  6. 数据寄存器 I/O接口电路 数据总线DB CPU 外设 数据 地址总线AB 状态 控制总线CB 控制 状态寄存器 控制寄存器 6.1.1 I/O接口的典型结构 1. 内部结构 2. 外部特性 3. 基本功能 4. 软件编程

  7. 1. 内部结构 • CPU与外设主要有数据、状态和控制信息需要相互交换,于是从应用角度看内部: ⑴ 数据寄存器 • 输入数据寄存器:保存外设给CPU的数据 • 输出数据寄存器:保存CPU给外设的数据 ⑵ 状态寄存器 • 保存外设或接口电路的状态 ⑶ 控制寄存器 • 保存CPU给外设或接口电路的命令

  8. 2. 外部特性 • 主要体现在引脚上,分成两侧信号 面向CPU一侧的信号: • 用于与CPU连接 • 主要是数据、地址和控制信号 面向外设一侧的信号: • 用于与外设连接 • 提供的信号五花八门 • 功能定义、时序及有效电平等差异较大

  9. 3. 基本功能 • 数据缓冲 • 匹配快速的处理器与相对慢速的外设的数据交换 • 缓冲:实现接口双方数据传输的速度匹配 • 信号变换 • 把信号相互转换为适合对方的形式 • 计算机直接处理的信号 • 数字量(0和1组成的信号编码) • 开关量(只有两种状态的信号) • 脉冲量(低脉冲信号,高脉冲信号)

  10. 4. 软件编程 • 接口具有可编程性(Programmable) • 命令字(控制字) • 写入接口芯片、选择工作方式、控制数据传输 • 初始化程序 • 选择I/O接口工作方式、设置原始工作状态等 • 驱动程序 • 操纵I/O接口完成具体工作 硬件接口电路需要软件编程配合工作

  11. 端口? 6.1.2 I/O端口的编址 • I/O端口=I/O地址,对应I/O接口的寄存器 • 一个接口电路可以具有多个I/O端口,每个端口用来保存和交换不同的信息 • 数据寄存器、状态寄存器和控制寄存器占有的I/O地址常依次被称为数据端口、状态端口和控制端口 • 输入、输出端口可以是同一个I/O地址 如何编排存储器地址和I/O地址?

  12. FFFFF 主存 空间 FFFF I/O 空间 0 1. I/O端口与存储器地址独立编址 • 优点: • I/O端口的地址空间独立 • 控制和地址译码电路相对简单 • 专门的I/O指令使程序清晰易读 • 缺点: • I/O指令没有存储器指令丰富 80x86支持I/O端口独立编址

  13. FFFFF 主存 部分 存储器空间 I/O 部分 00000 2. I/O端口与存储器地址统一编址 • 优点: • 不需要专门的I/O指令 • I/O数据存取与存储器数据存取一样灵活 • 缺点: • I/O端口要占去部分存储器地址空间 • 程序不易阅读(不易分辨访问存储器和访问外设)

  14. 3. I/O地址译码 • 与存储器地址译码在原理和方法上完全相同 • I/O地址不太强调连续,多采用部分译码

  15. 6.1.3 输入输出指令 • 输入指令(IN:将外设数据传送给CPU内的AL/AX) IN AL,i8 ;字节输入 IN AL,DX ;字节输入 IN AX,i8 ;字输入 IN AX,DX ;字输入 • 输出指令(OUT:将CPU内的AL/AX数据传送给外设) OUT i8,AL ;字节输出 OUT DX,AL ;字节输出 OUT i8,AX ;字输出 OUT DX,AX ;字输出 演示

  16. 8088/8086的I/O端口 • 8088只能通过输入输出指令与外设进行数据交换;呈现给程序员的外设是端口(Port),即I/O地址 • 8086用于寻址外设端口的地址线为16条,端口最多为216=65536(64K)个,端口号为0000H ~ FFFFH • 每个端口用于传送一个字节的外设数据

  17. 1. I/O寻址方式 • 8088/8086的端口有64K个,无需分段,设计有两种寻址方式 • 直接寻址:只用于寻址00H ~ FFH前256个端口,操作数i8表示端口号 • 间接寻址:可用于寻址全部64K个端口,DX寄存器的值就是端口号 • 对大于FFH的端口只能采用间接寻址方式

  18. 2. I/O数据传输量 • 如果输入输出一个字节,利用AL寄存器 • 如果输入输出一个字,利用AX寄存器 • 输入一个字,实际上是从连续两个端口输入两个字节,分别送AL(对应低地址端口)和AH(对应高地址端口) • 输出一个字,实际上是将AL(对应低地址端口)和AH(对应高地址端口)两个字节的内容输出给连续两个端口

  19. IN指令实例(从20H端口输入一个字) ;方法1:直接寻址,字量输入 in ax,20h ;方法2:间接寻址,字量输入 mov dx,20h in ax,dx ;方法3:直接寻址,字节量输入 in al,21h mov ah,al in al,20h ;方法4:间接寻址,字节量输入 mov dx,21h in al,dx mov ah,al dec dx in al,dx

  20. OUT指令实例(向300H端口输出一个字节) ;唯一的方法:间接寻址,字节量输出 mov al,bvar ;bvar是字节变量 mov dx,300h out dx,al

  21. 例6.1 读取CMOS RAM数据程序 ; 数据段 date db '2000-01-01','$' ; 代码段 mov bx,offset date+2 mov cl,4 mov al,9 ;准备从9号单元获取年代数据 out 70h,al;选择CMOS RAM的9号单元 in al,71h;获取9号单元的内容

  22. 例6.1 读取CMOS RAM数据程序(续1) mov ah,al ; 转存AH shr ah,cl ; 处理年代高位 add ah,30h ; 转换为ASCII码 mov [bx],ah ; 存入数据区 add bx,1 ; 指向下位 and al,0fh ; 处理年代低位 add al,30h ; 转换为ASCII码 mov [bx],al ; 存入数据区 add bx,2 ; 指向下位

  23. 例6.1 读取CMOS RAM数据程序(续2) mov al,8 ; 从8号单元获取月份数据 out 70h,al in al,71h … mov al,7 ;从7号单元获取日期数据 … mov dx,offset date mov ah,9 int 21h ; 显示日期 2014-11-11 显示结果

  24. 6.1.4 数据传送方式 无条件传送 查询传送 中断传送 软件程序控制 直接存储器存取(DMA传送) I/O处理器控制传送 附加硬件控制

  25. 6.2 无条件传送 • 在CPU与慢速变化的设备交换数据时,可以认为它们总是处于“准备好”状态,随时可以进行数据传送,这就是无条件传送,或称立即传送、同步传送 • 适合于简单设备,如LED数码管、按键或按纽等 • 无条件传送的接口和操作均十分简单 • 这种传送有前提:外设必须随时就绪

  26. 三态 锁存 三态门和D触发器 • 三态门和以D触发器形成的锁存器是微机接口电路中最常使用的两类逻辑电路 • 三态门的作用:功率放大、导通开关 • 器件共用总线时,一般使用三态电路: • 需要使用总线的时候打开三态门; • 不使用的时候关闭三态门,使之处于高阻 • D触发器的作用:信号保持,导通开关

  27. A F A F A F A F 表示反相或低电平有效 T T T T 1. 三态缓冲器(三态门) 三态门具有单向导通和三态的特性 T为低电平时: 输出为高阻抗(三态) T为高点平时: 输出为输入的反相 输入缓冲

  28. 常用集成电路芯片 74LS244 双4位单向缓冲器 • 分成4位的两组 • 每组的控制端连接在一起 • 控制端低电平有效 • 输出与输入同相 每一位都是一个三态门, 每4个三态门的控制端连接在一起

  29. A B T OE* 双向三态缓冲器 双向三态门具有双向导通和三态的特性 OE*=0,导通 T=1 A→B T=0 A←B OE*=1,不导通

  30. Intel 8286 8位双向缓冲器 • 控制端连接在一起,低电平有效 • 可以双向导通 • 输出与输入同相 OE*=0,导通 T=1 A→B T=0 A←B OE*=1,不导通 每一位都是一个双向三态门, 8位具有共同的控制端

  31. 常用集成电路芯片 74LS245 8位双向缓冲器 • 控制端连接在一起,低电平有效 • 可以双向导通 • 输出与输入同相 E*=0,导通 DIR=1 A→B DIR=0 A←B E*=1,不导通 74LS245与Intel 8286功能一样

  32. D Q C Q 电平锁存 D Q C Q S 上升沿锁存 D Q C Q 负脉冲的上升沿 带有异步置位清零的 电平控制的锁存器 R 2. 锁存器(D触发器) 电平锁存: 高电平通过,低电平锁存 上升沿锁存: 通常用负脉冲触发锁存 输出锁存

  33. 常用集成电路芯片 74LS273 具有异步清零的 TTL上升沿锁存器 每一位都是一个D触发器, 8个D触发器的控制端连接在一起

  34. 锁存环节 缓冲环节 三态缓冲锁存器(三态锁存器) A B D Q C T 输入锁存缓冲 输出锁存缓冲

  35. Intel 8282 具有三态输出的 TTL电平锁存器 STB 电平锁存引脚 OE* 输出允许引脚 每一位都是一个三态锁存器, 8个三态锁存器的控制端连在一起

  36. 常用集成电路芯片 74LS373 具有三态输出的 TTL电平锁存器 LE 电平锁存引脚 OE* 输出允许引脚 74LS373与Intel 8282功能一样

  37. 无条件传送:输入示例 MOV DX, 160H IN AL, DX

  38. 10K x 8 +5V 数据总线 74LS244 G1 G2 CS RD 无条件传送:输入实例 MOV DX, 160H IN AL, DX

  39. 无条件传送:输出示例 MOV DX, 160H MOV AL, [BX] OUT DX, AL

  40. +5V 300x 8 数据总线 74LS373 LE OE CS WR 无条件传送:输出实例 MOV DX, 160H MOV AL, [BX] OUT DX, AL

  41. 译码 A0~A15 +5V 6000H K0 K1 IOR 8位 三态 缓冲器 … IOW K7 +5V LED0 CLK G 8位 反相 驱动器 8位 锁存器 … D0~D7 LED7 无条件传送:输入输出接口 mov dx,6000h ;DX指向数据端口 in al,dx ;从输入端口读开关状态 not al ;反相 out dx,al ;送输出端口显示 call delay ;调子程序延时

  42. 6.3 查询传送 • CPU需要先了解(查询)外设的工作状态,然后在外设可以交换信息的情况下(准备好)实现数据输入或输出 • 对多个外设的情况,则CPU按一定顺序依次查询(轮询)。先查询的外设将优先进行数据交换 • 查询传送的特点是:工作可靠,适用面宽,但传送效率低 准备好?

  43. 输入状态 准备好? Y 数据交换 查询传送的两个环节 ⑴ 查询环节 • 寻址状态口 • 读取状态寄存器的标志位 • 若不就绪就继续查询,直至准备好 ⑵ 传送环节 • 寻址数据口 • 是输入,通过输入指令从数据端口读入数据 • 是输出,通过输出指令向数据端口输出数据 N 超时

  44. 8位 三态 缓冲器 8位 锁存器 D0~D7 +5V 5000H 1位 三态 缓冲器 R D0 译码 D Q A0~A15 输入 设备 5001H STB IOR IOR 2. 查询输入接口 mov dx,5001h;DX指向状态端口 status:in al,dx;读状态端口 test al,01h;测试标志位D0 jz status;D0=0,未准备好,继续查询 dec dx ;D0=1,准备好,DX指向数据端口 in al,dx;从数据端口输入数据

  45. 8位 锁存器 D0~D7 +5V Q D R 5002H 1位 三态 缓冲器 IOR ACK IOW D7 译码 A0~A15 输出 设备 5001H 3. 查询输出接口 mov dx,5001h;DX指向状态端口 status:in al,dx;读取状态端口的状态数据 test al,80h;测试标志位D7 jnz status;D7=1,未就绪,继续查询 inc dx ;D7=0,就绪,DX指向数据端口 mov al,buf;变量buf送AL out dx,al;将数据输出给数据端口

  46. 主程序 中断服务程序 中断请求 对外设 进行处理 断点 继续执行 返回断点 6.4 中断传送 • 外设主动提出请求 • 处理器响应请求 • 执行中断服务程序, 完成一次数据传送 • 中断处理结束, 继续执行原来程序

  47. 数据交换的实质性环节 6.4.1 中断工作过程 中断请求 中断响应 中断关闭 断点保护 中断源识别 现场保护 中断服务 恢复现场 中断开放 中断返回 中断流程 中断接口

  48. 1. 中断请求和响应 中断流程 • 中断请求 • 外设以硬件信号的形式、向处理器发送有效信号,应保持有效到被响应 • 中断传送过程由外设的中断请求启动,获得处理器认可,才真正进入中断传送过程 • 处理器需要满足一定条件,才能响应中断请求: (1)指令执行结束后才能响应外设的中断请求 (2)处理器处于开放中断的状态 (3)中断请求的同时,没有更高级别的其他请求

  49. 2. 中断关闭和开放 中断流程 • 中断开放 • 允许可屏蔽中断被响应 • 中断允许、开中断 • 中断关闭 • 不允许可屏蔽中断被响应 • 中断被屏蔽了、被禁止了,关中断 • 2级(多级)中断响应控制 • 处理器的中断屏蔽位:控制所有可屏蔽中断 • 外设接口电路的中断屏蔽位:灵活控制某个外设 中断屏蔽位用于实现中断的灵活控制

  50. 3. 断点保护和中断返回 中断流程 • 断点是指被中断执行的指令位置 • 断点保护 • 保护断点指令所在的存储器地址 • 断点保护一般由处理器自动完成 • 有的处理器还可能自动保护程序状态 • 中断返回 • 处理器返回断点继续执行原来的程序 • 中断服务程序最后的一条中断返回指令实现

More Related