DMA相关知识汇总.docx
- 文档编号:699879
- 上传时间:2022-10-12
- 格式:DOCX
- 页数:7
- 大小:38.63KB
DMA相关知识汇总.docx
《DMA相关知识汇总.docx》由会员分享,可在线阅读,更多相关《DMA相关知识汇总.docx(7页珍藏版)》请在冰豆网上搜索。
DMA相关知识汇总
DMA相关知识
直接存储器访问(DMA模块是一种不需要CPU干涉而实现外设与内存之间的数据交换的方式。
直接存储器访问就是用硬件实现存储器与存储器之间,存储器与I/O口设备之间进行高速数据传送,极大的提高了批量数据的传送速度。
实现DMA传送的关键部位是DMA空制器(DMA)DMAC口CPU都可以控制系统总线,从而控制总线的发送信息。
但是同一时刻,系统总线只能接受一个部件的空制。
由这两个部件之间的“联络信号”控制实现的。
DMA传送期间,CPU让出总线控制权,这可能影响诸如中断请求的及时响应和处理,同时DMA传送方式的高速度是以增加系统的复杂性和成本为代价的。
DMA模块的核
心其实是一个与地址控制逻辑紧密关联的状态机,在数据传输过程中让数据块自动的重新配置,就好像两个缓冲器之间打乒乓球一样,我们把这种机制也叫作DMA勺乒乓机制。
1.DMA主要特征如下:
1.具有独立中断控制6路DMAS道。
2.可作为DMA专送的触发信号有:
ADC序列发生器1和序列发生器2;
多路缓冲器串口McBSPA口McBSPB勺发送和接收;
XINT1〜7禾口XINT13;
CPU定时器;
ePWM〜6,ADCSOC和ADCSOC信号;
软件强制;
3.数据源及目标:
L4〜L716KX16位SARAM
所有XINTF区域;
ADC存储器;
McBSP-A和McBSP-戏送及接收数据缓冲器;ePWM〜16/HRPWM〜16处在外射单元3的寄存器。
4.字长:
16位或32位;
5.流量:
4周期每字;
2.DMA传送过程大致有以下几个步骤:
1•当外设输入数据准备好,外设向DMA发出一个选通信号,将数据送到数据端口;向DMA发出请求;
2.DMA空制器向CPU发出总线请求信号(HOLD高电平;
3.CPU在现行总线周期结束后响应,向DMA发出响应信号(HLDA)高电平。
4.CPU待该总线周期结束时,放弃对总线控制,DMA控制器接管三态
总线,接口将数据送上数据总线,并撤销DMA青求。
5.内存收到数据以后,给DMA-个回答,于是DMA修改地址指针,改变传送字节数,检查传送是否结束,没有结束,下次接口准备好数据,再进行一次新的传输。
6•当计数值为0,DMA传输过程便告结束。
DMA控制器撤销总线请求(HOLD变低),在下一个时钟周期上升沿使总线响应HLDA变低,DMA释放总线,CPU取得总线控制权。
3.F28335的DMA模块的触发机制
在外设中断触发的时候,首先通过各自通道的模式寄存器
(MODE.CHX的外设中断触发源的选择位(MODE.CHX(PERINTSEL)来选择触发源,,有效的中断触发后,控制寄存器的外设中断触发标志位(PERINTFLG会被置位,如果相应DMA通道的模式寄存器中的外设中断允许位(MODE.CHXJPERINTE]是使能的,并且控制寄存器中运行状态位(CONTROL.CHx[RUNSTS是允许的,该DMA!
道就能响应数据传输服务了,在接收完一个外设中断触发信号后,DMA会自
动的发一个清除信号给中断源,这样后续的中断事件就会接着响应。
4.F28335的DMA模块的流水线机制
DMA进行数据传输时采用4级流水线,将数据传输主要分成如下工序:
产生数据源地址,输出数据源地址,读数据源数据,产生目的源地址,输出目的源地址,写目的源数据;例外情况:
1.当将McBSP乍为数据源时,读取McBSPDD寄存器的值时,会拖延DMA一个时钟周期
2.在每次数据传输之前要增加一个周期的延迟;
3.当从CH1高优先级中断返回时也会周期延迟;
4.32位传输速度是16位传输速度的两倍,传输一个32位的字与传输一个16位的字所花的时间是一样的;
5.与CPU的冲突可能增加延迟时间。
4.通道优先级
1.六个DMA!
道具有2种优先级方案:
循环优先级和CH1高级优先级
方案。
循环优先方案
在此模式下所有DMA通道具有相同的优先级,且被使能的DMA通道以如下循环顺序进行访问:
CH仔CHACHSCH4>CH5>CH6>CH1…。
在这种情况下,当一个通道完成一次突发传送,转而执行下一个通道,用户可以为每个通道设定每次突发传送的数据大小,一旦CH6被执行完,如果没有其他被挂起的DMA通道,那么进入空闲状态。
在空闲状态下,CH1如果使能)将首先被执行,然而如果此时正在执行通道X,那么通道X到通道6之间被挂起的通道将先于CH1被执行,即将所有的通道具有相同的优先级。
另外,通过DMACTL[PRIORITYRESET可将循环状态机复位到空闲状态。
CH1高优先级方案
在此模式下,CH1通道具有最高优先级,一旦CH1触发到来,其他通道完成当前字节传送后(一次突发传送未完成),此通道的执行被终止,CH1通道被执行,CH1执行完成后继而执行刚才中断的通道。
此模式下CH1具有最高的优先级,而其他通道仍遵循循环优先级方案:
高优先级:
CH1
低优先级:
CH2aCHACHACHACH6^CH1…
5.地址指针及发送控制
DMA模块的内部状态机是两级嵌套的循环解构,当一个外部设备的中断触发信号到来时,内部循环开始一次突发传送。
一次突发传送被定义为一次传送的最小单位,可通过BURST_SIZE内部循环次数),
寄存器为每个通道设定突发传送的数据量。
在突发传送开始前,
BURST_SIZE勺值被加载至UBURES_COU寄存器中,每次完成一个字
的传送,BURES_COUNT1,直到归零时表明本次突发传送结束。
BURST_SIZ允许在一次突发传送中最多传送32个16位的字。
可通过TRANSFER_SIZE外部循环次数)寄存器可设置每个外环的尺寸,并且定义在一次传送过程中突发传送的循环次数,由于TRANSFER_SIZ是一个16位的寄存器,所以在一次传送过程中总数
据量可满足任何传送要求。
在每次传送的开始和结尾,可以产生一次
CPU中断,这是由MODE.CHx[CHINTMODE决定的
在MODE.CHx[CHINTMO位默认设置下,DMA在一次外设中断触
发下仅产生一次突发传送。
当此次突发传送结束后,及时当前通道的
触发信号再次到来,状态机也将根据优先级顺序移动到下一个通道,这样可防止一个通道独占DMA、线。
如果所要传输的数据一次突发传送无法完成,则通过设置MODE.CHxQNESH位来完成整个传输过程,不过,在此模式下会导致一次触发事件会占用绝大部分的DMA带宽
6.DMA传输配置
1.数据传输单位。
(1)字节(Byte):
—个字节是DMAS道最小的数据传输单位;
(2)单元(Element):
若干个字节构成的数据传输单位称为一个单元,一个单元可以是8位、16位或32位的。
一个单元的传输是不能被中断的。
(3)帧(Frame):
若干个单元构成的数据传输单位称为一帧。
在一帧的传输过程中不能被中断。
(4)块(Block):
若干个帧构成的数据传输单位称为一个块,每个
通道一次或多次传输一个块。
在块的传输过程中可以被中断。
对于
DMA的每个通道,可以定义一块中包括帧的个数,一帧中单元的个数,一个单元中字节的个数。
2.数据打包
DMA控制器具有数据打包功能,比如选择8比特的数据传输而目的端口是32位的数据总线,可以将4个8比特的数据片打包成一个32比特的数据包进行传输,这样会提高DMA勺传输速率。
DMA空制器的数据打包功能通过参数寄存器DMACSD中的DST(SRC)PAC字段设定。
当DST(SRC)PACKM,不打包;
当DST(SRC)PACK=时,对数据打包后再传输。
3.端口
DMA通道传输的目的端口和源端口由参数寄存器DMACSDI中的
DST(SRC字段来确定。
当DST(SRC)=xxOO时,目的(源)端口为SARAM
当DST(SRC)=xx01时,目的(源)端口为DARAM
当DST(SRC)=xx10时,目的(源)端口为EMIF;
当DST(SRC)=xx11时,目的(源)端口为Peripheral。
4.数据源和目的地址
DM臆制器采用字节地址,一个DMA通道的数据源起始地址由源起始地址寄存器DMACSSA和DMACSSA0定,其中DMACSSAL放低16位地址,DMACSSA存放高位地址;目的起始地址由目的起始地址寄存器DMACDSA和DMACDSA指定,其中DMACDSA存放低16位地址,DMACDSAU放高位地址。
DMA通道在数据传输过程中的地址修改方式由DMACC寄存器中的
DST(SRC)AMOD字段确定。
当DST(SRC)AMODE二时,目的(源)地址为固定地址,用于单元的传输;
当DST(SRC)AMODE=0fl,目的(源)地址在每个单元传输完后自动增加。
根据数据的位数是8位、16位还是32位,地址分别增加1、2或4。
当DST(SRC)AMODE二时,目的(源)地址在每个单元传输完后自动增加一个索引值,索引值由单元索引寄存器DMACEI/DMACS确定。
当DST(SRC)AMODE二时,目的(源)地址在每个单元传输完后按单元索引和帧索引自动增加,索引值由单元索引寄存器DMACEI/DMACSEI和帧索引寄存器DMACFI/DMACS确定,又称为双索引。
七.通道和端口
DMA空制器有6个通道,用于4个标准端口之间的数据传送,每个通道可以从某个端口读取数据,也可以将数据写入某个端口。
每个
通道有一个FIFO缓冲区。
如图所示,使数据的传输包括两个阶段:
端口读取和端口写入。
DMA先从源端口读取数据,并将其放到通道的FIFO缓冲区里,然后再从FIFO缓冲区取出写入目的端口。
h=O,1,2,3A5
DMA空制器的寄存器有两套:
一套是配置寄存器,供CPU写入所
需的配置值;另一套是工作寄存器,供DMAT作时使用。
所以,DMA通道正在进行数据传输时,CPU可以写入下次传输的配置参数,而不影响正在进行的传输。
但是,寄存器DMACSDP,DMACCR,DMACICR,DMACSR,DMAGCR,和MAGAGTR不能使用这种方式配置。
传输数据时,配置寄存器的内容复制到工作寄存器,DM/空制器
则使用工作寄存器的值来控制通道的工作。
只要使能DMACC的en=
1,就进行上述复制。
如果使用自动初始化模式DMACC里的AUTOINIT=1,则该复制在块传输之间发生。
八.DMA源/目标地址改变的步长
1.源/目标突发传送步长SCR/DST_BURST_STE每次突发传送,源地址及目标地址的增量步长由此寄存器设定。
寄存器中的值有符号二进制形式,地址按要求增加或减少。
倘若不要求增量步进,设置次寄存器为0。
(如访问McBSP)
2.源/目标传送步长SRC/DST_TLTRANSFER_STE义了在当前突
发传送完成后,下一个突发传送的地址偏移量。
当访问的寄存器或内存单元存在固定的地址间隔,可使用此功能。
3.源/目标返回步长SRC/DST_WRAP_STEP返回计数器归零时,此寄存器定义了BEG_ADD指针增加或减少字的个数,从而设定新的地址。
九.DMA两级循环状态机的运行模式:
1.单次触发模式(ONESHO)T.在一次外设中断触发信号到来时,如果使能单次触发模式,则在TRANSFER_COUN零前DMA各连续执行突发传送,如果单次触发模式被禁止,则每次突发传送过程都要由中断触发
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DMA 相关 知识 汇总