1 / 41

第 7 章 I/O 接口和总线

第 7 章 I/O 接口和总线. 7.1 I/O 接口 7.2 总线. 7.1 I/O 接口. 接口 指 CPU 、存储器、外设之间通过总线进行连接的电路部分, 是 CPU 与外界进行信息交换的中转站。. 接口技术 是研究 CPU 如何与外部世界进行最佳耦合与匹配, 实现双方高效、可靠地交换信息的一门技术, 是软件、硬件结合的体现,是微机应用的关键。. 一 、接口和接口技术. 为什么要用 接口 电路?. 外设是用来实现人机交互的一些机电设备。 外设处理信息的类型、速度、信号电平、通信方式与 CPU 不匹配 ,

Download Presentation

第 7 章 I/O 接口和总线

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. 第7章 I/O接口和总线 7.1 I/O接口 7.2 总线

  2. 7.1 I/O接口 接口 指CPU、存储器、外设之间通过总线进行连接的电路部分, 是CPU与外界进行信息交换的中转站。 接口技术 是研究CPU如何与外部世界进行最佳耦合与匹配, 实现双方高效、可靠地交换信息的一门技术, 是软件、硬件结合的体现,是微机应用的关键。 一、接口和接口技术

  3. 为什么要用接口电路? • 外设是用来实现人机交互的一些机电设备。 • 外设处理信息的类型、速度、信号电平、通信方式与CPU不匹配, • 不能直接挂在总线上,必须通过接口和系统相连。

  4. 两点说明: 1、CPU使用的信号是TTL电平,而外设大多是复杂的机电设备,往往不能用TTL电平驱动,一般都有自己的电源系统和信号电平。 2、I/O接口电路必须具有的基本功能是:输入有缓冲功能(避免多个外设引起总线竞争);输出有锁存功能(解决快速CUP和慢速外设之间的不协调问题)。 如下图所示

  5. 总线 输入设备1 CPU EN1 输入设备2 EN2 在总线结构的微机系统中, • 任一时刻只能有一个设备利用总线进行数据传送, • 输入设备的数据线应通过三态门与系统相连。 当设备1与CPU进行数据传送时,设备2的数据信号应处于三态 当设备2与CPU进行数据传送时,设备1的数据信号应处于三态

  6. 多个输入设备连在总线上时, 只有进行数据传送设备的数据线处于工作状态, 而未进行数据传送设备的数据线应处于高阻态。 总线 输入设备1 EN1 CPU 输入设备2 EN2 输入设备3 . . . EN3

  7. 在总线结构的微机系统中, • CPU送出的数据以广播的形式在数据线上传出。 总线 输出设备1 CPU 输出设备2 输出设备3 输出设备4 1.数据传送给哪个输出设备? 2.CPU要利用总线不停的传送数据, 总线上的数据变化快, 如何使慢速设备有足够的时间处理数据?

  8. 总线 锁存器1 输出设备1 CPU CP1 锁存器2 输出设备2 CP2 锁存器3 输出设备3 CP3 • 输出设备利用锁存器接受CPU输出的数据。 1. 使某输出设备锁存器的控制端处于触发状态,数据通过该锁存器。 2. 当触发信号消失,数据锁存在锁存器中,外设侧数据不随总线侧数据的变化而变化, 使 慢速的外设有足够的时间处理数据。

  9. 地址总线 AB CPU I/O 接 口 输 出 设 备 I/O 接 口 存 储 器 输 入 设 备 数据总线 DB 控制总线 CB • 输入设备的I/O接口要起到三态门的作用 • 输出设备的I/O接口要起到锁存的作用

  10. 二、简单的输入输出接口芯片 最常用的简单的输入输出接口芯片主要有缓冲器和锁存器 1、缓冲器74LS244 和 74LS245 2、锁存器74LS273 和 74LS373

  11. 单向三态驱动器74LS244 功能表 1G A3~0 Y3~0 000 011 1 0 高阻 1 1 高阻 2G A7~4 Y7~4 000 011 1 0 高阻 1 1 高阻 A3~A0 Y3~Y0 1G 2G A7~A4 Y7~Y4 含两个4位三态驱动器

  12. 双向三态驱动器74LS245 功能表 G DIR G DIR 00 A Y 01 A Y 1 0 高阻 1 1 高阻 A7~A0 Y7~Y0

  13. 功能表 D0 Q0 D7 Q7 OE G OE G D Q 01 0 0 01 1 1 0其它 × Q0(不变) 1 × × 高阻 三态锁存器74LS373(具有三态和锁存功能的驱动器) OE高阻(三态)控制 G触发(锁存)控制 * 74LS273是不含三态门的8D锁存器

  14. 三、 输入/输出端口及其寻址方式1 、 CPU与外部设备之间的接口信息 CPU通过接口与外部设备连接,接口中有: 数据端口(双向) 状态端口(输入) 命令(控制)端口(输出) 数据信息是CPU和I/O设备交换的基本信息,通常是8位或16位。 状态信息反映了当前外设的工作状态,它是由外设通过接口送入CPU的。 控制信息是CPU通过接口送给外设的。CPU通过发送控制信息控制外设的工作。外设种类不同,控制信息也各不相同。

  15. 简单的外设接口

  16. 总结: • 每一个I/O端口对应一个I/O地址,CPU由端口地址区分I/O端口,从硬件角度看,端口可以理解为寄存器。 • 在I/O操作中,主要有三类信息:数据信息、状态信息和控制信息,分别存放于相应的端口。 • CPU对外设输入/输出的控制,是通过对接口电路中各I/O端口的读/写操作完成的。

  17. 2、 输入/输出端口的寻址方式 在微型计算机系统中,端口的编址通常有两种不同的方式,一是I/O端口与存储器单元统一编址;二是I/O端口独立编址。 1). I/O端口与存储器单元统一编址 该方式也称为存储器映像(Memory Mapped)I/O方式。 把每个I/O端口都当作一个存储器单元看待,I/O端口与存储器单元在同一个地址空间中进行统一编址。 常在整个地址空间中划分出一小块连续的地址分配给I/O端口。被分配给I/O端口的地址,存储器不能再使用。如下页图所示。

  18. 内存映射与I/O映射编址 (a) 统一编址;(b) 独立编址

  19. 统一编址方式的优点: • 简化指令系统的设计,I/O控制信号与存储器的控制信号共用,给应用带来极大的方便。 • 访问存储器的指令种类多、寻址方式多样化。对I/O设备可以使用功能强大且像访问存储器那样的指令,带来了很大的灵活性。 • 统一编址方式的缺点: • 外设占用了一部分内存地址空间,减少了内存可用的地址范围。 • 从指令上不易区分当前指令是对内存进行操作还是对外设进行操作。

  20. 2). I/O端口独立编址(I/O Mapped) 该方式也称为I/O隔离编址或I/O指令寻址方式。 I/O端口地址区域和存储器地址区域,分别各自独立编址。访问I/O端口使用专门的I/O指令,而访问内存则使用MOV等指令。 CPU在寻址内存和外设时,使用不同的控制信号来区分当前是对内存操作还是对I/O操作。如8086最小系统的M/IO信号。

  21. 单独编址的优点: • I/O端口不占用存储器的地址空间,使用专门的I/O指令对端口进行访问,具有I/O指令短、执行速度快、译码简单。 • 单独编址的缺点: • 专门的I/O指令功能相对较弱,一般只有传送功能,而没有运算功能。 • Intel 80x86 CPU中,I/O端口和存储器是单独编址的,采用专用的输入/输出指令访问端口。

  22. 3). 输入/输出指令 1) 8086/8088采用的IN和OUT指令 I/O指令可以采用8位(单字节)或16位(双字节)地址两种寻址方式。用8位端口地址,则最多可以有256个端口(端口地址号从00H~FFH),并且是直接寻址(直接端口寻址)方式,指令格式如下: 输入: IN AX,Port ;从Port端口输入16位数据到AX IN AL,Port ;从Port端口输入8位数据到AL 输出: OUT Port,AX ;从AX输出16位数据到Port端口 OUT Port,AL ;从AL输出 8位数据到Port端口 * Port是一个单字节的8位地址。

  23. 用16位端口地址,则最多可以有64 K个端口(端口地址号从0000H~FFFFH),并且是间接寻址方式,即把端口地址放在DX寄存器内(间接端口寻址)。其指令格式如下: 输入: MOV DX,XXXXH ;16位地址 IN AX,DX ;16位传送 或 IN AL,DX ;8位传送 输出: MOV DX,XXXXH OUT DX,AX ;16位传送 或 OUT DX,AL ;8位传送 * XXXXH为两字节地址信息。

  24. 四、 CPU与外设间的数据传送方式CPU与外设的工作速度不一致,如何使两者高效、可靠地进行数据传送,是本节讨论的问题。1. 程序控制方式 (1) 无条件传送(同步传送方式) 无条件传送是一种最简单的输入/输出控制方法,一般用于控制CPU与低速(或不需查询工作状态)的I/O接口之间的信息交换,例如,开关、扬声器。

  25. 实现方法: CPU不查询外设工作状态, 与外设速度的匹配通过在软件上延时完成, 在程序中直接用I/O指令,完成与外设的数据传送。 特点: 1. 适用于外设动作时间已知,在CPU与外设进行数据传送时,外设保证已准备好的情况。 2. 软硬件十分简单。

  26. 例:简单输入端口,输入按键状态。

  27. 例:简单输出端口,控制LED显示器的点燃和熄灭。例:简单输出端口,控制LED显示器的点燃和熄灭。

  28. (2) 条件传送 (查询传送方式) 实现方法: 在与外设进行传送数据前,CPU先查询外设状态, • 当外设准备好后,才执行I/O指令,实现数据传送。 特点: • 1. CPU通过不断查询外设状态,实现与外设的速度匹配,能较好地协调外设与CPU之间的定时关系。 • 2. CPU需要不断查询标志位的状态,这将占用CPU较多的时间,工作效率低。

  29. 条件传送示意图

  30. RD 输 入 装 置 锁 存 器 三态 缓冲 器 数据 DB D7 数据端口 +5V 地址 译码 状态端口 AB 三态 缓冲 器 D R Q Ready 选通 RD M/ IO M/ IO 查询输入接口电路(组成) IN AL, DATA_PORT IN AL, STATUS_PORT 工作原理

  31. 1、数据准备好,选通信号输出正跳变将数据锁存器 D触发器置1,作为Ready信号,D7=1。 2、查询状态信号,执行 IN AL,状态口;Ready(bit7) AL 3、若Ready=1,执行 IN AL,数据口;输入数据AL,D触发器复位,Ready=0 设状态口地址: STATUS_PORT 设数据口地址: DATA_PORT 查询式输入数据的程序段为: MOV BX,0 MOV CX,COUNT_1 READ_S1: IN AL, STATUS_PORT TEST AL,80H JZ READ_S1 IN AL, DATA_PORT MOV [BX],AL INC BX LOOP READ_S1 : 查询输入的编程

  32. OUT DATA_PORT, AL 查询输出接口电路(组成) WR 输 出 装 置 锁 存 器 数据 DB D7 VCC 启动 数据端口 Q D R 地址 译码 器 状态端口 三态 缓冲 器 AB Busy ACK RD M/IO M/IO 工作原理 IN AL, STATUS_PORT

  33. 查询输出的编程 1、上一数据处理结束,ACK的负跳变(恢复)使D触发器复“0” 输出装置,启动信号=0(恢复)缓冲器输出 Busy=0; 2、查询状态信号,执行 指令 IN AL,状态口;Busy(bit7) AL 3、若Busy =0,执行指令 OUT 数据口,AL; 输出数据AL  DB  锁存器 输出装置; D触发器置1,启动输出装置Busy=1,禁止输出 • 设状态口地址: STATUS_PORT • 设数据口地址: DATA_PORT • 查询式输出数据的程序段为: • MOV CX,COUNT_2 • READ_S2: IN AL, STATUS_PORT • TEST AL,80H • JNZ READ_S2 • MOV AL,xxH • OUT DATA_PORT,AL • LOOP READ_S2 • :

  34. 2. 中断控制方式 查询方式的缺点除了占用CPU较多的工作时间外,还难以满足实时控制系统对I/O工作的要求。 查询方式中,CPU处于主动地位,而外设接口处于消极被查询的被动地位。 实时系统中,多个外设要求CPU为它服务是随机的,且希望CPU以最快的速度响应其请求。 因此要求系统中的外设,具有主动申请CPU为其服务的权利。 * 提出中断控制方式

  35. 中断控制实现方法: 1.当外设准备好,向CPU发出中断请求; 2. CPU执行完每一条指令后,都会去查询外部是否有中断请求,在满足响应中断的条件下,发出中断响应信号; 3. CPU暂停当前的程序,转去执行中断服务程序,完成与外设的数据传送; 4. CPU从中断服务程序返回,继续执行被中断的程序。 * 8086/8088CPU的中断结构灵活,功能很强。 (有关中断的详细讨论参见第8章)

  36. 中断方式下 CPU执行程序流程 外 设 发申请 中断服务程序 发申请 中断服务程序

  37. 中断传送方式的特点: • CPU和外设大部分时间处在并行工作状态,只在CPU响应外设的中断申请后,进入数据传送的过程。 • 2. 中断传送方式提高了CPU的效率。

  38. 3. 直接存储器存取(DMA)控制方式 采用中断方式传送数据,仍需要CPU执行程序才能完成。 *中断服务程序需要有保护现场和恢复现场的操作 *I/O操作都是通过CPU来进行的。 对于一些高速外设,如高速磁盘控制器,中断方式往往满足不了它们的需要。 为此,提出了数据在I/O接口与存储器之间的传送,不经CPU的干预,而是在专用硬件电路的控制下直接传送。这种方法称为直接存储器存取(Direct Memory Access,缩写为DMA)。 此时,数据传送速度仅受存储器的存取速度和外部设备传输特性的限制。

  39. * 专用DMA控制器(DMAC)接口电路如Intel公司的8257、8237等。 实现方法: 1. 由专用接口芯片DMA控制器 (称DMAC) 控制传送过程, 2. 当外设需传送数据时,通过DMAC向CPU发出总线请求信号HOLD,申请占用总线 ; 3. CPU发出总线响应信号 HLDA ,释放总线; 4. DMAC接管总线,控制外设、内存之间直接数据传送。 • * 注意:AEN信号

  40. DMA传送方式过程 CPU 内存 总线 请求 总线 响应 外设 DMAC

  41. DMA传送方式的特点: 1. 外设和内存之间,直接进行数据传送,不通过CPU。 2. 进入DMA方式时不必保护CPU的现场。 3.传送数据方式由硬件代替软件,因而提高了数据传送的速度,缩短了数据传送的响应时间,传送效率高。适用于在内存与高速外设、或两个高速外设之间进行大批量数据传送。 4. 电路结构复杂,硬件开销较大,提高了系统的成本。因此,只要CPU来得及处理的数据传送,就不必采用DMA方式。

More Related