I/O接口概述I/O端口与其寻址方式CPU与外设之间的数据传送方式本章内容6微机输入/输出接口数据传送及译码技术地址译码技术6.1I/O接口概述微型计算机系统可通过系统总线与外设相连,进行系统的扩展与开发,而外设必须通过接口才能与CPU交换信息。CPU或系统总线I/O接口电路外设一、I/O接口的功能作为接口电路,通常必须为外部设备提供几个不同地址的寄存器,每个寄存器称为一个I/O端口。通常的I/O接口示意图如下图所示:I/O接口示意图I/O接口内部一般由数据、状态、控制三类寄存器组成。数据寄存器在输入时,保存外设发往CPU的数据(输入寄存器)在输出时,保存CPU发往外设的数据(输出寄存器)状态寄存器——保存状态信息,CPU可从状态口读取当前状态;控制寄存器——用来保存CPU写入的控制字。任何接口电路均包括如下基本功能:1.作为微型机与外设间传递数据的中间缓冲站;2.正确寻址与微机交换数据的外设;3.提供微型机与外设间交换数据所需的控制逻辑与状态信号。二、CPU与I/O之间的接口信号1.数据信息(DATA)(1)数字量由键盘、光电输入机等输入的信息。(通常以二进制表示的数或以ASCII码表示的数或字符)CPU与外设交换的基本信息是数据,有三种类型:(2)模拟量非电量信息传感器电量信号处理A/DCPU(3)开关量两个状态的量(可以用0、1表示)例如电机的启与停,开关的合与开等。2.状态信息(STATUS)输入时,输入设备是否准备好?(READY)输出时,输出设备是否空闲?(BUSY)反映当前外设工作状态的信息,例如:3.控制信息(CONTROL)例如控制I/O设备启动或停止等。CPUI/O设备I/O接口123ABDBCBDATASTATUSCONTROLCPU与外设之间的接口信息CPU通过接口输出用以控制外设工作的信息。外部设备与微处理器进行信息交换必须通过访问该外设相对应的端口来实现。具体访问这些外设端口的过程叫做寻址。通常有两种寻址方式:存储器映像的I/O寻址方式和I/O端口单独寻址方式。6.2I/O端口及其寻址方式一、存储器映像的I/O寻址方式端口地址与存储器地址统一编址存储器映像的I/O端口寻址连接方式A15WRRDCPURDWR优点:1.端口寻址丰富,且不需要专门的I/O指令。2.I/O寄存器数目与外设数目不受限制,而只受总存储容量的限制。3.读写控制逻辑比较简单。缺点:I/O端口要占用存储器的一部分地址空间,使可用的内存空间减少。二、I/O端口单独寻址方式I/O端口和存储器分开寻址I/O端口单独寻址方式示意图CPU访问I/O端口必须采用专用I/O指令,故也叫专用I/O指令方式(SpecialI/OInstructionMode)。这些专用的I/O指令通常有两类,即输入指令IN、输出指令OUT及其相关指令组。对于不同的微处理器,具有各不相同的指令格式。8086/8088等就采用了I/O端口单独寻址方式。这些指令包含直接寻址和寄存器间接寻址两种类型。对以8086为CPU的PC系列机而言,如采用直接寻址,则其指令格式为:输入指令:INAL,PORT输出指令:OUTPORT,AL这种直接寻址方式的端口地址为一个字节长,可寻址256个端口。采用间接寻址,则其指令格式为:输入指令:INAL,DX输出指令:OUTDX,AL这种间接寻址方式的端口地址为两个字节长,由DX寄存器间接给出,可寻址64K个端口地址。优点:1.I/O口的地址空间独立,且不占用存储器地址空间。2.地址线较少,且寻址速度相对较快。3.专门I/O指令的使用,使编制的程序清晰,便于理解和检查。1.I/O指令较少,导致程序设计的灵活性较差;2.需要存储器和I/O端口两套控制逻辑,增加了控制逻辑的复杂性。缺点:6.3CPU与外设之间的数据传送方式微机与外设间的数据传送,实际上是CPU与I/O接口间的数据传送。CPU与外设间的数据传送通常包括无条件传送、查询传送、中断传送、以及DMA方式。•I/O端口及其编址方式•I/O端口地址分配•I/O端口地址译码6.4I/O端口地址译码技术一、I/O端口及其编址方式端口(port):是接口电路中能被CPU直接访问的寄存器。端口的种类:数据口、状态口、命令口1.I/O端口和I/O操作I/O操作本质:I/O端口的操作2.端口地址编址方式1)统一编址(存储器映象方式)原则:M与I/O共用整个地址空间;I/O端口与存储单元等同——M与I/O地址不重叠优点:I/O可有较大编址空间,易扩展;I/O操作指令类型多、功能齐全;缺点:M的地址空间受限;I/O指令较长,执行速度较慢00FFH0000H0100HFFFFH地址...M空间I/O空间...(64KB)整个地址空间(256个)(65280个)Motorola系列、Apple系列、部分小型机2)独立编址(I/O映象方式、专用I/O指令方式)FFH00H地址I/O空间...(256个)PC系列、Z-80系列原则:M与I/O分开编址、互不干扰——M与I/O地址不重叠优点:M空间不受I/O空间影响;有专用I/O指令(程序清晰);I/O指令短,执行速度快缺点:I/O指令种类有限,I/O空间不易扩展(64KB)M空间地址0000HFFFFH...3.独立编址方式的端口访问1)I/O指令输入INAL,PORTINAL,DXINAX,PORTINAX,DX输出OUTPORT,ALOUTDX,ALOUTPORT,AXOUTDX,AX注意事项PORT范围(长格式):00H~FFH数据寄存器:AL/AX端口间址寄存器(短格式):DX2)I/O端口访问设某输出设备的状态READY(高有效)可由端口PORTS中读出(D7位),数据端口地址为PORTD,编写程序段,将内存中BUF单元的内容输出给该设备。WAIT:MOVDX,PORTSINAL,DXANDAL,80H;读取状态字,判断READY=1?JZWAIT;READY=0,等待MOVDX,PORTDMOVAL,BUFOUTDX,AL;将数据输出到端口PORTD二、I/O端口地址分配1.I/O接口硬件分类1)系统板上的I/O芯片定时/计数器、中断控制器、DMA控制器、并行接口等2)I/O扩展槽上的接口控制卡软驱卡、硬驱卡、声卡、视频卡等2.I/O端口地址分配PC微机I/O地址:A0~A15,部分译码,地址空间(1KB):000~3FFHPC机:前512个(A9=0)分配给系统板;后512个(A9=1)分配给扩展槽AT机:前256个(00H~FFH)分配给系统板;后768个分配给扩展槽具体分配如表所示。3.I/O端口地址选用原则1)凡是系统配置占用了的地址一律不能使用。2)计算机厂家申明保留的地址最好不要使用。3)可用留作实验卡的地址:300H~31FH;最好用地址开关。I/O芯片名称端口地址DMA控制器1DMA控制器2DMA页面寄存器000H~00FH0C0H~0DFH080H~09FH中断控制器1中断控制器2020H~03FH0A0H~0BFH定时器并行接口(键盘)RT/CMOSRAM协处理器040H~05FH060H~06FH070H~07FH0F0H~0FFH系统板上接口芯片的端口地址I/O接口名称端口地址游戏控制卡200H~20FH并行口控制卡1并行口控制卡2370H~37FH270H~27FH串行口控制卡1串行口控制卡23F8H~3FFH2F8H~2FFH原型插件板(用户可用)300H~31FH同步通信卡1同步通信卡23A0H~3AFH380H~38FH单显MDA彩显CGA彩显EGA/VGA3B0H~3BFH3D0H~3DFH3C0H~3CFH硬驱控制卡软驱控制卡1F0H~1FFH3F0H~3F7HPC网卡360H~36FH扩展槽上接口控制卡的端口地址I/O端口地址分配表三、I/O端口地址译码1.I/O地址译码电路工作原理及作用1)地址译码电路的作用作用:地址+控制信号接口芯片的选择信号常用控制信号:RD、、AEN、、AEN=0:非DMA方式。避免在DMA期间,由DMA控制器对这些以非DMA方式传送的端口执行DMA操作2)地址译码电路的输出信号输出信号:低电平有效2.I/O地址译码方法片间选择:高位地址+控制信号片选信号片内端口选择:低位地址直接与接口芯片地址线相连逻辑组合IORIOWWR译码电路高位地址、低位地址的划分3.I/O端口地址译码电路设计A9&1A81A7A6A5A4A31111&A2A1A0AENIOR1Y74LS3074LS2074LS321)固定式端口地址译码门电路译码法——单个地址或地址范围地址范围:n根地址线未参与译码,译出地址含2n个例:试分析图中的地址。若将图中的A1、A2去掉后,输出的地址。??使用跳接开关异或门+地址开关原理:若要求异或门的输出C=1,则两个输入端逻辑电平反,即:若开关S闭合,则Ai=1;否则,Ai=0;若要求异或门的输出C=0,则两个输入端逻辑电平相同,即:若开关S闭合,则Ai=0;否则,Ai=1=1VccAiSC三——八译码器74LS138的逻辑功能:当其3个译码控制端都为有效,即:G1=1,G2A=G2B=0时,它的8个译码输出端(Y0~Y7)有且只有一个为有效(低电平),有效引脚的编码由输入选择信号C、B、A决定;即:CBA=i,则Yi=0(i=0~7)译码器(以74LS138为例)译码法——多个地址或地址范围1A7A6A51A9A8AENABCG2AG2BG1Y0Y1Y2Y3Y4Y51IOWDMACST/CCSPPICSINTRCSWRTNMIREGWRTDMAPG(8237)(8259)(8253)(8255)(写DMA页面寄存器)(写NMI屏蔽寄存器)(74LS138)各芯片的地址:8237:00H~1FH8259:20H~3FH8253:40H~5FH8255:60H~7FH写DMA页面寄存器:80H~9FH写NMI屏蔽寄存器:A0H~BFH例:PC机系统板上的端口地址译码电路(为每个接口芯片分配一个含有32个地址的地址范围)2)可选式端口地址译码S0S1S3S2DIPVccA=BB3B2B0B1A3A2A0A1A9A8A6A774LS85A=BABABABCG2AG2BG1Y0Y1Y6Y7(74LS138)…A4A3A2A5AEN……Y6:158H~15BHY7:15CH~15FHY0:140H~143HY1:144H~147H比较器+地址开关原理:当比较器输出有效(相等)时,译码输出有效,分析S0、S2闭合时译码输出地址32CH~32FH:该电路无法实现24CH~24FH:S0、S3断开;S1、S2闭合NOTE:由开关控制的地址才能改变A9&A8A3…1&AEN1Y74LS3074LS2074LS32111A21…A01若要求Y3的地址为24CH~24FH,如何设置开关;若要求为32CH~32FH呢??作业•P129-9、10、13