1 / 26

第六章 输入 / 输出接口

第六章 输入 / 输出接口. 课时数: 5 - 6. 第 六 章 主 要 内 容. 一、 I/O 接口概述 二、 常用的 I/O 数据传输控制方式 三、基本输入 / 输出接口. I/O 接口的功能与分类 ( P264 、 P266 、 P267 ) I/O 接口的硬件组成及结构 ( P211 ). 直接程序控制方式 ( P277 ) : 无条件 / 同步 、 条件 / 查询 中断控制方式 ( P282 ) 直接存储器存取( DMA )控制方式 ( P283 ).

kanan
Download Presentation

第六章 输入 / 输出接口

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. 第六章 输入/输出接口 课时数:5-6

  2. 第 六 章 主 要 内 容 一、I/O接口概述 二、 常用的I/O 数据传输控制方式 三、基本输入/输出接口 • I/O接口的功能与分类(P264、P266 、P267) • I/O接口的硬件组成及结构(P211) • 直接程序控制方式(P277) :无条件/同步、条件/查询 • 中断控制方式(P282) • 直接存储器存取( DMA )控制方式(P283) 键盘接口(P286)、数码管显示接口(P293) 、并行打印机接口(P293)

  3. 第 六 章 习 题 (P305) 4、 8、9 思考: 1~3、5~7、10、11、14 2005.5.13交作业

  4. 第 六 章 结 束

  5. I/O接口的功能与分类(P264、P266) 微机系统的外部设备种类繁多,其信号类型、信号形式、数据格式、数据传输率及传输方式都可能完全不同。 因此接口通常应该具备以下功能:数据缓冲、 设备选择、信号转换、接收、解释并执行CPU命令、中断管理、程控等。 接口电路的分类方法很多,按数据传送方式可分为串行和并行接口;按同步方式可分为同步和异步接口;按灵活性可分为可编程和不可编程接口;按通用性可分为通用和专用接口。 是软件与硬件的结合

  6. 数据信息 主 机 外 设 DB 状态信息 AB 控制信息 CB 端口 I/O接口的硬件组成与结构(P267) 数据缓冲 /锁存器 总线驱动 状态 寄存器 地址译码 控制 寄存器 控制逻辑 接外设一侧 接CPU一侧 • 有关端口(PORT)的概念: 、 存储器映像或IO独立编址 • 主机(CPU)可读写 、8位长 • 一个外设可能有多个端口,一个端口也可能属于多个外设; • 有关信息交换的概念: • 外设的各种信息(P265)都是通过系统的DB进行交换的;

  7. I/O端口的地址分配与地址译码(P270) • 地址空间的分配 • 译码电路的设计 • 译码电路的实现 80X86系列微处理器使用低16位地址信号访问I/O端口,编址可达64K个字节端口(或者32K个字端口)。除去已用的和保留的,用户通常可使用的地址范围是300H~31FH。 (与扩展存储器的地址译码方式非常类似) • 相关控制信号 可以与高位AB一起译码,或直接作使能/控制信号使用 对8086CPU:M//IO、/RD、/WR、/BHE等 对ISA总线:/IOR、/IOW、/IOCS16、AEN(低有效)等 • 地址信号 低位AB选择芯片(或模块)内部的具体端口; 高位AB与控制信号一起译码形成片选; 地址固定式、地址可调式(开关与比较器、可编程逻辑器件)

  8. A9 A7 A6 A5 A4 A9 A7…A4 A15 A14 A13 A12 A11 译码输出 A10 A8 • 需要用到的控制线: IOR,AEN A3 A2 A1 A0 AEN 面向ISA总线的02F0H读端口地址译码电路 MOV DX,02F0H IN AL,DX • 将给定的端口地址表示为二进制: 0000 0010 1111 0000 (都是低有效)

  9. 面向ISA总线的77AH可读可写端口的地址译码电路(P274)面向ISA总线的77AH可读可写端口的地址译码电路(P274) A 74LS30 10 & A 9 A 注意/IOR和/IOW信号的用法! 8 A 6 A 5 A 4 A 3 1 A ≥ 1 74LS04 A 15 & A 14 A 13 1 ≥ A 12 A 74LS20 11 & A 7 A 2 A 74LS32 0 1 1 ≥ ≥ AEN 1 ≥ R 77AH IOR 1 ≥ W 77AH IOW

  10. V CC A I 0 A=B A 1 I A>B … A I 7 A<B B 0 O A>B B 1 O … A<B B O 7 A=B 用比较器实现的可选式译码电路(P276) 151211 8 7 4 3 0 0001 0000 0000 0000 0001 0011 1101 1111 • A1~A0用于选择芯片内部端口,这里可不用参与译码; • A15~A10固定不变,可通过门电路译码形成使能信号; • A9~A2可由用户设置:利用比较器与拨动(跳线)开关. 注:这里没有考虑控制信号 A 2 A 3 … A 开关 9 S 0 S 1 … S 7 & A 12 V CC 1 ≥ A 15 1 ≥ A 14 1 ≥ A 1 ≥ 13 1 ≥ A 11 A 10

  11. 输入缓冲电路(P272) 74LS245 2 18 A B 0 0 3 17 A B 1 1 4 16 输入端口 A B 2 2 微处理 5 15 A B 3 3 6 14 A B 器系统 4 4 7 13 A B 5 5 8 12 A B 6 6 9 11 A B 7 7 IOR 19 DIR=1 A B , → E 端口地址译码 1 DIR=0 B A , → DIR • 当地址信号及读控制信号有效时,缓冲器中的三态门才会打开,外部数据可送至系统数据总线。 • 否则三态门处于高阻状态,不影响总线上其它设备的读写操作。

  12. 输出锁存电路(P273) 74LS273 • 当地址信号及写控制信号有效时,锁存器被选中,数据才能送至指定端口。 • 此后即使系统撤销数据,锁存器的输出也可以一直保持以等待慢速设备读取。 2 3 D Q 0 0 5 4 D Q 输出端口 1 1 6 7 D Q 微处理 2 2 9 8 D Q 3 3 12 13 D Q 器系统 4 4 15 14 D Q 5 5 16 17 D Q 6 6 19 18 D Q 7 7 IOW 11 CLK 端口地址译码 1 CL R +5V

  13. DB 数据输入 缓冲器端口 开关组 AB M/IO 数据输出 锁存器端口 RD LED组 WR 无条件程序控制(同步控制)方式(P277) 一种最简单的I/O控制方式,CPU可以随时根据需要无条件地读写I/O端口。 • 外设要求:简单,数据变化缓慢,操作时间固定,如一组 开关或LED显示管。外设被认为始终处于就绪状态; • 接口特点:结构简单(通常只需要数据端口),适用面较窄; 端口 译码器

  14. 数据端口读选通 输入数据 数据缓冲器 (输入端口) 锁 存 器 R +5V (1bit) 状态缓冲器 (输入端口) D Q READY 状态端口读选通 数据端口写选通 数据锁存器 (输出端口) D +5V Q R ACK 状态缓冲器 (输入端口) 状态端口读选通 条件程序控制(程序查询)方式(P279) ④ 一种CPU主动、外设被动的I/O操作方式,很好地解决了CPU与外设之间的同步问题。 DB(数据、状态) 输 入 设 备 ① ③ • 外设要求:应具有必要的联络(握手)信号如READY、ACK等; ② 输入选通 • 接口特点:避免了对端口的“盲读”、“盲写” ,数据传送的可靠性高,并且硬件接口相对简单。缺点是CPU工作效率低,I/O响应速度慢; ③ DB(数据、状态) 输 出 设 备 ④ ② ① 输出选通 在有多个外设的系统中,CPU的查询顺序由外设的优先级确定,实时性差。 BUSY(1bit) ⑤ ⑥

  15. DB C P U D0 D7~D0 D3~D0 状态端口读选通 控制端口写选通 2 4 3 数据端口读选通 DATA READY START A0 8路模拟量输入 多路开关 … A7 1路模拟量 查询式8路模拟数据采集系统 D0 D1 D2 D3 A/D转换器 DSTOR DB 8 DUP(?) START: MOV DI,OFFSET DSTOR ;取输入数据缓冲区的偏移地址 MOV CX,8;一共要采集8次(路)数据 MOV DL,0F8H ;DL=需要送出的控制字 AGAIN: MOV AL,DL AND AL,0F7H ;令D3(START)=0,停止A/D转换 OUT 4,AL CALL DELAY ;等待ADC停止工作 MOV AL,DL OUT 4,AL ;送出控制字,选择模拟量A0 ,启动A/D POLL: IN AL,2;输入状态信息 SHR AL,1;D0-> CF JNC POLL;若ADC未READY,程序循环等待 IN AL,3 ;否则,输入数据 STOSB ;将数据存入DI所指的缓冲区 INC DL ;准备选择下一路模拟输入 LOOP AGAIN

  16. 端口译码 AB DB DB 端口译码 WR 中断屏蔽触发器 Q D READY 中断请求触发器 Q D R +5V INTA 中 断 控 制 方 式(P283) 一种CPU被动而外设主动的I/O操作方式,较大地提高了CPU的工作效率,并使系统具有了实时处理功能。 • 外设要求:应具有必要的联络(握手)信号如READY等; • 接口特点:避免了CPU 反复低效率的查询,适用于CPU任务繁忙、而数 据传送不太频繁的系统中。缺点是硬件电路和处理过程都比较复杂; 数据缓冲 外 设 • 中断可被响应的条件: • 中断请求触发器置位; • 中断屏蔽触发器清零; • CPU内部开放中断; • CPU未处理更高级中断; • CPU现行指令执行完; 控制端口 INTR

  17. 请求 响应 DMA (直接存储器存取)控制方式(P283) 特点:数据不通过CPU,而由DMAC直接完成存储 单元或IO端口之间的数据传送。 DB HOLD CPU HLDA AB MEM I/O DMAC

  18. 键 盘 接 口(P285) • 线性键盘 • 矩阵键盘 • 非编码键盘:CPU处理按键的操作,减低 了CPU的效率。 • 编码键盘:使用专用的单片机处理按键操 作,缓减了CPU的负担。 每一个按键需要占用I/O端口的一根口线。 所有按键按行、列排列,较节约I/O口线

  19. 采用行扫描法的8×8矩阵键盘(P285) +5V MOV BL,0 ;键值 MOV CL,0FEH ;扫描码 MOV DL,8 ;扫描次数 OUT … ;列输出CL IN … ;读行状态 CMP AL,0FFH ;判断按键 JNZ FROW ;计算键值 ADD BL,8 ;调整键值 ROL CL,1 ;调整扫描码 LOOP… ;扫描下一列 FROW: SHR AL,1 JNC PROC ;转键处理 INC BL ;下一行,键值加1 JMP FROW 10k Ω 0 8 16 第 行 0 10k 17 Ω 1 9 第 行 1 8 位 10k Ω 并行 18 2 10 第 行 2 输入 …… 端口 10k Ω 第 行 7 MOV DX,OUTPORT MOV AL,00H OUT DX,AL MOV DX,INPORT IN AL,DX CMP AL,0FFH …… 第 列 第 列 第 列 第 列 第 列 0 1 2 3 7 8 位 并行 输出 端口 CALL DELAYY ;20ms 行扫描法步骤: 1.判断是否有键按下:各列同时输出“0” 2.确认按键的位置:去抖动后,各列轮流输出“0”

  20. 教材P287页勘误 WAIT: MOV AL,00H MOV DX,OUTPORT OUT DX,AL MOV DX,INPORT IN AL,DX CMP AL,0FFH JZ WAIT DELAY: CALL DELAYY MOV BL,0 MOV CL,0FEH MOV DL,8 FCOL: MOV AL,CL MOV DX,OUTPORT OUT DX,AL ROL CL,1 MOV DX,INPORT IN AL,DX CMP AL,0FFH JNZ FROW ADD BL,8 DEC DL JNZ FCOL JMP DONE FROW: SHR AL,1 JNC PROC INC BL JMP FROW PROC:…… DONE:…… 设键号=0,计数器=列数 行扫描初值=11111110B 输出扫描值,使某一行为低电平 否 是否有一行接地? 扫描值循环左移一位,使下一列为低电平 是 读进行值 键号+8,计数值-1 行值循环右移一位 键号+1 否 全部扫描完? 是 否 键盘命令处理 是 进位位为0? 结束 图6.26 行扫描法程序流程

  21. 采用行反转法的8×8矩阵键盘 +5V …… 1. A口输出全0(“00H”)。 2. B口输入如为全1(“0FFH”)则表明无键按下,退出;否则继续向下,B口读入值包含按键所在列信息(如“0FEH”表示按键在第7行) 。 3. B口输出(2)中读入的数据(如“0FEH”)。 4.A口输入按键所在行信息(如“10H”表示按键在第4行)。 5.根据(2)及(4)中读入的信息计算按键编码。 10k Ω 10k Ω 8位并口 A 10k Ω …… 10k Ω 8位并口 B

  22. 微 机 键 盘 接 口(P288) • 微机键盘工作原理 • 键盘内单片机可自动识别键的按下与释放,并自动生成相应的扫描码(因此严格地说微机键盘仍属于非编码键盘); • 扫描码以中断方式、通过PS/2接口串行发送至主机; • 主机通过09H号中断获取的扫描码存放在0040:001EH~0040:003CH共30个字缓冲单元(FIFO)中。 • 主机将扫描码转换为反映键功能的ASCII码; • 常用的与微机键盘输入有关的中断调用 • 21H号DOS功能调用的01H、06H、07H、08H、0AH、0BH、0CH号功能都可用于接收单个字符或字符串; • 16H号BIOS中断调用可一次读取字符的16位扩充ASCII码

  23. 数码管显示接口(P293) 一、显示器结构 共阴结构:输入控制端为高电平时,对应的LED亮 共阳结构:输入控制端为低电平时,对应的LED亮 二、显示方式 • 静态显示:显示位数少时使用 • 各位(8段)输入控制端分别与接口电路的输出端相连,占用I/O端口资源多; • 各段(LED)恒定地导通或截止; • 动态显示:显示位数多时使用 • 各位共享输入控制端,占用I/O端口资源少; • 需同时进行位选(选中被点亮的位)和段选(输入控制端确定各LED的发光情况) • 各位轮流显示一遍的总时间不能过长(不大于20ms);

  24. 6×8数码管动态显示原理 D 7 D 带锁存功能的并行输出端口 6 D D ~D 5 0 7 D 4 D 3 D 2 D 1 D 0 段选有效 位选有效 4 3 位 1 2 0 位 位 5 位 位 位 D 5 带锁存功能的并行输出端口 D 4 D ~D 0 5 D 3 D 2 D 1 D 0

  25. 并行打印机接口框图(P298) 输出数据 写数据 数据信息8 寄存器 D ~D 数 0 7 I S A 据 输入数据 读数据 收 缓冲器 打 集 DIR 发 控制信息4 电 器 写控制 极 控制寄存 印 驱 AEN 命 动 A ~A 令 状态寄存 0 9 器 译 机 读控制 (2) 器 IOR 码 器 IOW 状态信息5 状态寄存 复位 (1) 器 读状态 IRQ

  26. 并行打印机接口时序图(P298) BUSY ACK 5 s μ DATA 数据有效 数据有效 STROB 5 s μ MOV DX,379H WAIT:IN AL,DX TEST AL,80H ;查询状态 JE WAIT ;忙,等待 MOV DX,378H;不忙,发数据 MOV AL,DAT OUT DX,AL MOV DX,37AH;发选通信号 MOV AL,09H CALL DELAY OUT DX,AL MOV AL,08H ;撤销选通信号 OUT DX,AL 1. CPU查看BUSY状态信号 2. 当BUSY=“0”时,CPU发送需打印的数据 3. CPU发控制信号/STROB锁存数据,该信号至少维持5μs 4. /STROB信号导致BUSY信号变为高电平 5. 打印机在接受完数据后发出/ACK状态信号,该信号至少维持5μs 6. /ACK信号导致BUSY信号变为低电平

More Related