《微机原理与应用 教学课件 ppt 作者 曹玉珍 中国机械工业教育协会 组编微机原理与应用-第6章》由会员分享,可在线阅读,更多相关《微机原理与应用 教学课件 ppt 作者 曹玉珍 中国机械工业教育协会 组编微机原理与应用-第6章(34页珍藏版)》请在金锄头文库上搜索。
1、微机原理及其应用 第6章I/O系统,机械工业出版社 http:/ 电子制作:李益敏,6.1 I/O接口概述,6.2 接口数据的传送方式,6.3 DMA控制器8237A,目录,第6章 I/O系统,6.1 输入/输出接口概述 6.1.1 接口的概念与功能 输入输出(以下简称I/O)系统是计算机系统的重要组成部分之一,它包含I/O设备(简称外设)以及它们与计算机之间的接口。 I/O接口一般具有以下基本功能: 1数据缓冲 2执行CPU命令 3设备选择 4信号转换与数据格式转换 注意:前三项功能是一般接口都需要的。,第6章 I/O系统,6.1.2 接口信号的分类及基本结构 1接口的信号分类 (1)数据信
2、息 (2)状态信息 (3)控制信息 2接口的基本结构,第6章 I/O系统,CPU,数据总线,I/O接口,数据端口,状态端口,控制端口,地址总线,控制总线,数据线,状态线,控制线,I/O 设备,译码,图6-1 接口的基本结构,第6章 I/O系统,6.1.3 端口地址及编址方式 1端口地址 2两种编址方式 (1)I/O接口与存储器统一编址 (2)I/O接口独立编址,6.2 接口数据的传送方式 6.2.1 无条件传送方式 这种方式下,CPU不查询外设状态,在其需要时直接对外设执行I/O操作。此方式优点是硬件和软件都达到最简单,缺点是外设必须随时处于待命状态,并且外设的处理速度必须跟上CPU的速度,否
3、则就会出错。所以无条件传送用的较少。图6-2所示。,第6章 I/O系统,地址 译码,输出 锁存器,三态 缓冲器 EN,数据总线,地址总线,M/IO,WR,输出设备,输入设备,RD,图6-2 无条件输入输出传送方式,第6章 I/O系统,6.2.2 查询传送方式 采用这种方式,CPU在进行输入/输出前,先检查外设提供的READY(准备好)信号是否有效,若有效,表示外设可以接受操作,CPU即进行输入/输出操作;若无效,表示外设暂不能接受操作,CPU则等待。在等待期间,CPU所做的只是循环检测READY信号,一旦发现其变为有效,就立即进行操作。,第6章 I/O系统,查询式输入 图6-3是一个用查询输入
4、的接口电 路。 其工作过程如下:,RD,地址总线,三态 缓冲器 (8),三态 缓冲器 (1),锁 存 器,R Q D,地址 译码,输入装置,状态 端口,数据 端口,+5V,M/IO,M/IO,选通,数据,READY,图6-3 查询式输入接口电路,RD,第6章 I/O系统,2查询式输出 图6-4为一个用查询式输出的接口电路。 其工作过程如下:,锁 存 器,Q R D,输出装置,三态 缓冲器 (1),地址 译码,数据,ACK,STB,WR,M/IO,数据端口,状态端口,去数据总线 D7,BUSY,+5V,M/IO,RD,地址总线 AB,数据总线 DB,图6-4 查询式输出接口电路,第6章 I/O系
5、统,6.2.3 中断传送方式 查询方式进行数据传送解决了CPU与外设速度的协调问题,但大大降低了CPU的使用效率,因为CPU把大部分时间都花费在查询外设状态上,在查询期间CPU不能从事其他工作。,6.2.4 DMA传送方式,图6-5 DMA传送方式示意图,第6章 I/O系统,DMA传送的基本过程: (1)外设提出DMA传送请求。当外设需要输入或输出数据时,向DMA控制器发出DMA请求信号DREQ,表示请求进行一次DMA传送。 (2)DMA控制器向CPU发出总线保持请求。DMA控制器接到请求后,经控制电路向CPU的HOLD引脚发出总线保持请求,请求取得总线控制权,并等待CPU的回答。,第6章 I
6、/O系统,(3)CPU响应。CPU在每个时钟上升沿都监测有无HOLD请求,若有此请求,且自身正处在总线控制周期中,CPU就立即响应此总线保持请求。如果CPU正在执行某个总线周期,那么要到这个总线周期结束后再响应此总线保持请求。CPU对总线保持请求有两个动作:一是从HLDA引脚端送出一个响应信号,告诉DMA控制器可以开始占用总线;二是将CPU自己与总线相联接的引脚置为高阻态,即释放了总线。,第6章 I/O系统,(4)DMA控制器传输。DMA控制器在收到HLDA回答后,即开始对DMA传输过程的控制,它向外设送出DACK作为对DMA请求的响应,同时也作为外设的数据选通信号。还向系统总线送出控制信号和
7、地址,以选择合适的存储单元。在一次DMA结束后,DMA控制器撤销HOLD信号,CPU也消除HLDA,并重新开始对总线使用。,第6章 I/O系统,6.2.5 PC机中I/O端口地址分配 在PC系列微机中,使用A0A9共10条地址线访问I/O端口,寻址范围为03FFH。其中前256个端口地址供系统电路板上寻址I/O接口芯片使用,后768个供扩展槽接口卡使用,具体分配情况见表6-1。,第6章 I/O系统,表6-1 系统板上I/O接口器件的端口地址,第6章 I/O系统,用户设计I/O接口电路的时候,应使用系统未占用的端口地址区域,见表6-2。,第6章 I/O系统,6.3 DMA控制器8237A,6.3
8、.1 8237A的功能 8237A是Intel公司生产的高性能DMA控制器,适合与Intel公司的各种微处理器配合。DMA控制器与一般的接口不一样,它在DMA期间要接管系统总线,控制总线上的其他设备,这时称它为总线主模块;当DMA控制器不在DMA期间时,它又是一个普通接口,接受CPU对它的读写控制,这时DMA控制器就成了总线从模块。,第6章 I/O系统,28237A芯片的引脚 8237A是40引脚的双列直插式器件,其引脚如图6-6所示 。,1 40 8237A 20 21,A7 A6 A5 A4 EOP A3 A2 A1 A0 VCC DB0 DB1 DB2 DB3 DB4 DACK0 DAC
9、K1 DB5 DB6 DB7,IOR IOW MEMR MEMW NC READY HLDA ADSTB AEN HRO CS CLK RESET DACK2 DACK3 DREQ3 DREQ2 DREQ1DREQ0 AND,图6-6 8237A引脚,第6章 I/O系统,6.3.2 8237A的工作方式 8237A的4个通道是完全独立的。它们可以根据需要利用编程确定各自的工作方式。其工作方式寄存器有4个,每通道1个。4个工作方式寄存器只占用1个I/O端口地址,不管哪个通道的方式字都用0BH地址,写入各自的内容,利用字节的最低两位D1D0位的编码来指定该方式字都用属于哪一个通道。D7D6:DMA
10、操作方式设定。共有4种方式。,第6章 I/O系统,1方式0 为请求传送方式,这是一种数据成块传送的方式,它要求在整个传送过程中外设的请求信号一直保持有效。 2方式1 为单字节传送方式,在每次DMA请求后,只传送1个字节,接着就释放系统总线至少1个总线周期。 3. 方式2 为成块传送方式,对数据快的传送只要求能够正常启动,就可以使1次DMA操作连续进行,直到规定字块传送完,或者由打断为止。,第6章 I/O系统,4.方式3 为级联方式,这种方式可以为系统提供更多的DMA通道。图6-7是级联的基本方法,这样在第二级上所接外设提出的DREQ,要经两级8237A传播,并进行优先级判断,在得到DACK后才
11、能开始传送。这时用于级联第一级的8237A就只用作优先级的判断和DREQ请求的传送,本身不再向外输出信号进行DMA控制了。在级联使用时,前级的8237A是以通道为单位的,即可以使有些通道级联下级8237A,有些通道不级联,仍作为单独的DMA控制器通道用。,第6章 I/O系统,6.3.3 8237A的内部寄存器和编程 1基地址寄存器和基字节数寄存器 基地址寄存器是由CPU用程序控制写入的,表示数据块在内存中的起始地址,一旦写入,在整个传输过程中保持不变。基字节数寄存器存放本次DMA传送的数据块,寄存器的内容在初始化时由程序写入,先写低字节,后写高字节,写入后,其内容同时传送到现行地址寄存器和现行
12、字节数寄存器,并在整个数据块的DMA传送过程中保持不变,且不能读出。,第6章 I/O系统,2现行地址寄存器 现行地址寄存器存放DMA传送的当前地址,每次DMA传送后,该寄存器的值自动增量或减量。该寄存器的值可由CPU读出(先低位,后高位)。若设置为自动预置,则在每次计数结束后,自动恢复为它的初始值(即保存在基地址寄存器中的初值)。 3现行字节数寄存器 现行字节数寄存器存放DMA传送过程中没有传送完的字节数。每次传送后,该寄存器的值自动减量。该寄存器的值可由CPU读出。若设置为自动预置,则在每次计数结束后,自动恢复为它的初始值(即保存在基字节数寄存器中的初值)。,第6章 I/O系统,4工作方式寄
13、存器 如图6-8所示工作方式寄存器各位的控制内容。地址为0BH。,D7,D6,D5,D4,D3,D2,D1,D0,方式选择 0 0 请求方式 0 1 单个方式 1 0 块方式 1 1 级连方式,通道选择 0 0 通道0 0 1 通道1 1 0 通道2 1 1 通道3,类型选择 0 0 校验 0 1 DMA写 1 0 DMA读 1 1 无效,自动预置 1 自动预置 0 非自动预置,地址增减量 0 地址增量 1 地址减量,图6-8 工作方式寄存器,第6章 I/O系统,5命令寄存器 命令寄存器用来控制8237A的一些工作信号,确定芯片的基本工作形态,所以又叫控制寄存器。图6-9所示命令寄存器的意义。
14、,D7,D6,D5,D4,D3,D2,D1,D0,0 DACK低电平有效 1 DACK高电平有效,0 启动8237 1 停止8237,0 正常时序 1 压缩时序 若D0=1,0 滞后写 1 扩展写 若D3=1,0 DREQ高电平有效 1 DREQ低电平有效,0 固定优先权 1 旋转优先权,1 允许存储器到存储器 0 禁止存储器到存储器,0 通道0源地址不保持 1 通道0源地址保持 若 D0=0,图6-9 命令寄存器,第6章 I/O系统,6.其他寄存器 (1)请求寄存器。用于启动DMA操作,请求寄存器的内容用软件写入。此寄存器的地址是09H,用D1D0指定通道号,用D2置1来使该通道开始DMA操
15、作。软件请求受优先级安排的控制。如图6-10所示。,D7,D6,D5,D4,D3,D2,D1,D0,通道选择 0 0 通道0 0 1 通道1 1 0 通道2 1 1 通道3,0 请求位复位 1 请求位置位,未用,图6-10 请求寄存器,第6章 I/O系统,(2)屏蔽寄存器。用于控制某一通道能否响应DREQ信号。如某通道对应的屏蔽位被置位,该通道就不能响应外设的DMA请求。屏蔽寄存器两种不同的设置方法:一种是用地址0AH,它每次只能对一个通道进行操作图6-11所示;若用0FH地址,则一次可以同时对4个通道分别进行屏蔽置位或复位操作图6-12所示。,第6章 I/O系统,D7,D6,D5,D4,D3,D2,D1,D0,通道选择 0 0 通道0 0 1 通道1 1 0 通道2 1 1 通道3,0 清除屏蔽位 1 置屏蔽位,未用,图6-11 屏蔽寄存器,第6章 I/O系统,D7,D6,D5,D4,D3,D2,D1,D0,0 清通