Presentation is loading. Please wait.

Presentation is loading. Please wait.

第六章 I/O接口 一、I/O接口的功能 第一节 概 述 一、I/O 接口的功能 二、I/O接口的一般结构 第二节 输入输出寻址方式和指令

Similar presentations


Presentation on theme: "第六章 I/O接口 一、I/O接口的功能 第一节 概 述 一、I/O 接口的功能 二、I/O接口的一般结构 第二节 输入输出寻址方式和指令"— Presentation transcript:

1 第六章 I/O接口 一、I/O接口的功能 第一节 概 述 一、I/O 接口的功能 二、I/O接口的一般结构 第二节 输入输出寻址方式和指令
第一节 概 述 一、I/O 接口的功能 二、I/O接口的一般结构 第二节 输入输出寻址方式和指令 一. I/O指令寻址 二. 存储器映象的 I/O寻址 三、8088I/O指令 第三节 CPU与外设数据传送方式 一、无条件传送 二、查询传送 三、 中断传送 四、直接数据通信传送DMA 第四节 DMA控制器(Intel8237) 一、主要功能 二、DMA控制器8237的功能 三、8237的内部结构

2 第六章 输入和输出 第一节 概 述 一、I/O接口的功能 1. 采用I/O接口的必要性 * 外围设备的品种繁多 机械,电子,机电,磁电,光电
第六章 输入和输出 第一节 概 述 一、I/O接口的功能 1. 采用I/O接口的必要性 * 外围设备的品种繁多 机械,电子,机电,磁电,光电 * 所传输的信息的要求不同 数字,模拟,电压,电流等 2. 计算机与外设之间的信息交换应解决的问题: * 速度不匹配 * 信号电平不匹配 * 信号格式不匹配 * 信号时序不匹配

3 * 设置数据缓冲器以解决两者速度差异所带来的不协调问题;
3. I/O接口应具有的功能(解决的方案) * 设置数据缓冲器以解决两者速度差异所带来的不协调问题; 输入: 输入设备数据线  三态缓冲器  DB  CPU 寻 址 等待数据输入 读入数据 确定输入端口地址 AB、M/ IO、ALE、DT/R  输入缓冲器 输入缓冲器  DB  CPU 输出: CPU  DB  锁存器  输出设备数据线 寻 址 输出数据 等待数据输出 确定输出端口地址 AB、M/IO、ALE、DT/R CPU  DB  输出锁存器 等待输出设备 从锁存器取走数据

4 * 设置信号电平转换电路以解决两者之间信号电平的不一致问题
例如:在串行通信中,常采用MC1488,MC1489等芯片实现 电平转换。 * 设置信息转换逻辑以满足对各自信号格式的要求 例如:A/D转换,D/A转换,串/并转换,并/串转换等。 * 设置时序控制电路以同步CPU和外设的工作 接口电路接收CPU送来的命令或控制字,实施对外设的控 制和管理;外设的工作状态和应答信号也通过接口及时返 回给CPU(设备就绪,忙,缓冲器满,空),保证CPU与 外设工作实现同步。

5 * 提供地址译码电路 CPU与多个外部设备交换信息; 每个外部设备通常包含若干个端口(数据,控制,状态)。 * 最好可编程应用

6 P U 二、I/O接口的一般结构 信号: CPU与外设之间传送的信号有:数据、状态、控制
状态信号:反映外设当前所处的工作状态。 输入设备数据准备好,READY=1 输出设备正忙于处理,BUSY=1。 控制信号:控制外设的工作。 CPU启动或停止外设工作,CPU确定外设的工作方式。 端口:CPU与一个外设之间通常有三个端口。数据端口(输入/输出);状态端口;控制端口。 C P U AB 数据 DB 状态 M / IO WR RD 控制

7 第二节 输入输出寻址方式和指令 C P U C P U 存储器 I/O口 存储器 I/O口 控制逻辑
第二节 输入输出寻址方式和指令 一. I/O指令寻址 二. 存储器映象的 I/O寻址 存储器和I/O端口在两个独立的地址空间中, I/O端口的读、写用IOR和IOW控制信号实现,访问I/O端口用专用的IN或OUT指令。 存储器和I/O端口共用一个地址空间, I/O端口的读、写用RD和WR控制信号实现,所有访问存储器的指令都可以用于I/O端口。 C P U C P U 存储器 I/O口 AB DB RD WR AB DB 存储器 I/O口 IOW MEMR MEMW IOR 控制逻辑 CB

