可编程DMA控制器A_第1页
可编程DMA控制器A_第2页
可编程DMA控制器A_第3页
可编程DMA控制器A_第4页
可编程DMA控制器A_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

可编程DMA控制器A第一页,共二十三页,2022年,8月28日8.1概述

Inte18237A是一种有40个引脚的高性能可编程DMA控制器,采用主频5MHz的8237A传送速度可达到1.6MB/秒。

8237A的主要功能为:(1)在一个8237A芯片中有4个独立的DMA通道,每个通道均可独立地传送数据,可控制4个I/O外设进行DMA传送。(2)每个通道的DMA请求都可以分别允许和禁止。每个通道的DMA请求有不同的优先权,优先权可以是固定的,也可以是循环的。(3)每个通道均有64KB的寻址和计数能力,即一次DMA传送的数据最大长度可达64KB。第二页,共二十三页,2022年,8月28日8.1概述(4)可以在存储器与外设间进行数据传送,也可以在存储器的两个区域之间进行传送。(5)8237A有四种DMA传送方式,分别为单字节传送、数据块传送、请求传送方式和级连方式。(6)8237A芯片有一条结束处理的输入信号,允许外界用此输入端结束DMA传送或重新初始化。(7)8237A可以级连,扩展更多的通道。(8)40脚双列直插式,+5V工作电源。第三页,共二十三页,2022年,8月28日8.1概述8237A有两种不同的工作状态,分别为从态方式和主态方式。(1)在DMA控制器未取得总线控制权时必须由CPU对DMA控制器进行编程,以确定通道的选择、数据传送的方式和类型、内存单元起始地址、地址是递增还是递减及要传送的总字节数等,CPU也可以读取DMA控制总线的状态。这时,CPU处于主控状态,而DMA控制器就和一般的I/O芯片一样,是系统总线的从设备,这种工作方式称为从态方式。(2)当DMA控制器取得总线控制权后,系统就完全在它的控制下,使I/O设备和存储之间或存储器与存储器之间进行直接的数据传送,这种工作方式称为主态方式。第四页,共二十三页,2022年,8月28日8.28237A的内部结构及引脚8-2-18237A的内部结构

8237A的内部结构如图8-1所示,主要由时序与控制逻辑、优先级编码电路、数据和地址缓冲器组、命令控制逻辑和内部寄存器等组成。第五页,共二十三页,2022年,8月28日8.28237A的内部结构及引脚图8-18237A的内部结构图

第六页,共二十三页,2022年,8月28日8.28237A的内部结构及引脚8-2-28237A的引脚

8237A采用双列直插式,有40个引脚,其引脚排列如图8-2所示。

第七页,共二十三页,2022年,8月28日8.38237A工作方式8.3.1单字节传送方式在这种工作方式下,每进行一次DMA操作,只传送一个字节的数据。8237A每完成一个字节的传送,计数器便自动减1,地址寄存器的值加1或减1。接着,8237A释放系统总线,把控制权交还给CPU。但是8237A在释放总线后,会立即对DREQ端进行测试,一旦DREQ有效,则8237A会立即发送总线请求,在获得总线控制权后,又成为总线主模块而进行DMA传送。

特点:一次DMA传送至传送1个字节的数据,占用1个总线周期,然后释放系统总线。因此,这种方式又被称为总线周期窃取方式。第八页,共二十三页,2022年,8月28日8.3.2块传送方式在这种工作方式下,一旦开始传送,就会一个字节一个字节的进行下去,直到把整个数据块全部传送完毕,才交出系统总线控制权。

