您好,欢迎访问三七文档
第11章DMA控制器第11章DMA控制器11.1DMA系统概述11.2可编程DMA控制器8237A11.38237ADMA可编程控制在微机系统中的应用第11章DMA控制器11.1DMA系统概述11.1.1DMA概述11.1.2DMA的功能返回本章首页第11章DMA控制器11.1.1DMA概述DMA方式就是直接存储器存取工作方式。在DMA方式下,外设通过DMA控制器向CPU提出接管总线控制权的总线要求,CPU在当前的总线周期结束后,响应DMA请求,并把总线控制权交给DMA控制器。在DMA控制器的管理下,外设和寄存器之间就可以直接进行数据交换。返回本节第11章DMA控制器11.1.2DMA的功能(1)外设通过DMA控制器向CPU提出DMA申请。(2)DMA控制器接受外设的DMA请求,取得总线控制权。(3)总线载决逻辑对总线申请进行载决,把总线控制权交给DMA控制器。第11章DMA控制器(4)DMA控制器通知外设DMA应答,开始进入DMA传输。(5)DMA控制器按传输数据的长度直接控制外设与RAM进行数据交换。(6)DMA操作结束,DMA控制器向外设输出计数终止信号,通过接口提出中断申请,并把总线控制权交给CPU,完成一次DMA数据传控。返回本节第11章DMA控制器11.2可编程DMA控制器8237A11.2.18237A的内部结构11.2.28237A的外部引脚及其功能特性11.2.38237A内部寄存器及其作用返回本章首页第11章DMA控制器11.2.18237A的内部结构其内部结构如图4.1所示。1.地址寄存器地址寄存器、基地址寄存器、当前地址寄存器2.字节数寄存器字节数寄存器、基本字节寄存器、当前字节计数器第11章DMA控制器图4.18237A的内部结构图返回本节第11章DMA控制器11.2.28237A的外部引脚及其功能特性8237A的外部引脚共有40个,如图4.2所示。各引脚功能特性如下:CLK:时钟频率,为输入信号。它控制DMA数据传送的速率及8237A内部操作的定时。CS:片选信号,为输入信号。低电平有效。RESET:复位信号,为输入信号,高电平有效。第11章DMA控制器READY:准备就绪信号,为输入信号,高电平有效。ADSTB:地址选通信号,为输出信号,高电平有效。AEN:地址允许信号,为输出信号,高电平有效。MEMR:寄存器读信号,为输出信号,低电平有效。当此信号有效时,被选中的寄存器单元的内容被读到数据总线上。第11章DMA控制器MEMW:寄存器写信号,为输出信号,低电平有效。当此信号为低电平时,数据总线上的内容被写入被选中的寄存器单元。IOR:I/O设备读信号,为双向信号,低电平有效。IOW:I/O设备写信号,双向信号,低电平有效。EOP:DMA传输结束信号,双向信号,低电平有效。第11章DMA控制器DREQ:DMA请求信号,属输入信号,高电平有效。DACK:DMA响应信号,属于输出信号,高电平有效。HRQ:总线请求信号,属于输出信号,高电平有效。第11章DMA控制器HLDA:总线响应信号,属于输入信号,高电平有效。A7~A4:高4位地址线,双向信号在进行DMA传输时提供高4位地址。A3~A0:低4位地址线,双向信号。DB7~DB0:8位双向数据线。第11章DMA控制器图4.28237A引脚功能图返回本节第11章DMA控制器11.2.38237A内部寄存器及其作用1.工作方式(1)单字节传输方式(2)块传输方式(3)请求传输方式(4)级连传输方式第11章DMA控制器2.方式寄存器8237A的方式寄存器格式如下:其中各位说明如下:D7D6:工作方式选择。可以在四种工作方式中任选一种,见表4.1。第11章DMA控制器表4.1工作方式选择逻辑第11章DMA控制器D5:地址寄存增减方式选择。D4:DMA自动预置功能选择。D3D2:数据传输类型选择。其含义如表4.2所示。D1D0:通道选择。它用来选择四个通道。其选择如表4.3所示。第11章DMA控制器表4.2DMA数据传输类型选择第11章DMA控制器3.控制存储器表4.3通道选择第11章DMA控制器D7:DMA响应位D6:DMA请求位D5:扩展写信号位D4:优先级管理D3:时序选择位D2:允许操作位D0:存储器间数据传输允许位各数据位说明如下:第11章DMA控制器4.状态寄存器状态寄存器的格式如下:第11章DMA控制器5.请求寄存器其格式如下:各位的含义如下:D7~D3:未定义。D2:DMA请求标志位。D1~D0:通道选择位。如表4.4所示。第11章DMA控制器D1D0功能00011011选择0通道选择1通道选择2通道选择3通道表4.4通道选择标志位第11章DMA控制器6.屏蔽寄存器其格式如下:各位的含义如下:D7~D3:未定义。D2:DMA屏蔽设置位。D1~D0:通道选择位。如表4.5所示。DMA屏蔽标志是通过往屏蔽寄存器中写入屏蔽字节来进行设置的。第11章DMA控制器表4.5通道屏蔽选择D1D0功能00选择0通道01选择1通道10选择2通道11选择3通道第11章DMA控制器8237A也可以用综合屏蔽命令来设置通道的屏蔽触发器,其格式如下:第11章DMA控制器7.先/后触发器先/后触发器是为控制DMA通道中地址寄存器和字节计数器的初值而设置的,先/后触发器就用来控制这两次传输数据的次序的。第11章DMA控制器8.8237A各寄存器的端口地址表4.68237A操作端口地址与命令一览表返回本节第11章DMA控制器11.38237ADMA可编程控制在微机系统中的应用11.3.18237A的编程及其应用11.3.2编程实例11.3.38237ADMA可编程控制与微机系统的接口电路返回本章首页第11章DMA控制器11.3.18237A的编程及其应用1.DMA的系统结构及主要性能图4.3DMA系统逻辑结构示意图第11章DMA控制器表4.7PC/AT微机DMA系统的基本性能第11章DMA控制器2.8237A编程(1)初始化通道方式寄存器。(2)预置该通道的基地址和当前地址寄存器(低16位)与页面寄存器(高4位或高8位)。(3)求传输的字节数,将其值减1并预置该通道的基地址及当前字节(或字节计数器)。(4)判断传输的数据量是否已经超出边界,若出界则返回错误代码。(5)开放通道,并允许DREQ请求。返回本节第11章DMA控制器11.3.2编程实例(1)初始化通道方式寄存器。(2)预置该通道的基地址和当前地址寄存器与页面寄存器。(3)求传输的字节数,将其值减1并预置该通道的基地址及当前字节。(4)判断传输的数据量是否已经超出边界,若出界则返回错误代码。(5)开放通道,并允许DREQ请求。第11章DMA控制器;初始化通道2;入口参数:AL=DMA方式字节;读盘(DMA写)=046H;写盘(DMA读)=04AH;DH=传输的扇区数;ES:BX=RAM缓冲区首地址;定义要使用的符号DMAEQU0;第0片DMA通道端口下面为PC/AT机的软盘驱动器与存储器RAM之间进行数据交换的实例。第11章DMA控制器DMA1EQU0C0H;第1片DMA通道端口DAM08EUQ08;第0片DMA命令寄存器地址DMA18EUQ0D0H;第1片DMA命令寄存器地址D—SETPROCNEAR;DMA初始化过程PUSHCX;保存CX寄存器CLI;关中断OUTDMA+12,AL;清除先/后触发器JMPSHORT$+2;满足DMA的I/O定时要求第11章DMA控制器;初始化方式寄存OUTDMA+11,AL;写方式寄存MOVAX,ES;取寄存器RAM段地址MOVCL,4;ROLAX,CL;循环左移4MOVCH,AL;高4位保存在CHANDAL,0F0H;取低落6位地址ADDAX,BX第11章DMA控制器JNCJ1INCCH;有进位加到高4位地址;初始化地址寄存器和页面寄存器J1:PUSHAX;保存16位地址OUTDMA+4,AL;预置通道2地址寄存JMPSHORT$+2MOVAL,AHOUTDMA+4,AL;先低字节,后高字节第11章DMA控制器MOVAL,CH;取最高4位地址JMPSHORT$+2ANDAL,0FHOUT08LH,AL;预置通道2对应的页面寄存器;初始化字节计数器MOVAH,DH;取传输扇区SUBAL,AL;乘以256(AL=0)第11章DMA控制器SHRAX,1;右移,即变成乘以128PUSHAX;保存“扇区与128的乘积”MOVBX,6;取软盘基数:每扇区字节数CALLGETPARM;调用取基数子程序MOVCL,AH;返回到AH基数N,保存在CLPOPAX;取出乘积值SHLAX,CL;右移返回值次数DECAX;传输字节值减1第11章DMA控制器PUSHAX;保存字节数OUTDMA+5,AL;预防、置字节数计数器JMPSHORT$+2;MOVAL,AHOUTDMA+5,AL;先低字节,后高字节;判断DMA是否出界STI;开中断POPCX;传输字节数至CX寄存器第11章DMA控制器POPAX;位移地址至AXADDAX,CX;相加,若溢出段界则CF=1POPCX;恢复入口寄存器;开通道2MOVAX,2;清除通道2屏蔽位OUTDMA+10,AL;写屏蔽寄存器RET;返回D—SETENDP;DMA结束返回本节第11章DMA控制器11.3.38237ADMA可编程控制与微机系统的接口电路1.用于将数据从存储器传送到I/O接口的DMA控制电路2.用于将数据从I/O接口传送到内存的接口电路第11章DMA控制器图4.4使用DMA通道实现内存到I/O接口的电路第11章DMA控制器图4.5使用DMA通道实现I/O到内存接口的电路返回本节
本文标题:AMBA总线
链接地址:https://www.777doc.com/doc-658999 .html