书签 分享 收藏 举报 版权申诉 / 96

类型《微机接口技术及其应用》课件第8章.ppt

  • 文档编号:2336498
  • 上传时间:2024-09-02
  • 格式:PPT
  • 页数:96
  • 大小:797KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    微机接口技术及其应用 微机 接口 技术 及其 应用 课件
    资源描述:

    1、1 1第8章 可编程DMA控制器芯片8237A 8.1 8237A的结构和工作原理 8.2 8237A的编程及应用 习题与思考题2 2为了加快传输大批量数据的速度,常采用直接存储器存取方式(DMA,Direct Memory Access)进行数据传输。开辟在存储器和外设之间直接传输数据的通道,也能让两块存储器之间直接交换数据,而不需要CPU的干预,即不需要由CPU产生地址信息、数据信息、控制信号以及来回进行复制数据,这些信号和操作都是由DMA控制器形成和管理的,从而使传输数据的速度达到了硬件所允许的最快速度。利用DMA方式传送数据时,数据的传送过程完全由硬件控制,这种硬件电路称为DMA控制器

    2、。DMA控制器具有以下基本功能:3 3(1)能向CPU提出DMA请求,请求信号加到CPU的HOLD引脚上。(2)CPU响应DMA请求后,DMA控制器从CPU获得对总线的控制权。在整个DMA操作期间,由DMA控制器管理系统总线并控制数据传递,CPU则暂停工作。(3)能提供读/写存储器或I/O设备的各种控制命令。(4)确定数据传输的起始地址和数据的长度,每传送一个数据,能自动修改地址,使地址增1或减1,数据长度减l。(5)数据传送完毕,能发出结束DMA传送的信号。4 4CPU在每一个非锁定时钟周期结束后,都要检测HOLD线上是否有DAM请求信号,若有,则转入DMA工作周期。8237A是高性能的可编

    3、程DMA控制器芯片,工作在5MHz时钟下的8237A-5其传输速率可达1.6 MB/s。每片8237A内部有4个独立的通道,每个通道寻址及字节计数都可达64 K地址和字节的计数能力,并具有4种不同的传送方式:单字节传送、数据块传送、请求传送和级联传送方式。通过级联,可以扩大通道数。对每个通道的DMA请求可以允许或禁止。4个通道的DMA请求有不同的优先级,优先级可以是固定的,也可以是循环的。5 5任一通道完成数据传送后,会产生过程结束信号(EOP,End Of Process),同时结束DMA传送,还可以从外界输入EOP信号,中止正在执行的DMA传送。它们可以分时地为4个外部设备实现DMA操作,

    4、以实现内存到端口、端口到内存及内存到内存之间的高速数据传送。在PC机中,利用8237A的传送速率仅仅是476 KB/s。6 68237A控制器可以处于两种不同的工作状态。在DMA控制器未取得总线控制权时,必须由CPU对DMA控制器进行编程,以确定通道的选择、数据传送的方式和类型、内存单元的起始地址、地址是递增还是递减及要传送的总字节数等,CPU也可以读取DMA控制器的状态。这时,CPU处于主控状态,而DMA控制器就和一般的I/O芯片一样,是系统总线的从设备,DMA控制器的这种工作方式称为从态方式。当DMA控制器取得总线控制权后,系统就完全在它的控制下,使I/O设备和存储器之间或者存储器与存储器

    5、之间进行直接的数据传送,DMA控制器的这种工作方式称为主态方式。7 7为了能够实现高速率传送数据,人们提出了直接存储器存取方式(DMA)。本节将以广泛使用的DMA控制器Intel 8237A为例,分析DMA的一般原理及工作过程,最后举例说明其使用方法。8 88.1.1 8237A的结构的结构如图8-1所示,8237A每一通道内包含4个16位的寄存器,即基地址寄存器、基字节数计数器、当前地址寄存器和当前字节数计数器。它们决定了DMA访问的存储器地址及传输数据的字节数。每个通道内还有一个6位的方式寄存器,用来在初始化编程时选定通道的工作方式。8.1 8237A的结构和工作原理的结构和工作原理9 9

    6、图8-1 8237A的内部结构图10 10每片8237A中,4个通道还共用一个8位的命令寄存器、一个8位的状态寄存器、一个4位的屏蔽寄存器和一个4位的请求寄存器等。整个8237A的内部寄存器如表8-1所示。11 11表表8-1 8237A的内部寄存器的内部寄存器12 128.1.2 8237A的引脚功能的引脚功能8237A是一种40引脚的双列直插式器件,其引脚排列如图8-2所示,下面分别介绍各引脚的功能。13 13图8-2 8237A的引脚图14 14CLK:时钟信号,输入。它用来控制8237A的内部操作和数据传送速率。8237A的时钟频率为3 MHz,8237A-5的时钟频率可达到5 MHz

    7、。8237A-5是8237A的改进型产品,其工作效率较高,但工作原理和使用方法与8237A完全一样。:片选信号,输入,低电平有效。在从态工作方式下,有效时选中8237A,这时DMA控制器作为一个I/O设备,可以通过数据总线与CPU通信。CSCS15 15READY:准备好,输入,高电平有效。当参与DMA传送的设备中有慢速I/O设备或存储器时,可能要求延长读/写操作周期,这时可使READY变成低电平,使8237A可在DMA周期中插入等待周期Tw。当存储器或外设准备就绪时,READY端变成高电平。A3A0:最低4位地址线,三态,双向。在从态时,它们是输入信号,用来寻址DMA控制器的内部寄存器,使C

    8、PU对各种不同的寄存器进行读/写操作,即对8237A进行编程。在主态时,输出的是要访问内存的最低4位地址。A7A4:4位地址线,三态,输出。这4位地址线始终工作于输出状态或浮空状态。在主态时,输出4位地址信息A7A4。16 16DB7DB0:8位数据线,三态,输入/输出。它们被连到系统数据总线上。从态时,CPU可用I/O读命令从数据总线上读取8237A的地址寄存器、状态寄存器、暂存寄存器和字节数计数器的内容,CPU还可以通过这些数据线用I/O写命令对各个寄存器进行编程。17 17在主态时,高8位地址信号A15A8经8位的I/O缓冲器从DB7DB0引脚输出,并由ADSTB信号将DB7DB0输出的

    9、信号锁存到外部的高8位地址锁存器中,它们与A7A0输出的低8位地址线一起构成16位地址。当8237A工作于存储器到存储器的传送方式时,先把从源存储器中读出来的数据,经这些引线送到8237A的暂存寄存器中,再经这些引线将暂存器中的数据写到目的存储单元中。18 18AEN:地址允许信号,输出,高电平有效。AEN信号使地址锁存器中锁存的高8位地址送到地址总线上,与芯片直接输出的低8位地址一起构成16位内存偏移地址。AEN信号也使与CPU相连的地址锁存器无效,这样就保证了地址总线上的信号来自DMA控制器,而不是来自CPU。19 19ADSTB:地址选通信号,输出,高电平有效。当它有效时,选通外部的地址

    10、锁存器,将DB7DB0上输出的高8位地址送到外部的地址锁存器中。:I/O读信号,双向,三态,低电平有效。从态时,它作为输入控制信号,送入8237A,当它有效时,CPU读取8237A内部寄存器的值。主态时,它作为输出控制信号,与相配合,控制数据由外设传送到存储器中。IORMEMW2020:I/O写信号,双向,三态,低电平有效。从态时,它是输入控制信号,当它有效时,CPU向DMA控制器的内部寄存器中写入信息,对8237A进行初始化编程。主态时,作为输出控制信号,与相配合把数据从存储器传送到外设。:存储器读,三态,输出,低电平有效。主态时,它既可与配合把数据从存储器中读出并送至外设,也可用于控制内存

    11、间的数据传送,使数据从源地址单元中读出。从态时该信号无效。IOWMEMRMEMRIOW21 21:存储器写,三态,输出,低电平有效。主态时,它可与配合把数据从外设写入存储器,也可用于内存间数据传送的场合,控制把数据写入目的单元;从态时该信号无效。DREQ3DREQ0:通道30的DMA请求信号,输入。当外设请求DMA服务时,就向8237A的DREQ引脚送出一个有效的电平信号,有效电平的极性由编程确定。在固定优先权的情况下,DREQ0的优先级最高,DREQ3的优先级最低,在循环优先权时,优先级可以改变。MEMWIOR2222HRQ:保持请求信号,输出,高电平有效。这个信号送到CPU的HOLD端,它

    12、是向CPU申请获得总线控制权的DMA请求信号。8237A任一个未被屏蔽的通道有DMA请求(DREQ有效)时,都可使8237A的HQR端输出有效的高电平。HLDA:保持响应信号,输入,高电平有效。该信号与CPU的HLDA端相连。当CPU收到HRQ信号后,至少必须经过一个时钟周期后,使HLDA变高,表示CPU已把总线的控制权交给8237A,8237A收到HLDA信号后,就开始进行DMA传送。2323DACK3DACK0:通道30的DMA响应信号,输出。其有效电平的极性由编程确定。当8237A收到CPU的DMA响应信号HLDA,开始DMA传送后,相应通道的DACK有效,将该信号输出到外部,通知外部电

    13、路现已进入DMA周期。2424:传输过程结束信号,双向,低电平有效。在DMA传送时,当DMA控制器的任一通道中的当前字节数计数器减为0,再由0减为FFFFH而终止计数时,会在引脚上输出一个有效的低电平信号,作为DMA传输过程结束信号。8237A也允许从外部输入一个低电平信号到引脚上来终止DMA传送。不论是内部计数结束引起终止DMA过程,还是外部终止DMA过程,都会使请求寄存器的相应位复位。如要对8237A的方式寄存器编程,将通道设置成自动预置状态,那么该通道将完成一次DMA传送,在出现信号后,能自动恢复有关寄存器的初值,继续执行另一次DMA传送。EOPEOPEOPEOP25258.1.3 82

    14、37A的工作时序的工作时序8237A的工作时序如图8-3所示。2626图8-3 8237A的工作时序图2727为了区别于CPU的时钟周期,DMA的每一个时钟周期称为一个S状态。(1)S1状态是空闲状态。在进入DMA传输之前,8237A一直处在连续的S1状态。这时8237A作为从属器件,可以接受CPU的编程写入或读出。在S1状态中,8237A要不断地采样各DREQ信号。若有DREQ信号(一个或多个)产生,且经过屏蔽逻辑及优先级排队后仍有效,则在S1的上升沿产生HRQ信号,向CPU发出总线请求,同时结束S1状态,进入S0状态。2828(2)S0状态中,8237A等待CPU的总线响应信号HLDA,在

    15、HLDA信号有效之前,8237A一直重复S0状态。S0状态中的8237A还是从属器件,可以接收CPU的读/写。若在S0的上升沿检测到HLDA信号有效,则下一状态进入S1。真正的DMA传送是从S1状态开始的。2929(3)S1状态首先产生AEN信号,使CPU等其他总线器件的地址和系统总线的地址线断开,而使8237A的地址线A15A0接通。AEN信号一旦产生后就在整个DMA过程中一直有效。S1状态还有一个作用是产生DMA地址选通信号ADSTB将DB7DB0上送出的地址信号A15A8用ADSTB的下降沿锁存到外部锁存器中。考虑到在块传送方式中,相邻字节的高位地址往往是相同的,在最极端的情况下,连续传

    16、送256字节,地址A15A8才变化一次,因此不必每次都用ADSTB信号将一个不变的A15A8锁存一次。在这种情况下,连续下去的DMA时序中省去S1状态,不产生ADSTB信号,直接从S2状态开始,如图8-3所示。,3030(4)S2状态中8237A产生DMA响应信号DACK给外设。若要得到响应的外设,则可用信号代替CPU控制总线时的片选信号,使自己在整个DMA期间都处于选中状态,同时地址总线上出现所要访问的存储器地址A15A0。DACK31 31(5)S3状态产生或读信号,于是数据线DB7DB0上出现被传送的字节。正常的读信号从S3状态一直持续到S4状态,以使DB7DB0上的数据稳定至S4状态写入目的处。另外还有一种压缩读方式取消了S3状态,读信号和写信号同时在S4状态时产生,适用于高速电路。相反,若DMA传送数据的源或目的电路速度较慢,不能在S4状态前使读出数据稳定,则可以将8237A的准备好READY端变低,使S3和S4之间插入等待状态Sw,直到准备好READY变高才结束,Sw进入S4状态。在PC/XT机中,除通道0以外都固定地插入一个Sw。IORIOR3232(6)S4状态产生或写

    展开阅读全文
    提示  兔兜文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《微机接口技术及其应用》课件第8章.ppt
    链接地址:https://www.tudouwenku.com/doc/2336498.html

    若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理!

    copyright@2008-2024 兔兜文库 版权所有

    鲁公网安备37072502000182号  ICP备案号:鲁ICP备2021021588号-1  百度保障

    兔兜文库
    收起
    展开