特点:数据传输效率高,DREQ有效电平只要保持到DACK有效,就能传送完整批数据,但整个数据块传送期间,CPU失去总线控制权,因而别的DMA请求也被禁止。第九页,共二十三页,2022年,8月28日8.3.3请求传送方式这种工作方式每传送一个字节后,8237A都对DREQ端进行测试,询问其是否有效。如果检测到DREQ端变为无效电平,则立刻“挂起”,停止DMA传送,但并不释放系统总线,测试过程仍然进行。当检测到DREQ端变为有效电平时,就在原来的基础上继续进行传送。由于请求传送方式在传送完一个字节的数据之后就询问DREQ信号是否有效,故又称询问传送方式。特点:DREQ信号一直有效时,则连续传送数据,只有当字节计数器由1减为FFFFH,或外部送来有效的信号,或DREQ变为无效时才结束DMA传送过程。第十页,共二十三页,2022年,8月28日8.3.4级联传送方式在这种方式下,可以把一片8237A(称为主片)和几片8237A(称为从片)进行级联,以便扩充DMA通道。图8-3所示为二级8237A级联时的情况图8-3二级8237A级联第十一页,共二十三页,2022年,8月28日8.48237A内部寄存器功能及格式8237A的内部可编程寄存器主要有10个,如下表所示。名称位数数量功能当前地址寄存器164(每通道一个)保存在DMA传送期间的地址值,可读写当前字节计数寄存器164(每通道一个)寄存当前字节数,初始值比实际值少1,可读写基地址寄存器164(每通道一个)寄存当前地址寄存器的初始值,只能写基字节数寄存器164(每通道一个)保存相应通道当前字(节)数的计数器的初值工作方式寄存器84(每通道一个)寄存相应通道的方式控制字,由编程写入命令寄存器81(4个通道共用一个)寄存CPU发送的控制命令状态寄存器81(4个通道共用一个)存放8237A各通道的现行状态请求寄存器41(每通道1位)寄存各通道的DMA请求信号屏蔽寄存器41(每通道1位)用于选择允许或禁止各通道的DMA请求信号暂存寄存器81(每通道1位)暂存传输数据,仅用于存储器到存储器的传输第十二页,共二十三页,2022年,8月28日8.58237A的编程及应用8237A进行初始化编程的步骤如下:(1)输出主清除命令,使8237A处于复位状态,以接收新的命令;(2)写入工作方式寄存器,以确定8237A工作方式和传送类型;(3)写入命令寄存器,以控制8237A的工作;(4)根据所选通道,输入相应通道当前地址寄存器和基地址寄存器的初始值;(5)输入当前字节计数器和基字节寄存器的初始值;(6)写入屏蔽寄存器;(7)写入请求寄存器,便可由软件DMA传送。否则,经过(1)~(6)步编程后,由通道DREQ启动DMA传送过程。第十三页,共二十三页,2022年,8月28日【例8.1】在某一个系统中,用一片8237A设计了DMA传输电路,8237A的基地址为00H。要求利用它的通道0,从外设(如磁盘)输入一个1KB的数据块,传送到内存中6000H开始的区域中,每传送一个字节,地址增1,采用数据块连续传送方式,禁止自动预置,外设的DMA请求信号DREQ和响应信号DACK均为高电平有效。初始化8237A的程序如下:第十四页,共二十三页,2022年,8月28日DMAEQU00H ;8237A的基地址为00H;输出主清除命令OUTDMA+0DH,AL ;发总清除命令;将基地址6000H写入通道0基地址和当前地址寄存器,分两次进行MOVAX,6000H ;基地址和当前地址寄存器OUTDMA+00H,AL ;先写入低8位地址MOVAL,AHOUTDMA+00H,AL ;后写入高8位地址;把要传送的总字节数1K=400H减1后,送到基字计数器和当前字计数器MOVAX,0400H ;总字节数DECAX ;总字节数减1OUTDMA+01H,AL ;先写入字节数的低8位MOVAL,AHOUTDMA+01H,AL ;后写入字节数的高8位第十五页,共二十三页,2022年,8月28日;写入方式字:数据块传送,地址增量,禁止自动预置,写传送,选择通道MOVAL,10000100B ;方式字OUTDMA+0BH,AL ;写入方式字;写入屏蔽字:通道0屏蔽位清0 MOVAL,00H ;屏蔽字OUTDMA+0AH,AL ;写入8237A;写入命令字:DACK和DREQ为高电平,固定优先级,非存储器间传送MOVAL,10000000B ;命令字OUTDMA+08H,AL ;写入8237A;写入请求字:通道0产生请求 MOVAL,04H ;请求字OUTDMA+09H,AL ;将请求字写入8237A,用软件启动8237A第十六页,共二十三页,2022年,8月28日

