DMA传输原理解读课件

上传人:痛*** 文档编号:247321218 上传时间:2024-10-17 格式:PPT 页数:68 大小:1.11MB
返回 下载 相关 举报
DMA传输原理解读课件_第1页
第1页 / 共68页
DMA传输原理解读课件_第2页
第2页 / 共68页
DMA传输原理解读课件_第3页
第3页 / 共68页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,第,6,章,DMA,传输,6.1 DMA,传输原理,6.2 DMA,控制器8237,A,6.3 8237A,的编程使用,1,直接存储器传送,(,Direct Memory AccessDMA),将外设的数据不经过,CPU,直接送入内存储器,或者,从内存储器不经过,CPU,直接送往外部设备,一次,DMA,传送只需要执行一个,DMA,周期(相当于一个总线读写周期),因而能够满足高速外设数据传输的需要。,2,6.1 DMA,传输原理,1.,DMA,控制器,使用,DMA,方式传输时,需要一个专门的器件来协调外设接口和内存储器的数据传输,这个专门的器件称为,DMA,控制器,简称,DMAC。,3,DMAC,内部的寄存器:,地址寄存器,:,存放,DMA,传输时存储单元地址;,字节计数器,:,存放,DMA,传输的字节数,;,控制寄存器,:,存放由,CPU,设定的,DMA,传输方式,控制命令等,;,状态寄存器,:,存放,DMAC,当前的状态,包括有无,DMA,请求,是否结束等,。,4,图,6-1,5,DMAC,在系统中有二种不同的作用,:,总线从模块,:,CPU,对,DMAC,进行预置操作,也就是向,DMAC,写入内存传送区的首地址、传送字节数和控制字时,,DMAC,相当于一个外设接口,称为总线从模块。,总线主模块,:,进行,DMA,传输时,,CPU,暂停对系统总线的控制,,DMAC,取得了对总线的控制权,这时的,DMAC,称为总线主模块。,6,2.,DMA,传输过程,总线请求,:,DMAC,向,CPU,申请使用总线,总线控制转移,:,CPU,同意,DMAC,管理总线,数据传输,:,外设接口和存储器之间传输数据,修改地址和计数器,:为下一次传输做准备,结束处理,:,DMAC,放弃对总线的控制权,以上的过程完全由硬件电路实现,速度很快。,用,DMA,方式进行一次数据传输所经历的时间称为“,DMA,周期”,大体上相当于一次总线读写周期的时间。,7,例:,用,DMA,方式将串行通信口接收到的200字节 的数据存入以,BUFFER,为首地址内存区域,对,DMAC,进行预置:向,DMAC,写入内存首地址,,,传输字 节数(200),传输方向(外设接口内存),控制命令 (允许,DMA,传输)等;,对串行通信接口进行初始化,设置串行通信的参数,允 许串行输入等;,串口每输入一个数据,自动进行,DMA,传输;,最后一个数据传输结束后,,DMAC,发出传输结束信号,EOP。CPU,可以通过查询知道传输已经结束,也可以利 用,EOP,信号申请中断,在中断服务程序里进行结束处理。,DMA,方式传输200字节过程为:1次对,DMAC,初始化,1次对串口初始化,200次,DMA,周期,1次结束处理。,8,8086系统中的,DMA,信号,最小模式,CPU,通过,HOLD,接收,DMA,控制器的总线请求;,在,HLDA,引脚上发出对总线请求的允许信号。,最大模式,通过,RQ/GT0,和,RQ/GT1,引脚接收,DMA,控制器的总线请求,发送对总线请求的允许信号。,RQ/GT0,引脚有较高的优先权。,9,6.2,DMA,控制器8237,A,1 8237,A,芯片的主要特点,有4个完全独立的,DMA,通道,可分别进行编程控制。,每个通道的,DMA,请求均可分别允许和禁止,并对各通道进行 优先级排队。,数据块最大为64,KB,,每传送一个字节后地址自动加1或减1。,DMA,请求可以由外部输入,也可以由软件设置。,可以用级联的方法扩展,DMA,通道数。,可以进行从存储器到存储器的数据传输,用于对存储区域进 行初始化。,10,2 8237,A,的工作方式,(1),单字节传输方式,8237,A,每申请一次总线,进行1个字节传输,然后释放系统总线,一次,DMA,传输结束。,CPU,可以在每个,DMA,周期结束后控制总线,进行数据传输,所以不会对系统的运行产生大的影响。,(2),块传输方式,DMA,控制器获得总线控制权后,可以连续进入多个,DMA,周期,进行多个字节的传输(最多64,K,字节)。,这种方式可以获得最高的数据传输速度。如果一次传输的数据较多,对系统工作可能产生一定的影响。,11,(3),请求传输方式,申请一次总线可以连续进行多个数据的传输。,每传输1个字节后,8237,A,都对外设接口的请求信号 进行测试:,DREQ,端无效,暂停传输;,DREQ,有效,接着进行下一个数据的传输。,允许数据不连续,按照外设的最高速度进行数据传输,使用比较灵活。,12,(4),级联传输方式,几个8237,A,进行级联,一片8237,A,用作主片,其余用 作从片,构成主从式,DMA,系统。,从片收到外设接口的,DMA,请求信号后,向,DMA,控制器 主片申请,再由主片向,CPU,申请。,一片主片最多可以连接四片从片。这样,五片8237,A,构成的二级,DMA,系统,可以得到16个,DMA,通道。,级联时,主片通过软件在方式寄存器中设置为级联 传输方式。从片设置成上面的三种方式之一。,13,3,8237,A,的传输类型,(1),DMA,写传输(,IO,存储器),(2),DMA,读传输(存储器,IO),(3)DMA,检验,(完成校验过程,测试,DMA,控制器的状态)。,(4)存储器到存储器传输,14,6.2.2,8237A,的内部结构和外部连接,8237,A,的内部结构分成二部分:,四个,DMA,通道,和一个,公共控制,部分,15,16,1.,DMA,通道,8237,A,有四个独立的通道(,CH,0,一,CH,3,),每个通道,:,16位地址寄存器;,16位字节计数器;,8位方式寄存器;,1位的,DMA,请求触发器;,1位的屏蔽触发器。,四个通道公用一个控制寄存器和一个状态寄存器。,17,DMA,通道-地址寄存器,由基地址寄存器和当前地址寄存器组成。,对8237编程时,把本通道,DMA,传输的地址初值写入基地址寄 存器,再由8237,A,传送到当前地址寄存器。,当前地址寄存器在每次,DMA,传输后自动加 1或减1。,CPU,可以通过输入指令读出当前地址寄存器值(每次读8位)。基地址寄存器不能被读出,且一直保持初值。,数据块传送完成后,可以把当前地址寄存器的内容恢复为基 地址寄存器保存的初值。(需要在编程时设置“自动预置”方式),18,DMA,通道-字节计数器,字节计数器由基本字节计数器和当前字节计数器组成。,编程时,由指令把,DMA,传输的字节数写入基本字节计数器,继而传送到当前字节计数器(初值要比实际传输的字节数少1),每进行一次,DMA,传输,当前字节计数器自动减1。它的值由0 减到,FFFFH(-1),时,产生计数结束信号,EOP。,当前计数器的值可以由,CPU,通过输入指令分两次读出。,19,2.,读写逻辑,8237,A,在系统总线中作为“从模块”时,接收,CPU,对,IO,接口的读,(IOR#),、写,(IOW#),信号;,对地址总线的低4位(,A,0,A,3,),译码;,片选和,IOW#,信号有效时,把数据总线的内容写入所寻 址的寄存器;,片选和,IOR#,有效时,把选择的寄存器内容送到数据总 线上。,20,2.,读写逻辑,8237,A,在系统总线中作为“主模块”时,DMA,写周期:,读写逻辑产生,IOR#,控制逻辑产生存储器写(,MEMW#),数据从外设接口传送到存储器单元;,DMA,读周期:,读写逻辑产生,IOW#,控制逻辑产生存储器读(,MEMR#),数据从存储器单元传送到外设接口。,21,3.,控制逻辑,DMA,周期内,控制逻辑通过产生控制信号和16位要存取的存储单元地址来控制,DMA,操作步骤。,初始化时,通过对方式寄存器编程,使控制逻辑可以对各个通道的操作进行控制。,22,4,锁存缓冲器(外接),使用8237,A,工作时,需要外接一个八位的地址锁存缓冲电路,它能够储存八位的地址信号,通过可控的三态门连接系统地址总线。,在,DMA,传送之前,8237,A,从,DB0DB7,把存储器地址的,A,8,A,15,送入这个锁存器。,在,DMA,周期里,锁存器将锁存的地址送往系统地址总线的,A,8,A,15,,,同时从,A,0,A,7,引脚发送地址的低八位。,23,5,页面地址寄存器(外接),8237,A,控制了地址总线的16位,所以最多只能连续传送64,K,字节的数据。,为了控制8086系统20位的物理地址,需要外接一个四位的“页面地址寄存器”(,PC,机地址:83,H),页面地址寄存器的值由,CPU,写入,8237,A,发送低16位地址时,高四位的地址从页面地址寄存器发往地址总线的,A16A19,24,6.2.3,8237A,的对外连接信号,8237,A,作为从模块时的引脚信号(1),RESET,复位输入端,高电平有效。复位时,屏蔽寄存器 被置1,其他寄存器均清0。,CS#,片选输入端,低电平有效,由,A4A15,译码得到。为低电平时,8237,A,被选中,,CPU,可以对8237,A,进 行读写(进行预置或读取工作状态)。,A3A0,最低的4位地址线,双向信号引脚。,DMA,控制器 作为从模块时,,A3A0,作为输入端,用来选择,DMAC,内部的16个端口地址。,25,8237,A,作为从模块时的引脚信号(2),IOR#IO,设备读信号,双向、三态、低电平有效。作为从模块时为输入。有效时,,CPU,读,DMA,控 制器内部寄存器的值。,IOW#IO,设备写信号,双向、三态、低电平有效。作为从模块时输入。有效时,,CPU,向,DMA,控制 器的内部寄存器中写入信息(进行编程)。,DB7DB08,位双向三态数据线。,DMA,控制器作为从 模块时,,CPU,通过,DB7DB0,对8237,A,进行读写。,26,8237,A,作为总线主模块时的引脚信号,(1)地址信号,A3A0 DMAC,为主模块时,提供存储器最低4位地址 (输出)。,A7A4-,提供存储器的中间4位地址(输出),DB7DB0,输出当前地址寄存器中的高8位地址,并通过信号,ADSTB,打入外部锁存器,和,A7A0,输出的低8位 地址一起构成16位地址。,27,地址信号,ADSTB,地址选通信号,输出,高电平有效。信号有效 时,将,DMAC,高8位地址经,DB7DB0,送到外部 锁存器。,AEN,地址允许信号,输出,高电平有效。,把高12位地址(地址锁存器中高8位、页面地址寄 存器最高4位)一起送到地址总线上,与芯片直接 输出的低8位地址共同构成20位内存地址。,AEN,信号也使与,CPU,相连的地址锁存器无效。保证 地址总线上的信号来自,DMA,控制器,而不是来自,CPU。,28,(2)对存储器/外设接口的读写控制信号,IOR#,作为主模块时,,IOR#,输出外设接口的读控制信 号,信号有效时,,IO,接口部件中的数据被读出 送往数据总线。,IOW#,作为主模块时,,IOW#,输出外设接口的写控制信 号,信号有效时,存储器中读出的数据被写入,IO,接口中。,READY,准备就绪信号,输入,高电平有效。所用的存 储器或,IO,接口的速度较慢时,使,READY,处于 低电位,8237,A,会自动插入等待周期。数据准备 就绪时,,READY,端为高电平,表示可以进行数 据传输。,29,(2)对存储器/外设接口的读写控制信号,MEMR#,存储器读信号,低电平有效,输出,。,信号有效 时,所选中的存储器单元的内容被读到数据总 线。,MEMW#,存储器写信号,低电平有效,输出。信号有 效时,数据总线上的内容被写入选中的存储单 元。,30,(3),DMA,联络信号,DREQ,通道,DMA,请求信号,输入。每个通道对应一个,DREQ,信号端,它的极性可以 通过编程来选择。外设接口要求,DMA,传输时,使,DREQ,处于有效,,DMAC,控制器送来,DMA,响应信号,DACK,以后,接口撤除,DREQ,的有效电平。,DACK,通道
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!