第六章 输入输出及DMA控制器
- 格式:ppt
- 大小:1.49 MB
- 文档页数:44
第一讲:第六章DMA控制器和定时/计数器回顾:微型计算机与外部设备之间的数据传送控制方式本讲重点:DMA的基本概念,DMA 控制器芯片8237的性能概述,内、外部结构,工作周期,工作方式,通道的优先级及数据传输速率。
讲授内容:6. 1 DMA控制器Intel8237一、DMA概述我们已经介绍了微机系统中各种常用的数据输入输出方法,有程控法(包括无条件及条件传送方式)和中断法,这些方法适用于CPU与慢速及中速外设之间的数据交换。
但当高速外设要与系统内存或者要在系统内存的不同区域之间,进行大量数据的快速传送时,就在一定程度上限制了数据传送的速率。
以Intel8088CPU为例,CPU从内存(或外设)读数据到累加器,然后再写到外设端口(或内存)中,若包括修改内存地址,判断数据块是否传送完,Intel8088CPU(时钟接近5MHz)传送一个字节约需要几十微秒的时间,由此可大致估计出用程控及中断的方式来进行数据传送,其数据传送速率大约为每秒几十KB字节。
为了提高数据传送的速率,人们提出了直接存储器存取(DMA)的数据传送控制方式,即在一定时间段内,由DMA控制器取代CPU,获得总线控制权,来实现内存与外设或者内存的不同区域之间大量数据的快速传送。
典型的DMAC的工作电路如图6-1。
DMA数据传送的工作过程大致如下:①外设向DMAC发出DMA传送请求。
②DMAC通过连接到CPU的HOLD信号向CPU提出DMA请求。
③CPU在完成当前总线操作后会立即对DMA请求做出响应。
CPU的响应包括两个方面:一方面,CPU将控制总线、数据总线和地址总线浮空,即放弃对这些总线的控制权;另一方面,CPU将有效的HLDA信号加到图6-1 DMAC的工作电路DMAC上,用此来通知DMAC,CPU已经放弃了总线的控制权。
④待CPU将总线浮空,即放弃了总线控制权后,由DMAC接管系统总线的控制权,并向外设送出DMA的应答信号。
⑤由DMAC送出地址信号和控制信号,实现外设与内存或内存不同区域之间大量数据的快速传送。
第六章输入输出及接口〔习题6.2〕I/O端口与存储器地址常有__⎽⎽⎽⎽___⎽和__⎽⎽⎽⎽___⎽两种编排方式,8088/8086处理器支持后者,设计有专门的I/O指令。
其中指令IN是将数据从__⎽⎽⎽⎽___⎽传输到__⎽⎽⎽⎽___⎽,执行该指令时8088/8086处理器引脚产生__⎽⎽⎽⎽___⎽总线周期。
指令“OUT DX, AL”的目的操作数是__⎽⎽⎽⎽___⎽寻址方式,源操作数是__⎽⎽⎽⎽___⎽寻址方式。
〔解答〕(I/O端口与存储器地址)统一编址(I/O端口与存储器地址)独立编址外设处理器I/O读(I/O端口的DX)寄存器间接寄存器〔习题6.4〕基于教程P142图6-7接口电路,编程使发光二极管循环发光。
具体要求是:单独按下开关K0,发光二极管以L0、L1、L2、……L7顺序依次点亮,每个维持200ms,并不断重复,直到有其他按键操作;单独按下开关K1,发光二极管以L7、L6、L5、……L0顺序依次点亮,每个也维持200ms,并不断重复,直到有其他按键操作;其他开关组合均不发光,单独按下开关K7,则退出控制程序。
延时200ms可以直接调用子程序DELAY实现。
〔解答〕again: mov dx,6000hmov al,0ffhout dx,al ;全不亮again1: in al,dxcmp al,7fh ;D7~D0=0111111B ?jz done ;单独按下K7,退出cmp al,0feh ;D7~D0=11111110B ?jz next1 ;单独按下K0,转移到next1cmp al,0fdh ;D7~D0=11111101B ?jz next2 ;单独按下K1,转移到next2jmp again ;其它情况不点亮next1: mov cx,8mov al,1 ;从K0开始next11: out dx,al ;某个LED电亮call delay ;延时200msshl al,1 ;rol al,1loop next11jmp again1next2: mov cx,8mov al,80h ;从K7开始next21: out dx,al ;某个LED电亮call delay ;延时200msshr al,1 ;ror al,1loop next21jmp again1done: mov al,0ffhout dx,al ;全不亮〔习题6.5〕有一个查询输入接口电路类似图6-9,但其数据端口为8F40H、状态端口为8F42H。
第六章输入/输出方式与接口芯片第一节输入/输出方式第二节中断第三节可编程定时/计数器8254及其应用第四节可编程并行I/O接口芯片8255A及其应用第五节可编程中断控制器8259及其应用第一节输入/输出方式●教学目标介绍I/O 接口的基本概念介绍I/O端口的编址方式介绍CPU与外设间的数据传送关系●学习要求掌握I/O接口的基本功能,了解接口的一般结构熟悉I/O端口的编址方式,了解IN/OUT指令的执行过程掌握微机与外设的各种传送方式,了解DMA传送过程一、I/O接口1)I/O接口的基本概念I/O接口是连接CPU与外设的逻辑控制部件,它主要在CPU与外设间起着传输状态与命令信息,实现数据的缓冲、数据格式转换等作用。
它的主要功能有:选择外设对外设进行控制和监视进行数据寄存和缓冲进行数据格式转换进行信号电平转换I/O接口的分类并行I/O接口和串行I/O接口可编程接口和不可编程接口专用接口和通用接口2)I/O接口的基本结构主要包含有数据端口、状态端口和控制端口数据端口用于存放数据信息,包括数据输入寄存器和数据输出寄存器,主要作用是协调CPU和外设之间的数据传输速度。
控制端口用于存放控制信息,控制信息是CPU通过接口传送给外设的,其主要作用是控制外设工作,如控制输入输出装置的启/停等。
状态端口用于存放状态信息,即反映外设当前工作的状态信息,CPU可通过读取这些信息,了解外设当前的工作情况。
3)I/O端口的寻址方式在一个微机系统中既有存储单元地址又有I/O端口地址,根据两者地址的不同安排可分为以下两种寻址方式。
存储器统一编址在这种方式中,把I/O端口作为存储器的一个单元来对待,即每个端口占用一个存储单元地址。
此时,对I/O端口操作可以使用全部的存储器指令,而不必另设专门的I/O指令。
由于该方式是将I/O地址映射到了存储器地址空间,所以也称为存储器映像方式。
I/O端口独立编址在这种方式下,I/O端口与存储器各自独立编址,这样存储器地址和I/O端口地址可以重叠。