- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NiosⅡ系统中DMA控制器的原理及应用NiosⅡ系统中DMA控制器的原理及应用
Nios Ⅱ系统中DMA控制器的原理及应用
摘要:详细介绍了nios ⅱ 系统中dma控制器的基本原理,数据传输过程以及dma控制器中各寄存器的作用。重点介绍了与dma操作有关的api函数及其使用方法,并通过一个实例描述nios ⅱ 系统中如何利用dma方式将数据从sdram传输到串口。实践证明,在同等cpu开销的情况下,利用dma技术可以将cpu从繁重的数据搬移操作中释放出来,从而提高cpu的数据处理能力。
关键词:nios ⅱ; dma控制器; dma技术; sdram
引言
dma(direct memory access)是计算机学中的一种内存访问技术[1]。它允许cpu内部的某些子系统(存储器和外设)可以独立的直接读写系统存储器而不需要cpu的干预。在同等程度cpu负荷下,dma是一种快速的数据传送方式。现在越来越多的单片机采用dma技术以提供外设和存储器间或者存储器之间的高速数据传输。但这些单片机中所包含的dma控制器的数量是有限的,一般为1到2个。如果实际系统中需要多个dma控制器的,那么这些单片机就显得无能为力了。
nios ⅱ系统是一个用户可配置的通用32位risc嵌入式处理器,它是sopc的核心。处理器以软核的形式实现,具有高度的灵活性和可配置性。nios ⅱ系统中所有外设以及外设控制器等都是以可配置的ip核形式出现的,用户可以根据需要重复多次添加。通过添加可配置的ip核的方式,可以在nios ⅱ系统中实现一个或者多个dma控制器,以解决普通单片机中dma控制器数量有限的问题。
1dma控制器的原理
1.1dma功能介绍
nios ⅱ中的dma控制器包含2个avalonmm类型的主控制器端口(读端口和写端口),1个用于dma控制avalonmm类型的从端口以及内部一些寄存器组所构成,其结构图如图1所示[23]。
图1dma控制器的结构图dma控制器可以将数据从源地址搬移到目的地址。源地址或者目的地址可以是存储器中的一段地址范围也可以是avalon从控制器的外设。因此,在nios ⅱ系统中,存在3种类型的dma操作,即存储器到外设,外设到存储器以及存储器到存储器。dma控制器还具备流处理能力,允许固定或者可变长度的数据传输。当dma操作结束时,dma控制器发出中断(irq)请求。典型的dma数据传输过程如下:
(1) cpu通过写控制端口配置dma控制器用于数据传输;
(2) dma控制器向cpu发出hold信号请求占用总线;
(3) cpu响应dma控制器的请求,并让出总线,dma控制器获得总线的控制权;
(4) dma控制器读端口从源地址读数据,写端口向目的地址写数据,读写端口间利用fifo缓存数据;
(5) 当传输完指定的数据时,dma传输结束并向nios ⅱ cpu发出中断请求;
(6) cpu响应中断请求,dma交出总线控制权。
1.2dma寄存器组描述
dma控制器共有8个32位寄存器,其中5个为当前有效的寄存器,另外3个为以后扩展所用。寄存器的映射表如表1所示。
表1dma控制器内部寄存器映射表
偏移量寄存器名称功能0状态寄存器指示dma控制器内部
的详细情况1源地址寄存器读取数据的起始地址2目的地址寄存器写入数据的起始地址3数据长度寄存器从读端口传输到
写端口的字节数6控制寄存器设置dma的工作方式
状态寄存器的每个状态位指示dma控制器内部的详细情况。状态寄存器各位的含义如表2所示。
表2状态寄存器位
位编号位名称描述0donedma传输完成。当检测到数据包结束信号或指定长度的数据传输完成时,done位为1。写0到状态寄存器使done位为0。1busy当dma传输正在进行时,busy位为12reop当传输完成事件由读数据包结束信号引起时,reop位为13weop当传输完成事件由写数据包结束信号引起时,weop位为14len当长度寄存器递减为0时,len位为1
源地址寄存器指定dma传输的数据源的起始地址;目的地址寄存器指定了dma传输的目标数据区的起始地址;数据长度寄存器指定从读端口传输到写端口的字节数。如果是字传输,则数据长度寄存器的值需乘以4;若为半字传输,则需乘以2。主控制器写端口每写一个字节数据时,数据长度寄存器减1。当数据长度寄存器为0时,状态寄存器的len位置位;控制寄存器每个位设定dma的工作方式。控制寄存器每个位的意义如表3所示。dma传输的数据宽度用字节、半字、字、双字和4字位指定。这些位只能有一位设置为1。数据传输的宽度由2个读/写传输设备中传输宽度窄的一方决定。例如,将数据从16位的外部sdram存储器中搬移到内部32位的片内存储器时,传输数据宽度应该设置为半字。
表3控制寄存器位
位编号位名称描述0byte设置为字节(8位)方式传输1hw设置为半字(16位)方式
您可能关注的文档
- MFC下基于OpenGL绘图程序的开发步骤和框架.doc
- M-20070702-LGA-4100半导体激光气体分析仪运行维护手册-1.32M.doc
- MLCC基础知识.doc
- M巧克力豆广告学策划书M.doc
- MNS低压柜技术规范书.doc
- Module 9 A trip to the zoo.doc
- Module 4 教案.doc
- Module 8 期末复习(单词动词形式).doc
- MIS第1章练习题.doc
- Mongoose源码剖析:简介和安装.doc
- 2025年网络文学平台版权运营模式创新与版权保护体系构建.docx
- 数字藏品市场运营策略洞察:2025年市场风险与应对策略分析.docx
- 全球新能源汽车产业政策法规与市场前景白皮书.docx
- 工业互联网平台安全标准制定:安全防护与合规性监管策略.docx
- 剧本杀剧本创作审核标准2025年优化与行业自律.docx
- 2025年新能源电动巡逻车在城市安防中的应用对城市环境的影响分析.docx
- 全渠道零售案例精选:2025年行业创新实践报告.docx
- 2025年网约车司乘纠纷处理机制优化与行业可持续发展报告.docx
- 2025年宠物烘焙食品市场法规政策解读:合规经营与风险规避.docx
- 2025年宠物行业数据安全监管政策影响分析报告.docx
文档评论(0)