收藏 分销(赏)

第6章-DMA机制(课堂PPT).ppt

上传人:丰**** 文档编号:7461952 上传时间:2025-01-05 格式:PPT 页数:30 大小:1.33MB 下载积分:12 金币
下载 相关 举报
第6章-DMA机制(课堂PPT).ppt_第1页
第1页 / 共30页
第6章-DMA机制(课堂PPT).ppt_第2页
第2页 / 共30页


点击查看更多>>
资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,第6章 DMA机制,1,2,概述,DMA(Direct Memory Access),技术是一种高速的数据传输方式,允许在外部设备和存储器之间、存储器与存储器之间等,直接传输,数据。,DMA,方式传输特点,中断方式下,,CPU,需要执行多条指令,占用一定的时间;而,DMA,传送,1,个字节只占用,CPU,的,1,个总线周期。,DMA,的响应速度比中断快。,I,O,设备发出中断请求后,,CPU,要执行完当前指令后才给予响应并且要保护现场,而,DMA,请求是在总线周期执行完后即可响应。,对于快速的,I,O,设备,中断方式,其传输速度已无法满足要求。必须采用,DMA,方式来完成快速,I,O,设备的数据传送的操作。,3,DMA,传送过程,HOLD,和,HLDA,用于,DMA,方式请求和响应,,DMAC,(,DMA,控制器)是,DMA,传送的核心电路。,DMA,传送过程一般分为如下四个阶段:,申请阶段;,响应阶段;,数据传送阶段;,传送结束阶段。,4,6.1 S3C2410,芯片的,DMA,方式,S3C2410,芯片的,DMA,系统拥有,4,个独立通道的,DMA,控制器,,每个通道的,DMA,控制器都可以控制处理芯片内部与内部之间、芯片内部与外部之间、芯片外部与外部之间的数据传输。,每一个,DMA,通道都可以处理以下,4,种情况的,DMA,操作:,源设备和目的设备都在内部系统总线上。,源设备在内部系统总线上,目的设备在外部总线上。,源设备在外部总线上,目的设备在内部系统总线上。,源设备和目的设备都在外部总线上。,5,6.1.1 DMA,请求源,请求源,0,请求源,1,请求源,2,请求源,3,请求源,4,通道,0,nXDREQ0,UART0,SDI,Timer,USB,设备,EP1,通道,1,nXDREQ1,UART1,I2SSDI,SPI0,USB,设备,EP2,通道,2,I2SSDO,I2SSDI,SDI,Timer,USB,设备,EP3,通道,3,UART2,SDI,SPI1,Timer,USB,设备,EP4,在,H/W,请求模式(硬件请求模式)下,,S3C2410,芯片中的,4,个,DMA,通道的每一个通道都可以从,5,个,DMA,源中选择一个,DMA,请求源。但在,S/W,请求模式(软件请求模式)下,,DMA,请求源就没有任何意义。,6,6.1.2 DMA,模式,S3C2410,芯片涉及,DMA,的操作模式有三类:,DMA,请求模式,:表明一个,DMA,操作是由谁发起的。,S3C2410,芯片支持,2,种,DMA,请求模式:,S/W,请求模式,H/W,请求模式,DMA,传输模式,:描述,DMA,操作触发后,数据传输的同步。,DMA,传输模式也有,2,种:,询问模式(,demand mode,),握手模式(,handshake mode,),DMA,服务模式,:描述了传输操作如何结束。,单独服务模式,整体服务模式,7,6.1.3 DMA,操作过程,S3C2410,芯片的,DMA,操作可以用包含三个状态的,有限状态机(,finite state machine,,,FSM,),来表述,具体描述如下,状态,1,(,state-1,):,初始状态。在初始状态中,DMA,控制器等待,DMA,请求,如果有,DMA,请求,则进入状态,2,(,state-2,)。初始状态下,,XnXDACK,信号(,DMA,应答信号)和,INT REQ,信号(终点请求信号)均为,0,。,状态,2,(,state-2,):,XnXDACK,信号变为,1,。并且,DMA,终点计数器(,CURR_TC,)从,DMA,控制器(,DCON,)中加载其,19,:,0,位的内容作为计数初值。注意:,XnXDACK,信号一直保持为,1,,直至后面被清除。,状态,3,(,state-3,):,在这个状态下,进入,DMA,基本传输操作。描述,DMA,基本操作的子有限状态机(,sub-FSM,)被启动。一个基本的,DMA,传输操作完成从源地址读取数据,然后将其写入目的地址,。,DMA,控制器如果遇到以下任何一种情况,都将清除,DMA ACK,信号。,(,1,)在整体服务模式下,计数器(,CURR_TC,)变成,0,。,(,2,)在单独服务模式下,基本的,DMA,传输操作完成。,8,注意:,在单独服务模式下,主状态机的三个状态执行完后,,DMA,通道就会停止操作,然后等待另一个,DMA REQ,信号。如果有另一个,DMA REQ,信号,,DMA,将重复这样的三个状态。因此,每个基本的,DMA,传输过程中设置,DMA ACK,信号有效或无效。,在整体服务模式中,主状态机一直在状态,3,等待,直到计数器(,CURR_TC,)值变成,0,。所以,DMA ACK,信号在这个传输过程中有效,直到计数器(,CURR_TC,)为,0,,,DMA ACK,信号无效。,但是不管服务模式如何,只有计数器(,CURR_TC,)变成,0,,中断请求信号,INT REQ,才有效。,6.1.4 DMA,时序,基本的,DMA,时序,一个基本的,DMA,传输操作是指在,DMA,操作期间执行成对的读写周期。,在所有模式下,,XnXDREQ,信号和,XnXDACK,信号的启动时间和延迟时间是一致的。,如果,XnXDREQ,信号完成时,恰好遇到一个新的启动时间,它将会被同步,2,次后再使,XnXDACK,信号有效。,在,XnXDACK,信号有效之后,,DMA,请求总线,如果其获得总线控制权,就执行,DMA,传输操作。在,DMA,传输操作完成后,,XnXDACK,被设无效。,9,10,询问模式,/,握手模式时序,询问模式和握手模式取决于,XnXDREQ,信号和,XnXDACK,信号之间的关系。,在询问模式下,若,XnXDREQ,信号一直有效,前一个基本的,DMA,传输操作结束后,下一个基本的,DMA,传输操作会立即开始,;,若,XnXDREQ,信号不是一直有效,那么需要等待,XnXDREQ,信号有效后,再在,XnXDACK,信号有效后启动一次,DMA,基本传输操作。,在握手模式下,一个基本的,DMA,传输操作结束后,,DMA,控制器要判断,XnXDREQ,信号的状态。如果,XnXDREQ,无效,,DMA,控制器在经过,2,个周期后使,XnXDACK,无效。否则,就需等待,直到,XnXDREQ,信号无效。,10,11,单发传输,/,阵发传输时序,S3C2440A,芯片的一个基本,DMA,传输操作中,所传输的数据大小有,2,种:单发传输的,1,个数据单位和振发传输的,4,个数据单位。,单发传输时,,一个基本的,DMA,传输操作完成一次读和一次写。,阵发传输时,,一个基本的,DMA,传输操作完成四次连续读和四次连续写。,12,外部,DMA,请求,/,应答时序,有三种类型的外部,DMA,请求,/,应答协议(单独服务请求,单独服务握手和整体服务握手模式)。每种模式都定义了像,DMA,请求和应答信号和这些协议如何相关。,询问模式下单独服务,13,握手模式下整体服务,握手模式下单独服务,14,6.2 S3C2410,芯片的,DMA,寄存器,S3C2410,芯片中有,4,个独立的,DMA,通道,每个,DMA,通道均有,9,个控制寄存器,(,其中,6,个用于控制,DMA,传输,,3,个用于监视,DMA,控制器的状态,),,因此,其,DMA,控制器共有,36,个寄存器,DMA,源起始地址寄存器,(DISRCn),DMA,源起始控制,寄存器(DISRCCn),DMA,目的起始地址寄存器,(DIDSTn),DMA,目的起始控制寄存器,(DIDSTCn),DMA,控制寄存器,(DCONn),DMA,屏蔽寄存器,(DMASKTRIG),DMA,状态寄存器,(DSTATn),DMA,当前源地址寄存器,(DCSRCn),DMA,当前目的地址寄存器,(DCDSTn),15,6.2.1.,传输控制寄存器,用于控制,DMA,传输操作的寄存器有,6,个,主要用来控制,DMA,传输时的,:,源地址起始值,目的地址起始值,数据块长度,DMA,模式等信息。,16,(,1,)DMA源起始地址寄存器,DMA,源起始地址,寄存器(DISRCn,)共有,4,个:,DISRC0,、,DISRC1,、,DISRC2,、,DISRC3,,分别对应,4,个独立的,DMA,通道。,这,4,个寄存器地址分别为,0 x4B000000,、,0 x4B000040,、,0 x4B000080,、,0 x4B0000C0,,复位后的初值为,0 x00000000,,且都是可读可写的。,引脚名称,位,描述,初始值,S_ADDR,30:0,DMA,传输的源数据起始地址。若,CURR_SRC,是,0,并且,DMA ACK,是,1,,这些位的值仅加载到,CURR_SRC,0 x00000000,17,(,2,),DMA,源起始控制寄存器,DMA,源,起始,控制寄存器,(DISRCCn,)共有,4,个:,DISRCC0,、,DISRCC1,、,DISRCC2,、,DISRCC3,,分别对应,4,个独立的,DMA,通道。,这,4,个寄存器地址分别为,0 x4B000004,、,0 x4B000044,、,0 x4B000084,、,0 x4B0000C4,,复位后的初值为,0 x00000000,,且都是可读可写的。,引脚名称,位,描述,初始值,LOC,1,位,1,用来选择,DMA,源的位置。,0=,源在系统总线,(AHB),上;,1=,源在外设总线,(APB),上。,0,INC,0,位,0,被用于选择地址增加。,0=,增加;,1=,固定。,如果为,0,,每次传输以后,地址增加相应的数据大小;如果为,1,,每次传输以后,地址保持不变。,0,18,(,3,),DMA,目的起始地址寄存器,DMA,目的,起始,地址寄存器,(DIDSTn,)共有,4,个:,DIDST0,、,DIDST1,、,DIDST2,、,DIDST3,,分别对应,4,个独立的,DMA,通道。,这,4,个寄存器地址分别为,0 x4B000008,、,0 x4B000048,、,0 x4B000088,、,0 x4B0000C8,,复位后的初值为,0 x00000000,,且都是可读可写的。,引脚名称,位,描述,初始值,D_ADDR,30:0,用于传输的目的数据基址(开始地址)。如果,CURR_,SRC,为,0,且,DMA ACK,为,1,,该位值将被装载到,CURR_,SRC,。,0,19,(,4,),DMA,目的起始控制寄存器,DMA,目的,起始控制,寄存器,(DIDST,C,n,)共有,4,个:,DIDSTC0,、,DIDST,C,1,、,DIDST,C,2,、,DIDST,C,3,,分别对应,4,个独立的,DMA,通道。,这,4,个寄存器地址分别为,0 x4B00000,C,、,0 x4B00004,C,、,0 x4B00008,C,、,0 x4B0000C,C,,复位后的初值为,0 x00000000,,且都是可读可写的。,20,引脚名称,位,描述,初始值,LOC,1,用于选择,DMA,目的的位置。,0=DMA,目的在系统总线,(AHB),上。,1=DMA,目的在外设总线,(APB),上。,0,INC,0,用于选择目的地址是否增加。,0=,增加;,1=,固定。,如果该位为,0,,每次传输以后,地址增加,1,(依据数据宽度);如果该位为,1,,每次传输以后,地址保持不变。,0,DIDSTn,寄存器的格式,21,(,5,),DMA,控制寄存器,DMA,控制寄存器(,DCONn,)共有,4,个:,DCON0,、,DCON1,、,DCON2,、,DCON3,,分别对应,4,个独立的,DMA,通道。,这,4,个寄存器地址分别为,0 x4B000010,、,0 x4B000050,、,0 x4B000090,、,0 x4B0000D0,,复位后的初值为,0 x00000000,,且都是可读可写的。,22,引脚名称,位,描述,初始值,DMD_HS,31,用来选择,DMA,传输模式。,0=,选择请求模式;,1=,选择握手模式。,0,SYNC,30,用来选择,DREQ/DACK,同步信号。,0=DREQ/DACK,与,PCLK(APB,时钟,),同步。,1=DREQ/DACK,与,HCLK(AHB,时钟,),同步。,0,INT,29,用来使能,/,不使能,CURR_TC,产生,中断。,0=,不使能;,1=,使能。,0,TSZ,28,用来选择基本,DMA,传输的大小。,0=,执行单元传输;,1=,执行阵发长度为,4,的,DMA,传输。,0,SERVMODE,27,用来选择服务模式。,0=,单独服务模式;,1=,整体服务模式。,0,HWSRCSEL,26:24,各,DMA,通道请求源选择位。,通道,0,:,000=nXDREQ0,;,001=UART0,;,010=SDI,;,011=Timer,;,100=USB device EP1,。,通道,1,:,000=nXDREQ1,;,001=UART1,;,010=I2SSDI,;,011=SPI,;,100=USB device EP2,。,通道,2,:,000=I2SSDO,;,001=I2SSDI,;,010=SDI,;,011=Timer,;,100=USB device EP3,。,通道,3,:,000=UART2,;,001=SDI,;,010=SPI,;,011=Timer,;,100=USB device EP4,。,000,23,SWHW_SEL,23,用来选择,S/W,还是,H/W,模式。,0=S/W模式;1=H/W模式。,0,RELOAD,22,设定重装载开关选项,0=,当前,DMA,传输完后,终点计数器自动重载;,1=,当前,DMA,传输完后,,DMA,通道被关闭。,0,DSZ,21:20,传输数据大小单位。,00=,字节;,01=,半字;,10=,字;,11=,保留。,00,TC,19:0,初始,DMA,传输计数值。,传输的实际字节数由以下公式计算:,DSZ x TSZ x TC,。,0 x00000,24,(,6,),DMA,屏蔽触发寄存器,DMA,屏蔽触发寄存器(,DMASKTRIGn,)共有,4,个:,DMASKTRIG0,、,DMASKTRIG1,、,DMASKTRIG2,、,DMASKTRIG3,,分别对应,4,个独立的,DMA,通道。,这,4,个寄存器地址分别为,0 x4B000020,、,0 x4B000060,、,0 x4B0000A0,、,0 x4B0000E0,复位后的初值为,0 x00000000,,且都是可读可写的。,25,引脚名称,位,描述,初始值,STOP,2,用来停止,DMA,操作。,0=,正常;,1=,当一个基本操作完成后立即停止,DMA,操作。,0,ON_OFF,1,DMA,通道开关位。,0=,关闭,DMA,通道;,1=,开启,DMA,通道,。,0,SW_TRIG,0,用来在软件模式下触发,DMA,通道。,0=,不触发;,1=,触发,DMA,操作。,0,26,6.2.2,状态寄存器,用来记录,DMA,传输状态的寄存器有,3,个,可以通过这些寄存器来了解,DMA,传输时的信息,以便于进行控制。,(,1,),DMA,状态寄存器,DMA,状态寄存器(,DSTATn,)共有,4,个:,DSTAT0,、,DSTAT1,、,DSTAT2,、,DSTAT3,,分别对应,4,个独立的,DMA,通道。,这,4,个寄存器地址分别为,0 x4B000014,、,0 x4B000054,、,0 x4B000094,、,0 x4B0000D4,,复位后的初值为,0 x00000000,,且都是可读可写的。,27,(,1,),DMA,状态寄存器,引脚名称,位,描述,初始值,STAT,21:20,DMA,控制器的状态。,00=,指示,DMA,控制器准备好接收下一个,DMA,请求;,01=,指示,DMA,控制器忙。,0,CURR_TC,19:0,当前,DMA,计数器的值。,注:在每一次当前传输结束后该值减,1,。,0 x00000,28,(,2,),DMA,当前源地址寄存器,引脚名称,位,描述,初始值,CURR_SRC,30:0,当前,DMA,通道的,源地址值。,0 x00000000,DMA,当前源,地址,寄存器,(DCSRCn,)共有,4,个:,DCSRC0,、,DCSRC1,、,DCSRC2,、,DCSRC3,,分别对应,4,个独立的,DMA,通道。,这,4,个寄存器地址分别为,0 x4B000018,、,0 x4B000058,、,0 x4B000098,、,0 x4B0000D8,,复位后的初值为,0 x00000000,,且都是可读可写的。,29,(,3,),DMA,当前目的寄存器,DMA,当前目的寄存器(,DCDSTn,)共有,4,个:,DCDST0,、,DCDST1,、,DCDST2,、,DCDST3,,分别对应,4,个独立的,DMA,通道。这,4,个寄存器地址分别为,0 x4B00001C,、,0 x4B00005C,、,0 x4B00009C,、,0 x4B0000DC,,复位后的初值为,0 x00000000,,且都是可读可写的。,引脚名称,位,描述,初始值,CURR_DST,30:0,当前,DMA,通道的,目的地址值,0 x00000000,30,6.3 DMA操作编程,启动一次,DMA,操作的步骤如下,设置,DMA,操作的源地址,设置,DMA,操作的源地址位置及源地址是否增,1,设置,DMA,操作的目的地址,设置,DMA,操作的目的地址位置及目的地址是否增,1,设置,DMA,工作方式及,DMA,传送的数据长度,开放,DMA,操作结束中断,使能,DMA,操作,启动,DMA,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服