您好,欢迎访问三七文档
输入输出与接口技术1.1接口概述1.1.1I/O接口基本概念1.为什么要引入接口•微机和I/O设备的信息类型和格式可能不一样。•微机和I/O设备信号传输处理的速度可能不匹配。•不用接口,I/O直接接CPU,随着外设增加,会大大降低CPU的效率。•I/O直接接CPU,会使外设硬件结构过于依赖CPU,对外设本身发展不利。定义:接口是CPU与“外部世界”的连接电路,负责“中转”各种信息。2.接口的概念分类:存储器接口和I/O接口。位置:介于系统总线与外部设备之间。3.I/O接口与I/O设备不同I/O设备对应I/O接口不同。I/O接口受CPU控制,I/O设备受I/O接口控制。为增加通用性,I/O接口的接口电路一般均具有可编程功能。微机的应用离不开与外部设备接口的设计、选用和连接。1.1.2、I/O接口功能数据缓冲功能:通过寄存器或锁存器实现。存放数据的寄存器或锁存器称之为数据口。接受和执行CPU命令功能:存放CPU命令代码的寄存器称之为命令口,存放执行状态信息的寄存器称之为状态口。设备选择功能:CPU通过地址译码选择不同外设。即CPU通过地址译码选择不同I/O接口。信号转换功能:协调总线信号与I/O设备信号。转换包括信号的逻辑关系、时序配合和电平转换。可编程功能:增加接口的灵活性和智能性。1.1.3、I/O接口组成接口由接口硬件和接口软件组成。1.接口硬件CPU侧引脚信号:地址信号:选择I/O接口中的不同寄存器;数据信号:根据命令类型,送到对应的寄存器中,或从寄存器中取得数据或状态;控制信号:控制命令的执行、时序、信号同步和片选;外设侧引脚信号:数据信号:接口缓冲寄存器与外设间的数据交换;状态信号:外设工作状态送给接口的状态寄存器;控制信号:接口的内部控制逻辑控制外设工作的控制信号和同步信号。状态信号:接口的部分工作状态信号。内部控制逻辑:根据控制寄存器、状态寄存器、总线控制信号及外设状态信号控制I/O接口的工作。2.接口软件(设备驱动程序)初始化程序段:设置接口工作方式及初始条件。传送方式处理程序段:CPU针对不同的I/O设备有不同的处理方式。主控程序段:完成接口任务的程序。程序终止与退出程序段:接口电路硬件保护及操作系统中数据恢复。辅助程序段:提供人-机对话手段。1.2数据传输控制方式1.2.1程序控制方式1.无条件传送方式特点:I时假设外设已准备好,O时假设外设空闲。要求:接口I时加缓冲器,O时加锁存器。应用:对简单外设的操作。2.条件传送方式(查询方式)工作原理:CPU查询外设已准备好后,才传送数据。特点:CPU与外设间自然同步。要求:需要增加表示外部设备状态的简单硬件电路。应用:适用在CPU不太忙且传送速度要求不高时。3.中断传送方式特点:CPU与外设可同时工作。要求:接口中需要中断控制逻辑支持。应用:适用与非高速度大量数据传送时。1.2.2直接存储器存取(DMA)方式特点:数据的传送不经过CPU,I/O设备管理由CPU控制,简化CPU对I/O的控制。要求:需要DMA控制器及相关逻辑支持。应用:适用与高速度大量数据传送时。1.2.3I/O处理机方式特点:I/O处理机接管了CPU的各种I/O操作及I/O控制功能,CPU能与IO处理机并行工作。要求:需要IO处理机支持。应用:高速I/O归IO处理机管理,低速I/O设备归CPU管理。1.3I/O编址与访问1.3.1I/O端口1.I/O端口I/O端口是供CPU直接存取访问的接口中的寄存器或电路。接口中的命令口、状态口和数据口均为I/O端口。2.I/O端口地址对接口中的不同寄存器或电路的编号称为I/O端口地址。CPU通过向命令端口发命令来对接口最终对设备进行控制。访问设备实际上是访问相关的端口。3.命令、接口与I/O端口关系一个接口中有多个I/O端口;一个I/O端口可接受多种命令,对应多个寄存器。1.3.2I/O端口编址1.I/O统一编址(存储器映象I/O编址)一个I/O端口等同于一个存储器单元。存储单元和I/O端口统一编址。优点:对I/O端口的访问命令与对存储器单元访问相同,不必使用专用I/O指令;外设数目或I/O寄存器数几乎不受限制。缺点:I/O端口占用部分MEM空间,可用MEM空间减小;对MEM访问指令较长,执行速度较慢;I/O端口地址译码时间较长。微机系统读写控制逻辑较简单。2.I/O独立编址I/O端口地址空间与存储器地址空间相互独立。应用:Z-80系列和x86系列均采用此方式。优点:MEM地址空间不受I/O端口地址空间影响;I/O端口数量不多,占用地址线少,地址译码简单,速度较快;使用专用I/O命令(IN/OUT),与MEM访问命令(LOAD/STORE、MOV)有明显区别,便于理解和检查。缺点:专用I/O指令增加指令系统复杂性,且I/O指令类型少,程序设计灵活性较差;3.Intel系列微机I/O编址Intel系列微处理器支持I/O独立编址方式和I/O统一编址(存储器映象编址)方式。Intel系列微机系统仅支持I/O独立编址方式。I/O统一编址时,I/O地址不能缓存。要求处理器提供MEMR/MEMW和IOR/IOW两组控制信号,增加了控制逻辑的复杂性。1.3.3PC系列I/O端口访问2.I/O端口地址寻址方式I/O端口支持直接寻址和间接寻址方式。直接寻址是使用一字节立即数寻址,端口寻址范围为00H~FFH共256个。间接寻址是使用DX寄存器间接给出I/O端口地址,可寻址的范围是0000H~FFFFH共64K个端口。1.I/O端口地址空间I/O端口地址空间:64K个独立编址的8位端口空间。两个连续8位端口可作为16位端口,4个连续的8位端口可作为32位端口处理。注意端口地址对齐。I/O端口地址信号:借用RAM地址线信号和IOW/IOR信号线以及表示DMA正在工作的AEN的反相信号组成。4.I/O端口与存储器间I/O指令——块I/O指令格式:INSB/W/D、OUTSB/W/D。参数:用DX指定I/O端口地址,输入/输出时的目的/源RAM地址用ES:DI(EDI)/DS:SI(ESI)指定。EFLAG寄存器中DF位来决定地址加和减。结果:通过前缀REP在I/O端口和连续的存储器空间之间传送数据。3.I/O端口与累加器间I/O指令——寄存器I/O指令格式:IN、OUT。结果:完成I/O端口和EAX、AX、AL之间的数据传送,可使用直接寻址和间接寻址方式。举例:INAL,DXOUTE0H,AX1.3.4Pentium的I/O保护I/O保护在保护模式下有效,在实地址模式下无效。1.I/O特权级IOPL保护保护通过比较当前任务的特权级CPL和标志寄存器的IOPL字段实现的。若CPLIOPL,可执行IN、OUT、INS、OUTS、CLI、STI等敏感指令(对IOPL敏感);否则不行。每个任务都有自己的IOPL,0级特权的过程可通过POPF和IRET指令修改任务的IOPL。2.I/O允许位映象保护I/O允许位映象用来修正IOPL对I/O敏感指令的影响,允许低特权的程序访问某些I/O端口。I/O允许位映象是一个位向量,每位对应一个端口的操作权限(0表示允许)。操作系统可通过改变任务TSS中的I/O允许映象来为某任务分配端口。1.4接口分析与设计方法2.4.1x86系列微机接口分析1.I/O接口硬件分类系统板上I/O芯片和I/O扩展槽接口卡。2.I/O端口地址分配PC系列I/O地址线有16根,对应64K空间;I/O端口译码只使用了A0-A9,共1024个端口,地址范围为0000H~03FFH。不同的微机系统对I/O端口地址的分配不同。初期:A9=0端口(512个)为系统板所用,其他端口(512个)为扩展槽所用。I/O芯片名称地址范围DMAC1DMAC2DMA页面寄存器0000-001FH00C0-00DFH0080-009FH中断控制器1中断控制器20020-003FH00A0-00BFH定时器并行接口芯片(键盘接口)RT/CMOSRAM协处理器0040-005FH0060-006FH0070-007FH00F0-00FFH系统板I/O接口芯片端口地址(0000H-00FFH):PC/AT:A8=A9=0端口(256个)为系统板所用,其他端口(768个)为扩展槽所用。返回28页扩展槽I/O接口卡端口地址(0100H-03FFH):I/O接口名称地址范围游戏控制卡0200-020FH并行口控制卡1并行口控制卡20370-037FH0270-027FH串行口控制卡1串行口控制卡203F8-03FFH02F8-02FFH原型插件板(用户可用)0300-031FH同步通信卡1同步通信卡203A0-03AF0380-038FH单显MDA彩显CGA彩显EGA/VGA03B0-03BFH03D0-03DFH03C0-03CFH软驱控制卡硬驱控制卡03F0-03FFH01F0-01FFHPC网卡0360-036FH用户I/O端口地址选用原则:系统配置占用的端口地址一律不能用;厂家声明保留的端口地址不要用;其余端口地址可用,为避免冲突最好采用DIP。3.I/O端口地址译码方法一个I/O接口对应多个连续I/O端口。I/O接口芯片片选信号:IOW/IOR信号(有效)、AEN信号(无效)和I/O端口地址高位经过译码得到。I/O接口芯片内部端口地址:I/O端口地址低位直接组成。4.I/O端口访问CPU通过I/O指令对I/O接口进行访问。汇编语言指令:IN、OUT。C语言指令:inportb(inport)、outportb(outport)。VC++指令:_inp(_inpw)、_outp(_outpw)。例:读取CMOS信息。main(){inti;unsignedcharc_CmosMessage[64];for(i=0;i=63;i++){outportb(0x70,i);c_CmosMessage[i]=inportb(0x71);}printf(CMOS信息读取完毕。\n);};功能:读取CMOS信息;调用:AL=CMOS地址;返回:AL=CMOS内容proc_read_cmosprocclioral,80h;屏蔽NMIout70h,aljmp$+2;延迟inal,71h;读CMOS数据stiretproc_read_cmosendp1.4.2I/O端口地址译码电路的几种形式1.固定式端口地址译码接口中只有一个端口时可采用门电路构成。接口中有多个端口时一般采用译码器电路构成,常见的译码器有74LS138、74LS154等。74LS138译码器:工作条件:G1=1,G2A=G2B=0。工作原理:将复合的输入信号变为枚举的输出信号。15Y0Y7ABCG2BG2AG114131211109712345674LS138输入输出G1G2AG2BCBAY7Y6Y5Y4Y3Y2Y1Y010000011111110100001111111011000101111101110001111110111100100111011111001011101111110011010111111100111011111110XXXXX11111111X1XXXX11111111XX1XXX1111111174LS138真值表Y0Y7ABCG2BG2AG11514131211109712345674LS138A5A6A7A8A9AEN’DMACS(8237)INTRCS(8259)T/CCS(8253)PPICS(8255)WRTDMAPG≥1≥1WRTNMIREGIOW74LS138在PC机系统板端口译码的应用:转21页为何中断控制1端口地址为0020H-003FH?AEN’=AEN∩IO/M。2.可选式端口地址译码(1)使用比较器+地址开关方法74LS688比较器:当P0~7≠Q0~7时,P=1,输出高电平。当P0~7=Q0~7时,P=0,输出低电平。比较器和地址开关产生一个信号参与片选。(2)使用异或门+地址开关方法用异或门代替比较器和地址开关比较。=1=1=1=11234567891011121314VCCGND7
本文标题:接口概述
链接地址:https://www.777doc.com/doc-3338960 .html