微机系统与接口教学资料第六章.ppt
6.1概述6.2CPU与外设数据传送的方式6.3端口地址分配和译码6.4DMA控制器8237,第六章 输入/输出接口,6.1 概述,一、接口电路的分类和功能,外设必须通过接口电路与CPU相连接,数据总线,控制总线,地址总线,接口电路,外部设备,数据线,控制线,状态线,一、接口电路的分类和功能,接口电路的功能:1)缓冲锁存数据2)地址译码3)传递命令4)码制转换5)电平转换,一、接口电路的分类和功能,接口电路按通用性分为两类:通用接口和专用接口通用接口:可供多种外部设备使用的标准接口,目的是使微机正常 工作通用接口通常制造成集成电路芯片,称为接口芯片。最初的IBM-PC使用了6块接口芯片:8284、8288、8255、8259、8237、8253后来的微机将这些芯片集成为大规模集成电路芯片,称为芯片组。如82430TX芯片组,由两片芯片组成:北桥:82439TX南桥:82371AB,一、接口电路的分类和功能,二、接口电路的基本结构,接口电路通常包含一组能够与处理器交换信息的寄存器,称为I/O端口寄存器,简称为I/O端口1)数据端口存放数据信息2)状态端口存放状态信息,(忙、空闲、准备好等机器状态)即反映外设当前工作状态的信息3)控制端口存放控制信息(启动、停止等动作),状态信息与控制信息可以广义地看作数据信息,因此可以通过数据总线传送,数据信息分数据量、模拟量和开关量三类。,接口电路组成,三、I/O端口的编址方式,I/O端口与存储单元统一编址(MOTOROLA公司68系列)I/O端口独立编址(INTEL 86 系列)PC系列机采用I/O端口独立编址方式,Port 65535Port 255,Port 3Port 2Port 1Port 0,Port 0(16位),Port 1(16位),Port 0(32位),三、I/O端口的编址方式,I/O端口与存储单元统一编址(MOTOROLA公司68系列),三、I/O端口的编址方式,I/O端口独立编址(INTEL 86 系列),三、I/O端口的编址方式,端口地址是一种重要资源,三、I/O端口的编址方式,端口的寻址把端口地址放在DX寄存器中,对该端口进行读写INAL,DX(8位)或 IN AX,DX(16位)OUT DX,AL(8位)或 OUT DX,AX(16位),可寻址的端口号为065535(FFFFH),端口地址小于或等于FFH(255),可以用立即数表示端口地址IN AL,42H(8位)或 IN AX,42H(16位)OUT 43H,AL(8位)或 OUT 43,AX(16位),6.2 CPU与外设数据传送的方式,1.程序传送方式2.中断传送方式3.DMA传送方式,无条件传送程序查询传送(条件传送),一、程序传送方式,(一)无条件传送,CPU与外设间的数据交换在程序控制下进行,不查询外设状态,认为外设已经准备就绪,直接与外设传送数据,外设准备就绪:对于输入设备,已经把数据放入接口电路的数据输入寄存器,CPU可以读取;对于输出设备,已经准备好接收数据(接口电路的数据输出寄存器已空),CPU可以向它输出数据,由于不查询外设状态,接口电路不需要状态寄存器,输入方式,输出方式,IN AL,0A0H,OUT 0A1H,AL,A1,例:采用同步传送系统,查询式输入接口电路,(二)条件传送,查询式输出接口电路,Poll:In al,S_port Test al,80h Jnz poll mov al,store Out D_port,al,例:采用查询方式传送的数据采集系统,Start:mov dl,0f8h;1111,1000 启动A/D转换 lea di,detor;输入数据存放地址 Again:mov al,dl;and al,0efh;1110,1111,AL=1110,1000 out 4,al;停止A/D转换,并选择模拟量A0 call delay;mov al,dl;AL=1111,1000 out 4,al;启动A/D转换,poll:in al,2;输入状态信息 shr al,1;jnc poll;若未Ready,等待 in al,3;否则,输入数据 stosb;将数据存入内存 inc dl;取下一个模拟量 jne again;,状态端口,程序查询传送的小结,在执行输入输出前,要先查询接口中状态寄存器的状态。输入时,状态寄存器的状态指示要输入的数据是否已经准备就绪输出时,状态寄存器的状态指示输出设备是否空闲,图1.6 程序查询方式流程图,二、中断传送方式,使用查询方式,CPU必须检测接口电路的状态寄存器,如果设备未准备好,CPU就要不断地查询,降低了CPU的运行效率中断方式:当外设作好传送准备后,主动向CPU请求中断,CPU响应中断后在中断处理程序中与外设交换数据。若外设未准备好,CPU可以执行其他程序,提高了CPU的利用率每条指令完成后,CPU均可响应中断,因此当设备准备好时,可及时与CPU交换数据,提高了实时性,三、DMA传送方式,对于高速外设(如磁盘、高速A/D),中断方式不能满足数据传输速度的要求。DMA=Direct Memory Access直接存储器访问DMA方式是一种由专门的硬件电路执行I/O的数据传送方式,它可以让外设接口直接与内存进行高速的数据传送,而不必经过CPU。这种专门的硬件电路称为DMA控制器,简称DMAC,几种传送方式的比较:,1.无条件传送:只能用于外部设备与CPU 动作同步时,否则出错。这种方式已 较少使用。2.查询传送:接口简单,但在传送过程中,若外设数据没有准备好,则CPU一直在查询、等待,而 不能做其他事情。CPU的效率低下。3.中断传送:只有当外设数据准备好时(向CPU发出请求),CPU才进行数据传送(在 中断服务程序中),其余时间CPU可以做其他事情。CPU效率大大提高。但是,每传送一次数据,CPU都要执行一次中断服务程序,在中断服务程 序中,除执行 IN 和 OUT 指令外,还要进行下列工作:保护断点、保护标志寄存器、保护某些通用寄存、恢复等一 些工作,95%的时间是额外开销,从而传送效率并不高。4.DMA传送:在DMAC的控制下,外设直接和存储器(也可外设与外设,存储 器与存储器之间)进行数据传送,而不必经过CPU,传送速度基 本取决于外设与存储器的速度,从而传送效率大大提高。,6.3 I/O地址分配和地址译码,一、I/O地址分配表,6.3 I/O地址分配和地址译码,二、I/O地址译码原理关键是如何由地址信号产生接口芯片的片选信号。,6.3 微机系统的I/O通道与总线,1.I/O通道的作用,(1)支持双向数据传输。(2)支持MB级物理地址空间。(3)支持接口读写控制。(4)支持多级向量中断。(5)支持DMA传输通道。(6)支持多处理器共享总线。,2 常见的几种I/O通道,1ISA总线(Industrial Standard Architecture)2EISA总线(Extended Industrial Standard Architecture)3 局部总线表1.2为常见微机系统总线主要参数。,(1)VL总线标准(2)PCI总线(3)AGP总线,3.常见微机系统总线主要参数表,6.4DMA控制器8237,一、DMA概述,DMA方式就是直接存储器存取工作方式。在DMA方式下,外设通过DMA控制器向CPU提出接管总线控制权的总线要求,CPU在当前的总线周期结束后,响应DMA请求,并把总线控制权交给DMA控制器。在DMA控制器的管理下,外设和寄存器之间就可以直接进行数据交换。,返回本节,二、DMA的功能,(1)外设通过DMA控制器向CPU提出DMA申请。(2)DMA控制器接受外设的DMA请求,取得总线控制权。(3)总线载决逻辑对总线申请进行载决,把总线控制权交给DMA控制器。,(4)DMA控制器通知外设DMA应答,开始进入DMA传输。(5)DMA控制器按传输数据的长度直接控制外设与RAM进行数据交换。(6)DMA操作结束,DMA控制器向外设输出计数终止信号,通过接口提出中断申请,并把总线控制权交给CPU,完成一次DMA数据传控。,返回本节,三、8237A的内部结构,其内部结构如图4.1所示。1地址寄存器地址寄存器、基地址寄存器、当前地址寄存器 2字节数寄存器字节数寄存器、基本字节寄存器、当前字节计数器,图 4.1 8237A 的内部结构图,返回本节,四、8237A外部引脚及其功能特性,8237A的外部引脚共有40个,如图4.2所示。各引脚功能特性如下:,CLK:时钟频率,为输入信号。它控制DMA数据传送的速率及8237A内部操作的定时。CS:片选信号,为输入信号。低电平有效。RESET:复位信号,为输入信号,高电平有效。,READY:准备就绪信号,为输入信号,高电平有效。ADSTB:地址选通信号,为输出信号,高电平有效。AEN:地址允许信号,为输出信号,高电平有效。MEMR:寄存器读信号,为输出信号,低电平有效。当此信号有效时,被选中的寄存器单元的内容被读到数据总线上。,MEMW:寄存器写信号,为输出信号,低电平有效。当此信号为低电平时,数据总线上的内容被写入被选中的寄存器单元。IOR:I/O设备读信号,为双向信号,低电平有效。IOW:I/O设备写信号,双向信号,低电平有效。EOP:DMA传输结束信号,双向信号,低电平有效。,8 DREQ:DMA请求信号,属输入信号,高电平有效。DACK:DMA响应信号,属于输出信号,高电平有效。HRQ:总线请求信号,属于输出信号,高电平有效。,HLDA:总线响应信号,属于输入信号,高电平有效。A7A4:高4位地址线,双向信号在进行DMA传输时提供高4位地址。A3A0:低4位地址线,双向信号。DB7DB0:8位双向数据线。,五、8237A内部寄存器及其作用,1工作方式,(1)单字节传输方式(2)块传输方式(3)请求传输方式(4)级连传输方式,8237A各寄存器的端口地址,表4.6 8237A操作端口地址与命令一览表,返回本节,六、8237A的编程及其应用,1DMA的系统结构及主要性能,图 4.3 DMA系统逻辑结构示意图,28237A编程,(1)初始化通道方式寄存器。(2)预置该通道的基地址和当前地址寄存器(低16位)与页面寄存器(高4位或高8位)。(3)求传输的字节数,将其值减1并预置该通道的基地址及当前字节(或字节计数器)。(4)判断传输的数据量是否已经超出边界,若出界则返回错误代码。(5)开放通道,并允许DREQ请求。,返回本节,七、编程实例,(1)初始化通道方式寄存器。(2)预置该通道的基地址和当前地址寄存器与页面寄存器。(3)求传输的字节数,将其值减1并预置该通道的基地址及当前字节。(4)判断传输的数据量是否已经超出边界,若出界则返回错误代码。(5)开放通道,并允许DREQ请求。,;初始化通道2;入口参数:AL=DMA方式字节;读盘(DMA写)=046H;写盘(DMA读)=04AH;DH=传输的扇区数;ES:BX=RAM缓冲区首地址;定义要使用的符号DMA EQU 0;第0片DMA通道端口,下面为PC/AT机的软盘驱动器与存储器RAM之间进行数据交换的实例。,DMA1 EQU 0C0H;第1片DMA通道端口DAM08 EUQ 08;第0片DMA命令寄存器地址DMA18 EUQ 0D0H;第1片DMA命令寄存器地址DSET PROC NEAR;DMA 初始化过程 PUSH CX;保存CX寄存器 CLI;关中断OUT DMA+12,AL;清除先/后触发器JMP SHORT$+2;满足DMA的I/O定时要求,;初始化方式寄存OUT DMA+11,AL;写方式寄存MOV AX,ES;取寄存器RAM段地址MOV CL,4;ROL AX,CL;循环左移4MOV CH,AL;高4位保存在CHAND AL,0F0H;取低落6位地址ADD AX,BX,JNC J1INC CH;有进位加到高4位地址;初始化地址寄存器和页面寄存器J1:PUSH AX;保存16位地址OUT DMA+4,AL;预置通道2地址寄存JMP SHORT$+2MOV AL,AHOUT DMA+4,AL;先低字节,后高字节,MOV AL,CH;取最高4位地址JMP SHORT$+2AND AL,0FHOUT 08LH,AL;预置通道2对应的页面寄存器;初始化字节计数器MOV AH,DH;取传输扇区SUB AL,AL;乘以256(AL=0),SHR AX,1;右移,即变成乘以128PUSH AX;保存“扇区与128的乘积”MOV BX,6;取软盘基数:每扇区字节数CALL GET PARM;调用取基数子程序MOV CL,AH;返回到AH基数N,保存在CLPOP AX;取出乘积值SHL AX,CL;右移返回值次数DEC AX;传输字节值减1,PUSH AX;保存字节数OUT DMA+5,AL;预防、置字节数计数器JMP SHORT$+2;MOV AL,AHOUT DMA+5,AL;先低字节,后高字节;判断DMA是否出界STI;开中断POP CX;传输字节数至CX寄存器,POP AX;位移地址至AXADD AX,CX;相加,若溢出段界则CF=1POP CX;恢复入口寄存器;开通道2MOV AX,2;清除通道2屏蔽位OUT DMA+10,AL;写屏蔽寄存器RET;返回DSET ENDP;DMA结束,返回本节,八、8237A DMA可编程控制与微机系统的接口电路,1用于将数据从存储器传送到I/O接口的DMA控制电路2用于将数据从I/O接口传送到内存的接口电路,图4.4 使用DMA通道实现内存到I/O接口的电路,图4.5 使用DMA通道实现I/O到内存接口的电路,返回本节,