1 / 44

第 七 章 输入输出接口

第 七 章 输入输出接口. 主讲:刘英. 本章主要内容. 7.1 I/O 接口概述 7.2 I/O 端口的编址方式 7.3 I/O 端口地址的译码 7.4 输入 / 输出传送方式. 7.1 I/O 接口概述. 内容 I/O 接口概述 I/O 接口的典型结构. 7.1.1 I/O 接口概述. 7.1.1 I/O 接口概述. 为什么要接口电路 ? 微机的外部设备多种多样 外部设备 数据格式、工作速度差别很大 外设 不能 与 CPU 直接 相连,必须经过中间电路再与系统相连,这部分电路被称为 I/O 接口 电路。.

Télécharger la présentation

第 七 章 输入输出接口

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. 第 七 章 输入输出接口 主讲:刘英

  2. 本章主要内容 7.1 I/O接口概述 7.2 I/O端口的编址方式 7.3 I/O端口地址的译码 7.4 输入/输出传送方式

  3. 7.1 I/O接口概述 内容 • I/O接口概述 • I/O接口的典型结构

  4. 7.1.1 I/O接口概述 7.1.1 I/O接口概述 • 为什么要接口电路? • 微机的外部设备多种多样 • 外部设备数据格式、工作速度差别很大 • 外设不能与CPU直接相连,必须经过中间电路再与系统相连,这部分电路被称为I/O接口电路。

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

  6. 7.1.1 I/O接口概述 • I/O接口的主要功能? • 对传送数据提供缓冲、隔离和寄存(或锁存) • 对信号的形式和数据的格式进行转换 • 对I/O端口进行寻址 • 与CPU和I/O设备进行联络

  7. 7.1.1 I/O接口概述 • CPU和I/O设备间交换的信息 • 数据信息:外设的数据 • 数字量:如用二进制表示的字母、数字、BCD码和字符等 • 模拟量:如电流、电压、流量、压力和温度等 • 开关量:用一位二进制数来表示两个不同的状态 • 状态信息:I/O设备的状态,对于输入设备来说,用READY信号来标明待输入的数据是否准备就绪;对于输出设备来说,用BUSY信号来表示输出设备是否处于空闲状态。 • 控制信息:CPU的控制信息,如外设的启动信号和停止信号。

  8. 7.1.1 I/O接口概述 • 主要接口芯片 • 简单的输入/输出接口芯片 • 如锁存器74LS373、单向缓冲器74LS244、双向缓冲器(数据收发器)74LS245等。 • 可编程接口芯片:其功能可以由软件来选用控制。 • 如并行输入输出接口8255、串行输入输出接口8250/8251 、定时器/计数器8253、中断控制器8259、DMA控制器8237等。

  9. 7.1.2 I/O接口的典型结构 7.1.2 I/O接口的典型结构 • 典型I/O接口电路通常包括数据寄存器、控制寄存器、状态寄存器、数据缓冲器和读/写控制单元。

  10. 7.1.2 I/O接口的典型结构 • 数据寄存器是可读可写的寄存器,用来存放CPU与I/O设备交换的数据信息。 • 控制寄存器只能写不能读,用来存放CPU向外部设备发送的控制命令和工作方式命令字等。 • 状态寄存器能读不能写,用来存放外部设备当前的工作状态信息,供CPU查询。 • 数据缓冲器是CPU与I/O备数据信息交换的通道,它与CPU的数据总线DB连接。 • 读/写控制逻辑单元与CPU的地址总线AB、控制总线CB连接,接收CPU发送到I/O接口的读/写控制信号和端口选择信号,选择接口内部的寄存器进行读/写操作。

  11. 7.2 I/O端口的编址方式 • 概念 • 接口是每个外设或每种外设与微处理器相连时使用的电路。 • 在接口电路中,数据信息、状态信息和控制信息分别进入不同的寄存器,通常将这些寄存器和它们的控制逻辑统称为I/O端口。 • 为便于CPU访问,每一个端口都被赋予一个地址,称为I/O端口地址。

  12. 接口与端口 • 接口上可以包含唯一的端口,也可以包含几个端口。 • 对CPU程序来说,接口仅是一个笼统的概念,而接口中的各个端口寄存器是CPU程序与接口打交道的具体对象。 • 端口的地址和端口的数据是程序唯一可见的内容,而接口和外设在程序中是无法直接反映出来的。 • CPU以访问端口的形式来访问接口,进而CPU通过这些端口与该接口所连接的外部设备进行信息交换。

  13. 端口分为数据端口、状态端口和控制端口 • 为传递的数据提供缓冲、锁存等功能的称为数据端口。 • 用来保存设备和接口的状态信息,供CPU查询的称为状态端口。 • 用来保存CPU发出的命令,以控制接口与外部设备的执行动作的称为控制端口。 • I/O端口编址方式——两种方式 • 将存储器与外设端口统一编址 • 外设端口单独编址

  14. 7.2.1 存储器统一编址 • 1. 统一编址 • 把外设接口与内存统一进行编址。各占据统一地址空间的不同部分。一般I/O端口占用存储空间的高地址端。 • 优点 • 指令统一,灵活; • 访问控制信号统一,使用同一组的地址/控制信号。 • 缺点 • 内存可用地址空间减小; • 程序I/O操作不清晰。 地址空间(共1MB) 0 内存地址 (960KB) EFFFFH F0000H I/O地址 (64KB) FFFFFH

  15. 7.2.1 I/O独立编址 • 2. 独立编址 • 外设地址空间和内存地址空间相互独立。 • 优点:内存地址空间不受I/O编址的影响;使用I/O指令,程序清晰。 • 缺点:I/O指令功能较弱,使用不同的读写控制信号。 内存地址空间 I/O地址空间 00000H 0000H I/O空间 (64KB) FFFFH 内存空间 (1MB) FFFFFH

  16. 8088/8086 CPU的I/O编址方式 • 采用I/O独立编址方式(但地址线与存储器共用) • 地址线上的地址信号用 来区分: • 时为I/O地址 • I/O操作只使用20根地址线中的16根: A15 ~ A0 • 可寻址的I/O端口数为64K(65536)个 • I/O地址范围为0~FFFFH • IBM PC只使用了1024个I/O地址(0~3FFH)

  17. 把端口地址放在DX寄存器中,对该端口进行读写,可寻址的端口号为0~65535(FFFFH)把端口地址放在DX寄存器中,对该端口进行读写,可寻址的端口号为0~65535(FFFFH) • IN AL, DX • OUT DX, AL • 端口地址小于或等于FFH(255),可以用立即数表示端口地址。 • IN AL, 42H • OUT 43H, AL

  18. 7.3 I/O端口地址的译码 • I/O地址的译码方法与存储器地址的译码方法类似 • 常见的端口地址译码方法有三种:门电路组合法、译码器译码法、比较器比较法

  19. A9 A8 A7 A6 A5 A2 A4 A3 AEN A1 A0 74LS03 3E7H ? 例:图中译码输出地址3E7H 试分析将图中的A1、A0去掉后,译码输出的地址 • 1、门电路组合法——单个地址或地址范围 1 1 1 1 1 0 1 0 地址范围:3E4H~3E7H 0 0 1 1

  20. Vcc C B A Y1 Y0 Y2 Y3 Y5 Y6 Y7 Y4 G2B G2A G1 GND • 2、译码器(以74LS138为例)译码法——利用译码器芯片对地址进行译码 74LS138的逻辑功能: 若3个译码控制端均有效,即:G1=1,G2A=G2B=0时,8个译码输出端(Y0~Y7)有且只有一个有效(低电平),有效引脚的编码由输入选择信号C、B、A决定;即:CBA=i,则Yi=0(i=0~7)

  21. 74LS138 Y0 Y1 Y2 Y3 Y4 Y5 A5 A6 A7 A BC DMA CS(8237) INTR CS(8259) T/C CS(8253) PPI CS(8255) A8 A9 AEN G2B G2A G1 WRTDMAPG (写DMA页面寄存器) WRTNMIREG (写NMI屏蔽寄存器) Y6 Y7 IOW 例:PC机系统板上的端口地址译码电路

  22. 系统板上各芯片的地址 8237:000H~01FH 8259:020H~03FH 8253:040H~05FH 8255:060H~07FH 写DMA页面寄存器:080H~09FH 写NMI屏蔽寄存器:0A0H~0BFH 保留:0C0H~0DFH 保留:OE0H~0FFH

  23. 3、比较器比较法 • 原理:利用数码比较器把地址线上的地址同预定的地址相比较,进而确定地址是否相符。如果比较后两个地址相等,则表示地址总线送来的端口地址就是该端口的地址。 • 74LS688比较器:当P0~7≠Q0~7时,P=1,输出高电平。当P0~7=Q0~7时,P=0,输出低电平。

  24. 例:比较器比较法举例 228H~22FH 1 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0

  25. 7.4 输入/输出传送方式 • 无条件传送方式 • 查询传送方式 • 中断传送方式 • DMA传送方式

  26. 7.4.1 无条件传送方式 • 若程序员能够确信一个外设已经准备就绪,就不必查询外设的状态而进行信息传输,这称为无条件传送方式。 • 适用于总是处于准备好状态的外设 • 以下外设可采用无条件传送方式: • 开关 • 发光器件(如发光二极管、7段数码管、灯泡等) • 继电器 • 步进电机 • 优点:软件及接口硬件简单 • 缺点:只适用于简单外设,适应范围较窄

  27. 无条件传送输入的例子: 无条件传送输出的例子: MOV DX, 160H IN AL, DX MOV DX, 160H MOV AL, [BX] OUT DX, AL

  28. 7.4.2 查询传送方式 • CPU通过执行程序不断读取并测试外设的状态,根据外设的工作状态控制外设的输入/输出,即查询方式。 • 适用于外设并不总是准备好,而且对传送速率、传送效率要求不高的场合。 • 在此传送方式下,一个数据传送到接口,其过程由3个环节组成: • CPU从接口中读取状态字 • CPU检测状态字的对应位是否满足“就绪”条件,如果不满足,则回到前一步读取状态字。 • 如执行输入方式时状态字表明外设已处于“就绪”状态,则传送数据。执行输出方式时状态字表明外设已处于“空闲”状态,则传送数据。

  29. 查询传送方式特点 • 通过查询实现CPU与外设间的同步联络 • CPU和外设串行工作 • 接口电路简单 • CPU使用率不高,用CPU的等待实现与外设的同步

  30. 7.4.3 中断传送方式 • 中断方式:当外设做好传送准备后,主动向CPU请求中断,CPU响应中断后在中断处理程序中与外设交换数据。若外设未准备好,CPU可以执行其他程序,提高了CPU的利用率。 • 中断过程大致分为: • 中断请求:由需要提供中断服务程序的设备提出; • 中断响应:CPU给设备发出一个中断应答信号; • 现场保护:保护执行中断服务程序前的各种信息; • 执行中断服务程序:完成特定的操作; • 退出中断服务程序:恢复现场。

  31. 中断传送方式的特点 • 中断传送是一种效率更高的程序传送方式 • 进行传送的中断服务程序是预先设计好的 • 中断请求是外设随机向CPU提出的 • CPU对请求的检测是有规律的:一般是在每条指令的最后一个时钟周期采样中断请求输入引脚

  32. 7.4.4 DMA传送方式 • 前面三种I/O方式都需要CPU作为中介: 外设CPU 内存 两个含义: 1)软件:外设与内存之间的数据传送是通过CPU执行程序来完成的(PIO方式); 2)硬件:I/O接口和存储器的读写控制信号、地址信号都是由CPU发出的(总线由CPU控制)。 • 缺点:程序的执行速度限定了传送的最大速度(约为几十KB/秒)—解决:DMA传输

  33. DMA:Direct Memory Access——直接存储器访问 • DMA传输: 外设内存 • 外设直接与存储器进行数据交换 ,CPU不再担当数据传输的中介者; • 总线由DMA控制器(DMAC)进行控制(CPU要放弃总线控制权),内存/外设的地址和读写控制信号均由DMAC提供。 • 优点:数据传输由DMA硬件来控制,数据直接在内存和外设之间交换,可以达到很高的传输速率(可达几MB/秒)

  34. DMA传送原理示意图 ② ⑥ ① CPU DMAC 外设接口 HOLD DRQ DACK HLDA ③ ④ ⑦ IOW IOW IOR IOR AEN AEN MEMR MEMR MEMW MEMW IOW AEN IOR 系统总线 ⑤ MEMW MEMR ① 外设发出DMA请求 ② DMAC向CPU申请总线 ③ CPU完成当前总线周期后响应,并释放总线控制权 ④ DMAC得到总线控制权,并发出DMA响应信号 ⑤ 由DMAC发出各种控制信号,控制外设与存储器之 间的数据传送 ⑥ 数据传送完后,DMAC撤销HOLD信号 ⑦ CPU释放HLDA信号,并重新控制总线 存储器

  35. DMA控制器的工作过程 • 1)当外设准备好,可以进行DMA传送时,外设向DMA控制器发出“DMA传送请求”信号(DRQ); • 2)DMA控制器收到请求后,向CPU发出“总线请求”信号HOLD,表示希望占用总线; • 3)CPU在完成当前总线周期后会立即对HOLD信号进行响应。响应包括两个动作:一是CPU将数据总线、地址总线和相应的控制信号线均置为高阻态,由此放弃对总线的控制权。另一方面,CPU向DMA控制器发出“总线响应”信号(HLDA)。 • 4)DMA控制器收到HLDA信号后,就开始控制总线,并向外设发出DMA响应信号DACK;

  36. DMA控制器的工作过程(续) • 5)DMA控制器送出地址信号和相应的控制信号,实现外设与内存或内存与内存之间的直接数据传送; • 例如,向I/O接口发出读信号,同时往地址总线上发出存储器的地址和存储器写信号和AEN信号,即可从外设向内存传送一个字节。 • 6)DMA控制器自动修改地址和字节计数器,并判断是否需要重复传送操作。当规定的数据传送完后,DMA控制器就撤销发往CPU的HOLD信号。CPU检测到HOLD失效后,紧接着撤销HLDA信号,并在下一时钟周期重新开始控制总线。

  37. 几种数据传送方式特点? • 无条件传送:慢速外设需与CPU保持同步 • 查询传送: 简单实用,效率较低,硬件开销小 • 中断传送:外设主动,可与CPU并行工作,但中断服务保护现场等需要额外时间开销,需要硬件开销进行中断管理 • DMA传送:DMAC控制,外设直接和存储器进行数据传送,适合大量、快速数据传送,需要硬件开销

  38. 7.5 简单I/O接口芯片 74LS244是一种三态输出缓冲器,无锁存功能。74LS244的内部驱动器分为两组,分别为4个输入端(1A1~1A4, 2A1~2A4)、4个输出端(1Y1~1Y4, 2Y1~2Y4),他们分别由使能1G#,当 2G#控制。当1G#=0时,(1Y1~1Y4)与(1A1~1A4)的电平相同;当2G#=0时,(2Y1~2Y4)与(2A1~2A4)的电平相同;当1G#=1(或2G#=1 )时, 1Y1~1Y4(或2Y1~2Y4)输出为高阻态。

  39. 数据锁存器74LS373 使能端G有效时(高电平有效),输入端(D端)数据进入锁存器;输出允许端OE#有效时(低电平有效),将锁存器中锁存的数据送到输出端Q;OE#=1时输出为高阻态。

  40. 74LS245是一种三态输出数据收发器,当使能端G#有效(低电平有效),且方向控制端DIR=0时,信号由B端向A端传输;当使能端G#=0,方向控制端DIR=1时,信号由A端向B端传输;当使能端C#=1时,A、B端均为高阻态。74LS245是一种三态输出数据收发器,当使能端G#有效(低电平有效),且方向控制端DIR=0时,信号由B端向A端传输;当使能端G#=0,方向控制端DIR=1时,信号由A端向B端传输;当使能端C#=1时,A、B端均为高阻态。

  41. 7.6 输入/输出接口综合应用例子 • 根据开关状态在7段数码管上显示数字或符号 • 共阳极7段数码管见教材P191 • 用74LS273作为输出接口,把数据送到7段数码管 • 74LS273的地址假设为F0H • 用74LS244作为输入口,读入开关K0~K3的状态 • 74LS244的地址假设为F1H • 当开关的状态分别为0000~1111时,在7段数码管上对应显示’0’~’F’ • (7段码表见下页)

  42. 写地址:F0H = 0000 0000 1111 0000 读地址:F1H = 0000 0000 1111 0001 74LS273 7406 Rx8 D0 Q0 | Q1 D7 Q2 Q3 Q4 CP Q5 Q6 Q7 a b c d e f g DP D0~D7 8个 反相器 译码电路 ≥1 IOW# & 74LS138 A7~A4 G G2A G2B C B A ≥1 Y0 +5V A15~A8 74LS244 K0~K3 D0 O1 I1 O2 I2 O3 I3 O4 I4 #E1 A3 A2 D1 Y1 A1 D2 A0 D3 ≥1 IOR#

  43. 相应程序段如下: …… Seg7 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,67H,77H,7CH,39H,5EH,79H,71H …… LEA BX, Seg7 ;取7段码表基地址 MOV AH, 0 GO: MOV DX, 0F1H ;开关接口的地址为F1H IN AL, DX ;读入开关状态 AND AL, 0FH ;保留低4位 MOV SI, AX ;作为7段码表的表内位移量 MOV AL, [BX+SI];取7段码 MOV DX, 0F0H ;7段数码管接口的地址为F0H OUT DX, AL JMP GO

More Related