DMA控制器的学习
来源:互联网 发布:淘宝套现店铺 编辑:程序博客网 时间:2024/05/16 14:35
1.含义 DMA控制器 即 direct memory access直接内存访问控制器,可以独立于CPU,直接对内存数据进行访问,达到内存数据和外围设备的数据传送。传送速度较快。
2.DMA控制器工作时和CPU之间的关系
①DMA工作时,CPU停止工作。DMA工作期间,CPU处于关闭或者状态保持情况。
②DMA工作时,CPU正常工作,但是在两者同时对内存进行访问时,CPU要让位于DMA。CPU工作要延时一定的周期
③DMA工作时,CPU正常工作,对内存的访问也是互不干扰。这种情况多应用于内存访问周期较短的情况。即对一个内存数据的读写马上完成了,但是DMA工作的一个周期还没完成,cpu的一个工作周期还没完成。此时那么内存控制器就处于空闲状态。为了使内存控制器的效率提高,可以在一个较大的周期内,前半时间内存控制器为CPU服务,后半时间为DMA服务。这样DMA和CPU都完成了对内存的访问,但是两者并没有感觉到对方的干扰。
3.DMA控制器相关的寄存器
①数据存放的内存地址的寄存器。该寄存器存放着,将要传送的数据的所在内存的首地址。
②字计数器。存放着将要传送的数据的个数
③缓冲寄存器。用于存放所要传送的数据的缓冲。
④“DMA"请求标志位。当一外围设备准备好数据传送工作。向CPU发出"DMA"请求,进行数据传送时,此位用作请求的标志。
⑤中断机构。当字计数器溢出时,表明数据传送完毕,这时会产生一个中断,告之CPU数据传送完毕了。
⑥”控制/状态“逻辑。用于对DMA请求,溢出中断的标志。对地址寄存器,字计数器数值的改变。以及CPU与DMA信号之间的同步等。
4。DMA数据传送的工作路程:
①CPU预处理 CPU发出几条指令监测外围设备的状态,将一些寄存器的数据进行装入。
②正式传送 外围设备准备好数据后,向CPU发出DMA请求,然后就开始数据的传输了
③传送结束后CPU的一些后处理工作 当数据传送结束后,溢出中断得到响应。则CPU停止当前工作,进入相应的中断服务子程序,进行后处理工作。包括数据传送的正确性;继续用DMA进行数据传送,还是停止传送等等
5。 DMA控制器种类
①选择型DMA控制器,一个逻辑结构用于选择哪个外围设备,一次只对一个外围设备服务。
②多路型DMA控制器。多个外围设备可同时工作,数据进行交叉方式传送。适用于数据传送较慢的情况。
参考资料:http://jpkc.bupt.edu.cn:4213/jsjzcyl/resource/cai/0804.htm
- DMA控制器的学习
- 基本的DMA控制器
- DMA控制器的引入
- DSP的DMA控制器与ARM的DMA控制器比较
- DMA控制器
- DMA控制器
- DMA控制器
- DMA控制器
- DMA控制器
- STM32再学习——DMA控制器
- cpu解读8:DMA控制器的引入
- 关于DMA的学习
- (学习笔记)stm32f429——DMA控制器
- msp430之DMA控制器
- DMA控制器硬件结构
- 基于stm32f103zet6的DMA学习
- DMA(一) - 内核sysdev DMA控制器设备
- DMA(三) - DMA控制器接口函数
- c语言基础(二)之指针事例
- (欧拉回路)Play on Words(P1386)
- EF Provider for Access/ODBC 以及ADO.Net Entity Framework 与Linq to SQL的比较和适用场景
- php基础
- 三极管工作原理
- DMA控制器的学习
- 谈英语的重要性
- Spring In Action读书笔记之五------------------AOP的参数传递
- 关于js中"window.location.href"、"location.href"、"parent.location.href"、"top.location.href"的用法
- 热点时评:如何解决腐败
- xmlns:android的作用
- DC绘图闪烁
- VirtualBox 下的ubuntu如何调整分辨率?
- 一个大学生从月薪3500到700万和他的情感经历