ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:406.73KB ,
资源ID:8235200      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8235200.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理.docx

1、微机原理微机原理课程设计题目:基于STM32的MP3播放器设计学院:电气工程学院指导老师:朱卫华班级:电子卓越3班姓名:史延林学号:20094470321摘要Cortex-M3 是ARM 公司为要求高性能(1.25 Dhrystone MIPS/MHz)、低成本、低功耗的嵌入式应用专门设计的内核。STM32 系列产品得益于Cortex-M3 在架构上进行的多项改进,包括提升性能的同时又提高了代码密度的Thumb-2 指令集和大幅度提高中断响应的紧耦合嵌套向量中断控制器,所有新功能都同时具有业界最优的功耗水平。本系统是基于Cortex-M3 内核的STM32 微控制器的mp3 播放器,在硬件方面

2、主要有VS1053硬件音频解码器和12864 点阵液晶屏,在软件方面主要有VS1053 的驱动,SD 卡工作在SPI 模式下的读写驱动,FAT 文件系统的移植,12864 液晶的驱动,嵌入式操作系统ucOSii 的移植以及嵌入式图形管理器ucGUI 的移植。整个设计过程包括电子系统的设计技术及调试技术,包括需求分析,原理图的绘制,pcb 板的绘制,制版,器件采购,安装,焊接,硬件调试,软件模块编写,软件模块测试,系统整体测试等整个开发调试过程。关键词:STM32,VS1053, FAT 文件系统,12864 液晶,ucOSii,ucGUIAbstractCortex-M3 are ARM co

3、mpanies that require high performance (1.25 Dhrystone MIPS / MHz),low-cost, low-power embedded applications specially designed core. STM32 familybenefits from the Cortex-M3 architecture at on a number of improvements, including upgrading the performance and at the same time improve the code density

4、of the Thumb-2 instruction set and interrupt response significantly improve the tightly coupled nested vector interrupt controller, All new features are at the same time the optimal power consumption level of the industry.The system is based on the Cortex-M3 core STM32 microcontroller mp3 player, ma

5、inly in hardware have VS1053 hardware audio decoder and 12864 dot matrix LCD screen, mainly in the software driver VS1053 has, SD card work in the SPI mode to read and write drive,FAT file system of the transplant, 12864 LCD drivers, embedded operating system and embedded ucOSii transplant graphics

6、manager ucGUI transplant. The entire design process including the design of electronic systems technology and debugging techniques, including needs analysis, mapping principle, pcb drawing board,plate making, device procurement, installation, welding, hardware debugging,preparation of software modul

7、es, software module testing, overall system testing throughout the development process.KEY WORDSSTM32,VS1053, fat filesystem,12864 dot matrix LCD screen,ucOSii, ucGUI1. 系统描述1.1 综述本系统是基于STM32 微控制器所设计的MP3 播放器,音频文件储存在SD 卡上,由微控制器读取数据并送到VS1053 音频解码模块解码并输出,同时微控制器驱动液晶模块显示当前播放信息,提供同步歌词显示。整个系统模块分为四个模块:MCU 主芯

8、片最小板、CPU 外围电路main borad、VS1053 音频解码、液晶显示。MCU 是STM32 主芯片的最小板,上面有芯片工作需要的最少资源:时钟控制电路、复位电路、JTAG 控制口以及与外围电路相连的接口。Main board 上集成了稳压电源、滤波电路、SD 卡、与液晶及音频解码芯片的连接电路。VS1003 和液晶分别是单独的音频解码、控制显示部分。1.2 系统框图1.3 功能实现􀁺 SD 卡读写􀁺 FAT 文件系统􀁺 LCD 人机界面􀁺 MP3 文件播放􀁺 歌词同步显示2.2 STM32 微

9、控制器2.2.1 芯片介绍STM32F103xx 增强型系列使用高性能的ARM Cortex-M3 32 位的RISC 内核,工作频率为72MHz,内置高速存储器(高达128K 字节的闪存和20K 字节的SRAM),丰富的增强I/O 端口和联接到两条APB 总线的外设。所有型号的器件都包含2 个12 位的ADC、3 个通用16 位定时器和一个PWM 定时器,还包含标准和先进的通信接口:多达2 个I2C 和SPI、3 个USART、一个USB 和一个CAN。2.2.2 管脚图2.3 VS1053 音频解码器2.3.1 VS1053 芯片介绍VS1053 是目前 VLSI 公司VS10xx 系列最

10、强悍的芯片了,除了能播放各种音乐格式,还支持 OGG 实时编码录音。2.3.2 VS1053 特性:􀁺 Ogg Vorbis 解码;MPEG 1 & 2 音频阶层III (CBR +VBR +ABR);阶层 I 和 II 可选;MPEG4/2 AACLC(+PNS),HEAAC V2 (级别3) (SBR + PS);WMA 4.0/4.1/7/8/9 所有特性(profiles)(5 84 kbps);WAV (PCM + IMA ADPCM);通用 MIDI 1 / SPMIDI 格式0 的文件;􀁺 2、用软件插件进行Ogg Vorbis 编码2.3.3

