1、 本科毕业设计 ( 20 届) 基于 SOPC 的串口通信 DMA 传输的实现 所在学院 专业班级 电子信息工程 学生姓名 学号 指导教师 职称 完成日期 年 月 - 1 - 摘 要 计算机发展到今天, DMA已不再用于内存到内存的数据传送,因为 CPU速度非常快,做这件事,比用 DMA控制还要快 ,但要在适配卡和内存之间传送数据,仍然是非 DMA莫属。一旦控制器初始化完成,数据开始传送, DMA就可以脱离 CPU,独立完成数据传送。直接内存访问( DMA)是现代计算机和微处理器的 一种访问技术 , 其功能是 允许在计算机的某些硬件子系统来访问读取或写入中央处理单元独立系统内存 ,而不需要 C
2、PU。 串口通信是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。 本课题要求利用 SOPC技术,以 DMA传输方式 接收外部串口设备发送的数据并保存到 SDRAM存储器中,通过使用串口调试工具来查看数据传输是否正确。 关键词: DMA; CPU;串口通信;计算机 - 2 - Abstract Computer development today, DMA is no longer used for memory to memory data transfer, becau
3、se the CPU speed is very fast, do it faster than DMA control, but the adapter card and transfer data between memory, is still none other than the non-DMA. Once the controller is initialized, data transfer starts, DMA to be freed from the CPU, independently of data transmission.Direct memory access (
4、DMA) is a feature of modern computers and microprocessors that allows certain hardware subsystems within the computer to access system memory for reading and/or writing independently of the central processing unit. Serial communication means between the peripheral and the computer, the data signal l
5、ine, ground, control lines, data transmission by digital means of communication. This line of communication data used less in the long-distance communication can save communications costs, but the transmission speed lower than parallel transmission. The requirements of the subject using SOPC technol
6、ogy to DMA transfer the external serial device to receive data sent and saved to SDRAM memory, using by serial debugging tools to view data is correct. Key Words: DMA; CPU; Serial Communication; computer - 3 - 目 录 1 引言 .1 1.1 数据传输概述 .1 1.2 本文研究的意义 .2 2 串口通信协议与 DMA 传输原理 .3 2.1 串口通信概述 .3 2.2 DMA 的传输原理
7、 .3 2.3 使用 DMA 时需要注意的问题 .4 2.4 DMA 的应用 .5 3 SOPC 技术与 NIOS 软核 .6 3.1 SOPC 技术 .6 3.2 NIOS软核 .6 4 QUARTUS 软件与 FPGA 器件 .8 4.1 QUARTUS简介 .8 4.2 QUARTUS设计向导 .8 4.3 FPGA 的基本特点 .9 5.设计思路分析 . 11 6 硬件设计 .12 6.1 创建 QUARTUSII 开发环境 .12 6.2 创建 SOPC 系统并添加 IP 组件 .12 6.3 生成 NIOSII 系统 .18 6.4 创建顶层模块并添加 PLL 模块 .19 6.5
8、 集成 NIOSII系统到 QUARTUSII 工程 .21 7 软件设计与程序代码 .23 8 结论 .26 致谢 . 错误 !未定义书签。 参考文献 .27 - 1 - 1 引言 1.1 数据传输概述 数据源和数据宿之间传送数据的过程,也称数据通信。数据是信息的一种载体,能由计算机处理的数字、符号和字母等。数据传输是信息传输的一种形式,主要指与计算机有关的信息传输。数据源和数据在同一机内,即计算机外部设备与处理部件之间的数据交换,称为机内传输 1。常用的方法有四种。程序传送:利用程序中的指令控制外部设备与处理部件交 换数据。程序中断传送:由需要与处理部件交换数据的外部设备向处理部件发出中断
9、请求,处理部件响应中断请求,暂停执行原来的程序,利用中断服务子程序来完成数据交换,交换完毕后返回到被暂停执行的原程序。直接内存传送 (DMA):高速外部设备如磁盘或磁带请求交换数据时,由外部设备直接与内存交换数据。脱机传送:交换数据的设备之间,脱离中央处理机的控制,直接进行数据交换 2。 当数据源和数据宿相隔很远,数据传输需要借助于公共通信线路或专用线路来完成,称为机外传输。远程终端与计算机之间、计算机与计算机之间的数据交换,都是机外传输。机外传输时传输线路中的传输信号是代表数据的脉冲;机外传输在距离大于 1公里时 ,线路中传输的信号需要经过处理,使它的频率刚好纳入线路所用的频带,称为调制 3
10、。在线路的发送端需要接入调制器,而在线路的接收端接入解调器,把传输来的信号还原为数据接收部件能认识的数据脉冲。兼作调制器和解 调器的设备称为调制解调器。 数据传输线路分为低速、中速、广播和数字传输等四种。低速线路 :利用原有电报传输线路改进而成 ,有公共转接线路和专用线路。中速线路:利用电话传输线路改进而成。广播传输:利用调频广播系统加添设备,把数据和广播节目一起广播出去,可由多个接收站接收。数字传输线路:音频信道传输速率可达56000比特 /秒,同轴电缆传输速率为 1.5 12兆比特 /秒,光纤通信传输速率可达100 1000兆比特秒。 在数据传输过程中,干扰和设备故障常使数据产生错误。为了
11、检测通信错误,传输数据中设有冗余的错误 检测码,这些冗余的错误检测码和传输的数据按一定- 2 - 的数学关系组合。数据在传输中产生错误而不满足预定的数学关系时就能被检测出来。采用重新发送的方法可以纠正错误的数据传输。 1.2 本文研究的意义 DMA 是所有现代电脑的重要特色,他允许不同速度的硬件装置来沟通,而不需要依于 CPU 的大量中断负载。否则, CPU 需要从来源 把每一片段的资料复制到暂存器,然后把他们再次写回到新的地方 4。在这个时间中, CPU 对于其他的工作来说就无法使用。许多硬件系统 都 使用 DMA控制器,包括磁盘驱动器 , 显卡,网卡和声卡。 DMA也 可用于多核心处理器的
12、内部芯片数据转移,尤其是在多处理器系统级芯片 中 , 在它的处理单元 配备了本地内存(通常称为暂存存储器) , DMA是用于本地存储器和主存储器之间 的 数据传输。 DMA 传输重要地将一个内存区从一个装置复制到另外一个。当 CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器 来实行和完成 5。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存去。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。 DMA 传输对于高效能嵌入式系统算法和网络是很重要的。 全文共分 8章 第一章 引言。介绍课题 的 来源 以及 研究 的 意义。 第 二 章 简单介绍关于串口
13、通信的知识和 DMA的传输方式、应用以及注意事项。 第 三 章 对 SOPC技术和 NIOS软核进行简单的介绍。 第四章 介绍 Quartus II软件的使用和 PGA的特性、应用及注意事项。 第五章 简单介绍下本次课题的基本思路,大致的流程。 第六章 硬件部分的设计过程。 第七章 软件部分的设计过程。 第八章 对本次课题的总结。 - 3 - 2 串口通信协议与 DMA 传输原理 2.1 串口通信概述 串口是计算机上一种非常通用设备通信的协议。大多数计 算机包含两个基于RS232 的串口。串口同时也是仪器仪表设备通用的通信协议;很多 GPIB 兼容的设备也带有 RS-232 口。同时, 串口通
14、信协议 也可以用于获取远程采集设备的数据。 串口通信的概念非常简单,串口按位发送和接收字节。尽管比按字节的并行通信 慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它能很简单实现远距离通信。比如 IEEE488 定义并行通行状态时,规定设备线总长不得超过 20 米,并且任意两个设备间的长度不得超过 2 米;而对于串口而言,长度可达 1200 米。典型地,串口用于 ASCII 码字符的传输。通信使用 3 根线完成:( 1)地线,( 2)发送,( 3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是
15、波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配:( 1)波特率:这是一个衡量通信速度的参数。( 2)数据位:这是衡量通信中实际数据位的参数。( 3)停止位:用于表示单个包的最后一位。( 4)奇偶校验位:在串口通信中一种简单的检错方式 6。 2.2 DMA 的传输原理 图 2-1 DMA 传输图 在实现 DMA 传输时,是由 DMA 控制器直接掌管总线,因此,存在着一个总线控制权转移问题 7。即 DMA 传输前, CPU 要把总线控制权交给 DMA 控制器,而在结束 DMA 传输后, DMA 控制器应立即把总线控制权再交回给 CPU, DMA 传输图如图 2-1- 4
16、 - 所示 。 一个完整 的 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 控制器输出读写命令,
17、直接控制 RAM 与 I/O 接口进行 DMA 传输。在 DMA控制器的控制下,在存储器和外部设备之间直接进行数据传送,在传送过中不需要中央处理器的参与。开始时需提供要传送的数据的起始位置和数据长度。 ( 4) DMA 结束 。 当完成规定的成批数据传送后, DMA 控制器即释放总线控制权,并向 I/O 接口发出结束信号。当 I/O 接口收到结束信号后,一方面停 止 I/O设备的工作,另一方面向 CPU 提出中断请求,使 CPU 从不介入的状态解 脱,并执行一段检查本次 DMA 传输操作正确性的代码。最后,带着本次操作结果及状态继续执行原来的程序。由此可见, DMA 传输方式无需 CPU 直接
18、控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为 RAM 与 I/O 设备开辟一条直接传送数据的通路,使 CPU 的效率大为提高。 2.3 使用 DMA 时需要注意的问题 DMA 会 导致缓存一致性问题。想象一下,一个缓存和外部存储器,可以直接配备一个 CPU 使用 DMA 来访问设备。当 CPU 访问内存中的位置 时 ,在 X 上 的 当前值将被存储在缓存中 8。 X 上的后续操作将更新 X 缓存副 本,而不是 X 的外部存储器版本 , 如果缓存没有刷新前一个设备试图访问 X 的内存,该设备将收到一份 过去的 的 X 值。 同样地,如果 X缓存副本不失效时,设备写入一个新
19、值到内存,那么 CPU 将操作 X 的一个旧值 。 在系统设计中这个问题可以 用两种方法 解决方: 一种方法是快取同调系统 ,以硬件方法来完成,当外部装置写入内存时以一个信号来通知缓存控制器某内存位址的值已经过期或是应该重新更新资料。二是非同调系- 5 - 统 ,以软件方法来完成, OS 必须确认缓存 读取时, DMA 程序已经开始或是禁止 DMA 发生。第二种的方法会造成 DMA 的系统负担。 2.4 DMA 的应用 1、 DMA 在实时图像处理中的应用 图像处理系统的最大特点是就是运算数据量大,数据量往往大于片内存储器容量。不仅如此,图像处理系统之中,运算过程产生的中间数据往往与源数据大小
20、相当,这也限制了片内高速存储区的使用 9。然而为了提高处理的速度,计算源数据、中间数据必须尽可能多地在片内高速存储区进行,因此,必须使用 DMA 在片内高速存储区与片外低速存储区之间进行数据交换,以提高数据处理速度。 2、 DMA 在嵌入式系统中的应用 在嵌入式系统中,进行大批量的数据拷贝操作会占用很多 CPU 资源,降低了系统响应速度 。 直接存储器存取( DMA)是一种高效的 I O(输入输出)方式,具有传输速度快、 CPU 资源消耗低的特点 。 使用 DMA 方式进行数据传输可以占用较少的 CPU 资源 , 同时获得较快的系统的响应速度和数据拷贝速率 。 因此可以将 DMA方式应用到需要
21、许多数据拷贝的场合 10。 图 2-2 嵌入式系统流程图 - 6 - 3 SOPC 技术与 NIOS 软核 3.1 SOPC 技术 SOPC 是 System On Programmable Chip 的简称 ,中文名称是“可编程的片上系统”。是 Altera 公司提出来的一种灵活、高效的 SOC 解 决方案。 SOPC 将处理器、存储器、 I/O、 LVDS、 CDR 等系统设计需要的功能模块集成到一个可编程器件上,构成一个可编程的片上系统。 SOPC 它是用可编程逻辑技术把整个系统放到一块硅片上 ,来用于嵌入式系统的研究和电子信息处理 . SOPC 是一种特殊的嵌入式系统 ,它是片上系统(
22、 SOC),即由单个芯片完成整个系统的主要逻辑功能但它不是简单的 SOC,它也是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能 11。 SOPC 结合了 SOC 和 PLD、 FPGA 各自的优点,一般具备以下基 本特征:至少包含一个嵌入式处理器内核;具有小容量片内高速 RAM 资源;丰富的 IP Core 资源可供选择;足够的片上可编程逻辑资源;处理器调试接口和 FPGA 编程接口;可能包含部分可编程模拟电路;单芯片、低功耗、微封装。 3.2 Nios 软核 Nios II 系列包括 3 种产品,分别是: Nios II/f(快速) 最高的系统性能,中等 FPGA 使用量; Nios II/s(标准) 高性能,低 FPGA 使用量; Nios II/e(经济 ) 低性能,最低的 FPGA 使用量。这 3 种产品具有 32 位处理器的基本结构单元 32 位指 令大小, 32 位数据和地址路径, 32位通用寄存器和 32 个外部中断源;使用同样的指令集架构( ISA), 100%二进制代码兼容,设计者可以根据系统需求的变化更改 CPU,选择满足性能和成本的最佳方案,而不会影响已有的软件投入 12。 Nios II 的特点: ( 1)最大处理性能提高了 3倍; ( 2) CPU 内核面积最大可缩小 1/2;
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。