您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 微机接口技术课件[dma]
2009-10-27微机接口技术第六章DMA接口技术本章概要DMA系统概述8237内部结构和引脚功能8237的工作方式及编程应用;2009-10-27DMA系统概述DMA概述定义:DirectMemoryAccess直接存储器存取方式:DMA方式是用硬件实现存储器与存储器之间或存储器与I/O设备之间直接进行高速数据传送,不需要CPU的干预。这种方式通常用来传送数据块。类比:DMA=CPU存储器读取的“代理人”。DMA控制器结构DMA控制器数据端口状态/控制端口地址寄存器计数器控制/状态寄存器CPU存储器HOLDHLDA数据缓冲寄存器DMA请求触发器输入设备DMA请求DMA响应Ready•地址寄存器;字节计数器;操作方式寄存器;•引出线:地址总线,数据总线,四个控制数据传送方式信号,与IO联络信号,与CPU联络信号等DMA传输流程静态说明CPUDMAC内存外设DMA请求DREQDMA响应DACK总线响应总线请求DMA的三种传输方式字节传送:在单字节传输方式下,DMA控制器每次请求总线只传送一个字节数据,传送完后即释放总线控制权。块传送:块传输方式是指DMA控制器每次请求总线连续传送一个数据块,待整个数据块全部传送完成后再释放总线控制权。请求传送:此方式与块传输方式基本类似,不同的是每传输完一个字节,DMA控制器都要检测由I/O接口发来的DMA请求信号是否仍然有效,如果该信号仍有效,则继续进行DMA传输;否则,就暂停传输,交还总线控制权给CPU,直至DMA请求信号再次变为有效,数据块传输则从刚才暂停的那一点继续进行下去。字节传送方式允许DMADMA请求?DMAC发BUS请求CPU响应DMA放弃BUSDMAC控制传一个字节字结束否?放弃总线中断请求NDMA放总线NYY块传送方式允许DMADMA请求?DMAC发BUS请求CPU响应DMA放弃BUSDMAC控制传一个字节块结束否?放总线中断请求EOP信号?NYYN请求传输方式允许DMADMA请求?DMAC发出BUS请求CPU响应DMA放弃总线DMAC控制传一个字节块结束否?放总线中断请求YDRQ请求?Y放总线NNY2009-10-278237内部结构和引脚功能概述8237是具有4个独立DMA通道的可编程DMA控制器(DMAC),它使用单一的+5V电源,单相时钟,40引脚双列直插式封装。在实际应用中,8237必须与一片8位锁存器一起使用,才能形成一个完整的4通道DMA控制器。8237经初始化后,可以控制每一个通道在存储器和I/O口之间以最高1.6兆波特的速率传送最多达64KB的数据块,而不需要CPU的介入。8237提供4种传送方式:单字节传送方式、数据块传送方式、请求传送方式和级连传送方式。内部结构地址寄存器;字节数寄存器;操作方式寄存器;外部引脚DREQ0DREQ1DREQ2DACK3403938373635343332313029282726252423222120191817161514131211109876543218237/8237-2(NOTE11)READYHLDAADSTBAENEOPDB4A3A2A1A0VCC(+5V)DB0DB1DB2DB3HRQCSCLKRESETDACK2DREQ3DACK0DACK1DB5DB6DB7(GND)VCCA4A5A6A7MEMWMEMRIOWIOR外部引脚8237A外部引脚共40个,各引脚功能特性如下:CLK:时钟频率,为输入信号。它控制DMA数据传送的速率及8237A内部操作的定时。RESET:复位信号,为输入信号,高电平有效。READY:准备就绪信号,为输入信号,高电平有效。ADSTB:地址选通信号,为输出信号,高电平有效。AEN:地址允许信号,为输出信号,高电平有效。MEMR:寄存器读信号,为输出信号,低电平有效。当此信号有效时,被选中的寄存器单元的内容被读到数据总线上。MEMW:寄存器写信号,为输出信号,低电平有效。当此信号为低电平时,数据总线上的内容被写入被选中的寄存器单元。外部引脚(续)CS:片选信号,为输入信号。低电平有效。IOR:I/O设备读信号,为双向信号,低电平有效。IOW:I/O设备写信号,双向信号,低电平有效。EOP:DMA传输结束信号,双向信号,低电平有效。DREQ:DMA请求信号,属输入信号,高电平有效。DACK:DMA响应信号,属于输出信号,高电平有效。HRQ:总线请求信号,属于输出信号,高电平有效。HLDA:总线响应信号,属于输入信号,高电平有效。A7~A4:高4位地址线,双向信号在进行DMA传输时提供高4位地址。A3~A0:低4位地址线,双向信号。DB7~DB0:8位双向数据线。2009-10-278237的工作方式及编程应用内部寄存器配置内部逻辑包括定时和控制逻辑、命令控制逻辑、优先级控制逻辑以及寄存器组等部分,其中与编程直接关联的是内部寄存器组。8237A-5内部有四个独立通道,每个通道有五个寄存器(工作方式、基值地址、当前地址、基值字节计数、当前字节计数),另外还有四个通道共用的命令寄存器和状态寄存器,以及对DRQ信号的屏蔽寄存器和DMA服务请求寄存器等。工作方式寄存器D7D6D5D4D3D2D1D0模式选择随机请求传输模式00单字节传输模式001111非传输模式级联传输模式地址增量选择地址加10地址减11自动预置功能选择禁止0允许1通道选择0选0#Channel0011101选1#Channel选2#Channel选3#Channel传输类型选择00校验传输001111XX写传输读传输非法D7D6=11控制命令寄存器D7D6D5D4D3D2D1D0DACK有效电平低电平有效0高电平有效101DREQ有效电平高电平有效扩展写MEM.011001Enable8237A低电平有效不扩展写0扩展写1D3=1X优先级类型01固定优先级循环优先级禁止允许Channel0地址保持不变XDisableEnableD0=08237A工作Disable8237A时序类型01X普通时序压缩时序D0=1请求寄存器8237ADMA请求REG.格式(写9号)D7D6D3D2D1D0D5D4运行控制不用0清除DMA请求位建立DMA请求位100Channel0001111Channel1Channel2Channel3屏蔽位寄存器(单通道)8237A屏蔽REG.格式(单一位)(写A号)D7D6D3D2D1D0D5D4运行控制不用0清除MASK位建立MASK位100Channel0001111Channel1Channel2Channel3通道选择屏蔽位寄存器(四通道)8237A全4位MASKREG.格式(写F号)D7D6D3D2D1D0D5D4不用0清Channel3M位设Channel3M位100110清Channel2M位1设Channel2M位清Channel0Mask位设Channel0Mask位清Channel1Mask位设Channel1Mask位运行状态寄存器8237A状态REG.格式(读8号)D7D6D3D2D1D0D5D4通道3有DMA请求11:通道0计数结束通道2有DMA请求1通道1有DMA请求1通道0有DMA请求11:通道1计数结束1:通道2计数结束1:通道3计数结束状态字其他寄存器先/后触发器:对于16位寄存器写时,要分两次写入,先/后触发器就是用来控制写入次序。为0态时,写入低8位后自动置1,再写入高8位后自动清0.暂存寄存器:保存暂态信息,RESET清除。软命令:总清除命令、清屏蔽寄存器命令、清先后触发命令。……(具体参考课本及相关手册说明)编程步骤输出主清除命令,使8237A进入初始状态;将DMA传送的存贮器起始地址写入基地址和当前地址寄存器;将要传送的字节数写入基字节寄存器和当前字节计数器;写模式寄存器,规定8237A的工作方式等;写命令寄存器,规定各通道优先级及DREQ、DACK的有效电平等;写屏蔽寄存器,规定开放和屏蔽的通道;写请求寄存器,发DMA请求命令。8237A各寄存器的端口地址8237与CPU的连接8237的级联方式
本文标题:微机接口技术课件[dma]
链接地址:https://www.777doc.com/doc-3852897 .html