第 1 章 绪论
1.1 研究的背景及意义
当今是一个信息爆炸的时代,多媒体这种承载信息的手段已然成为了社会的主流,然而信息的数量和更新速度远超过我们能够完全掌控的范围,随着量的飞速增长,实现多媒体的技术指标就要相应的进化升级。快的惊人的进化速率就催生了此类电子产品马不停蹄的更新换代,我们熟悉的电子产品像手机、电脑、影音设备等等几乎每几天就会冒出来几种新的型号,在这些电子设备的更迭过程中首先就造成了材料和资源的浪费,其次电子产品硬件的重新制造成本相对较高周期也相对较长。
这个问题的产生就孕育了本课题所研究的 FPGA 技术,这种技术是在 20 世纪 90 年代开始,因为电子技术的进步,特别是 FPGA 芯片的兴起和工艺水平的提高更加促进了 FPGA 技术的发展[1,2,3].FPGA 技术主要是基于大规模的可编程逻辑芯片,根据对功能的不同需求重新配置芯片中的逻辑结构、电路结构。这样 FPGA 内部的资源就能够重复利用而实现不同的功能[4,5].此种开发模式把以往的软件开发优点同硬件的开发优点结合到一起,缩短了开发的周期,增加了产品设计的灵活性,同时 FPGA 强大的处理速度也为产品的性能提供了有利保障[6].
在此背景下,本文采用 FPGA 技术搭建多媒体平台,对这种技术的架构和使用方法做了研究并实现了相应的多媒体功能,这对今后电子产品尤其是更新周期速度飞快产品的发展方式有着重大的意义,对材料和资源的浪费问题也有着深远的影响。
1.2 多媒体技术的简介
多媒体在电子时代的背景下,它就是一种信息的载体,所谓多媒体就是人们可以通过这种载体全方位立体化的对信息进行认知。将其展开,主要包括声音、文本、图像等形式[7,8].
多媒体技术则是一种集声音、文本、图像等信息处理技术为一体的综合电子信息技术,并且具有实时性、交互性等特点。从总体上分,多媒体技术主要包括数据的压缩和解压缩技术、图像信息处理、音频数据处理、数据通讯和数据存储这几个方面[9,10].
多媒体技术的发展也是不断的在这些方面上进行升级,再将这些技术进行结合就出现了各种各样的多媒体终端产品,目前多媒体技术的发展主要有两个方向,第一个就是多媒体的网络化,三网融合的大潮将让多媒体与网络技术的结合有着很大前景;第二,就是多媒体终端的智能化、嵌入化、部件化,以此来适应市场不断更新的需求,提高多媒体的性能[11,12].
1.3 主流的多媒体实现技术
电子市场上,目前经常会用到两种多媒体系统的构造方式,第一种是以微处理器例如单片机、ARM 作为核心来实现对外设进行控制,当然这种技术已经非常成熟,开发者在开发控制方面也相对得心应手,如果再要实现突破,遇到的一个困难就是在数据处理的速度上,这一缺点虽然在一些产品中是可以被忽略的,但如果想要达到速度上的突破是一个物理器件的问题,因为软件的顺序执行肯定同硬件上的并行操作会差很多,是比较难以解决的问题[13].
另一种是 ASIC 方案,专门设计一款硬件,针对专门的功能,做到专一功能上的种种优化[14],这种方案在执行速度和实现性能上肯定是没的说,但对于更新速度飞快的电子产品而言,这种方案,从一块专用集成电路的设计和验证到流片的过程,无论在生产周期的长度上还是在资金的花费上都是可观的。
本文利用的方法是 FPGA 技术,也是嵌入式技术中的一种,利用 SOPC 技术实现可重新配置的功能[15,16],在器件性能和灵活度方面得到了折中。FPGA 中的硬件可重构单元,能够利用软件进行编写,并能够通过 Quartus II 软件实现在线的调试,不用像 ASIC 那样,流片之后才能测试性能。拥有灵活性的同时 FPGA又具有硬件的并行处理能力,所以在速度方面也有着一定的优势,图 1-1 为FPGA 技术的折中优势对比图。
1.4 基于 FPGA 的 SOPC 技术
1.4.1 SOPC 系统的实现方式
SOPC 技术属于 EDA 技术的一种,它结合 PLD、SOC 与 FPGA 等各自的优点,使用电路设计软件进行设计,主要特点有:包含了至少一个嵌入式内核的处理器;具有处理器调试的接口;丰富的可选 IP 核资源;片上有足够数量的可编程逻辑资源;具有片内高速小容量的 RAM 资源和微封装性;具有 FPGA 编程接口;一般由单个芯片构成且功耗很低[17,18,19].
构成 SOPC 系统的途径主要有两种方法:一种是基于 IP 硬核,一种是基于IP 软核。一般电信、航空、军事等高端领域广泛应用 IP 硬核,但是其成本过高,无法进行裁剪。基于 IP 软核设计的 SOPC 嵌入式系统可以真正实现可裁剪软硬件设计,设计人员能够针对不同应用定制完全属于自己嵌入式系统,该方法可以应用于多种系列的 FPGA[20,21].
因此,SOPC 系统设计的基础是 IP 核设计,主要设计手段是使用 EDA 工具辅以硬件描述语言完成系统功能的设计。本文中主要用到的开发软件有以下几种:Quartus II 软件、SOPC Builder 工具和 Nios II IDE 软件等。
1.4.2 SOPC 系统开发设计流程
Nios II 嵌入式处理器是 Altera 公司推出的一种第二代的 32 位的精简指令集处理器,它在 SOPC 系统中担任大脑这一角色,所有的外设都是以它为核心,由它直接或间接的进行控制。Nios II 可以根据需要选择不同类型的处理器,可以达到性能与面积的最优化。Nios II 系列的处理器共有 3 种不同类型的内核[22,23],分别是快速型、经济型与标准型。这三种不同的内核虽然有不同性能,但都具有完全一样的结构和指令集。另外如果用户需要对系统的内核进行调整,对设计好的软件没有任何影响。而开发 Nios II 处理器难度不大,它有一整套的开发软件、编译器和 JTAG 调试工具等开发套件。通过这个开发套件,它能够将 CPU 软核与 FPGA 芯片的功能集成,这样就会使系统能够在一块芯片上完成所有的功能[24].
基于 Nios II 软核的设计流程如图 1-2 所示,采用该方法进行开发时首先将软、硬件模块进行划分。电子设计中几乎任何部分都可以用硬件和软件来实现,硬件主要是指逻辑门和寄存器等,软件主要是微处理器执行的指令。划分软硬件的主要标准之一就是各种功能模块在执行任务时的快慢,对于皮秒级和纳秒级的逻辑需要极快的速度运行,这就要求我们用 FPGA 的主逻辑结构也就是硬件的方式实现;微秒级的逻辑,我们既可以用硬件也可以用软件的方式实现,需要开发人员综合考虑利弊;毫秒级逻辑一般是用来实现一些接口,这些工作就可以用软件来完成,因为与专用的硬件比起来,处理器的速度虽然相对较慢,但却可以实现非常复杂的功能,所以对于这些对速度要求不高的功能,我们选择用软件进行实现。
合理的完成软硬件划分后,接下来就可以设计硬件系统与软件应用程序了,本文方法的优点就在于,两者可以同时进行,这使得开发周期大大缩短。如果有足够的开发团队,在硬件系统设计环节开发人员可以根据不同要求围绕 NiosII 软核进行外设添加,编写 IP 核等工作。软件环节则利用硬件系统中生成的HAL 库进行相应的应用和驱动的编写,通过总线对硬件进行控制[25],软件和硬件的相互匹配需要对两者不断的调试和优化。最终系统的优化和调试是在FPGA芯片上在线进行,因此自始至终软硬件是相互协调配合的。这就体现了系统自上而下、由宏观到微观设计思想与设计理念。
1.5 本文主要研究内容
本文主要研究的内容为建立一个基于 FPGA 芯片的多媒体平台,系统具体要要实现的功能有图像显示采集、音乐播放、GPS 信息采集显示等。通过 FPGA技术,这些功能可以实现灵活的增减和协同工作。为了完成上述要求,主要的研究内容有:
1. 论文在 FPGA 芯片上利用软硬件协同的设计方法完成了多媒体平台的搭建。系统的硬件层结合了 SOPC 技术和 FPGA 硬体控制器,发挥了以 Nios II 软核为核心的 SOPC 系统灵活、可定制的优势和硬体控制器的速度优势。
2. 硬件层中主要涉及到图像采集和图像显示模块的驱动、SD 卡的 SPI 控制器、四端口 SDRAM 缓存控制器、音频解码芯片驱动模块、色彩格式转换模块等的设计。这些设计结合了硬体控制器和 IP 复用技术并加入了第三方 IP 进行了系统集成,最后完成硬件系统平台设计。
3. 在软件层中,第一,将移植的 FATfs 文件系统与 SPI 控制器结合使用,提高了文件的读写速度和模块复用的灵活性;第二,将μ C/OS II 操作系统应用在 Nios II IED 中完成了系统的多任务工作模式,增强了系统性能和任务功能的移植性,在此基础上利用 C 语言编写任务的执行函数,完成了图像采集和显示功能、音频播放功能和 GPS 信息接收和显示等多媒体功能,集成硬件平台和软件系统后,经测试达功能到了目标要求,验证了系统设计的正确性。