《毕业设计基于SOPC的电子音乐相册设计.doc》由会员分享,可在线阅读,更多相关《毕业设计基于SOPC的电子音乐相册设计.doc(49页珍藏版)》请在三一办公上搜索。
1、基于SOPC的电子音乐相册设计摘要:嵌入式系统是当今IT界最热门的概念之一。随着ARM技术的不断推广,如今人们的日常生活中,嵌入式系统的应用早已渗入了其中。可以说嵌入式系统现在已经广泛应用于军事、工业、商业、医疗、个人家庭等的方方面面,并且正在高速发展着。尤其是电子数码产品,其更新换代迅速,从最初的分立元件到现在的集成芯片,产品的体积越来越小,而所展现出来的功能却是越来越强大。本设计采用DE2开发板作为主板,提出了一种基于Nios II的数码音乐相册。主要实现了通过对SD卡存放的音频和图片文件的读取操作,经过构建的Nios处理器控制,将音频信息传送至音频模块播放,将图片信息传送至TFT液晶显示
2、,同时全程使用触摸操作的功能。硬件部分主要负责完成对Nios处理器的构建,音频模块和液晶部分的焊接。软件部分主要负责SD卡、TFT液晶、触摸芯片和音频模块的底层驱动程序以及整个应用程序的编写。通过完成软、硬件的工作,最终实现基于SOPC电子音乐相册的设计。关键词:SOPC;Nios II;SD卡;TFT液晶;触摸芯片;VS1003音频模块Smart Home Energy MonitorAbstract:Embedded system is one of the most popular the concept of IT. With the continuous promotion of A
3、RM technology, and now peoples daily life, the application of embedded systems which have already infiltrated. Can be said that embedded systems are now widely used in military, industrial, commercial, medical, personal and family aspects, and it is fast developing. Especially the electronic digital
4、 products, and its replacement quickly, which from the initial discrete components to the current integrated chip, and the product is smaller and smaller, but exhibited by the function is more powerful. This design uses DE2 development board as the main board, and presented digital music albums whic
5、h based on the Nios II. Mainly realized on the SD card through the audio and image files stored in a read operation, after controlling the construction of the Nios processor, the audio information is transmitted to the audio module player, the picture information transmitted to the TFT LCD display,
6、while using the touch operation of the whole Function. Hardware is mainly responsible for the construction completion of the Nios processor, the audio module and the LCD part of the welding. Software component is mainly responsible for SD card, TFT LCD, touch the bottom of the chip, the audio module
7、 drivers and write the entire application. Through the completion of hardware and software, finally completed design that the album of electronic music which based on the SOPC.Key words:SOPC, Nios II, SD card, TFT LCD, touch chip, VS1003 Audio Module目 录第 1 章 绪 论11.1项目研究背景11.2主要研究内容1第 2 章 系统总体方案设计以及原
8、理32.1电子音乐相册简介32.2电子音乐相册整体方案3第 3 章 基于FPGA的SOPC系统构建43.1SOPC系统整体设计43.2SOPC技术简介43.3NIOS II 嵌入式软核微处理器介绍53.4Altera DE2开发平台63.4.1Altera DE2开发平台简介63.4.2FPGA芯片73.4.3外部存储器73.4.4配置电路73.5SOPC系统构建8第 4 章 硬件驱动程序设计104.1SD卡驱动程序设计104.1.1SD卡简介104.1.2SD卡硬件接口104.1.3SD卡通信协议124.1.4SD卡驱动程序124.2音频芯片驱动程序设计174.2.1VS1003B简介174
9、.2.2VS1003B硬件接口174.2.3VS1003B驱动时序184.2.4VS1003B驱动程序194.3TFT液晶驱动程序设计204.3.1TFT液晶以及HX8347简介204.3.2HX8347硬件接口204.3.3HX8347驱动时序214.3.4HX8347驱动程序224.4触摸芯片驱动程序设计244.4.1触摸技术简介244.4.2UH7843硬件接口244.4.3UH7843驱动时序254.4.4UH7843驱动程序25第 5 章 音频知识及BMP图片格式275.1音频知识275.1.1音频介绍275.1.2音频编码格式275.2BMP图片285.2.1BMP位图介绍285.
10、2.2BMP图片存储结构29第 6 章 FAT32文件系统316.1FAT32文件系统简介316.2FAT32文件系统结构31第 7 章 系统软件程序设计337.1系统整体软件流程图337.2MP3播放音乐程序设计347.3数码相册程序设计35第 8 章 系统调试378.1SD卡读写测试378.2VS1003B正弦音测试378.3TFT显示测试388.4触摸芯片测试388.5文件系统加载测试39结 论40致谢41参考文献42附录A43第 1 章 绪 论1.1 项目研究背景近年来,市场上的电子数码产品更新换代很快,从当初的分立元件到现在的集成芯片,产品的体积越来越小,而所展现出来的功能则日益强大
11、。它们为日常生活提供了极大的帮助1。数码音乐相册在现在电子市场已经很普遍,但是多用专用芯片制作。由于这种消费产品是一种非常典型的嵌入式产品,其多采用专用集成芯片来制作,对整个系统的功能设计和实现难以分析,不利于作为一种嵌入式设计的教学范例。因此,本设计采用现在流行的ALTERA的FPGA芯片,结合FPGA的SOPC技术,在FPGA内部实现一个NIOS微处理器。在设计这个微处理器同时能充分了解单片机的构造原理,总线原理以及工作过程3,并对很多高级外围设备的操作加深理解,对提高大学生电子设计理论水平有积极意义。本设计项目基于消费类领域应用的主流器件ALTERA公司的FPGA,采用最新的EDA和SO
12、PC技术,综合了音频播放、彩色图像显示、TFT液晶驱动、触摸屏原理、SD卡存储控制以及FAT32文件系统等消费类产品的关键技术。从中能够得到全面的消费类产品的开发经验,巩固电子技术、数字系统设计、微机原理、数字控制系统和嵌入式系统设计等多门课程的理论知识,并得到实际的工程训练。对从事消费类电子产品开发以及其它相关产品设计都具有积极的意义5。该题目接近生活使用品,实用性很强,软硬件搭配得很好,并且与单片机原理很好的结合。可以通过该题目进一步学习CPU原理以及MCU控制器的构建,也可以深化电路理论及提高实践能力,从而达到本科阶段综合能力的培养和提高。目前嵌入式应用越来越广泛3,作为工科电子类的大学
13、生也应该具备这方面的知识和一定的应用能力,才能更好的满足社会需求,成为合格的工程师。1.2 主要研究内容本设计要求利用SOPC技术,实现电子音乐相册的功能,因此我以实验室的FPGA开发板DE2作为主板。在DE2开发板基础上,外加SD卡、TFT液晶、触摸芯片以及音频模块来实现电子音乐相册的功能1。主要研究的内容如下:l 基于FPGA的SOPC系统设计实验,保证相关软件设计代码继承、移植和复用;l SD卡的读写控制实验;l TFT液晶驱动实验;l 数字化音频的处理与播放驱动实验。整个设计中,存在一些难点需要花主要精力去解决。主要难点如下:l 基于Nios的嵌入式系统的构建;l 文件系统的设计与实现
14、;l 图像的显示与扫描技术;l 高保真数字化音频的转换和播放。第 2 章 系统总体方案设计以及原理2.1 电子音乐相册简介数码音乐相册主要是在TFT液晶上采用触摸控制技术实现图片的显示以及MP3的播放,主要实现功能如下:l 显示24位色和16位色的BMP图片;l 解码播放MP3、WAV、WMA等音乐文件;l 实现电阻式触摸屏控制;l 支持FAT32文件系统;l 数据采用SD卡存储,方便在线更改SD卡数据;2.2 电子音乐相册整体方案本次毕业设计数码音乐相册采用VS1003B作为音频解码芯片,用于播放音频数据。以HX8347作为TFT液晶主控的液晶模块作为系统显示器,UH7843触摸芯片用于驱动
15、触摸屏得到触摸信息,SD卡用于音频以及图片数据的存储。整体系统框图如图21所示:图21 系统整体框图第 3 章 基于FPGA的SOPC系统构建3.1 SOPC系统整体设计在Quartus II新建工程,在SOPC Builder中构建满足设计需要的NiosII CPU,本章将介绍SOPC技术以及基于SOPC Builder构建NiosII CPU的方法,构建的CPU系统框图如图31所示:图31 SOPC系统框图3.2 SOPC技术简介SOPC,即片上可编程系统(System on a programmable Chip)是Altera公司提出来的一种灵活、高效的SOC解决方案。它将处理器、存储
16、器、I/O口、LVDS、CDR等系统设计需要的功能模块集成到一个可编程器件上,构建成一个可编程的片上系统。它是可编程系统,具有灵活的设计方式,可裁剪、可扩充、可升级,并具备软硬件在系统可编程的能力。可编程器件内,还具有小容量高速RAM资源。由于市场上有丰富的IP core资源可供灵活选择,用户可以构成各种不同的系统,如单处理器、多处理器系统。有些可编程器件内还可以包含部分可编程模拟电路。除了系统使用的资源外,可编程器件内还有足够的可编程逻辑资源,用于实现其它的附加逻辑1。SOPC是PLD和ASIC技术融合的结果,目前0.1mm的ASIC产品制造价格仍然相对昂贵,而集成硬核或软核CPU、DSP、
17、存储器、外围、I/O及可编程逻辑的SOPC芯片在应用的灵活性和价格上有极大的优势3。所以,可以认为SOPC代表了半导体产业未来的发展方向。SOPC设计技术涵盖了嵌入式系统设计技术的全部内容,除了以处理器和实时多任务操作系统(RTOS)为中心的软件设计技术、以PCB和信号完整性分析为基础的高速电路设计技术以外,SOPC还涉及目前以引起普遍关注的软硬件协同设计技术。由于SOPC的主要逻辑设计是在可编程逻辑器件内部进行,而BGA封装已被广泛应用在微封装领域中,传统的调试设备,如:逻辑分析仪和数字示波器,已很难进行直接测试分析,因此,必将对以仿真技术为基础的软硬件协同设计技术提出更高的要求。同时,新的
18、调试技术也已不断涌现出来5,如Altera公司的片内逻辑分析仪SignalTap II 就是一种非常好的片内实时调试工具。Altera的SOPC开发工具,将软硬件的设计结合起来,提供给客户一个很好的开发环境。Altera的Quartus II曾经是应用广泛、非常受欢迎的FPGA(可编程逻辑器件)设计软件,它对于FPGA和CPLD这些PLD器件的应用推广、电路部件和嵌入式系统的设计2,以及SOPC技术的推广有着巨大的贡献。SOPC技术主要应用以下三个方向: l 基于FPGA嵌入IP硬核的应用。这种SOPC系统是指在FPGA中预先植入处理器。这使得FPGA灵活的硬件设计与处理器的强大软件功能有机地
19、结合在一起1,高效地实现SOPC系统;l 基于FPGA嵌入IP软核的应用。这种SOPC系统是指在FPGA中嵌入软核处理器,如:NIOS II核等。用户可以根据设计的要求,利用相应的EDA工具,对NIOS II及其外围设备进行构建1,使该嵌入式系统在硬件结构、功能特点、资源占用等方面全面满足用户系统设计的要求;l 基于HardCopy技术的应用。这种SOPC系统是指将成功实现于FPGA器件上的SOPC系统通过特定的技术直接向ASIC转化。把大容量FPGA的灵活性和ASIC的市场优势结合起来1,实现对于有较大批量要求并对成本敏感的电子产品,避开了直接设计ASIC的困难。3.3 NIOS II 嵌入
20、式软核微处理器介绍Nios以及Nios II处理器是Altera公司为其FPGA产品配套开发的软核CPU。在逻辑功能上,它们是32位的精简指令集CPU;在实现方式上,它们是在FPGA上通过编程的方式实现的,这也是与传统的CPU的一个根本的差别。Nios II处理器是Altera公司在2004年推出的第二代软核CPU。同前一代软核CPU相比,Nios II有着更高的性能,更小的体积。其最大处理能力是第一代软核的3倍,而小的体积只有550LeS1,是第一代软核的1/2大。Nios II有三个型号,分别为e型、S型、f型,它们分别是针对不同应用要求优化的。E型的体积最小,只有550个LE;f型的性能
21、最高,最大可以达到200DMIPS以上;s型又叫标准型,其体积与性能介于e型与f型之间。Nios II的三个型号都是32位机,其总线宽度为32位,总线结构为哈佛结构,它们指令集完全相同。所以1,同一个软件可以不做任何的修改就可以三个型号间交换。它们的实现平台可以是Altera的任何一款FPGA。由于Nios II是在FPGA上实现的,所以先天的赋予了它很多独有的新特性,使之成为可裁剪、可调整、可补充的系统,更使其成为软硬件紧密融合的系统。Nios II有着一个开放式的ALU,用户可以根据自己的需要对其进行补充,从而实现用户自己定义的指令。用户自定义指令在处理方式上同原有指令集中的指令是一样的,
22、ALU面前它们一律平等,所以在处理速度方面等同于原有指令。而用户自定义指令在专项处理方面要优于原有指令,因为它是有针对性的设计的,所以,应用用户自定义指令可以在不改变CPU主频的情况下大大提高系统处理能力。这个特性比较适合那些要求高处理速度1,又不便于提高系统主频的场合。Nios II的总线采用了哈佛结构,在很大程度上提高了系统的处理速度。由于系统的总线控制器是在FPGA中实现的,可以进行灵活的配置,在某些外设需要具有冯诺依曼特性时又可以把两套总线合二为一1,从而在局部实现冯诺依曼结构,这样就使得系统总线兼有哈佛结构的高效率与冯诺依曼结构的灵活性。3.4 Altera DE2开发平台3.4.1
23、 Altera DE2开发平台简介本课题的开发平台为Altera DE2开发板,DE2开发套件是以Cyclone II EP2C35F672C6 FPGA为核心的开发板,EP2C35F672C6使用90nm的低功耗设计、672-PinFineLineBGA封装、35个内嵌乘法器、475个用户管脚、4个PLL和205个差分通道(主频可以达到400MHz)、典型值100万门、最大值约160万门,开发板可用IP验证、系统级开发1、Nios II开发等应用。开发平台资源如下:l Cyclone II EP2C35F672C6 FPGA;l 10/100M以太网接口; l RS232接口;l USB 2
24、.0接口;l PS/2键盘、鼠标接口;l 8-MBytes SDRAM;l 512K SRAM;l 4 MBytes Flash存储器;l SD卡接口;l LCD1602;l 8个7段数码管;l 18个拨动开关;l 18 红色LED; l 9个绿色LED; l 4个防抖动按键; l 50 MHz晶振;l 80个外接扩展GPIO口。3.4.2 FPGA芯片开发板的核心是Altera公司的Cyelone II系列的FPGA芯片EP2C35F672C6,其包括5,980个逻辑单元(LEs),一个32位NiosII软核CPU的LE单元,用 EPIC6F256完全能满足要求。EP2C35F672C6还包
25、含92Kbits的片上RAM,也就是说可以存储10K字节的数据1。由于系统程序运行在片外RAM上,所以可以满足系统的要求。3.4.3 外部存储器由于需要运行uClinux及 Boa Web服务器,所以FPGA芯片需要内核程序存储器、SDRAM存储器。FLASH型号是S29AL032D,SDRAM型号是A2V64S40CTP4。在FPGA器件上实现的Nios II嵌入式处理器可以使用Flash存储器作为通用只读存储器和非易失性存储器,将基于Nios II处理器的应用程序烧写到Flash中,在程序运行前将Flash中的代码拷贝到速度更快的易失性存储器SRAM中执行。这样程序既不会掉电后丢失,又能快
26、速运行2。Flash存储器通过Avalon三态桥与外扩的数据总线和地址总线公用数据。SDRAM用来运行产uClinux操作系统,存储量为8M字节,SDRAM比较便宜,但需要实现刷新操作、行列管理、不同延时和命令序列等逻辑。Nios II SDRAM控制器可实现Avalon总线接口、透明的SDRAM初始化处理、刷新和其它SDRAM需要的操作3,使SDRAM接口看起来像简单的等待信号的线性存储器接口。3.4.4 配置电路FPGA系统板在调试阶段用JTAG进行配置,在投入使用后由配置芯片EPCS16进行主动配置。主动配置是当系统上电后,FPGA通过串行方式读取EPCS16中的数据,FPGA将压缩格式
27、的数据解压后,就是FPGA的配置程序,包括Nios II和用户自定义逻辑的所有SOPC程序。配置数据先存储到FPGA的SRAM单元。再由SRAM配置FPGA片内的逻辑单元。配置启动的条件是以下二者之一:一是给FPGA上电,二是FPGA的管脚上产生一个低电平到高电平的上升沿。FPGA中的SRAM是易失性的,每次上电之前1,配置数据必须重新FPGA中。Cyclone II FPGA的配置方式包括:主动配置模式(AS)、被动式(PS)和JTAG配置模式。本系统采用AS模式和JTAG模式1。3.5 SOPC系统构建在Quartus II软件中集成了设计SOPC的环境SOPC Builder。SOPC
28、Builder具有友好的图形用户界面,为用户提供强大的设计平台以搭建基于总线的系统,用户可以从Altera提供的IP库中选取组件,如处理器、SDRAM、Flash、各种IO口等,并可通过选择配置相应的参数2,还有包含操作系统内核的嵌入式软件开发工具。在Quartus II软件中建立一个工程文件,便可以使用SOPC Builder进行Nios II系统的构建。从上面的介绍可知,本设计主要需要添加的外围模块及配置如下:(1) Nios II/s CPU,SOPC Builder提供了三种类型,Nios II/e占用资源最少600-800LEs,功能也最简单,速度最慢。Nios II/s占资源比前者
29、多一些,功能也多了,速度也比前者快些。Nios II/f占资源最多,功能也最多,速度最快。考虑到本课题所需资源节约与Nios II经济型和快速型之间4,所以选用的类型为标准型。完成软核类型的选择之后,进行JTAG Debug Module的设置,即JTAG调试时所用到的功能模块。功能越多,需要的资源也就越多。这考虑到设计中不需要过多的其他功能,所以我选择了Level11。完成之后所得到CPU如下图所示:(2) SDRAM、Flash卡等存储器接口模块,本设计使用SRAM作为系统的通用数据存储器。SDRAM空间较大可作为操作系统内核的运行空间。Flash是程序存储器,用于存放操作系统的内核程序和
30、文件系统。上电后,Bootloader程序会将操作系统的内核程序由Flash调入SDRAM中2,这样可提升系统的运行速度。(3)UART模块和PIO口总线模块,其中串口用于调试的需要,系统也可以在此基础上扩展串口外设将串口波特率设置为最大的115200bps,PIO口则用于控制SD卡、TFT液晶、触摸芯片以及音频模块这几个外设。在添加完各个模块后,还需要为各个模块指定名称、类型、存储器地址映像和系统外设的中断设置,如图4-2所示。为了方便起见,通常将Flash的首地址设置为01,其他模块地址由系统自动分配。第 4 章 硬件驱动程序设计4.1 SD卡驱动程序设计4.1.1 SD卡简介SD卡(Se
31、cure Digital Memory Card)是一种基于半导体快闪记忆器的新一代记忆设备。拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。SD卡提供不同的速度,它是按CD-ROM的150kB/s为一倍速的速率计算方法来计算的。基本上,他们能够比标准CD-ROM的传输速度快6倍(900 kB/s),而高速的SD卡更能传输66x(10 MB/s)以及133x或更高的速度。SD卡的结构能保证数字文件传送的安全性,也很容易重新格式化,所以有着广泛的应用领域,音乐、电影、新闻等多媒体文件都可以方便地保存到SD卡中。SD卡主要应用于以下的手提数码装置:数码相机存储相片及短片,数码摄录
32、机存储相片及短片,个人数码助理(PDA)存储各类资料,多媒体播放器等。目前,SD卡在数码相机中正在迅速普及2,大有成为主流之势。4.1.2 SD卡硬件接口1 SD卡硬件介绍SD卡结构图如图41所示,包括9根引脚和一个SD卡内部控制器,加上一系列寄存器构成SD卡。图41 SD卡结构图2 SD卡的通信方式SD卡支持两种总线方式:SD方式与SPI方式。其中SD方式采用6线制,使用CLK、CMD、DAT0DAT3进行数据通信。而SPI方式采用4线制,使用CS、CLK、DataIn、DataOut进行数据通信2。SD方式时的数据传输速度比SPI方式要快,但是SD方式需要MCU有特定的硬件支持,一般MCU
33、不具备SD硬件控制器,而大多数MCU都集成SPI控制器,能方便进行SPI通信3。由于NIOS II没有自带SD控制器,所以,本设计采用SPI通信模式。在两种通信方式中SD卡管脚的具体功能也会相应改变,如图42所示:图42 SD卡两种模式下的管脚定义3 SD卡硬件连接在NIOS II中,我设计了4个IO口和SD卡连接,用于SD卡的控制,由于NIOS II硬件SPI不能在线更改SPI通信速率,所以,采用IO口模拟SPI模式进行通信。如图43所示:图43 SD卡硬件连接4.1.3 SD卡通信协议1 SD卡命令格式在SPI工作模式下,SD卡具有CMD0CMD63条指令。每一条指令共48位二进制,总计6
34、字节。指令格式如所示:图44 SD卡命令格式Command:SPI通信命令编号;Command:SPI通信附加命令;CRC: 冗余校验码。其余的位都是SPI通信固定位。2 SD卡命令协议介绍本次设计采用最简单的4个命令组合即可操作SD卡,分别是CMD0、CMD1、CMD17、CMD241。CMD0:SD卡复位指令,使SD卡工作于SPI接口模式,并且SD卡处于休眠状态2;CMD1:初始化SD卡,激活SD处于工作状态; CMD17:读SD卡扇区,读取SD一个扇区512字节数据,在一次读写中需要给出地址信息,即可读取出数据;CMD24:写SD卡扇区,往SD卡指定扇区写入512字节数据,需要给出写入扇
35、区地址以及数据1。4.1.4 SD卡驱动程序由于本设计主要是从SD卡中读取数据然后进行处理,因此,SD卡驱动只需要3个步骤即可完成:(1) 复位SD卡;(2) 初始化SD卡;(3) 读取SD卡扇区数据;接下来,详细介绍各个步骤的程序设计。1 复位SD卡首先,查阅到SD卡数据手册的复位时序如图45所示:图45 SD卡复位时序复位SD卡指令位CMD0,指令码为0x40,0x00,0x00,0x00,0x00,0x95,用于复位SD卡工作于SPI通信模式,同时使SD卡进入休眠模式。复位SD卡时候,SPI时钟速率一定要低速,如果SPI时钟速度过高,会照成初始化时钟失败。根据实际测量4,SPI时钟速率在
36、10K以下能稳定成功复位。根据时序图,写出程序流程图如图46所示:图46 SD卡复位程序流程图2 初始化SD卡根据SD卡数据手册查阅,初始化SD卡时序如图47所示:图47 初始化SD卡时序图初始化SD卡的命令指令为CMD1,指令码为0x41,0x00,0x00,0x00,0x00, 0xff,用于把SD卡从休眠模式中唤醒到工作模式下。初始化指令和复位指令一样,对于SPI时钟速度要求比较低。根据时序图,程序流程图如图48所示:图48 SD卡初始化程序流程图3 读取SD卡扇区数据SD卡读取扇区时序图如图49所示:图49 SD卡读取扇区时序图读取SD卡扇区指令为CMD17,指令码为0x58,0x00
37、,0x00,0x00,0x00,0xff,中间4个字节为读取扇区的地址,需要程序中填入地址信息。根据时序图写出程序流程图如图410所示:图410 SD卡读取扇区流程图根据流程图设计出读取程序如下:/* 函数名称:SD卡读取扇区函数,读取一个块* 参数说明:address SD卡扇区地址* *buffer 读取的数据存放数组* 返回参数: 0 读取成功* 1 读取失败*/uint8 SD_read_kuai (uint32 address, uint8 *buffer);4.2 音频芯片驱动程序设计4.2.1 VS1003B简介VS1003是芬兰VLSI公司出品的一款单芯片的MP3/WMA/MI
38、DI音频解码和ADPCM编码芯片,其拥有一个高性能低功耗的DSP处理器核VS_DSP,5K的指令RAM,0.5K的数据RAM,串行的控制和数据接口,4个通用IO口,一个UART口;同时片内带有一个可变采样率的ADC、一个立体声DAC以及音频耳机放大器。VS1003B支持MP3、MP3+V、WMA、WAV、MIDI和SP-MIDI格式的音频解码播放。VS1003B支持IMAADPCM(单声道)编码,采用麦克风和线入(Line input)两种输入方式。4.2.2 VS1003B硬件接口1 VS1003B的管脚信息在使用VS1003B之前必须对V1003B硬件端口熟悉,经过阅读VS1003B数据手
39、册,总结出关键的管脚如下:XRESET:用于VS1003B芯片复位;DREQ: VS1003B数据处理完成后的中断信号;XDCS: VS1003B数据片选端;XCS: VS1003B指令片选端;SCLK: VS1003B通信时钟输入管脚;MOSI: VS1003B数据输出端;MISO: VS1003B数据输入端。在连接VS1003B注意电源管脚:AVDD: 模拟电源推荐为2.8V,但是2.8V很难得到,采用3.3V模拟电源;CVDD: 数字电源,推荐为2.5V电压,采用ASM1117-2.5获得;IOVDD:IO口电压标准,采用3.3V电压。2 VS1003B于NIOS II的硬件连接在SOP
40、C设计时候,设计了7个专用IO口,以供操作VS1003B使用,硬件连接图如图411所示:图411 NIOS II与VS1003B连接图4.2.3 VS1003B驱动时序VS1003B共有16个16位控制寄存器,地址分别为0x00x0F,通过SCI通信对寄存器配置和SDI进行传送解码数据,使它能正确播放音频文件。VS1003B SCI驱动时序如图412所示,一个寄存器配置占据4个字节。图412 SCI通信方式VS1003B SDI驱动时序如图413所示,写入数据长度为132个字节。图413 SDI数据通信方式4.2.4 VS1003B驱动程序1 VS1003B初始化在使用VS1003B之前需要对
41、VS1003B寄存器进行初始化,以便VS1003B能正确进行音频解码。配置程序流程图如图414所示:图414 VS1003B初始化程序流程图2 VS1003B写入数据正确配置好VS1003B后,即可往VS1003B中写入数据,程序流程图如图415所示:图415 音频数据写入流程图最终应用程序使用的两个程序为:void VS1003_init(void);/ VS1003B初始化void VS1003_data(uint8 *pDat);/ VS1003B写入数据函数4.3 TFT液晶驱动程序设计4.3.1 TFT液晶以及HX8347简介1 TFT液晶TFT-LCD即薄膜场效应晶体管LCD,是有
42、源矩阵类型液晶显示器(AM-LCD)中的一种。 它是目前唯一在亮度、对比度、功耗、寿命、体积和重量等综合性能上全面赶上和超过CRT的显示器件,它的性能优良、大规模生产特性好,自动化程度高,原材料成本低廉,发展空间广阔,是做PDA掌上设备的最佳选择。2 HX8347驱动TFT液晶的芯片有多种选择,本文使用的是HX8347芯片,该芯片最大支持320*240分辨率的TFT液晶,同时内置173KB的RAM,色彩模式支持最大26万色的显示。HX8347支持4种接口方式:8/9/16/18位i80系统总线、SPI总线、寄存器接口方式和RGB接口方式。4.3.2 HX8347硬件接口1 硬件连接由于FPGA
43、管脚很充足,所以采用16位总线模式,硬件接口如图31所示,占用NIOS II 21个IO口:图416 TFT液晶和NIOS II硬件连接图HX8347相应管脚功能如下:RST:液晶复位;CS:液晶片选端;RS:液晶指令/数据选择端;WR:液晶写使能信号;RD:液晶读使能信号;DATA:液晶16位数据端口。4.3.3 HX8347驱动时序HX8347主要时序位寄存器操作时序和显示数据发送时序。1 寄存器操作时序HX8347功能非常强大,提供寄存器地址从0x000x93总共132个寄存器。在使用液晶前必须对大部分寄存器初始化,寄存器操作非常重要,如图417所示,寄存器操作使用CS、RS、RD、WR
44、、DATA7:0这几个脚进行操作。图417 HX8347寄存器操作时序2 数据操作时序正确配置寄存器,然后即可进行显示数据传输,数据传输协议如所示,和寄存器管脚一样,值的注意的是寄存器操作采用数据总线的低八位,而数据操作采用的是整个数据总线16位。图418 数据操作时序4.3.4 HX8347驱动程序HX8347驱动程序主要包括以下几个方面:1 初始化HX8347液晶操作的最开始既是进行初始化操作,初始化主要是设置液晶内部参考电压、开启晶振、显示缓冲区、RGB色彩等等寄存器的设置,以便能正确显示。2 设置HX8347显示区域初始化TFT后即可进行显示操作,任何显示操作都必须在液晶的RAM中开辟
45、一个显示缓冲区,然后再往显示缓冲区填入显示数据既能完成显示。液晶的显示缓冲区设置相关的寄存器为:列起始地址寄存器(地址0x02,0x03):列起始地址寄存器是设置显示区域的列起始地址寄存器,16位列起始地址分为高8位和低8位分别写入地址为0x02和0x03的寄存器,即完成起始地址的设置。列结束地址寄存器(地址0x04,0x05)、行起始地址寄存器(地址0x06,0x07)、行结束地址寄存器(地址0x08,0x09)和列起始地址寄存器设置一样,共同完成一个显示缓冲区的定制。根据这个原理编写出显示缓冲区函数如下:/* 函数名称:TFT_SetWindow入口参数:startX显示窗口的起始X坐标 startY显示窗口的起始Y坐标 endX显示窗口的结束X坐标 endY显示窗口的结束Y坐标出口参数:无*/void TFT_SetWindow(uint16 startX, uint16 startY, uint16 endX, uint16 endY);3 GUI底层函数设计任何一个GUI系统最底层的只需要提供三个函数即可实现,屏幕任意一点打点函数、屏幕上画横线函数和屏幕上画竖线函数即可完成GUI的移植。根据这个原理实现了三个接口程序以便提供给上