❶ 单片机里的DMA是什么意思啊,有款单片机说具有DMA控制器,中的DMA是什么意思啊
DMA就是直接存储器访问的首字母缩写(Direct Memory Access)。
CPU的总线上同时会挂着多几个存储器,如果想要将存储器1的内容复制到存储器2,如果不用DMA的话,就得靠CPU直接去操作了,操作过程大致是:CPU准备好存储器1的地址和控制信号,读取存储器1的内容,存放到CPU内部寄存器中,再准备好存储器2的地址和控制信号,将寄存器中的内容写入到存储器2。
如果是单个数据的操作,这个过程都是必须的,效率问题也不明显,但如果一次要复制大量数据(比如一帧图像数据、一批语音数据等),那么靠CPU这样循环一个数据一个数据地操作,不仅速度慢(由于架构设计的原因,一般CPU访问外部总线的速度都不是很高),还会导致CPU和总线一直被占用,效率就非常低了。如果在CPU内部做一个硬件控制器,专门负责这种数据搬移操作(自动产生存储器的地址和控制信号,自动实现读写时序),不仅速度可以提高很多,CPU还可以在此期间做其它的事情,这样效率就会高很多了。DMA就是这么个意思,硬件上必须有一个DMA控制器来实现这一功能。
现在DMA的概念和作用已经大大延伸了,很多复杂CPU里面甚至会包含很多个DMA控制器,DMA操作也不再仅限于外部存储器了,内部存储器之间、内部和外部存储器之间、各种标准外设和存储器之间,都有DMA控制器来实现数据交换,这样CPU的功能越来越强,数据处理也越来越快。。
❷ 单片机中DMA是什么意思
DMA是一种不需要CPU参与传送数据的方式,这样可以节省大量的CPU资源。例如你需要传送100个8位的数据到外设,如果用CPU来做可能是
char num[100];
char i;
for(i = 0; i < 100; i++)
{
P0 = num[i];
}
这样cpu要执行100次for循环,如果用DMA方式只要把数据的个数和数据的起始地址给DMA接CPU就不用理会了。
❸ 单片机外设工作时会占用CpU吗
不会占用。
单片机的一个外设,它的主要功能是用来搬数据,但是不需要占用CPU,即在传输数据的时候,CPU可以干其他的事情,好像是多线程一样。
数据传输支持从外设到存储器或者存储器到存储器,这里的存储器可以是SRAM或者是FLASH。
DMA控制器包含了DMA1和DMA2,其中DMA1有7个通道,DMA2有5个通道,这里的通道可以理解为传输数据的一种管道。要注意的是DMA2只存在于大容量的单片机中。
❹ STM32中DMA有什么好处
用和不用当然都可以发送。不用DMA发送是需要单片机实时参与,由单片机一个一个地发送数据并进行监控。但是如果用DMA,设置了起始地址,数据大小等参数后,就直接由专门的一个DMA模块进行数据发送,发送过程中单片机无需参与。发送完后会产生中断告知单片机。由此可知用DMA可以节省单片机资源,让单片可以在同一时间里干更多事。
❺ 单片机DMA传输完成后会把目标地址清零吗急!!
当然不会自动清零,你应当在进入DMA中断后对目标数组进行处理,防止后续传输覆盖掉原先的目标数组。
❻ 单片机 中断、查询和DMA的区别
中断就是cpu做其他的事,当发生情况时,cpu被拉去处理发生的情况,之后就继续它原先的工作。
查询是cpu时时刻刻关注着某一状态,当一有变化时,就做出相应的反应。所以在这种情况中cpu是很累的。
DMA就是利用另外的设备来取代cpu的功能,cpu只负责授予其控制总线的权利,也是最先进的方式。
❼ 单片机中DMA是甚么意思
DMA是1种不需要CPU参与传送数据的方式,这样可以节省大量的CPU资源。例如你需要传送100个8位的数据到外设,如果用CPU来做多是charnum
;chari;for(i=0;i100;i++)
这样cpu要履行100次for循环,如果用DMA方式只要把数据的个数和数据的起始地址给DMA接CPU就不用理睬了。
❽ 51单片机syc89c52rc有没有DMA
51单片机是没有DMA的,不仅仅你说的这个型号,所有的51单片机都没有,当然增强型的C8051除外。要想是普通51单片机具有DMA功能,可以用8237来扩展,8237是一款比较老的DMA扩展芯片了,典型电路很多,可以直接从网上找到。
❾ 单片机可以两路dma同时用么
你好。可以同时使用的。在SPI通信中,可以同时开启发送和接收DMA请求,自动数据的发送和接收,完成数据的交换
基本步骤是:
1. 配置好SPI相应引脚功能
2. 配置和初始化SPI
3. 初始化DMA
4. 片选信号选择要通信的设备
5. 打开DMA
对应DMA通道:SPI1_RX---DMA1_Channel2;SPI1_TX---DMA1_Channel3
❿ msp430系列单片机dma控制器和系统低功耗有什么关系
msp430系列单片机dma控制器和系统低功耗的关系,在处理器始终全速运行时没有关系,只是提高了处理器利用率和处理速度,但如果使用了低功耗方式,在唤醒后使用DMA由于提高了处理器利用率和处理速度,可以使得处理器尽快完成当前任务,再次进入低功耗状态,进一步降低功耗。