8 IN AL, n 字节输入 (n 端口数据)  AL IN AX, n 字输入 (n+1):(n)  AX
三、8086I/O指令 输入输出端口地址在指令中以立即数 n (8bit) 表明。直接寻址可寻址256个输入端口和256个输出端口。 IN AL, n 字节输入 (n 端口数据)  AL IN AX, n 字输入 (n+1):(n)  AX OUT n,AL 字节输出 (AL)  n 端口 OUT n,AX 字输出 (AX)  n+1:n 输入输出端口地址由DX寄存器(16bit)间接寻址。间接寻址可寻址64K个输入端口和64K个输出端口。 IN AL, DX 字节输入 ((DX))  AL IN AX, DX 字输入 ((DX)+1):((DX))  AX OUT DX,AL 字节输出 (AL)  (DX) OUT DX,AX 字输出 (AX)  (DX)+1:(DX)

9 输出:CPU在执行OUT指令前,输出锁存器已空。
一、无条件传送 输出:CPU在执行OUT指令前,输出锁存器已空。 输入:CPU在执行IN指令前,输入三态缓冲器已准备好。 AB 外设输入数据 三态缓冲器 地址译码 RD DB n 输入 端口 n 无条件输入 M/IO 输出外设数据 地址译码 WR DB AB n 输出 端口 n 无条件输出 M/IO

10 CPU需不断查询外设的状态,一旦外设满足数据传送的条件,就执行IN或OUT指令,读入或输出数据。
二、查询传送 CPU需不断查询外设的状态,一旦外设满足数据传送的条件,就执行IN或OUT指令,读入或输出数据。 输入外设状态信号Ready Ready=1 输入数据 N 查询输入 Y 输入外设状态 信号Busy Busy=0 输出数据 N 查询输出 Y

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

12 查询输入的编程 1、数据准备好,选通信号输出正跳变将 数据锁存器 D触发器置1,作为Ready信号,D7=1
2、查询状态信号,执行 IN AL,状态口 Ready(bit7) AL 3、若Ready=1,执行 IN AL,数据口 输入数据AL; D触发器复位,Ready=0 POLL: IN AL, STATUS_PORT TEST AL,80H JE POLL IN AL,DATA_PORT

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

14 查询输出的编程 1、上一数据处理结束,ACK的负跳变(恢复)使D触发器复“0” 输出装置,启动信号=0(恢复)缓冲器输出 Busy=0;
2、查询状态信号,执行 指令 IN AL,状态口 Busy(bit7) AL 3、若Busy =0,执行指令 OUT 数据口,AL, 输出数据AL  DB  锁存器 输出装置; D触发器置1,启动输出装置Busy=1,禁止输出 POLL: IN AL,STATUS_PORT TEST AL,80H JNE POLL MOV AL,STORE ;从数据区取数 OUT DATA_PORT,AL

15 三、 中断传送 IRET 启动外设 主程序 数据IN/OUT 中断服务程序 中断响应 外设准备好 输入设备Ready=1
三、 中断传送 无条件、查询传送都需要CPU的等待或不断查询,使CPU的效率降低。中断传送:外设需要传送数据时,申请中断;当CPU允许中断,在中断服务程序中执行IN /OUT指令;然后返回主程序。 启动外设 主程序 数据IN/OUT 中断服务程序 IRET 中断响应 中断响应 外设准备好 输入设备Ready=1 输出设备Busy=0 中断请求 外设又一次准备好 中断请求

16 中断输入接口电路(组成) 输 入 装 置 地址 译码
中断矢量 INTA D R Q 三态 缓冲 装置中断允许 地址 译码 数据端口 数据 选通 DB INTR RD M/IO 三态缓冲器 中断服务程序中,读入数据 AB 向CPU发中断请求 数据准备就绪,发选通信号 CPU响应中断,进入中断响应周期 工作原理

17 四、直接数据通信传送DMA 1、DMA传送的基本概念 无条件、查询、中断传送,每传送一个数据都需要CPU干预一次,限制了数据传送的速度。 输入设备 CPU 内存 输出设备 DMA(Direct Memory Access):是一种不需要CPU干预也不需要软件介入的高速数据传送方式。在外设(如磁盘)与内存之间成批传送数据时,完全由硬件(DMA)完成外设与内存的数据传送,而不必 CPU的干预。对这一数据传送过程进行控制的硬件称为DMA控制器(DMAC)。

