第六章 微型计算机的输入 /输出
I/O接口功能
I/O端口及其寻址方式
输入 /输出方式 及 CPU与外设通信的接口
8086CPU的输入 /输出
总线简述
6.1 I/O接口功能一,CPU与外设通信特点
需要有接口作为 CPU与外设通讯的桥梁;
需要有数据信息传送之前的“联络”;
要传递的信息有三方面内容:状态、数据及控制信息。
CPU I/O接口 外设地址数据控制控制数据状态接口电路通常包含一组能够与处理器交换信息的寄存器或缓冲器,称为 I/O端口数据端口 —— 存放数据信息状态端口 —— 存放状态信息,即反映外设当前工作状态的信息控制端口 —— 存放控制信息二、接口的功能
进行地址译码或设备选择,以便使 CPU
能与某一指定的外部设备通讯;
状态信息的应答,以协调数据传送之前的准备工作;
进行中断管理,提供中断信号;
进行数据格式转换,如正负逻辑的转换,
串行与并行数据转换等;
进行电平转换,如 TTL电平与 MOS电平间的转换;
协调速度;
时序控制,提供实时时钟信号。
6.2 I/O端口及其寻址方式一,存储器映像的 I/O寻址存储单元和 I/O端口的地址统一编址
I/O 端口存储单元
I/O 地址空间存储器地址空间整个地址空间举例:键盘及发光二极管接口使用两个芯片 74LS244 (8BIT三态门 ) 和
74LS273( 8BIT 寄存器发器)
74LS244
74LS273
这种编址方式的优点:
可以用访向存储器的指令来访问 I/O端口,
而访问存储器的指令功能比较强,不仅有一般的传送指令,还有算术、逻辑运算指令,以及各种移位、比较指令等,并且可以实现直接对
I/O端口内的数据进行处理。
缺点是:
由于 I/O端口占用了一部分存储器地址空间,
因而使用户的存储地址空间相对减小。另外不利于程序阅读。
2,I/O映像的 I/O寻址
I/O端口地址与存储单元地址分开编址存储单元 存储地址空间
I/O 端口 I/O 地址空间特点
1、地址线,A15……A0
2,M/IO=1
3、用 I/O指令
这种编址方式的优点是:
第一,I/O端口不占用存储器地址,故不会减少用户的存储器地址空间;
第二,采用单独的 I/O指令,使程序中 I/O操作和其他操作层次清晰,便于理解。
这种编址方式的缺点是:
第一,单独 I/O指令的功能有限,只能对端口数据进行输入 /输出操作,不能直接进行移位、
比较等其他操作;
第二,由于采用了专用的 I/O操作时序及 I/O控制信号线,因而增加了微处理器本身控制逻辑的复杂性。
6.3 输入 /输出方式 及 CPU与外设通 信的接口
1、同步传送方式
2、异步查询方式 程序控制传送方式
3、中断方式
4、直接存储器存取方式
一、程序控制传送方式
(一 )、同步传送方式(无条件方式)
CPU直接与外设传送数据并不需要了解外设状态,认为外设已经准备就绪,
直接与外设传送数据
CPU
译码数据线
M/IO
WR
或门地址线接口外设输 出
CPU
译码数据线
M/IO
RD
或门地址线接口外设输 入
(二)、异步查询方式在执行输入输出前,要先查询接口中状态寄存器的状态。
输入时,状态寄存器的状态指示要输入的数据是否已经准备就绪;
准备好?
读取状态信息输入数据是否常用的状态线有 IBF,READY
功能:
1、输入设备准备好数据,状态线有效;
2,CPU读数据端口,取走数据后,状态线转换为无效
1,STB有效,(1)、输入设备数据进入锁存器; (2),IBF 有效
2,CPU读状态端口
3,CPU读数据端口,同时清 IBF
输出时,状态寄存器的状态指示输出设备是否空闲。
忙?
读取状态信息输出数据否是常用的状态线有 empty,busy
功能:
1、输出设备空闲,BUSY无效;
2,CPU写数据端口,输出设备输出数据,
状态线转换为有效
/CS1
/CS2
1,CPU读状态端口,查 BUSY线
2,CPU写数据,(1)、数据进入数据锁存器; (2),BUSY
有效
3、输出设备工作完毕,busy无效
优点:电路简单
缺点:降低 CPU效率,实时性不强
(三)、中断方式当外设作好传送准备后,主动向 CPU请求中断,CPU响应中断后在中断处理程序中与外设交换数据。
在中断未发生时,CPU可以执行其他程序,
这样可以提高 CPU的利用率。
主程序 中断服务子程序中断信号
与程序查询方式相比,中断控制方式的数据交换具有 如下特点,
(1) 提高了 CPU的工作效率 ;
(2) CPU具有控制外围设备服务的主动权 ;
(3) CPU可以和外设并行工作 ;
(4) 可适合实时系统对 I/O处理的要求。
二、直接存储器存取方式 ( DMA)
(Direct Memory Access) 。
在高速的外设或成块交换数据的情况,采用程序控制方式进行数据的传输,是无法满足要求的。
在这种情况下,采用 DMA方式。
DMA方式是在外设与内存间建立起直接的通道,CPU不再直接参加外设和内存间的数据传输。
当系统需要进行 DMA传输时,将 CPU
对地址和数据及控制线的管理权交由 DMA
控制器进行控制,当完成了一次 DMA数据传输后,再将这个控制权还给 CPU,这些工作都是由硬件自动实现的,并不需要程序进行控制。
CPU
外设存储器总线
:执行程序指令的数据传送路径;,DMA方式的数据传送路径内存 外设
DMAC
输出输入 外设 外设
DMAC
内存 内存
DMAC
DMA传送的几种形式
8086CPU为 DMA提供两根信号线
1,HOLD 总线保持请求
2,HLDA 总线保持响应
DMA控制器的基本功能
(1) 能接收 I/O接口的 DMA请求,并向 CPU
发出总线请求信号;
(2) 当 CPU发出总线回答信号后,接管对总线的控制,进入 DMA传送过程;
(3) 能实现有效的寻址,即能输出地址信息并在数据传送过程中自动修改地址;
(4) 能向存储器和 I/O接口发出相应的读 /写控制信号;
(5) 能控制数据传送的字节数,控制 DMA
传送是否结束;
(6) 在 DMA传送结束后,能释放总线给 CPU,
恢复 CPU对总线的控制。
6.4 8086CPU的输入 /输出
1,I/O 寻址 64K
2,8086CPU的 I/ O指令
( 1) 直接寻址输入/输出指令 (八位端口地址 )
IN AL,n (字节输入 )
IN AX,n (字输入 )
OUT n,AL (字节输出 )
OUT n,AX (字输出 )
( 2) DX寄存器间接寻址输入(十六位端口地址)
IN AL,DX (字节输入 )
IN AX,DX (字输入 )
OUT DX,AL (字节输出 )
OUT DX,AX (字输出 )
3,有关端口地址问题
a,8086CPU与外设交换数据可以字或字节进行,
b,当以字节进行时,偶地址端口的字节数据由低 8位数据线 D7~ D0位传送,奇地址端口的字节数据由高 8位数据线 D15~ D8传送,
c,当用户在安排外设的端口地址时,如果外设是以 8位的方式与 CPU连接,就只能将其数据线或者与 CPU的低八位或者与高八位连接,这样同一台外设的所有寄存器端口地址都只能是偶地址或是奇地址,这时设备的端口地址就会是不连续的 。