基于SOPC的串口通信DMA传输的实现任务+开题+综述+设计.docx
《基于SOPC的串口通信DMA传输的实现任务+开题+综述+设计.docx》由会员分享,可在线阅读,更多相关《基于SOPC的串口通信DMA传输的实现任务+开题+综述+设计.docx(41页珍藏版)》请在冰豆网上搜索。
基于SOPC的串口通信DMA传输的实现任务+开题+综述+设计
任务书
电子信息工程
基于SOPC的串口通信DMA传输的实现
一、主要任务与目标:
在一般的程序控制传送方式(包括查询与中断方式)下,数据从存储器送到外设、或从外设送到存储器,都要经过CPU的累加器中转,再加上检查是否传送完毕以及修改内存地址等操作都由程序控制,要花费不少时间。
采用DMA传送方式是让存储器与外设、存储器与存储器之间直接交换数据,不需要经过累加器,减少了中间环节,并且内存地址的修改,传送完毕的结果报告都由硬件完成,因此大大提高了传输速度。
课题主要实现的功能是:
以DMA传输方式接收外部串口设备发送的数据并保存到SDRAM存储器中,通过使用串口调试工具查看数据传输是否正确。
二、主要内容与基本要求:
本课题主要任务是在SOPCBuilder中定制包含DMA控制器的SOPC系统,添加NiosIICPU、添加连接片外8MSDRAM的SDRAM控制器、连接片外4Mflash的cfi_flash控制器、系统标识符sysid,实现PC和NiosII系统间串行通信的调试接口jtag_uart、通用异步收发器uart、系统定时器time_0和time_1、连接cfi_flash控制器的tristate_bridge及发光二极管、拨码开关switch_pio等常用的标准外围设备。
在定制一个包含DMA控制器的SOPC系统时,需对DMA控制器硬件进行相关参数配置,在软件编程时需根据DMA传输中源地址和目的地址是外设和存储器的不同,分别选择开启发送和接收通道,在NiosIIIDE中加载μC/OS-II操作系统,指定文件的存放路径,则可在文件中观察传输的数据。
三、计划进度:
毕业设计期限:
自2010年10月17至2011年4月初。
第一阶段(4周):
分析任务,收集资料,系统总体方案设计,完成开题报告、文献综述、外文翻译。
第二阶段(4周):
设计与写论文,软件程序设计,撰写设计报告与论文。
第三阶段(2周):
设计作品完善,论文修改。
四、主要参考文献:
[1]时岩.基于AHB的DMA控制器的设计[J].微计算机信息,2010,3(4):
27-29.
[2]时磊.高速多通道DMA控制器的设计与实现[J].微计算机应用,2010,2(5):
31-33.
[3]谢雁.DSP芯片在超声波钻井测漏仪中的应用[J].电子技术应用,2004,4(10):
11-13.
[4]王刚.基于FPGA的SOPC嵌入式系统设计与典型实例[M].北京:
电子工业出版社,2006.
[5]国建军.基于dsPIC33FDMA控制器的UART设计[J].微计算机信息,2009,(02):
13-15.
[6]王俊.基于DMA的并行数字信号高速采集系统[J].电子技术应用,2009,(02):
21-23.
[7]时岩.基于AHB的DMA控制器的设计[J].微计算机信息,2010,(23):
34-37.
开题报告
电子信息工程
基于SOPC的串口通信DMA传输的实现
一、课题研究意义及现状
数据是能由计算机处理的数字、字母和符号等。
它是信息的一种载体。
数据传输是信息传输的一种形式,主要指与计算机有关的信息传输。
数据源和数据宿在同一机内,即计算机外部设备与处理部件之间的数据交换,称为机内传输。
DMA传输就是其中的一种。
计算机发展到今天,DMA已不再用于内存到内存的数据传送,因为CPU速度非常快,做这件事,比用DMA控制还要快,但要在适配卡和内存之间传送数据,仍然是非DMA莫属。
一旦控制器初始化完成,数据开始传送,DMA就可以脱离CPU,独立完成数据传送。
DMA是所有现代电脑的重要特色,他允许不同速度的硬件装置来沟通,而不需要依于CPU的大量中断负载。
否则,CPU需要从来源把每一片段的资料复制到暂存器,然后把他们再次写回到新的地方。
在这个时间中,CPU对于其他的工作来说就无法使用。
许多硬件系统都使用DMA控制器,包括磁盘驱动器,显卡,网卡和声卡。
DMA也可用于多核心处理器的内部芯片数据转移,尤其是在多处理器系统级芯片中,在它的处理单元配备了本地内存(通常称为暂存存储器),DMA是用于本地存储器和主存储器之间的数据传输。
DMA传输重要地将一个内存区从一个装置复制到另外一个。
当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实行和完成。
典型的例子就是移动一个外部内存的区块到芯片内部更快的内存去。
像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。
DMA传输对于高效能嵌入式系统算法和网络是很重要的。
在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。
即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU。
DMA传输对于高效能嵌入式系统算法和网络是很重要的。
二、课题研究的主要内容和预期目标
DMA是所有现代电脑的重要特色,他允许不同速度的硬件装置来沟通,而不需要依于CPU的大量中断负载。
毕业设计的具体内容:
在设计之前查阅关于DMA的资料,全面了解DMA传输的原理及其功能应用,主要了解方法和特点等。
1.了解什么是数据传输,数据传输的原理和意义
2.掌握DMA传输的原理,以及DMA传输的好处和特点。
3.明白DMA传输所存在的问题及解决方法。
4.认识DMA传输在各个领域的应用
5.学习如何用SOPC实现串口通信的DMA数据传输。
6.制作流程图,设计方案,用软件进行模拟仿真。
三、课题研究的方法及措施
本项目的研究基于SOPC的串口通信DMA传输,主要通过大量的查阅DMA和FPGA的相关资料,先了解DMA传输的工作原理,组成模块,并按模块分别实现各个功能。
并且了解FPGA的相关知识。
采用QuartusII7.2软件,实现基于SOPC的串口通信DMA传输的仿真,估计程序部分会是一个难点,先好好研读有关的参考书,上网查阅有关设计,从根本上掌握它。
在遇到问题时,根据实际情况进行相应的调整和改正。
图DMA传输系统结构图
四、课题研究进度计划
毕业设计期限:
自2009年10月17至2010年4月初。
第一阶段(1周):
完成选题,明确任务,查找DMA传输相关资料,掌握DMA数据传输的功能应用及实现原理,初步确定设计方案;
第二阶段(2周):
查找DMA传输的有关资料及相关论文,了解基于SOPC的串口通信DMA传输的设计方法,完成文献综述。
查找相关的外文文献,对外文文献进行仔细审阅及翻译,完成外文文献翻译;
第三阶段(2周):
对文献综述进行进一步修改,完善内容及文本格式。
着手完成开题报告,准备开题答辩;
第四阶段(3周):
着手按模块进行编程,完成设计,并在QuartusII7.2软件上进行仿真,实现数据传输。
第六阶段(3):
总和所有设计内容,撰写毕业论文,完善与修改毕业论文;做好论文答辩的PPT资料,准备答辩,并提交所有电子文档材料。
五、参考文献
[1]时岩.基于AHB的DMA控制器的设计[J].微计算机信息,2010,3(4):
27-29.
[2]时磊.高速多通道DMA控制器的设计与实现[J].微计算机应用,2010,2(5):
31-33.
[3]谢雁.DSP芯片在超声波钻井测漏仪中的应用[J].电子技术应用,2004,4(10):
11-13.
[4]王刚.基于FPGA的SOPC嵌入式系统设计与典型实例[M].北京:
电子工业出版社,2006.
[5]国建军.基于dsPIC33FDMA控制器的UART设计[J].微计算机信息,2009,(02):
13-15.
[6]王俊.基于DMA的并行数字信号高速采集系统[J].电子技术应用,2009,(02):
21-23.
[7]时岩.基于AHB的DMA控制器的设计[J].微计算机信息,2010,(23):
34-37.
[8]王同峰.嵌入式DSP中DMA的设计与实现[J].国防科学技术大学2009,(12):
36-38.
[9]高勇.MPEG-2解码芯片的AMBA总线和DMA控制器设计[J].计算机工程与应用,2009,(07):
33-35.
[10]覃洪英.基于NiosII的DMA传输及调试[J].计算机与通讯技术,2010,(3):
24-26.
[11][EB/OL].
[12][EB/OL].
[13]秦龙.MSP430单片机常用模块与综合系统实例精讲[M].北京:
电子工业出版社,2007,7.
[14]刘功杰.DMA控制器的一种硬件验证方法[J].计算机工程与科学,2009,6
(1):
15-17.
[15]陈骄阳.高速多通道DMA控制器的设计[J].信息与电脑,2010,13
(2):
32-34.
[16]孙威.基于FPGA的UltraDMA数据记录系统[J].数据采集与处理,2010,(5):
27-29.
毕业论文文献综述
电子信息工程
DMA传输的综述
摘要:
计算机发展到今天,DMA已不再用于内存到内存的数据传送,因为CPU速度非常快,做这件事,比用DMA控制还要快,但要在适配卡和内存之间传送数据,仍然是非DMA莫属。
一旦控制器初始化完成,数据开始传送,DMA就可以脱离CPU,独立完成数据传送。
关键字:
DMA;CPU;内存;计算机
1.数据传输概述
数据是能由计算机处理的数字、字母和符号等。
它是信息的一种载体。
数据传输是信息传输的一种形式,主要指与计算机有关的信息传输。
数据源和数据宿在同一机内,即计算机外部设备与处理部件之间的数据交换,称为机内传输。
常用的方法有四种。
①程序传送:
利用程序中的指令控制外部设备与处理部件交换数据。
②程序中断传送:
由需要与处理部件交换数据的外部设备向处理部件发出中断请求,处理部件响应中断请求,暂停执行原来的程序,利用中断服务子程序来完成数据交换,交换完毕后返回到被暂停执行的原程序。
③直接内存传送(DMA):
高速外部设备如磁盘或磁带请求交换数据时,由外部设备直接与内存交换数据。
④脱机传送:
交换数据的设备之间,脱离中央处理机的控制,直接进行数据交换。
2.DMA传输的原理
DMA是所有现代电脑的重要特色,他允许不同速度的硬件装置来沟通,而不需要依于CPU的大量中断负载。
否则,CPU需要从来源把每一片段的资料复制到暂存器,然后把他们再次写回到新的地方。
在这个时间中,CPU对于其他的工作来说就无法使用。
许多硬件系统都使用DMA控制器,包括磁盘驱动器,显卡,网卡和声卡。
DMA也可用于多核心处理器的内部芯片数据转移,尤其是在多处理器系统级芯片中,在它的处理单元配备了本地内存(通常称为暂存存储器),DMA是用于本地存储器和主存储器之间的数据传输。
DMA传输重要地将一个内存区从一个装置复制到另外一个。
当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实行和完成。
典型的例子就是移动一个外部内存的区块到芯片内部更快的内存去。
像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。
DMA传输对于高效能嵌入式系统算法和网络是很重要的。
在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。
即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU,DMA传输图如图1所示。
图1DMA传输图
一个完整的DMA传输过程必须经过下面的4个步骤。
1.DMA请求
CPU对DMA控制器初始化,并向I/O接口发出操作命令,I/O接口提出DMA请求。
2.DMA响应
DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。
当CPU执行完当前总线周期即可释放总线控制权。
此时,总线裁决逻辑输出总线应答,表示DMA已经响应,通过DMA控制器通知I/O接口开始DMA传输。
3.DMA传输
DMA控制器获得总线控制权后,CPU即刻挂起或只执行内部操作,由DMA控制器输出读写命令,直接控制RAM与I/O接口进行DMA传输。
在DMA控制器的控制下,在存储器和外部设备之间直接进行数据传送,在传送过中不需要中央处理器的参与。
开始时需提供要传送的数据的起始位置和数据长度。
4.DMA结束
当完成规定的成批数据传送后,DMA控制器即释放总线控制权,并向I/O接口发出结束信号。
当I/O接口收到结束信号后,一方面停止I/O设备的工作,另一方面向CPU提出中断请求,使CPU从不介入的状态解脱,并执行一段检查本次DMA传输操作正确性的代码。
最后,带着本次操作结果及状态继续执行原来的程序。
由此可见,DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为RAM与I/O设备开辟一条直接传送数据的通路,使CPU的效率大为提高。
3.DMA传输的特点
PIO模式下硬盘和内存之间的数据传输是由CPU来控制的;而在DMA模式下,CPU只须向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率。
DMA模式与PIO模式的区别就在于,DMA模式不过分依赖CPU,可以大大节省系统资源,二者在传输速度上的差异并不十分明显。
DMA模式又可以分为Single-WordDMA(单字节DMA)和Multi-WordDMA(多字节DMA)两种,其中所能达到的最大传输速率也只有16.6MB/s。
DMA传送方式的优先级高于程序中断,两者的区别主要表现在对CPU的干扰程度不同。
中断请求不但使CPU停下来,而且要CPU执行中断服务程序为中断请求服务,这个请求包括了对断点和现场的处理以及CPU与外设的传送,所以CPU付出了很多的代价;DMA请求仅仅使CPU暂停一下,不需要对断点和现场的处理,并且是由DMA控制外设与主存之间的数据传送,无需CPU的干预,DMA只是借用了一点CPU的时间而已。
还有一个区别就是,CPU对这两个请求的响应时间不同,对中断请求一般都在执行完一条指令的时钟周期末尾响应,而对DMA的请求,由于考虑它得高效性,CPU在每条指令执行的各个阶段之中都可以让给DMA使用,是立即响应。
DMA主要由硬件来实现,此时高速外设和内存之间进行数据交换不通过CPU的控制,而是利用系统总线。
DMA方式是I/O系统与主机交换数据的主要方式之一,另外还有程序查询方式和中断方式。
4.使用DMA需要注意的问题
DMA会导致缓存一致性问题。
想象一下,一个缓存和外部存储器,可以直接配备一个CPU使用DMA来访问设备。
当CPU访问内存中的位置时,在X上的当前值将被存储在缓存中。
X上的后续操作将更新X缓存副本,而不是X的外部存储器版本,如果缓存没有刷新前一个设备试图访问X的内存,该设备将收到一份过去的的X值。
同样地,如果X缓存副本不失效时,设备写入一个新值到内存,那么CPU将操作X的一个旧值。
在系统设计中这个问题可以用两种方法解决方:
一种方法是快取同调系统,以硬件方法来完成,当外部装置写入内存时以一个信号来通知缓存控制器某内存位址的值已经过期或是应该重新更新资料。
二是非同调系统,以软件方法来完成,OS必须确认缓存读取时,DMA程序已经开始或是禁止DMA发生。
第二种的方法会造成DMA的系统负担。
5.DMA的应用
1.DMA在实时图像处理中的应用
图像处理系统的最大特点是就是运算数据量大,数据量往往大于片内存储器容量。
不仅如此,图像处理系统之中,运算过程产生的中间数据往往与源数据大小相当,这也限制了片内高速存储区的使用。
然而为了提高处理的速度,计算源数据、中间数据必须尽可能多地在片内高速存储区进行,因此,必须使用DMA在片内高速存储区与片外低速存储区之间进行数据交换,以提高数据处理速度。
2.DMA在嵌入式系统中的应用
在嵌入式系统中,进行大批量的数据拷贝操作会占用很多CPU资源,降低了系统响应速度。
直接存储器存取(DMA)是一种高效的I/O(输入输出)方式,具有传输速度快、CPU资源消耗低的特点。
使用DMA方式进行数据传输可以占用较少的CPU资源,同时获得较快的系统的响应速度和数据拷贝速率。
因此可以将DMA方式应用到需要许多数据拷贝的场合。
图2嵌入式系统流程图
6.基于SOPC的串口通信DMA传输思路
使用DMA方式传输时,需要一个专门的器件来协调外设接口和存储器的数据传输,这个专门的器件成为DMA器件。
SOPCBuilder内部集成了一个DMA控制器部件,可以非常容易的将其添加到SOPC系统中,对于NiosII处理器,DMA控制器IP核的设备驱动程序在HAL系统库中提供。
图3系统结构图
如图3所示,本实例设计除了需要DEI开发板外,还需要一条用来连接PC和开发板的串口线,以实现开发板同PC之间的通信。
事实上,此软硬件工程的代码也同样适合于在以通用串行口为接口的外部设备和存储器之间进行数据传输的情况。
7.总结
通过对DMA传输的了解,让我们在以后的设计中能够更好的运用这些知识,不过我们也不能盲目套用,要有针对性的利用它们在某方面的精华,避开冲突。
同时,我们必须在老的设计方式上有所突破,若能充分利用FPGA强大的数据运算处理能力以及编程灵活、运行速率快等优点,合理整合IP核资源和SOPC技术,简化设计结构,一定可以设计出功能多样、性能更好的DMA传输。
参考文献
[1]时岩.基于AHB的DMA控制器的设计[J].微计算机信息,2010,3(4):
27-29.
[2]时磊.高速多通道DMA控制器的设计与实现[J].微计算机应用,2010,2(5):
31-33.
[3]谢雁.DSP芯片在超声波钻井测漏仪中的应用[J].电子技术应用,2004,4(10):
11-13.
[4]王刚.基于FPGA的SOPC嵌入式系统设计与典型实例[M].北京:
电子工业出版社,2006.
[5]国建军.基于dsPIC33FDMA控制器的UART设计[J].微计算机信息,2009,(02):
13-15.
[6]王俊.基于DMA的并行数字信号高速采集系统[J].电子技术应用,2009,(02):
21-23.
[7]时岩.基于AHB的DMA控制器的设计[J].微计算机信息,2010,(23):
34-37.
[8]王同峰.嵌入式DSP中DMA的设计与实现[J].国防科学技术大学2009,(12):
36-38.
[9]高勇.MPEG-2解码芯片的AMBA总线和DMA控制器设计[J].计算机工程与应用,2009,(07):
33-35.
[10]覃洪英.基于NiosII的DMA传输及调试[J].计算机与通讯技术,2010,(3):
24-26.
[11][EB/OL].
[12][EB/OL].
[13]秦龙.MSP430单片机常用模块与综合系统实例精讲[M].北京:
电子工业出版社,2007,7.
[14]刘功杰.DMA控制器的一种硬件验证方法[J].计算机工程与科学,2009,6
(1):
15-17.
[15]陈骄阳.高速多通道DMA控制器的设计[J].信息与电脑,2010,13
(2):
32-34.
[16]孙威.基于FPGA的UltraDMA数据记录系统[J].数据采集与处理,2010,(5):
27-29.
本科毕业设计
(20届)
基于SOPC的串口通信DMA传输的实现
摘要
计算机发展到今天,DMA已不再用于内存到内存的数据传送,因为CPU速度非常快,做这件事,比用DMA控制还要快,但要在适配卡和内存之间传送数据,仍然是非DMA莫属。
一旦控制器初始化完成,数据开始传送,DMA就可以脱离CPU,独立完成数据传送。
直接内存访问(DMA)是现代计算机和微处理器的一种访问技术,其功能是允许在计算机的某些硬件子系统来访问读取或写入中央处理单元独立系统内存,而不需要CPU。
串口通信是指外设和计算机间,通过数据信号线、地线、控制线等,按位进行传输数据的一种通讯方式。
这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。
本课题要求利用SOPC技术,以DMA传输方式接收外部串口设备发送的数据并保存到SDRAM存储器中,通过使用串口调试工具来查看数据传输是否正确。
关键词:
DMA;CPU;串口通信;计算机
Abstract
Computerdevelopmenttoday,DMAisnolongerusedformemorytomemorydatatransfer,becausetheCPUspeedisveryfast,doitfasterthanDMAcontrol,buttheadaptercardandtransferdatabetweenmemory,isstillnoneotherthanthenon-DMA.Oncethecontrollerisinitialized,datatransferstarts,DMAtobefreedfromtheCPU,independentlyofdatatransmission.Directmemoryaccess(DMA)isafeatureofmoderncomputersandmicroprocessorsthatallowscertainhardwaresubsystemswithinthecomputertoaccesssystemmemoryforreadingand/orwritingindependentlyofthecentralprocessingunit.Serialcommunicationmeansbetweentheperipheralandthecomputer,thedatasignalline,ground,controllines,datatransmissionbydigitalmeansofcommunication.Thislineofcommunicationdatausedlessinthelong-distancecommunicationcansavecommunicationscosts,butthetransmissionspeedlowerthanparalleltransmission.
TherequirementsofthesubjectusingSOPCtechnologytoDMAtransfertheexternalserialdevicetoreceivedatasentandsavedtoSDRAMmemory,usingbyserialdebuggingtoolstoviewdataiscorrect.
KeyWords:
DMA;CPU;