3.8237A的应用在PC/XT机中,用一片8237A-5构成DMA控制电路形成4个DMA通道,提供数据宽度为8位的DMA传输。使用固定优先级,所以通道0的优先级最高,通道3最低。这4个DMA通道的功能分配如下:通道0用于动态RAM的刷新通道1为用户保留通道2用于软盘DMA传送通道3用于硬盘DMA传送第十七页,共二十三页,2022年,8月28日在PC/XT机进行软盘或硬盘DMA传输时,先要对8237A-5进行编程。下面是ROMBIOS中的一段程序,名为DMA_SETUP,位于首地址为FEEC8H的内存中。它被读软盘、写软盘和软盘校验程序等调用,用来向8237A-5输入所要读写数据的20位首地址和字计数器初始值。调用前要求的入口参数是:AL=DMA方式字(读=46H,写=4AH,校验=42H)。DH=要传送的扇区个数。每个扇区的字节数基数为128,实际由磁盘驱动器的规格而定,可能是128,256,512或1024个,也就是说可能是128的1,2,4,8倍,表示成2的N次方,N分别为0、1、2、3。N存放在磁盘基值区DISK_BASE的第03号单元中,可由它和DH中的扇区数计算出实际要传送的总字节数。第十八页,共二十三页,2022年,8月28日ES:BX=所读写数据的内存首地址(段地址:偏移量)DMA_SETUPPROCNEAR PUSHCX;保护CX的值CLI;关中断OUTDMA+0CH,AL;清除先/后触发器PUSHAX ;延时,满足8237AI/O定时要求POPAXOUTDMA+0BH,AL ;将AL中的方式字写入方式寄存器;计算20位物理地址,结果的最高4位放在CH中,低16位放入AXMOVAX,ES ;AX←段基地址MOVCL,4 ;循环次数ROLAX,CL ;AX循环左移4位MOVCH,AL ;AX的低8位暂存入CHANDAL,0F0H ;AX的最低4位清零第十九页,共二十三页,2022年,8月28日ADDAX,BX ;加上偏移量,形成16位地址(A15~A0)JNCRLL ;无进位,转移INCCH ;有进位,最高4位加1。至此形成了20位物理地址,低16位在 ;AX中,最高4位在CH的低4位中RLL:PUSHAX ;保存16位起始地址;将16位地址送到通道2基址和当前地址寄存器中OUTDMA+4,AL ;先写低字节MOVAL,AHOUTDMA+4,AL ;后写高字节;将最高4位地址预置到页面寄存器中MOVAL,CH ;最高4位地址ANDAL,0FH ;截低4位OUT81H,AL ;置入页面寄存器(通道2,软盘DMA传送)MOVAH,DH ;取传输的扇区数送AHSUBAL,AL ;AL清零后,使AX=256×扇区数SHRAX,1 ;将AX内容除以2后,AX=128×扇区数;调用取软盘参数子程序,要求入口参数:BX=字节索引值(03号单元)×2PUSHAX ;保存AX的值MOVBX,6 ;BX=字节索引值×2CALLGET_PARM ;调用取参数子程序第二十页,共二十三页,2022年,8月28日;调用后结果,AH=N,N可以是0,1,2或3,它表示所选软盘每扇区的字节数:0或;128,1为256,2为512,3为1024MOVCL,AH ;基数值N由AH送CLPOPAX ;弹出“128×扇

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论