当前位置:文档之家› 第九章-输入输出方法及常用的接口电路-2

第九章-输入输出方法及常用的接口电路-2


N
Y
查询方式输入程序段:
...... MOV MOV LEA MOV next: MOV ask: IN TEST JZ MOV IN MOV INC LOOP ...... AX, SEG buffer DS, AX DI, buffer CX, 50H DX, 21CH AL, DX AL, 0001 0000B ask DX, 218H AL, DX [DI], AL DI next ;取缓冲区首地址
P
控制线
输 入 外 备
U
查询方式输入接口 PC总线
A15 地址线 ~ A0
D7 ~ D0
IOR
数据 端口 & 地址 译码 218H
MOV DX, 218H IN AL, DX
状态端口 D4=1 表示外设准备好
数 据 线
三态 缓冲器
锁 存 器
状态 端口 21CH 地址 译码
D4
三态 缓冲器
R
Q D
STB
9.2.2 基本输入输出方法
CPU与外设的工作速度不一致,
如何使两者高效、可靠地进行数据传送,
是接口技术讨论的问题。
基本输入输出方法: 程序控制的输入/输出方式; 程序中断输入/输出方式; 直接存储器存取(DMA:Direct Memory Access)方式; 专用I/O处理器方式。
ACK STB
状态 端口 地址 译码 IOR
D0 三 态 缓冲器
+5v
输 出 设 备
21CH
&
MOV Ask: IN TEST JNZ DX, 21CH AL, DX AL,01h ask
编程将缓冲区buffer的80H个字节输出到外设
从21CH状态端口 读入外设状态信息
D0=0, 外设准备好否?
;传送个数 ;从状态端口读入状态信息 ;检测D4位 ;D4=0,继续查询 ;从数据端口读入数据 ;送缓冲区 ;修改缓冲区指针 ;传送下一个
例2
查询方式输出
假设 外设的状态端口为21C H, 其中D0 = 0时,表示外设准备好 外设的数据端口为219 H。 编程将缓冲区buffer的80H个字节输出到外设。 地址线 地址 译码 数据 缓冲 控制 电路
4.专用I/O处理器方式
对于有大量的、高速的I/O设备的微机系统,前面几种 方法都难以满足要求,于是,人们又提出并实际上广泛 采用了一种专用I/O处理机(IOP)控制方式,比如 8089。这种方式是把原来由CPU完成的各种I/O操作与 控制全部交给I/O处理器去完成。I/O处理器能够直接存 取系统主存储器,能够中断CPU或被CPU查询,并能直 接执行I/O程序和数据预处理程序。因此,这种方式可 以大大提高CPU对具有大量I/O设备的数据吞吐量。
中断方式下 CPU执行程序流程
外 设
发申请
中断服务程序
发申请 中断服务程序
使用中断方式时: •外设准备数据,CPU执行程序, CPU与外设并行工作;
• 一旦外设准备就绪,外设向CPU发中断申请, CPU暂停原程序执行,响应中断,进行数据传输。 此时,CPU与外设是串行工作。
中断传送方式的特点:
2. 电路结构复杂,硬件开销较大。
DMA控制器功能
接收接口往DMA控制器发出DMA请求信号后,
DMA控制器能向CPU发出总线请求信号HOLD(高电平)。 当CPU向DMA发出响应信号HLDA(高电平)以后, DMA能接管对总线的控制,进入DMA方式。 能向地址总线发出内存地址信息,
对其进行寻址及修改地址指针。
0 8253 1 与
放 大 器
扬 声 器
二、条件传送方式(查询传送方式)
实现方法:
在与外设进行传送数据前,CPU先查询外设状态,
当外设准备好后,才执行I/O指令,实现数据传送
特点:
1. CPU通过不断查询外设状态,实现与外设的速度匹配 2. CPU的工作效率低
查询传送方式,编程流程:
从状态端口读入状态信息 外设准备好否?
CPU响应DMA请求 交出总线控制权
修改 地址 指针
从源地址中读取数据 将数据写到目标地址
N
数据传送结束否? Y DMA结束
DMA 传送方式(直接存储器存取方式)
实现方法:
1. 由专用接口芯片DMA控制器 (称DMAC) 控制传送过程, 2. 当外设需传送数据时,通过 DMAC向CPU发出总线请求;
发声程序:
code
控制其它外设
61H 端口
SEGMENT 门 ASSUME CS:code start: MOV BX, 3000H ;控制脉冲个数 MOV DX, 6000H ;控制脉冲周期 IN AL, 61H ;读入61H端口数据 AND AL, 1111 1100b ;D0为0,8253 输出1 sound: XOR AL, 0000 0010b OUT 61H, AL ; 61H端口的D1交替为0和1 MOV CX, DX delay: LOOP delay ;延时 DEC BX ;控制脉冲数 JNZ sound MOV AH, 4CH INT 21H code ENDS END start
例 1 无条件输入接口
PC 总 线 D7 ~ D0 数据 线 三 态 缓冲器 输入 设备
A15 地址线 ~ A0 IOR
地址 200H 译码 0 与 0 0 非
接口电路,即硬件上保证: 只在CPU执行从200H端口输入数据时, 三态门处于工作状态,使输入设备的数据送上总线侧, 而CPU执行其它指令时, 三态门均处于高阻状态, 使输入设备的数据线与总线侧断开
三、中断传送方式
实现方法:
1. 当外设准备好,向CPU发出中断请求
2. CPU在满足响应中断的条件下,发出中断响应信号;
3. CPU暂停当前的程序,转去执行中断服务程序,
完成与外设的数据传送; 4. CPU从中断服务程序返回,继续执行被中断的程序
缺点主要有: 为了能接受中断的请求信号,CPU内部要有相应的中断 控制电路,外围设备要提供中断请求信号及中断类型号。 利用中断输入 / 输出,每传送一次数据就要中断一次 CPU 。 CPU 响应中断后,进入中断处理将程序引导至 “中断服务程序”入口。在“中断服务程序”中一般都 要保护现场、恢复现场,这要安排多条指令,浪费了很 多CPU时间。故此种传送方式一般较适合于传送少量的 输入 / 输出数据以及中低速度的外围设备。对于大量的 输入 / 输出数据,应采用高速的直接存储器存取方式 DMA。
概述
1.无条件传送(CPU与外设同步工作):
外部控制过程各种动作时间是固定的,而且是已知的。 2.查询方式(CPU与外设不同步工作): 传送前,先查询外设状态,准备好才传送,否则CPU处于等 待状态。
3.中断方式:
外设与CPU处于并行工作,一旦外设准备好,外设向CPU发 中断申请,条件具备,CPU暂停原程序执行,响应中断,外设 与CPU串行工作。 4.DMA方式(高速I/O及成组交换数据): CPU不干予,由硬件实现存储器与外设之间交换数据,称直 接存取存储器。
程序控制的输入/输出 无条件传送
程序
有条件传送
输入状态字
数据传送
数据准备好?
Y 数据传送
N
一、无条件传送方式 (同步传送方式)
实现方法
CPU不查询外设工作状态, 与外设速度的匹配通过在软件上延时完成, 在程序中直接用I/O指令,完成与外设的数据传送
特点
1. 适用于外设动作时间已知, 在CPU与外设进行数据传送时,外设保证已准备好的情况 2. 软硬件十分简单。
输 入 设 备
+5v
IOR
&
MOV DX, 21CH ask: IN AL, DX TEST AL, 10h JZ ask
编程从外设读入50H个字节到内存缓冲区buffer中
从21CH状态端口 读入外设状态信息
D4=1, 外设准备好否?
N
Y
从218H数据端口 读入一个字节数据 50H 个 数 据 传 送 结 束 ?
61H 端口
控制其它外设
发声原理:
向扬声器发送一串脉冲信号, 推动扬声器内纸盆振动,发出声音 脉冲的频率,控制音高; 脉冲的个数,控制音长
7 6 5 4 3 2 1 0
61H 端口
控制其它外设
扬声器控制电路图:
0
8253
1
与 门
放 大 器
扬 声 器
编程方法: 1. 使61H端口的0位输出0,控制8253输出1。 2. 使 61H 端口的 1 位按所需频率交替输出 0和 1 , 产生所需的声音。
CX CX, 80H cc CX
例2
无条件输出接口
PC总线
D7 ~ D0 数据线 锁存器 输出 设备
A15 地址线 地址 300H ~ 译码 A0 0 与 0 0 IOW 非
例2
无条件输出 : 编程控制系统板上扬声器发声。 7 6 5 4 3 2 1 0
扬声器控制电路图:
0 8253 1 与 门 放 大 器 扬 声 器
3. CPU发出总线响应信号,释放总线;
4. DMAC接管总线,控制外设、内存之间直接数据传送
DMA 传送方式过程
CPU
总线 请求 总线 响应
内存
外设 DMAC
DMA传送方式的特点
1. 外设和内存之间,直接进行数据传送,不通过 CPU, 传送效率高。适用于在内存与高速外设、或两 个高速外设之间进行大批量数据传送。
C
数据线
21CH端口 状态端口 219H端口 数据端口
P
控制线
输 出 外

U
查询方式输出接口
IOW
PC 总 线
数据 地址线 端口 A15 ~ 地址 A0 译码 219H
相关主题