1 / 31

第六章 I/O 接口

第六章 I/O 接口. 6 - 2 , 6 - 7. 第一节 概 述. 一、 I/O 接口的功能 二、 I/O 接口的一般结构. 第二节 I/O 端口的寻址方式和指令. 一 . I/O 指令寻址. 二 . 存储器映象寻址. 三、 8086 的 I/O 指令. 第三节 CPU 与外设间的数据传送方式. 一、无条件传送. 二、查询传送. 三、 中断传送. 四、直接存储器存取 DMA. 第四节 I/O 译码电路和 PC 机的 I/O 地址分配. 一、译码电路举例.

mingan
Download Presentation

第六章 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. 第六章 I/O接口 6-2,6-7 第一节 概 述 一、I/O 接口的功能 二、I/O接口的一般结构 第二节 I/O端口的寻址方式和指令 一. I/O指令寻址 二. 存储器映象寻址 三、8086的I/O指令 第三节 CPU与外设间的数据传送方式 一、无条件传送 二、查询传送 三、 中断传送 四、直接存储器存取DMA 第四节 I/O译码电路和PC机的I/O地址分配 一、译码电路举例 二、 PC机的I/O端口地址分配

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

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

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

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

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

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

  8. 三、8086的I/O指令 输入输出端口地址在指令中以立即数 n (8bit) 表明。直接寻址可寻址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个输入/输出端口。 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. 输出外设数据 三态缓冲器 外设输入数据 锁 存 器 DB DB AB AB 地址译码 地址译码 n n 输出 端口 n 输入 端口 n WR RD 无条件输出 无条件输入 M/IO M/IO 第三节 CPU与外设间的数据传送方式 一、无条件传送 输出:CPU在执行OUT指令前,输出锁存器已空。 输入:CPU在执行IN指令前,输入三态缓冲器已准备好。

  10. DB CPU 8 8 8 M/IO^WR^20 10 11 20 8 8 8 8位 8位 功率放大器 M/ IO^RD^10 M/ IO^RD^11 缓冲寄存器 K0 K7 K1 . . . P7 P1 P0 . . . 输入数据(模拟量) 例:有8个模拟电压,共用一个4 位十进制 BCD(16bit,2byte)A/D转换器。由CPU控制8个继电器,依次实现8个模拟电压的A/D转换,并把数据存储在DSIO为首地址的内存单元。

  11. P0初始吸合代码01HDH 继电器全释放00H DL DSIO首地址BX AGAIN 断开所有继电器 等待触点释放 选择继电器,开始A/D转换 等待触点闭合和A/D转换结束 数据输入并存放 修改下一闭合继电器 修改存放地址 N 判终点 Y 输入数据口地址: 11H(高8位)、10H(低8位) 输出控制口地址: 20H 注意:1、继电器触点闭合和释放需要时间等待。 2、A/D转换器转换需要时间等待。 实现无条件传送的方法: CPU以足够延时等待使外设数据准备好

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

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

  14. 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

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

  16. 查询输出的编程 1、查询状态信号,执行 指令 IN AL,状态口 Busy(bit7) AL 2、若Busy =0,执行指令 OUT 数据口,AL, 输出数据AL  DB  锁存器 输出装置; D触发器置1,即置Busy=1,表示忙碌,禁止输出 3、输出设备取走数据,应答信号ACK的负跳变(恢复)使D触发器清“0”,即置Busy=0,允许CPU送出下一个数据 POLL: IN AL,STATUS_PORT TEST AL,80H JNE POLL MOV AL,STORE ;从数据区取数 OUT DATA_PORT,AL

  17. DB CPU 数据 8 8bit bit0 M/ IO^RD^2 3 2 4 八个模拟量 输入数据 D4 数据 READY 启动 A/D转换 D2 D1 D0 M/IO^RD^3 多路开关 1个模拟量 例:查询数据输入,有8 个模拟电压,一个8bitA/D转换器。由CPU控制一个8选1多路开关,以及A/D转换启动。依次实现8个模拟电压的A/D转换,并把数据存储在DSTORE为首地址的内存单元中。(组成) M/ IO^WR^4

  18. 关于多路开关选择和A/D转换启动信号 DL D7 D6 D5 D4 D3 D2 D1 D0 模拟0 1 1 1 1 1 0 0 0 ………………………………… 模拟7 1 1 1 1 1 1 1 1 终点 0 0 0 0 0 0 0 0 CF=1 START:MOV DL,0F8H LEA DI,DSTORE AGAIN:MOV AL,DL AND AL,0EFH;使bit4=0 OUT 4,AL;停止A/D CALL DELAY;延时等待 A/D 结束 MOV AL,DL OUT 4,AL;启动A/D POLL: IN AL,2;输入状态信号 SHR AL,1;将状态信号 ;移到CF JNC POLL;状态信号=0, IN AL, 3; 转POLL STORB ;(AL) (DI) INC DL;改变模拟信号 ;编号 JNE AGAIN;判终点 输入数据口地址:3 输入状态口地址:2 bit0,A/D转换结束信号 输出控制口地址:4 bit0~2,多路开关选择输入端 bit4,A/D转换启动信号

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

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

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

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

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

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

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

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

  27. DMA控制器(Intel8237) Intel8237/8237-2是可编程的DMA控制器,主要功能: (1) 有4个独立的DMA通道; (2) 各通道可分别允许和禁止; (3) 各通道的DMA请求的优先权可编程控制(固定/循环); (4) 各通道传送数据的最大长度可达64KB,字节计数器16bit; (5) 四种工作方式: 单字节传送、数据块传送、请求传送、级连 (6) 允许外界通过EOP信号来结束DMA传送或重新初始化。

  28. Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 A15 A14 & G1 G2A G2B C B A A13 A12 M/IO A5 A4 A3 & 第四节 I/O译码电路和PC机的地址分配 一、 I/O端口译码电路举例

  29. I/O译码电路的端口地址分配表 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 地址范围(H) 1 1 0 0 0 0 0 0 0 0 0 0 0   C000C007 1 1 0 0 0 0 0 0 0 0 0 0 1   C008C00F 1 1 0 0 0 0 0 0 0 0 0 1 0   C010C017 1 1 0 0 0 0 0 0 0 0 0 1 1   C018C01F 1 1 0 0 0 0 0 0 0 0 1 0 0   C020C027 1 1 0 0 0 0 0 0 0 0 1 0 1   C028C02F 1 1 0 0 0 0 0 0 0 0 1 1 0   C030C037 1 1 0 0 0 0 0 0 0 0 1 1 1   C038C03F

  30. AEN G1 G2A G2B C B A DMACS(8237) INTRCS(8259) Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 A9 A8 A7 A6 A5 T/CCS(8253) PPICS(8255) WRTDMAPG (写DMA页面寄存器) WRTNMIREG (写NMI屏蔽寄存器) IOW & & 二、 PC机的I/O端口地址分配 系统板上I/O端口的译码电路

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

More Related