微机原理与接口技术第六章基本输入输出技术合肥工业大学计算机与信息学院2017年 2017 年 5月第六章 基本输入输出技术6.1 I/O接口概述 6.2 无条件传送方式及其接口 6.3 查询传送方式及其接口 6.4 中断传送方式及其接口 6.5 DMA传送方式26.1 I/O接口概述 什么是输入/输出设备? 能够完成输入/输出操作的设备,简称外设或I/O设备。
输入设备:键盘、鼠标器、条形码阅读器和扫描仪等; 输出设备:显示器、打印机、绘图仪、投影仪等。
36.1 I/O接口概述 I/O设备与CPU信息交换时存在的问题 速度不匹配:CPU的速度很高,而外设的速度要低得多, 而且不同的外设速度差异很大。
时序不匹配:各种外设都有自己的定时和控制逻辑,与 计算机的CPU时序不一致。
信号格式不匹配:CPU能识别的是8 (16或32)位的并行 数字量信息,而有些外设用的是模拟量(电流信号或是 电压信号),有些设备采用串行方式传送数据。
信号电平不匹配:CPU所使用的信号都是TTL电平,而 外设大多不能用TTL电平所驱动,有自己的电源系统和 信号电平。
46.1 I/O接口概述1. I/O接口 2. 接口信息 3. 端口及编址方式 4. I/O地址的译码 5. 数据传送方式56.1.1 I/O接口 定义 I/O接口(Interface):实现外部设备与微机之间连接和 信息交换的功能电路。
输入输出设备I/O设备 外设 接口技术是把由处理器等组成的基本系统与外部设备连 接起来,从而实现计算机与外设通信的一门技术。
66.1.1 I/O接口 功能 速度匹配设置数据锁存和缓冲逻辑,以适应两者速度上的差异。
时序匹配设置时序控制逻辑,实现异步传输的规程。
例如用“握手应答”方式确保两者操作同步。
信号格式匹配设置信息格式相容性转换逻辑。
例如串与并之间的转换。
信号电平匹配设置电气性能的适配逻辑,以确保按各自要求的信号类 型和电平工作。
例如电平转换驱动器,或数/模、模/数转换器等。
76.1.1 I/O接口 功能(续) 对象选择设置地址译码和选择逻辑,以保证微处理器能够访问选 定的外设。
传输控制设置设备控制及监测逻辑,以保证外设能够按微机指定 的命令完成相应的操作,并将其工作状态返回给微机。
其它功能设置中断/DMA控制逻辑,以保证在中断/DMA允许的情 况下,产生中断/DMA请求信号,并在接收到中断/DMA 应答之后,对设备实施中断处理/DMA的传输。
86.1.1 I/O接口 结构 控制逻辑命令电路由保存控制命令的寄存器和控制执行逻辑组成。
是接口电路的“中央处理器”,用来完成对全部接口操 作的控制,称为控制寄存器。
状态存储和设置电路由一组寄存器构成,中央处理器(CPU)和外设根据它的内 容进行协调动作,称为状态寄存器。
数据存储与缓冲电路由一组寄存器构成,用于暂存中央处理器和外设之间传 送的数据,以实现速度匹配,称为数据寄存器。
96.1.1 I/O接口 结构(续)数据端口状态端口控制端口IN指令 OUT指令★寄存器与地址关联后,形成了端口(Port)。
101. I/O接口2. 接口信息3. 端口及编址方式4. I/O地址的译码5. 数据传送方式11接口信号类型(从物理信号角度)数字量——计算机能够处理✧二进制形式的数据。
最小单位为位(bit)。
模拟量✧用模拟电压或用模拟电流幅值大小表示的物理量。
✧模拟信号必须经过A/D(模拟/数字)转换器,转换成某种形式的数字量,才能输入计算机。
反之,经过D/A。
开关量✧只有两种状态,即“开”和“闭”。
对应1位二进制。
脉冲量✧以脉冲形式表示的一种信号,例如计数脉冲、定时脉冲或控制脉冲。
12接口信息类型(从信息内容角度)CPU与接口之间✧操作内容:CPU对端口的初始化、发送命令(如读写命令)、选通端口等。
✧信息类型:(并行)数据信息、地址信息和控制信息。
接口与外设之间✧操作内容:数据传送、读取外设的状态以及对外设的启动、停止等控制。
✧信息类型:数据信息、状态信息和控制信息。
不同层次,信息类型不同13端口、信息与总线类型一一对应141. I/O接口2. 接口信息3. 端口及编址方式4. I/O地址的译码5. 数据传送方式15I/O端口数据端口✧用来存放外设送往CPU的数据或CPU要输出到外设去的数据,长度一般为1~2字节。
✧主要起数据缓冲的作用。
状态端口✧用来指示外设的当前状态。
✧每种状态用1位(bit)表示,一个外设可有几个状态位。
CPU根据它们获取外设的状态,从而决定程序的流程。
控制端口✧用来存放CPU向接口发出的各种命令,从而控制接口或设备的动作。
✧常见的命令信息位有启动位、停止位、允许中断位等。
16端口编址(寻址/地址空间分配)方式端口统一编址(存储器映像编址)✧把端口视为存储器单元,为其分配存储器地址。
即将外设的地址和存储器地址统一安排在主存的地址空间中。
☆注意:用于外设的这些地址,存储器不能再使用。
✧访问指令与存储器相同——MOV指令。
✧优点:寻址手段丰富且灵活;外设寄存器数仅受总存储容量限制;读写控制逻辑简单。
✧缺点:占用原本有限的存储空间;访问指令相对专用I/O指令效率(时间和空间)较低。
17端口编址(寻址/地址空间分配)方式(续)端口独立编址✧把所有I/O接口看作一个独立于存储空间的I/O空间。
●在8086CPU中,内存地址是连续的1M字节,从00000H~FFFFFH,而外设的地址范围从0000H~FFFFH。
✧访问指令需用专门的I/O指令——IN/OUT指令。
✧优点:地址空间独立,不占用存储器地址空间;地址线较少(16位),寻址速度快。
✧缺点:I/O指令少,故访问手段简单,影响程序设计灵活性;需要存储器和I/O端口两套控制逻辑。
18端口编址(寻址)方式(续)存储器映像(统一)编址独立编址I/O 访问指令存储器常见19存储单元I/O 端口2201M 内存单元21664KI/O 端口访问指令1. I/O接口2. 接口信息3. 端口及编址方式4. I/O地址的译码5. 数据传送方式20译码方式基本与存储器译码相同。
DMA控制器21高位地址1. I/O接口2. 接口信息3. 端口及编址方式4. I/O地址的译码5. 数据传送方式22程序控制下的数据传送无条件传送✧CPU不需了解端口的状态,直接进行数据传送。
查询传送✧CPU先查询端口状态,待端口就绪后进行数据传送。
中断传送✧传送请求由外设提出,CPU视情况响应后,调用预先安排好的中断服务程序来完成数据传送。
23直接存储器存取(DMA)外设向DMA控制器(DMAC)提出请求,DMAC再向CPU提出总线申请,最后DMAC利用系统总线来完成外设和存储器的数据传送。
完全由硬件实现,一般在外设和存储器间进行,具有非常高的数据传送速率。
采用I/O处理机进行数据的传送和处理DMA方式仍然不能摆脱对CPU使用要求。
例如DMAC初始化、启动操作,以及完成之后的检查、数据变换等。
CPU委托专门的I/O处理机来管理外设。
不仅能控制数据传送,还可以执行算术逻辑运算、搜索和转换等。
246.1 I/O接口概述6.2 无条件传送方式及其接口6.3 查询传送方式及其接口6.4 中断传送方式及其接口6.5 DMA传送方式25工作原理接口电路最简单,只需设置数据缓冲寄存器和外设端口地址译码器即可。
——同步传送方式。
在输入时,使用IN指令;输出时,使用OUT指令26使用场合简单外设,或者外设的定时是固定或已知的。
✧外设在任何时刻均已准备好数据或处于接收数据状态,或者在某些固定时刻,处在数据就绪或准备接收状态。
✧例如:显示数码管、开关等。
特点最简单的传送方式:硬件最少,软件最简单。
要求外设及时响应CPU的读取和写入。
27举例【例1】无条件传送的接口电路288个LED输出口口地址M/IO ×举例(续)不断扫描8个开关。
当开关闭合时,点亮相应的LED。
✧源程序如下:NEXT: MOV DX,8000H ;DX指向数据端口IN AL,DX ;从输入端口读开关状态NOT AL NOT AL ;反相(软件实现);反相(软件实现)29OUT DX,AL ;送输出端口显示NOP ;延时NOPJMP NEXT ;重复举例【例2】外设是发光二极管,其接口用锁存器实现。
锁存器在脉冲CP 上升沿将输入端D的数据锁存在输出Q端。
编写点亮二极管的程序。
(端口地址为0000H)30030~IOW Ω300MOV AL,81HMOV DX,0000H ;送端口地址OUT DX,AL ;点亮发光二极管举例【例3】让接在Q0~Q7上的二极管自上而下轮流点亮3s,编写程序实现。
MOV AL,01H ;使Q0为1,LED0先亮MOV DX,0000HLOP: OUT DX,AL ;将信息送0000H端口CALL DELAY ;调用延时3S子程序ROL AL,1 ;LED选择位左移1位JMP LOP ;循环点亮LED316.1 I/O接口概述6.2 无条件传送方式及其接口6.3 查询传送方式及其接口6.4 中断传送方式及其接口6.5 DMA传送方式32工作原理CPU传送数据前,首先检查外设状态,若其准备好,就进行数据传送,否则就等待。
——异步传送方式✧接口电路中,除具有数据缓冲器或数状态寄存器。
✧基于状态信息的交换方式,称为“应答式”,状态信息位称为“联络”信号。
工作流程✧查询环节●检查状态寄存器(状态字)的标志位。
●死循环问题。
✧传送环节特点I/O操作由CPU启动:CPU与I/O设备的关系是CPU主动,I/O被动。
✧优点:相对于无条件传送方式,更容易实现数据的有准备传送,程序编写容易,工作可靠。
✧缺点:由于需要不断测试状态信息,使大量CPU工作时间被查询环节消耗,导致传送效率较低。
适用场合CPU负担不重、所配外设对象不多、实时性要求不太高的情况下可使用。
34数据寄存器××35①②③≥1 ≥1 ≥1 ≥1 或门或门④配合的程序段:SCANIN:IN AL,STATUS_PORT ;从状态口输入状态信息TEST AL,01H ;测试标志位D 0是否为1JZ SCANIN ;未就绪,继续查询IN AL, DATA_PORT ;从数据端口输入数据③④××36;从状态口输入状态信息RD —‘0’ ②≥1 ≥1 ≥1 ≥1 或门或门OBF补充(使用Busy和Ready状态信息)冲存存状态信息37备Ready备Busy查询输出方式查询输入方式举例【例】现欲将48000H为首地址的顺序100个单元的数据,利用查询方式输出到外设。