11、 结构框图图2.3.3 VS1053 结构框图2.3.4 电路原理图图2.3.4 VS1053 电路原理图2.4 SD 卡模块2.4.1 SD 卡介绍SD 卡(Secure Digital Memory Card)中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD 卡由日本松下、东芝及美国SanDisk 公司于1999 年8月共同开发研制。大小犹如一张邮票的SD 记忆卡,重量只有2 克,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。2.4.2 电路原理图图2.4.2

12、SD 卡接口电路SD卡主要引脚和功能为: CLK:时钟信号,每个时钟周期传输一个命令或数据位,频率可在025MHz之间变化,SD卡的总线管理器可以不受任何限制的自由产生025MHz的频率; CMD:双向命令和回复线,命令是一次主机到从卡操作的开始,命令可以是从主机到单卡寻址,也可以是到所有卡;回复是对之前命令的回答,回复可以来自单卡或所有卡; DAT03:数据线,数据可以从卡传向主机也可以从主机传向卡。SD卡以命令形式来控制SD卡的读写等操作。可根据命令对多块或单块进行读写操作。在SPI模式下其命令由6个字节构成,其中高位在前。下面分别给出读写SD卡的两个函数: 读取SD卡函数u8 MSD_R

13、eadBlock(u8* pBuffer, u32 ReadAddr, u16 NumByteToRead);/* Function Name : MSD_ReadBlock* Description : Reads a block of data from the MSD.* Input : - pBuffer : pointer to the buffer that receives the data read* from the MSD.* - ReadAddr : MSDs internal address to read from.* - NumByteToRead : number

14、 of bytes to read from the MSD.* Output : None* Return : The MSD Response: - MSD_RESPONSE_FAILURE: Sequence failed* - MSD_RESPONSE_NO_ERROR: Sequence succeed */u8 MSD_ReadBlock(u8* pBuffer, u32 ReadAddr, u16 NumByteToRead) u32 i = 0; u8 rvalue = MSD_RESPONSE_FAILURE; /* MSD chip select low */ MSD_CS

