STM32单片机课程设计题目:基于STM32的大容量音乐播放器设计指导教师:曹利钢所在学院:机械电子工程专业班级:14自动化2班姓名:张志浩学号:114040200227联系电话:13479763170实践时间:2017年5月30日目录一引言....................................................................................................................................1二系统整体概述设计.....................................................................................................1三硬件设计3.1控制器............................................................................................................................23.2电源..................................................................................................................................33.3PCM1770音频播放模块........................................................................................43.4SD卡数据存储模块.................................................................................................43.5W25Q32数据存储模块和OLED显示模块.........................................................43.6按键控制.............................................................................................................................5四软件设计4.1软件.....................................................................................................................................64.2软件设计流程图.............................................................................................................7五程序设计............................................................................................................................8六课程小结...........................................................................................................................121摘要:采用具有ARMCortex-M3内核的STM32F103R8T6等芯片进行相关的硬件设计,使用KEIL4.0进行固件程序和驱动程序的开发,设计了一种基于STM32的CCID协议的USB读卡器.该读卡器支持符合ISO7816-3规范的接触式IC卡。实验表明,该设计可以提高智能卡系统的通信速度和中断响应速度。关键词:USB;CCID协议;STM32;ISO7816-3一.引言随着社会的快速发展,现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,音乐成了我们生活工作中的一个重要的部分。位次我设计了一个基于STM32的大容量音乐播放器。二系统总体设计概述基于PCM1770芯片播放器STM32F105SD卡数据存储模块FATFS文件管理系统W25Q32存储模块按键控制模块电源模块PCM1770音频播放模块OLED显示模块2三硬件设计3.1控制器STM32F105互联型系列微处理器使用高性能的ARMCortex-M332位的RISC内核。工作最高频率为72MHZ,内置256K字节的闪存和64K字节的SRAM。丰富的I/O端口和联接到两条APB总线的外设。包含标准的通讯接口(2个IIC接口,3个SPI接口,2个IIS接口,1个USBOTG全速接口,5个USART接口和2个CAN接口),2个12位的ADC和4个通用的16位定时器。它具有高性能、低功耗、低电压等特性,同时还具有高集成度和易于开发的特点,使该系列产品成为小型项目和作为完整平台的理想选择。STM32的使用需要一个最小系统,包括晶振电路,复位电路。1)晶振电路的设计:晶振电路用于向处理器提供工作时钟。本系统使用72MHZ无源晶振作为系统的主振荡器。晶振的负载电容应当按照要求选取,电容不正确可能导致晶振起振缓慢甚至不起振,这将影响整个系统的稳定性。2)复位电路的设计:采用简单的“RC+按键”复位形式,该复位电路可以实现上电自动复位和手动按键复位。上电自动复位是通过外部复位电路的电容充电来实现的,按键复位是通过复位端经电阻与电源接通而实现的。33.2电源本系统所需要的硬件输入电源为3.3V,采用AS1l17—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所示。LRCK1HOUTR8HOUTL9SCKI16BCK3VCC12VHP11DATA2PD4MD13MC14MS15AGND5HGND6AIN10VCOM7PCM1770I2S_WSI2S_SDI2S_CKI2S_MCKSPI2_CLKSPI2_MOSI+3.3V220UF16V220UF16V35421EarjackStereoSW16160.22UF50V0.22UF50V10UF10VRESETSPI2_CS43.4SD卡数据存储模块SD卡(SecureDigitalMemoryCard)安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用。SD卡具有大容量、高性能、安全等多种特点的多功能存储卡。SD卡支持两种接口访问模式,SDIO模式和SPI模式。本系统选择kingston8G的SD卡,采用SPI模式通讯。3.5W25Q32数据存储模块和OLED显示模块本系统选择型号为CT242864PMY的OLED屏以及16Mbit的串行FLASH存储芯片W25Q32,OLED(OrganicLightEmittingDisplay)有机发光二极管显示面板,是一门相当年轻的显示技术。它利用有机半导体材料和发光材料在电流的驱动下产生发光来实现显示。与LCD相比有很多优点,超轻、超薄、高亮度、大视角、像素自身发光、低功耗、高清晰等等。CT242864PMY与一般LCD接口相似,包括数控选择D/C、读写选择W/R、复位和8个并行数据传输位。WP11NCD10DAT18DAT07GND6CLK5VDD4GND13PAD112CD/DAT31PAD415PAD314CMD2PAD213DAT2910K+3.3V10KSD_CDSPI1_MISOSPI1_SCKSPI1_MOSI010K+3.3VSD_CSSDCARD5W25X系列FLASH存储器可以为用户提供存储解决方案,具有PCB板占用空间少,引脚数量少,功耗低等特点。与不同串行FLSH相比,使用更灵活,性能更出色。它非常适合做代码下载应例如存储声音,文本和数据。工作电压在2.7V-3.6V。在这里选择W25Q32型号,存储容量为4M,存储汉字和字母,供OLED显示屏使用。如图3所示。3.6按键控制本系统中选择普通三个四角按键作为控制输入端,可以控制播放、暂停、音乐选择、声音调节等。CS1WP3DI5DO2HOLD7CLK6VCCGNDW25Q3210K+3.3V10KGND10K100NFSWP1SPI3_CSSPI3_CLKSPI3_MISOSPI3_MOSI6四软件设计RealViewMDK开发套件源自德国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的编写遵循ANSIC,因此不依赖于硬件平台。它可以嵌入到便宜的微控制器中,如8051,PIC,AVR,ARM等等。本系统将通过FatFS文件系统访问SD卡文件。FatFs模块为应用程序提供了部分函数,在此基础上再编写遍历文件等函数即可满足应用。73)处理器STM32F105的I2S接口为主模式和16bitMSB对齐标准,PCM1770为从设备模式和MSB对齐标准。SPI2接口(访问PCM1770寄存器接口)为主模式和数据传输从MSB位开始。4.2软件设计流程图处理器上电后先配置各模块的GPIO接口并初始化,通过FatFS文件系统遍历SD卡中音频文件并将文件名存储。从W25Q32中读取上次停止时正在播放的音乐文件显示在OLED屏幕,准备播放。在主程序大循环中有两个工作,第一判断正在读取的文件是否读取完成,第二判断是否有按键按下。处理器采用中断的方式通过I2S接口播放音频文件。8开始配置系统时钟配置按键接口参数配置OLED和W25Q32接口参数并初始化读取上次关闭时播放的音乐文件并显示至OLE