18 (2) 通常情况下,AB、DB、CB由CPU控制。
解决 :(1) 设置直接数据控制器DMAC。当需要DMA时,由DMAC提供内存的地址线、数据串长度和必要的控制信号。 (2) 外设在需要进行DMA传送数据时,向DMAC发出DMA请求。 然后DMAC向CPU提出HOLD总线请求。 CPU响应后,发HLDA响应给DMAC,并将总线暂交DMAC管理。当DMAC接收到HLDA后就可以接管总线,进行DMA传送。 DMAC完成数据串传送后撤销HOLD请求,CPU恢复对总线的控制。

19 CPU 内存 缓 冲 DMA控制器方框图 数据 地址寄存器 字节计数器 控制/状态寄存器 DMAC 选通 BUS 状态/控制 端口
HRG HLDA DMAC CPU 内存 HOLD DREQ DAK 状态/控制 端口 数据 DMA 请求 触发 输入设备 选通 Ready BUS DMA控制器方框图

20 2、DMA操作的基本方法 (1). 周期挪用 (Cycle Stealing) 利用CPU不访问存储器的那些周期来实现DMA操作。此时,DMAC可以使用总线而不通知CPU也不会妨碍CPU的工作。但关键是如何识别CPU可挪用的周期,以免与CPU的操作发生冲突。某些CPU能产生一个表示存储器是否正在被使用的信号(M6800的VMA)。 特点:不影响不减慢CPU的操作; 需要复杂的时序电路; 数据传送过程是不连续的和不规则的。

21 (2). 周期扩展 当需要进行DMA操作时,由DMAC发出请求信号给专门的时钟电路,时钟电路将供给CPU的时钟周期加宽,而提供给存储器器和DMAC的时钟周期不变。CPU在加宽的时钟周期内操作不往下进行,而这加宽的时钟周期相当于若干个正常的时钟周期,用于进行DMA操作。加宽的时钟周期结束后,CPU仍按正常的时钟继续操作。 特点:降低了CPU的处理速度; 需要专门的时钟发生器/驱动电路; 数据一次只能传送一个字节。

22 (3). CPU停机 当需要进行DMA操作时,DMAC向CPU发出DMA请求信号,迫使CPU在先行的机器周期结束后,使地址、数据和部分控制信号线处于三态,即让出总线控制权,并给出一个DMA响应信号,使DMAC可以控制总线进行数据传送。直到DMA操作完成,CPU再恢复对总线的控制权,继续执行被中断的程序。 特点:在进行DMA传送期间,CPU处于空闲状态,降低 了CPU的利用率; 影响CPU对中断的响应和对动态RAM的刷新; 可进行单字节传送,也可进行数据块传送。

23 3. DMA传送方式: (1). 单字节方式: 每次DMA请求只传送一个字节数据,每传送一个字节,都撤消DMA请求信号并释放总线。 (2). 字节(字符)组方式: 每次DMA请求连续传送一个数据块,待规定长度的数据块传送完了以后才撤消DMA请求信号并释放总线。

24 五、I/O译码电路和PC机的地址分配 1. I/O端口译码电路举例 & M/IO Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 A15
G1 G2A G2B C B A

25 I/O译码电路的端口地址分配表 地址范围(H)    C000C007    C008C00F    C010C017    C018C01F    C020C027    C028C02F    C030C037    C038C03F

26 2. PC机的I/O端口地址分配 AEN & IOW Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 A9 A8 A7 A6 A5 G1
G2A G2B C B A & AEN IOW DMACS(8237) WRTDMAPG (写DMA页面寄存器) T/CCS(8253) PPICS(8255) INTRCS(8259) WRTNMIREG

27 PC/XT机的系统板地址分配表 地址范围(H) I/O设备(端口) 000—01F(00—0F) A-5 DMA控制器 020—03F(20—21) A 中断控制器 040—05F(40—43) 计数器/定时器 060—07F(60—63) A-5 并行接口 080—09F(80—83) DMA页寄存器 0A0—0BF(A0) NMI屏蔽寄存器 0C0—0DF 保留 0E0—0FF 保留


Download ppt "第六章 I/O接口 一、I/O接口的功能 第一节 概 述 一、I/O 接口的功能 二、I/O接口的一般结构 第二节 输入输出寻址方式和指令"

Similar presentations


Ads by Google