15、_LOW(); /* Send CMD17 (MSD_READ_SINGLE_BLOCK) to read one block */ MSD_SendCmd(MSD_READ_SINGLE_BLOCK, ReadAddr, 0xFF); /* Check if the MSD acknowledged the read block command: R1 response (0x00: no errors) */ if (!MSD_GetResponse(MSD_RESPONSE_NO_ERROR) /* Now look for the data token to signify the s

16、tart of the data */ if (!MSD_GetResponse(MSD_START_DATA_SINGLE_BLOCK_READ) /* Read the MSD block data : read NumByteToRead data */ for (i = 0; i NumByteToRead; i+) /* Save the received data */ *pBuffer = MSD_ReadByte(); /* Point to the next location where the byte read will be saved */ pBuffer+; /*

17、Get CRC bytes (not really needed by us, but required by MSD) */ MSD_ReadByte(); MSD_ReadByte(); /* Set response value to success */ rvalue = MSD_RESPONSE_NO_ERROR; /* MSD chip select high */ MSD_CS_HIGH(); /* Send dummy byte: 8 Clock pulses of delay */ MSD_WriteByte(DUMMY); /* Returns the reponse */

18、 return rvalue;写读取SD卡函数u8 MSD_WriteBlock(u8* pBuffer, u32 WriteAddr, u16 NumByteToWrite) /* Function Name : MSD_WriteBlock* Description : Writes a block on the MSD* Input : - pBuffer : pointer to the buffer containing the data to be* written on the MSD.* - WriteAddr : address to write on.* - NumByte

19、ToWrite: number of data to write* Output : None* Return : The MSD Response: - MSD_RESPONSE_FAILURE: Sequence failed* - MSD_RESPONSE_NO_ERROR: Sequence succeed */u8 MSD_WriteBlock(u8* pBuffer, u32 WriteAddr, u16 NumByteToWrite) u32 i = 0; u8 rvalue = MSD_RESPONSE_FAILURE; /* MSD chip select low */ MS

20、D_CS_LOW(); /* Send CMD24 (MSD_WRITE_BLOCK) to write multiple block */ MSD_SendCmd(MSD_WRITE_BLOCK, WriteAddr, 0xFF); /* Check if the MSD acknowledged the write block command: R1 response (0x00: no errors) */ if (!MSD_GetResponse(MSD_RESPONSE_NO_ERROR) /* Send a dummy byte */ MSD_WriteByte(DUMMY); /

21、* Send the data token to signify the start of the data */ MSD_WriteByte(0xFE); /* Write the block data to MSD : write count data by block */ for (i = 0; i NumByteToWrite; i+) /* Send the pointed byte */ MSD_WriteByte(*pBuffer); /* Point to the next location where the byte read will be saved */ pBuff

22、er+; /* Put CRC bytes (not really needed by us, but required by MSD) */ MSD_ReadByte(); MSD_ReadByte(); /* Read data response */ if (MSD_GetDataResponse() = MSD_DATA_OK) rvalue = MSD_RESPONSE_NO_ERROR; /* MSD chip select high */ MSD_CS_HIGH(); /* Send dummy byte: 8 Clock pulses of delay */ MSD_Write

23、Byte(DUMMY); /* Returns the reponse */ return rvalue;2.5 液晶 12864 模块2.5.1 液晶 12864 介绍12864 系列是一种图形点阵型液晶显示模块。它主要由行驱动器与列驱动器组成,可显示128(列)*64(行)点阵。可完成图形显示,也可显示8*4 个(16*16点阵)汉字。七条控制指令,与CPU 接口采用8 位数据总线并口输入输出方式。作温度:-2070C,储存温度:-3080C。工作电压为 +5.0V。2.5.2 结构框图图2.5.2 液晶结构框图2 FAT16文件系统简介 SD卡如果采用FAT16文件格式,按照其不同的特点

24、和作用大致可分为5 部分:MBR区、DBR区、FAT区、FDT区和DATA区。由于SD卡一般不做引导盘,一般也不分区,因此通常无MBR区,直接从DBR区开始。下面对后面四个区分别作简介: DBR区 内容为系统引导记录,它包括一个引导程序和一个被称为BPB(Bios Parameter Block)的本分区参数记录表。引导程序的主要任务是当MBR将系统控制权交给它时,判断本分区根目录是否有操作系统引导文件,如果有则将其读入内存,并把控制权交给该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、根目录大小、FAT个数,分配单元大小等重要参数。本系统采用的DBR结构为:typedef

25、 _packed struct/* 由于Cortex-M3内核默认以对齐方式访问,因此可能导致结构体元素之间有“空隙”,读出的结构体元素有误,因此需要加上关键字_packed,强制其以压缩方式存储结构体。这样该结构体在内存空间上是一片连续的空间,不存在“空隙”情况。其它地方同理 */ u8 BS_jmpBoot3; /ofs:0.典型的如:0xEB,0x3E,0x90 u8 BS_OEMName8; /ofs:3.典型的如:“MSWIN4.1” u16 BPB_BytesPerSec; /ofs:11.每扇区字节数 u8 BPB_SecPerClus; /ofs:13.每簇扇区数 u16 BP

26、B_RsvdSecCnt; /ofs:14.保留扇区数,从DBR 到FAT 的扇区数 u8 BPB_NumFATs; /ofs:16.FAT 的个数,通常为2 u16 BPB_RootEntCnt; /ofs:17.根目录项数 u16 BPB_TotSec16; /ofs:19.分区总扇区数(32M 时用) u8 BPB_Media; /ofs:21.分区介质标识,SD卡一般用0xF8 u16 BPB_FATSz16; /ofs:22.每个FAT 占的扇区数 u16 BPB_SecPerTrk; /ofs:24.每道扇区数,对于SD卡无意义 u16 BPB_NumHeads; /ofs:26.

27、磁头数,对于SD卡无意义 u32 BPB_HiddSec; /ofs:28.隐藏扇区数,从MBR到DBR的扇区数 u32 BPB_TotSec32; /ofs:32.分区总扇区数(32M时用) u8 BS_DrvNum; /ofs:36.软盘:0x00,硬盘:0x80,SD卡无意义 u8 BS_Reservedl; /ofs:37.保留 u8 BS_BootSig; /ofs:38.扩展引导标记:0x29,通常对于SD卡无意义 u32 BS_VolID; /ofs:39.盘序列号 u8 BS_VolLab11; /ofs:43.如“Msdos ” u8 BS_FilSysType8; /ofs

28、:54.“FAT16 ” u8 ExecutableCode448; /ofs:62.引导代码 u8 ExecutableMarker2; /ofs:510.结束标识:0xAA55 FAT_BPB; FAT区 该区内容为文件分配表,FAT16文件系统进行空间分配的最基本单位是簇。文件分配表反映了SD卡所有簇的使用情况,通过查文件分配表可以得知任一簇的使用情况。对于FAT16来说,FAT表每项占用两个字节。FAT表的第一项通常为FFF8H。对于其它项,若其值为0000H表示可用;FFF7H表示为坏簇;FFF8H-FFFFH之间表示该簇为某文件或目录的最后一个簇,FFF0H-FFF6H之间为保留值

29、;其它值则指示下一个簇的簇号。 FDT区该区的内容为文件目录表,FAT文件系统的一个重要思想是把目录(文件夹)当作一个特殊的文件来处理,FAT32甚至将根目录当作文件处理。FAT分区中所有目录文件,实际上可以看作是一个存放其它文件(文件夹)入口参数的数据表。因此,目录占用空间的大小并不等同于其下所有数据的大小,但也不等于0,通常是占很小的空间。其具体的存储原理是:不管目录文件所占空间为多少簇,一簇为多少扇区、多少字节;系统都会以32个字节为单位,进行目录文件所占簇的分配。本系统目录项使用的结构体如下:typedef _packed structu8 FileName8; /ofs:0.文件名u8 ExtName3; /ofs:8.扩展名u8 Attribute; /

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1