基于STM32F单片机的音乐播放器设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于STM32的大容量音乐播放器设计(湖北大学物理学与电子科学技术学院,湖北武汉430074)
摘要:采用具有ARMCortex-M3内核的STM32F103R8T6等芯片进行相关的硬件设计,使用KEIL4.0进行固件程序和驱动程序的开发,设计了一种基于STM32的CCID协议的USB读卡器.该读卡器支持符合ISO7816-3规范的接触式IC卡。实验表明,该设计可以提高智能卡系统的通信速度和中断响应速度。关键词:USB;CCID协议;STM32;ISO7816-3
1引言
2系统总体设计概述
基于PCM1770芯片播放器
3硬件设计
3.1控制器
STM32F105互联型系列微处理器使用高性能的ARM Cortex-M3 32位的RISC内核。工作最高频率为72MHZ,内置256K字节的闪存和64K字节的SRAM。丰富的I/O端口和联接到两条APB总线的外设。包含标准的通讯接口(2个IIC接口,3个SPI接口,2个IIS接口,1个USB OTG 全速接口,5个USART接口和2个CAN接口),2个12位的ADC和4个通用的16位定时器。。它具有高性能、低功耗、低电压等特性,同时还具有高集成度和易于开发的特点,使该系列产品成为小型项目和作为完整平台的理想选择。STM32的使用需要一个最小系统,包括晶振电路,复位电路。
1)晶振电路的设计:晶振电路用于向处理器提供工作时钟。本系统使用72MHZ无源晶振作为系统的主振荡器。晶振的负载电容应当按照要求选取,电容不正确可能导致晶振起振缓慢甚至不起振,这将影响整个系统的稳定性。
2)复位电路的设计:采用简单的
“RC+按键”复位形式,该复位电路可以实现上电自动复位和手动按键复位。上电自动复位是通过外部复位电路的电容充电来实现的,按键复位是通过复位端经电阻与电源接通而实现的。
3.2电源
本系统所需要的硬件输入电源为3.3V, 采用AS1 l17—3.3稳压芯片来提供,输入电压范围是4.75V-10V,输出电压3.3V。在使用过程中用5V电源供电即可。
3.3PCM1770音频播放模块
DAC芯片选择德州仪器的PCM1770PWR芯片提供音频播放功能,它是具有耳机放大器的24 位低功耗立体声音频DAC(解码器)。可支持工业标准音频数据格式,包括标准模式、I2S 飞利浦标准、MSB对齐标准。可直接驱动耳机,具有软件控制音量大小,芯片模式和模拟语音合成等功能。PCM1770的I2S共4路信号,I2S_SD 串行数据用来接收2路左右声道时分复用
通道的数据、I2S_WS 字选(左右声道选择)从模式下作为输入、I2S_CK 串行位时钟从模式下作为输入、I2S_MCK 主时钟PCM1770工作需要的时钟。PCM1770的SPI共三路信号,SPI2_CS 接口片选、SPI2_SD 数据接收、SPI2_CLK 时钟信号。
本系统中处理器通过I2S接口(处理器带有I2S接口)传送音频信号到PCM1770,由它进行解码输出到音频座。处理器通过SPI接口访问PCM1770的寄存器,实现配置和控制功能。如图1所示。
3.4 SD卡数据存储模块
SD卡(Secure Digital Memory Card)安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用。SD卡具有大容量、高性能、安全等多种特点的多功能存储卡。SD卡支持两种接口访问模式,SDIO模式和SPI模式。本系统选择kingston 8G的SD卡,采用SPI模式通讯。
3.5 W25Q32数据存储模块和OLED显示模块
本系统选择型号为CT242864PMY的OLED屏以及16Mbit的串行FLASH存储芯片W25Q32,OLED(Organic Light Emitting Display)有机发光二极管显示面板,是一门相当年轻的显示技术。它利用有机半导体材料和发光材料在电流的驱动下产生发光来实现显示。与LCD相比有很多优点,超轻、超薄、高亮度、大视角、像素自身发光、低功耗、高清晰等等。CT242864PMY 与一般LCD接口相似,包括数控选择D/C、读写选择W/R、复位和8个并行数据传输位。
W25X系列FLASH存储器可以为用户提供存储解决方案,具有PCB板占用空间少,引脚数量少,功耗低等特点。与不同串行FLSH相比,使用更灵活,性能更出色。它非常适合做代码下载应
例如存储声音,文本和数据。工作电压在2.7V-3.6V。在这里选择W25Q32型号,存储容量为4M,存储汉字和字母,供OLED显示屏使用。如图3所示。
3.6按键控制
本系统中选择普通三个四角按键作为控制输入端,可以控制播放、暂停、音乐选择、声音调节等。
4 软件设计
RealView MDK开发套件源自德国Keil公司,是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具, 支持ARM7、ARM9和最新的Cortex-M3核处理器.本次设计的软件平台是建立在MDK μVision4之上的。系统软件设计包括应用层的主程序和驱动层的PCM1770音频、W25Q32汉字存取、OLED显示、SD卡和FatFS文件系统、按键模块。
4.1 软件设计
1)为了能够实时在OLED屏幕上显示所播放音乐的名称,必须将数字、字母、汉字以及图形符号所对应的的OLED显示码(16*8或者16*16点阵)存于W25Q32。这里是按照国标GB2312-80中规定的区位码的顺序存储。由于处理器的FLASH为256K,要存储区位码中所有汉字图形可以分两次烧录存储。在每次使用时根据机内码与区位码的对应规则调用。第一步:将区位码转换为国标码。两区位码改写成十六进制前两位是区码,后两位是位码。将十六进制数加2020H得到的就是国标码。第二步:国标码转换成机内码。将所得到的国标码加8080H,就可得机内码。
2)FatFS 是一个通用的文件系统模块,用于在小型嵌入式系统中实现FAT文件系统。FatFs 的编写遵循ANSI C,因此不依赖于硬件平台。它可以嵌入到便宜的微控制器中,如8051, PIC, AVR, ARM 等等。本系统将通过FatFS 文件系统访问SD卡文件。 FatFs 模块为应用程序提供了部分函数,在此基础上再编写遍历文件等函数即可满足应用。
3)处理器STM32F105的I2S接口为主模式和16bitMSB 对齐标准,PCM1770为从设备模式和MSB对齐标准。SPI2接口(访问PCM1770寄存器接口)为主模式和数据传输从MSB位开始。
4.2软件设计流程图
处理器上电后先配置各模块的GPIO接口并初始化,通过FatFS文件系统遍历SD卡中音频文件并将文件名存储。从W25Q32中读取上次停止时正在播放的音乐文件显示在OLED屏幕,准备播放。在主程序大循环中有两个工作,第一判断正在读取的文件是否读取完成,第二判断是否有按键按下。处理器采用中断的方式通过I2S接口播放音频文件。