第五章 微型计算机和外设的数据传输 5.1 为什么用接口电路? 5.2 CPU和I/O设备之间的信号; 5.3 接口部件的I/O端口; 第五章 微型计算机和外设的数据传输 5.1 为什么用接口电路? 5.2 CPU和I/O设备之间的信号; 5.3 接口部件的I/O端口; 5.4 CPU和外设之间的数据传输方式; 1. 无条件传送方式 2. 条件传送方式 3. 中断方式 4. DMA方式
示意图:
示意图: CPU MEM CPU MEM PCI总线 ISA总线 ISA总线 局部总线控制器 ISA总线控制器 网络适配器 CRT适配器 硬盘适配器 CRT适配器 …… FAX适配器 打印机适配器 ……
8086的I/O编址: 8086系统和外部设备之间都是通过I/O芯片来联系的。每个I/O芯片都有一个端口或者几个端口,一个端口往往对应了芯片内部的一个或一组寄存器。微型机系统为每个端口分配一个地址,此地址叫端口地址。 8086允许有64K个8位的I/O端口,两个编号相邻的8位端口可以组成一个16位端口。指令系统中既有访问8位端口也有访问16位端口的I/O指令。(举例) 系统设计时,也可以通过硬件将I/O端口和存储器统一编址。(优点,WR,RD,M/IO)
5.1 为什么要用接口电路 I/O接口电路是为了解决计算机和外部设备之间的信息交换问题而提出的。I/O接口是计算机和外设之间传送信息的部件,每个外设都要通过接口和主机系统相连。接口技术就是专门研究CPU和外设之间数据传送方式、接口电路的工作原理和使用方法的。 辅助电路:如时钟信号,中断请求; I/O接口电路:处理器可以接受外部设备送来的信息或将信息发给外部设备。
使用接口电路的原因: 外设的功能多种多样、原理各不相同: 外设的速度较慢、速度差别很大 输入设备、输出设备 模拟信号、数字信号 串行信号、并行信号 外设的速度较慢、速度差别很大 接口电路通常起到信息变换(模数变换、串并变换、电平变换)和缓冲功能
5.2 CPU和I/O设备之间的信号 数据信息 状态信息:反映当前外设所处的工作状态; 控制信息:CPU通过发送控制信息控制外设工作。 数字量:二进制数据或ASCII码数据; 模拟量:传感器 电压或电流 放大; 开关量: 状态信息:反映当前外设所处的工作状态; 控制信息:CPU通过发送控制信息控制外设工作。
5.3 接口部件的I/O端口 每个接口部件都包含一组寄存器,CPU和外设进行数据传送时,各类信息在接口中进入不同的寄存器,一般称这些寄存器为I/O端口,每个端口都有一个端口地址。 数据端口:数据缓冲; 状态端口:外设状态; 控制端口或命令端口:控制接口的动作。
外设通过接口和系统的连接
5.4 CPU和外设的数据传送方式 程序方式 无条件传送方式 条件传送方式 中断方式 DMA方式
5.4.1 程序方式 无条件传送方式:计算机能够确信外设已准备就绪,不必查询外设状态;如开关、数码管等。
条件传送方式(查询方式):CPU通过执行程序不断读取并测试外设状态。 查询式输入接口电路图
查 询 式 输 入 过 程 的 流 图
查询式输出的接口电路
DATA_SEG SEGMENT MESSAGE DB ‘BUFFER OVERFLOW’,0DH,0AH DATA_SEG ENDS COM_SEG DB 82 DUP(?) COUNT DB ? COM_SEG ENDS CODE SEGMENT ASSUM DS:DATA_SEG,ES:COM_SEG,CS:CODE START: MOV AX,DATA_SEG MOV DS,AX MOV AX,COM_SEG MOV ES,AX MOV DI,OFFSET BUFFER MOV COUNT, DI MOV CX,81 CLD NEXT_IN: IN AL,56H TEST AL,02H JZ NEXT_IN IN AL, 52H
OR. AL,0. JPE. NO_ERROR. JMP. ERROR NO_ERROR:. AND. AL,7FH. STOSB. CMP OR AL,0 JPE NO_ERROR JMP ERROR NO_ERROR: AND AL,7FH STOSB CMP AL,0DH LOOPNE NEXT_IN JNE OVERFLOW MOV AL,0AH STOSB SUB DI,COUNT MOV COUNT,DI . OVERFLOW: MOV SI,OFFSET MESSAGE MOV CX,17 NEXT_OUT: IN AL,56H TEST AL,01H JZ NEXT_OUT LODSB OUT 54H,AL LOOP NEXT_OUT .
轮流查询: TREE_IN:. MOV. FLAG, 0 INPUT:. IN. AL,STAT1. TEST. AL,20H. JZ 轮流查询: TREE_IN: MOV FLAG, 0 INPUT: IN AL,STAT1 TEST AL,20H JZ DEV2 CALL PROC1 CMP FLAG,1 JNZ INPUT DEV2: IN AL,STAT2 TEST AL,20H JZ DEV3 CALL PROC2 CMP FLAG,1 JNZ INPUT DEV3: IN AL,STAT3 TEST AL,20H JZ NO_INPUT CALL PROC3 NO_INPUT: CMP FLAG,1 JNZ INPUT 。
5.4.2 中断方式 1. 中断传送方式的原理: 查询方式:效率低; 实时性差; 5.4.2 中断方式 1. 中断传送方式的原理: 查询方式:效率低; 实时性差; 中断方式:外设具有申请CPU服务的 主动权;CPU不必进行测试和等待;
中断方式输入的接口电路
2. 中断优先级问题的解决 软件查询方式:用硬件电路将外设的中断请求信号相或后,作为INTR信号;将它们的状态位相或后作为一个状态字。 2. 中断优先级问题的解决 软件查询方式:用硬件电路将外设的中断请求信号相或后,作为INTR信号;将它们的状态位相或后作为一个状态字。 省硬件、需要查询时间 简单硬件方式—菊花链法:在每个外设对应的接口上连接一个逻辑电路,这些逻辑电路构成一个链,称为菊花链。
专用硬件电路:
5.4.3 DMA方式