端口的寄存器1.为什么要引入接口•微机和I/O设备的信息类型和格式可能不一样。•微机和I/O设备信号传输处理的速度可能不匹配。•不用接口,如果I/O设备直接接CPU,随着外设增加,会大大降低CPU的效率。•I/O直接接CPU,会使外设硬件结构过于依赖CPU,对外设本身发展不利。6.1I/O端口定义:接口是CPU与“外部世界”的连接电路,负责“中转”各种信息。分类:存储器接口和I/O接口。位置:介于系统总线与外部设备之间。2.接口的概念接口与I/O设备不同I/O设备对应I/O接口不同。I/O接口受CPU控制,I/O设备受I/O接口控制。为增加通用性,I/O接口电路一般均具有可编程功能。微机的应用离不开外部设备接口的设计、选用和连接。CPU接口外设数据数据控制信号控制信号状态信号状态信号可能是单向的数据缓冲功能:通过寄存器或锁存器实现。存放数据的寄存器或锁存器称之为数据口。接受和执行CPU命令功能:存放CPU命令代码的寄存器称之为命令口,存放执行状态信息的寄存器称之为状态口。设备选择功能:CPU通过地址译码选择不同外设。即CPU通过地址译码选择不同I/O接口和I/O接口中连接的不同的设备。信号转换功能:协调总线信号与I/O设备信号。转换包括信号的逻辑关系、时序配合和电平转换。可编程功能:增加接口的灵活性和智能性。4、I/O接口功能、I/O端口的编址(1)、独立编址设置专用的I/O指令,接口地址是独立的。(2)、与存储器映象编址存储器与接口地址是统一编址。PC机一般采用独立编址的方法。单片机一般采用与存储器统一编址的方法。PC机中的I/O端口空间分配见P-142表6.1(1)、I/O统一编址(存储器映象I/O编址)一个I/O端口等同于一个存储器单元。存储单元和I/O端口统一编址。优点:对I/O端口的访问命令与对存储器单元访问相同,不必使用专用I/O指令;外设数目或I/O寄存器数几乎不受限制。系统读写控制逻辑较简单。缺点:I/O端口占用部分MEM空间,可用MEM空间减小;对MEM访问指令较长,执行速度较慢;I/O端口地址译码时间较长。MEM空间I/O空间N-1KK-10存储类指令应用:Motorola系列和Apple系列均采用此方式(2)、I/O独立编址I/O端口地址空间与存储器地址空间相互独立。应用:Z-80系列和x86系列均采用此方式。优点:MEM地址空间不受I/O端口地址空间影响;I/O端口数量不多,占用地址线少,地址译码简单,速度较快,使得此类指令执行速度快;使用专用I/O命令(IN/OUT),与MEM访问命令(MOV)有明显区别,便于理解和检查。MEMI/O设备N-10存储类指令I/O类指令K-10缺点:专用I/O指令增加指令系统复杂性,且I/O指令类型少,寻址方式也少,程序设计灵活性较差;要求处理器提供MEMR#/MEMW#和IOR#/IOW#两组控制信号,增加了控制逻辑的复杂性。(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端口地址信号:借用地址线信号和IOW#/IOR#信号线以及表示DMA正在工作的AEN的反相信号组成。6、PC系列I/O端口访问端口的操作指令1、输入指令INEAX/AX/AL,PORT将PORT所指端口内容送EAX(32位)或AX(16位)或AL(8位)。2、输出指令OUTPORT,EAX/AX/AL其中PORT是接口地址;如是8位地址(0~255),可用直接寻址。如是16位地址(0~65535),必须采用DX间址。、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端口和连续的存储器空间之间传送数据。结果:完成I/O端口和EAX、AX、AL之间的数据传送,可使用直接寻址和间接寻址方式。举例:movdx,3fdhmoval,36hinal,dxout43h,al接口由接口硬件和接口软件组成。1.接口硬件核心部分6.2、I/O接口基本原理侧引脚信号:外设侧引脚信号:数据信号:接口缓冲寄存器与外设间的数据交换;状态信号:外设工作状态送给接口的状态寄存器;控制信号:接口的内部控制逻辑控制外设工作的控制信号和同步信号。地址信号:选择I/O接口中的不同寄存器(端口);数据信号:命令或数据写入到相应寄存器,或者从相关寄存器读出数据或状态;控制信号:控制命令的执行、时序、信号同步和片选;状态信号:接口的部分工作状态信号。内部控制逻辑:根据控制寄存器、状态寄存器、总线控制信号及外设状态信号控制I/O接口的工作。网卡USB并行口MIDI/游戏接口显示器接口13941394a音箱/线入接口/麦克风串行口接口软件(设备驱动程序)初始化程序段:设置接口工作方式及初始条件。传送方式处理程序段:CPU针对不同的I/O设备有不同的处理方式。如设置中断向量等。主控程序段:完成接口任务的程序。程序终止与退出程序段:对接口电路硬件保护及操作系统中数据恢复。辅助程序段:提供人-机对话手段。(1)程序控制方式1).无条件传送方式特点:I时假设外设已准备好,O时假设外设空闲。要求:接口输入时加缓冲器,输出时加锁存器。应用:适应于对简单外设的操作。2).条件传送方式(查询方式)工作原理:CPU查询外设已准备好后,才传送数据。特点:CPU与外设间自然同步。要求:需要增加表示外部设备状态的简单硬件电路。应用:适用在CPU不太忙且传送速度要求不高时。3、数据传输控制方式).中断传送方式是特点:CPU与外设可同时工作。要求:接口中需要中断控制逻辑支持。应用:适用与非高速度大量数据传送时。(2)直接存储器存取(DMA)方式特点:数据的传送不经过CPU而由DMA负责,但I/O设备管理由CPU控制,简化CPU对I/O的控制。要求:需要DMA控制器及相关逻辑支持。应用:适用与高速度大量数据传送。(3)、I/O处理机方式特点:I/O处理机接管了CPU的各种I/O操作及I/O控制功能,CPU能与I/O处理机并行工作。I/O处理机有自己的指令系统,能独立地直接存取主存储器、对外设和I/O过程进行管理。要求:需要I/O处理机支持。应用:高速I/O归I/O处理机管理,低速I/O设备归CPU管理。个输入;1A1~1A4,2A1~2A48个输出;1Y1~1Y4,2Y1~2Y42个控制信号;1G和2G输入输出和控制信号之间的对应关系为;当1G=0时;1A1~1A4送1Y1~1Y4当2G=0时;2A1~2A4送2Y1~2Y4输入端口典型8位输入端口≥11y11a11y21a21y31a31y41a42y12a12y22a22y32a32y42a41G2G连数据总线地址译码输出IOR74LS2448*10KVcc软件MOVDX,0260H;输入端口地址为0260HINAL,DX;输入数据MOVKEYBUFF,AL;开关状态信息暂存缓冲区简介有8个输入;D7~D08个输出;Q7~Q01个输入控制;CLK1个输出控制;OE输入输出控制关系;当CLK为↑时,8位数据从D7~D0输入74LS374。当OE=低电平时,74LS374将其内部信息输出到Q7~Q0。输出端口典型8位输出端口≥1D0Q0D1Q1D2Q2D3Q3D4Q4D5Q5D6Q6D7Q7CLKOE连数据总线地址译码输出IOR74LS3748*330ΩVccsel输出端口软件MOVAL,55H;待输出的数据MOVDX,0260H;输出端口地址0260H送DXOUTDX,AL;输出数据[例6.1]将图6.4和图6.5合并成输入输出端口电路,当某个开关合上时,使对应的发光管点亮,试画出电路原理图、编写程序段。74ls24474ls374译码器IORIOWD7~D0A7~A05V5VCODEINOUTPROCLOOPNEXT:MOVDX,0260HINAL,DX;输入开关状态OUTDX,AL;输出开关状态MOVCX,0FFFFH;设置循环次数CONTU:LOOPCONTU;延时MOVAH,0BH;检测键盘状态INT21HCMPAL,00H;有无键按下JZLOOPNEXT;无键按下,继续.EXITINOUTENDPENDLOOPNEXT~A16/S6~S3CS8254#0H00H43H[AL]OUT43H,ALWR#(IOW#)IO/M#中断一、中断的基本概念1、中断的引入当外设完成输入/输出时,向CPU发出中断请求,CPU断开正在执行的程序,转到为外设服务的中断处理程序,完成对外设的控制。优点:CPU与外设可并行工作,提高了计算机整机效率。实时性好,可靠性高。缺点:传输速度慢。、中断优先权与中断嵌套高级的中断可以中断低级的中断处理。主程序中断1高级中断有多个中断源同时请求中断如何处理?(1)采用固定排队法根据实时性要求从高到低排队。(2)自然排队法先服务完的自动排在后边。图6.7中断的嵌套处理当正为一台设备服务时其它设备申请中断如何处理?采用中断屏蔽法,级别高的可以中断级别低的中断处理。如图6.73、中断源的分类(1)软件中断当CPU内部发生故障或执行专用的指令。(2)硬件中断由CPU外部产生的中断请求。如图6.8所示:N异常中断系统R/S复位FLUSH刷新SMI系统管理INIT初始化NMI非屏蔽INTR可屏蔽图6.8Pentium的中断系统、中断的一般过程执行一条指令指令结束?有中断请求?响应中断关闭中断保护断点保护现场开放中断中断服务恢复现场中断返回取下一条指令硬件自动实现中断服务程序否否是是二、中断向量表中断源的识别:查询中断和向量中断。中断向量表:用来存放中断服务程序的入口地址。1、查询中断当有中断请求时,CPU从高级到低级按顺序查询。2、向量中断当有中断请求时,CPU发一中断响应,外设给CPU提供一中断类型号,CPU将类型号*4+向量表