版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
TOC\o"1-5"\h\z1绪论 1\o"CurrentDocument"2课程设计的目标 2\o"CurrentDocument"3课程设计的意义 24需求分析 35概要设计 3\o"CurrentDocument"5.1存储模块设计 4\o"CurrentDocument"5.2音频解码模块设计 4\o"CurrentDocument"5.3液晶显示模块设计 5\o"CurrentDocument"6相关技术说明 6\o"CurrentDocument"VS1003的初始化 6\o"CurrentDocument"MP3文件数据写入 87详细设计 10SD模块 10VS1003模块 147.3图形人机交互模块 16168.总结16绪论随着消费类电子产业的蓬勃发展,越来越多的嵌入式电子产品走进了千家万户。电脑的形态也不再局限于以前的PC机,各式各样的嵌入式系统出现在了众多的行业和应用中,其中ARM和Linux结合的产品在市场上最受青睐。ARM由于其低功耗、高性能、小体积、低成本受到了越来越广泛的重视,成为众多公司产品开发的主流硬件。而Linux则因其开放的源代码,可裁剪的内核,便利的开发环境,各硬件平台的通用性,逐渐成为嵌入式开发的主流操作系统。本课题的嵌入式MP3设计就是基于ARM和linux平台的。本课题实现了一个完整的嵌入式系统,选用zq2410开发板为目标平台,linux作为目标操作系统,在这样的软硬件环境下研究实现MP3播放器。文章首先综述了嵌入式系统开发方法,介绍了ARM处理器及其特点,Linux操作系统,嵌入式系统的开发模式以及如何搭建交叉开发环境,然后介绍了所选硬件平台zq2410目标板的各种资源,在系统软件开发中,介绍Uboot、Linux的裁剪和移植,根文件系统的制作以及核心驱动程序的开发,应用程序开发中,介绍了MP3的原理,移植MadplayMP3播放器,最后成功对Madplay播放器实现了综合控制。关键词:嵌入式ARMLinux驱动程序MP3第一章课程设计的目标1、 了解嵌入式Linux的工作原理,掌握嵌入式Linux的移植方法。2、 了解主流BootloaderUboot的工作原理。3、 掌握嵌入式Linux字符设备驱动程序开发方法。4、 掌握嵌入Linux下应用程序的开发、编译、调试、执行技术。5、 掌握MP3播放程序madplay的移植与测试。拟解决的关键问题:•嵌入式linux的移植裁剪•LED驱动程序设计及测试•MadPlayMP3播放程序移植及测试第二章课程设计的意义《ARM体系结构》课程设计为学生提供了一个理论与实践相结合的机会。既锻炼了学生动手能力,又会加深理解学生在课堂所学习的理论知识。通过课程设计可以将课本上的理论知识和实际应用有机的结合起来,培养学生又动脑,又动手,独立思考分析问题的能力,提高学生运用所学知识解决实际问题的综合素质。《ARM体系结构》课程设计的主要目标是:(1) 掌握ARM相关的指令集、流水线技术、存储及异常处理方式;(2) 掌握构建嵌入式系统软硬件平台的基本技能;(3) 具备基本嵌入式系统下C语言、汇编语言编程能力、嵌入式操作系统基本调试的能力。第三章需求分析采用STM32系列微控制器,结合解码芯片VS1003、SD卡、LCD等外围设备设计并实现了MP3播放器。其主要功能有:播放VS1003支持的所有音频文件,女口MP3、WMA、WAV文件,且音质非常好;通过触摸屏实现按键功能,控制播放上一首/下一首、音量增减等;通过LCD显示歌曲名字和播放状态;本系统还实现了读卡器功能,PC机可通过USB接口直接对开发板上的SD卡进行读写操作,以方便拷贝音频文件。MP3播放过程是STM32通过SPI1接口将数据从SD卡中取出,然后通过SPI2接口送至解码芯VS1003解码播放。这里解码模块单独使用一个SPI接口,以减小干扰和噪声、提高音质。第四章概要设计本系统在硬件上分为6个模块:微控制器STM32F103、解码模块VS1003、存储模块SD卡、触摸屏、USB接口和显示屏LCD。系统硬件框架如图5所示。VS1003 STM32系统硬件框架图4.1存储模块设计SD卡在现在的日常生活与工作中使用非常广泛,时下已经成为最为通用的数据存储卡。在诸如MP3、数码相机等设备上也都采用SD卡作为其存储设备。SD卡之所以得到如此广泛的使用,是因为它价格低廉、存储容量大、使用方便、通用性与安全性强等优点。SD卡支持两种总线方式:SD方式与SPI方式。其中SD方式采用6线制,而SPI方式采用4线制,采用单片机对SD卡进行读写时一般都采用SPI模式。可用不同的初始化方式使SD卡工作于SD方式或SPI方式。在本设计中,音频数据MP3文件是以SD卡为载体。所以在电路设计中必须含有读取SD卡模块。该系统使用STM32内部接口SPI1与SD卡进行通信,下面介绍其引脚连接情况。PE3:低电平有效,连接到SD卡的片选引脚CD/DAT3。SPI在和SD卡进行通信时,需要将PE3拉低才能对SD卡进行操作。PA7:映射为STM32内部接口SPI1的主输出从输入(MOSI)信号线。这里STM32是主设备,SD卡是设备。数据流的传输方向是从STM32传输给SD卡。该信号线用于传输一些控制命令来完成SD卡的操作,如读、写等。PA5:已连接至IJSTM32内部接口SPI1的时钟(SCLK)信号线。可设置SPI的时钟频率来调整读取SD卡数据的快慢。PA6:已连接到STM32内部接口SPI1的主输入从输出(MISO)信号线。数据的传输方向是从SD卡传输给STM32,主要返回SD卡的一些状态、内部寄存器值等。PC12:用于检测SD卡是否完全插入。当SD卡完全插入时,PC12为低电平,否则为高电平。4.2音频解码模块设计音频解码模块完成MCU从SD卡里读取的数字MP3音频数据流进行解析、并转化成模拟信号进行输出。在这里,系统使用VS1003音频解码芯片来实现音乐数据流的解析。VS1003是由芬兰VLSI公司出品的一款单芯片的MP3/WMA音频解码芯片,其拥有一个高性能低功耗的DSP处理器核VS_DSP,5K的指令ROM, 0.5K的数据RAM,串行的控制和数据输入接口,4个通用I/O口,一个UART口,同时片内带有一个可变采样速率的ADC、一个立体声DAC以及音频耳机放大器接口。VS1003与核心控制器MSP430F149的数据通信是通过SPI总线方式进行的。VS1003主要通过串行命令接口(SCI)和串行数据接口(SDI)来接收MSP430F149控制器的控制命令和MP3的数据。通过XCS、XDCS引脚的置高、置低来确认是哪一个接口处于传送状态。对于VS1003芯片的功能控制,如初始化、软复位、暂停、音量控制、播放时间的读取等,均是通过SCI写入到特定寄存器的内容来实现的。两条SCI指令之间要通过DREQ引脚信号判断上次处理是否完成。该系统使用STM32内部接口SPI2与VS1003进行通信,下面介绍其引脚连接情况。PA3:VS1003的中断请求引脚。当VS1003内部数据已处理完毕,需要新的数据时,将DREQ拉高。STM32根据这个信号来给VS1003发送新的数据流。PB13:已连接到STM32内部接口SPI2的时钟(SCLK)信号线。PB14:已连接到STM32内部接口SPI2的主输入从输出(MISO)信号线。这里STM32是主设备,VS1003是从设备。数据流的传输方向是从VS1003传输给STM32。主要用于读取VS1003的一些状态和内部寄存器值,比如寄存器测试返回的内部寄存器的值。PB15:已连接到STM32内部接口SPI2的主输出从输入(MOSI)信号线。这里STM32是主设备,VS1003是从设备。数据流方向是从STM32传输给VS1003,主要传输给VS1003—些控制命令、MP3/WMA数据流等。PA1:低电平有效,如果拉低该引脚,那么通过SPI传输的是控制信号。控制信号包括读写VS1003的内部寄存器、对VS1003进行初始化、设置左右声道音量等。PA2:低电平有效,如果拉低该引脚,那么通过SPI传输的是数据信号。比如在向VS1003传输MP3/WMA的数据流时需要拉低该引脚。PA0:低电平有效,拉低该引脚则硬件复位VS1003。4.3液晶显示模块设计LCD3310芯片是一个48行84列的液晶显示器主要模块。其内存带有低功耗PCD8544的CMOSLCD控制驱动器,串行输入速度最高可达4.OMbits/S,而且所有必须的显示功能集成在一块芯片上,包括LCD电压及偏置电压发生器,所以LCD3310是一款低功耗的液晶显示器。为了让LCD3310液晶能够显示4行12*12的汉字,系统开辟了一个6*84字节的缓冲区,要写液晶时,就不用直接写LCD3310的静态DDRAM了,可以先写系统为它开辟的数据缓冲区,最后再刷新修改的部分就可以显示出要显示的内容,LCD3310与主控制器是SPI接口方式。第五章相关技术说明5.1VS1003的初始化如其它芯片一样,初始化对于VS1003来说同样是极其重要的。初始化的过程大致是这样的:1•硬件复位:接XRESET拉低。2•延时,将XDCS、XCS、XRESET置高。向MODE中写入0X0804。等待DREQ为咼。设置VS1003的时钟:SCI_CLOCKF=0x9800,3倍频。设置VS1003的采样率:SPI_AUDATA=0xbb81,采样率48k,立体声。设置重音:SPI_BASS=0x0055。&设置音量:SCI_V0L=0x2020。9•这一步被很多人忽视,向VS1003发送4个字节的无效数据,用以启动SPI发送。实现代码如下:voidMp3Reset(void){XRESET=0;delay(lOO);XDCS=XCS=XRESET=1;wr_commad(0x00,0x08,0x04);delay(lO);DREQ=1;while(!DREQ);wr_commad(0x03,0x98,0x00);delay(lO);wr_commad(0x05,0xbb,0x81);delay(lO);wr_commad(0x02,0x00,0x55);delay(lO);wr_commad(OxOb,VOL_VALUE,VOL_VALUE);//音量delay(lO);spi_write(0);spi_write(0);spi_write(0);spi_write(0);在进行了正确的初始化后,还要着重检查一下VS1003的模拟部分是否正常将VS1003的所有DVDD、AVDD管脚以及XRESET、TEST(第32个引脚)接+3.0V,然后测量RCAP引脚,它应该是1.3V左右,否则芯片模拟部分未正常工作。MP3文件数据写入以上的对VS1003的初始化与测试都通过后,现在就可以给它发送MP3文件了。但是这时就又出现一个新的问题。MP3文件通常是比较大的,小的也要1M~2M,如果使单片机内部的FlashRom的话,容量是远远不够的。需要有一种大容量的存储器来作为MP3文件的载体。在笔者的调试系统中采用了SD卡(256M)、U盘(1G)与移动硬盘(40G)来存储MP3文件。关于SD卡与U盘的读写方法可以参看相关章节。这些大容量的存储设备通常也是按照扇区来进行读写的,但在实际的应用中更多的是结合FAT32等文件系统来进行文件读写。文件系统部分可以参照《FAT32的存储机制及其在单片机中的实现》。这里抛开存储介质不谈,只谈数据的写入方法。其实写入数据的方法十分简单。主要就是看DREQ信号,在VS1003的FIFO能够接受数据的时候输出高电平。每次可以写入32个字节的数据。而DREQ变低时,单片机就要停止数据的发送。具体的写数据的方法如下:将XDCS拉低。等待DREQ为咼。3•通过SPI写入数据。4•在文件没有结束前不断重复2与3操作。5•在所有的数据都发送完毕后,最后发送2048个无效字节,用以清除VS1003的数据缓冲区。将XDCS置高。实现代码如下:XDCS=O;for(j=621;j〈2783;j++){for(k=0;k<8;k++){MMC_get_data_LBA(j,64,get);for(i=0;i<64;i++){DREQ=1;while(!DREQ);spi_write(get[i]);//delay(60000);}}}for(temp=0;temp〈2048;temp++){DREQ=1;while(!DREQ);spi_write(0);}XDCS=1;第六章详细设计发送数码管显示4f(voice_global==l&PWMMR2!=0)PWMMR2-=PWMMR0/10;elseif(voice_global==2&PWMMR2!=9*(PWMMR0/10))PWMMR2+=PWMMR0/10;else;//***************上一■曲下一■曲********************//if(b_n_global==3){if(flag_b_n==O)flag_b_n=l;elseif(flag_b_n==4)flag_b_n==l;elseflag_b_n++;}if(b_n_global==4){if(flag_b_n==O)flag_b_n=4;elseif(flag_b_n==l)flag_b_n==4;elseflag_b_n—;}if(flag_b_n==O){for(i=temp;i<sizeof(HCMMl);i++){PWMMR0 =Fpclk/HCMM1[i];PWMLER =0x05;Delay(HCMM_Ll[i]);}temp=0;}elseif(flag_b_n==l){for(i=temp;i<sizeof(HCMMl);i++){PWMMR0=Fpclk/HCMM1[i];PWMLER=0x05;Delay(HCMM_Ll[i]);}temp=0;}elseif(flag_b_n==2){for(i=temp;i<sizeof(HCMM2);i++){PWMMR0=Fpclk/HCMM2[i];PWMLER=0x05;Delay(HCMM_L2[i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024至2030年中国磁导体节能镇流器数据监测研究报告
- 2024至2030年中国婴儿专用洗衣液数据监测研究报告
- 2024至2030年相框时钟项目投资价值分析报告
- 2024至2030年优酸乳项目投资价值分析报告
- 2024年革凉鞋项目可行性研究报告
- 2024年酱油酿造设备项目可行性研究报告
- 2024年皮革油性防水剂项目可行性研究报告
- 2024年中国塑料注塑机市场调查研究报告
- 2024年挖掘机购销协议模板2
- 承包区域经营协议:2024细则
- 收银系统合同
- 盛唐诗中“长安”意象及其文化底蕴的研究
- 电商渠道拓展与销售增长策略
- 《1+X幼儿照护(中级)》课件-气管异物急救处理
- 《部门介绍模板》课件
- 如何审查合同的培训课件
- 船舶消防安全知识
- 2024下半年江苏苏州城市学院招聘管理岗位工作人员27人历年高频考题难、易错点模拟试题(共500题)附带答案详解
- 金属废料再利用技术介绍
- 风险投资在我国的发展课件
- 小学四年级数学面积应用题及图形面积题
评论
0/150
提交评论