基于mp3播放器的设计毕业论文(编辑修改稿)内容摘要:

OSIGNDSCKGNDMISODATDATINT1RST2WR3RD4TXD5RXD6NC7A08V39UD+10UD11GND12XI13XO14D015D116D217D318D419D520D621D722GND23ACT24RST25RST26CS27VCC28*2CH375AusbVCC1DATA2DATA+3GND4*3usbX112MC1022PFC1122PFCH375INTCH375RSTICH375WRCH375RDCH375A0D0D1D2D3D4D5D6D7D2USBLEDR61KCH375CSC73V33V33V3123P3P/S_TXDGNDC9GNDGNDUD+UDC8104100uFC4104C512D1LEDGND1IN3OUT2U2CYT117104C13V3+5V4K7R1123J1电源接口GND100uFC6+5VGNDUD+UD100uFC2104C3GND1IN3OUT2U1CYT117GNDPDIPDIR7A6B5C4A1B2C3S1按键开关12P16Header 29U 盘通信解码部分接口SD 卡部分供电电源 图 31 主控系统模块设计电路图 7 以下将介绍本模块的主要电路及芯片。 供电电源电路 本电路是直接利用外部电源适配器进行接电,这样得到的电流和电压都比较稳定 ,然后利用 ASM1117 线性稳压芯片,将电源电压转换成稳定的,少纹波的 5V、 电压,为了能控制整个电路的电源供电,在适当处添加了一个六角开关,目的是截取适配器供电。 当然本电路供电方式不唯一,在没有电源适配器的条件下也可以使用下载器供电,简单又实用。 供电电源电路如图 32所示 100uFC4104C512D1LEDGND1IN3OUT2U2104C13V3+5V4K7R1123J1电源接口GND100uFC6100uFC2104C3GND1IN3OUT2U1CYT1175VGNDA6B5C4A1B2C3S1按键开关 图 32 供电电源电路 MCU 微控制器 Atmega128 的引脚图如 33 图所示。 它为 64 脚的贴片式芯片,本设计利用它为核心控制元件,只有它能正常工作后才能使其他的元件进入正常工作状态。 因此,下面对该芯片进行必要 的说明。 图 33 图 Atmega128 的引脚 8 Atmega128 芯片是一种高性能、低功耗 8 位的 AVR 微处理器,片内具有 128K 字节的系统可编程 Flash,可解决卡机问题,能及时处理传送的数据。 具有 4K 字节的 EEPROM,可以对一些操作数据进行存储,方便断电重启后,能对上一次的数据进行再现。 具有独立片内振荡器的可编程看门狗定时器,可解决一些程序跑飞的情况。 有 53 个可编程 I/O口,可方便外挂其他器件 ,具有可工作于从机 /主机模式的 SPI 串行接口。 本设计主要用到 SPI 模式,需对 SPI 管脚及其寄存器加以重 视。 串行外设接口 SPI允许 ATmega128 和外设之间进行高速的同步数据传输,接口管脚为 PB1(SCK)、PB2(MOSI)、 PB3(MISO)。 SPI 串口方式特点有 :全双工, 3 线同步数据传输。 主机或从机操作 LSB 首先发送或 MSB 首先发送。 具有传输结束中断写碰撞标志检测。 可以从闲置模式唤醒。 可作为主机时具有双速模式( CK/2)。 以上是本设计需要重视的主芯片特点。 功能按键电路 功能按键电路在系统中起到手动切换播放模式及声音大小的调整。 考虑到本设计中需要的按键操作并不多,单片机的 I/O 口完全可 以满足,所以选择了独立式键盘设计,如图 34 所示 ,按键以低电平有效。 在硬件方面注意手动消抖,在软件方面,也应考虑按键消抖情况。 如图 34所示,共有五个按键,分别实现歌曲的播放、暂停、上下曲切换、声音加减功能。 K1 K2 K3 K4 K5R910K+5VR1010KR1110KR1210KR1310KS3SWPBS4SWPBS5SWPBS6SWPBS7SWPBGND 图 34 功能按键 VS1003 音频解码模块 VS1003B 是芬兰 VLSI 公司生产一种 VSXX 系列的芯片,是一种单芯片 MP3/WMA 音频解码器。 它拥有一个高性能,低功耗 DSP 处理器核 VS_DSP4,5KB 的指令 RAM 和 的数据 RAM。 串行控制和数据接口, 4 个常规的 I/O 口,一个 UART,一个高品质可变采样率的 ADC 和立体声 DAC、一个耳机放大器和地线缓冲器。 VS1003B 解码模块对单片机从SD卡或者 U 盘中读取的数据流进行解析,并转换成模拟信号输出,同时能实现高低音控制和立体声数模转换,可直接驱动耳机。 本设计需将系统 5V 电源通过 、 9 转化成 VS1003 所需的 、 电压,并通过 的电感进行数字电压、模拟电压、以及 IO 口电压进行区分,单独供电,降低对解码信号的影响。 VS1003B 封装图如 35 所示。 图 35 VS1003 封装图 该芯片的主要管脚介绍 : 1 脚 MICP:同向差分话筒输入。 2 脚 MICN:同向差分话筒输出。 3脚 XRESET:复位。 8脚 DREQ:数据请求。 13脚 XDCS:命令片选。 23脚 XCS:命令片选。 28脚 SCLK:串行时钟。 29 脚 SI:串行输入。 30 脚 SO:串行输出。 42 脚 GBUF:公共地缓冲器。 44脚 RCAP:基准滤波电容。 VS1003 解码模块电路图 图 36 VS1003 解码模块电路图 10 SD 卡模块电路及非正常播放的的解决办法 对于本模块电路设计,首要应该考虑电源电压 和电流的要求,防止电压电流超过SD 卡承受范围,进行烧卡,系统中供电电压一般为。 驱动 SD 卡的模式分为 SD 总线模式和 SPI 总线模式。 采用四根数据线并行传输数据,数据传输速率高的模式为 SD卡总线模式,这种总线的传输协议并不简单,而且很多单片机都没有提供这样的总线接口,而且若用软件来模拟 SD 卡总线却又相当的繁琐,并且还会降低 SD 卡的数据传输速率;如果用 SPI 总线模式去驱动 SD 卡,那么就只需用到一根数据传输线,此时数据传输速率虽较低,可在很多单片机上都具有 SPI 总线接口,若用软件来模拟也十分的容易,其总线模式 的传输协议十分简单,易于实现。 因此,本模块设计根据协议的简单性和实际需要则采用了 SPI 总线模式。 SPI 总线模式的数据传输则以字节为单位进行,每个字节则为 8位,每个命令或者数据模块都需以字节来对齐。 单片机对 SD 卡的读操作主要由主机控制,主机必须先拉低 SD 卡的片选信号 CS,选中 SD 卡器件,然后再由主机向 SD卡发送各种命令, SD 卡对主机发送的任何命令进行响应,根据命令的不同执行不同的响应格式;在执行写操作时,SD 卡还要对主机发送的每个数据模块进行响应。 通过执行命令和作出相对应的命令响应,完成单片机对 SD 卡的读写 操作。 调试中一些 SD 卡不能正常播放的解决办法 如果在软件方面只编写了 FAT16 文件系统,则不支持大于 2G 的盘,由此带来了两个问题。 若大于 2G 的盘,格式化的时候只能选择 FAT32, FAT16 的盘是不能正常播放的。 若小于 2G 的盘,请先使用软件 USBOOT 把 SD 卡工作模式更改为 FDD 模式,更改后即可正常播放。 SD 卡读写模块图(如图 37 所示) CD/DAT31CMD2VSS13VDD4CLK5VSS26DATA07DATA18WP10DATA291112*1SD10KR210KR310KR410KR53V3GNDSD_CSMOSIGNDSCKGNDMISODATDAT12P16SD 卡总线接口9 图: 37 SD 卡读写模块图 11 U 盘通信读写模块 本模块设计是利用 CH375芯片对外部的 U盘内数据进行驱动读取。 CH375是一个 USB总线的通用接口芯片,支持 USBHOST 主机方式和 USBDEVICE/SLAVE 设备方式 [4]。 CH375是一个 28 脚的贴片式芯片,它具有串并行通信方式,可以通过读控制线、写控制线、片选控制线、中断输出线及 8位数据总线,可非常方便地与单片机等控制器总线相连,实现并行传输。 当然还可以选择串行通信,通过串行输入线、输出线和中断输出线与单片机等实现数据传输。 CH375 本身还内置了大量专用通信协议的固件,外部单片机可以直接通过调用其固件实现对常用的 USB 储存设备以扇区为单位的读写操作。 在本设计过程中用 芯片降压到所需的 电压,并且还在并行串行的方式上预留了接口,即通过此接口可以选择串行和并行接口方式。 (注意: CH375 运用的是 12M 晶振,22PF 瓷片电容组成的振荡电路 ) U 盘通信电路图(如图 38 所示) INT1RST2WR3RD4TXD5RXD6NC7A08V39UD+10UD11GND12XI13XO14D015D116D217D318D419D520D621D722GND23ACT24RST25RST26CS27VCC28*2CH375AusbVCC1DATA2DATA+3GND4*3usbX112MC1022PFC1122PFCH375INTCH375RSTICH375WRCH375RDCH375A0D0D1D2D3D4D5D6D7D2USBLEDR61KCH375CSC73V33V33V3123P3P/S_TXDGNDC9GNDGNDUD+UDC8104+5VGNDUD+UDR7 图: 38 U 盘读写模块图 U 盘工作原理 当 CH375 工作方式在主机方式时,单片机通过 RD、 WR、片选 CS、中断 INT和地线A0进行控制,实现与 CH375 通讯。 当有 U盘插入时 CH375 产生中断来告诉单片机 ,单片机每次得到 CH375 的中断后 ,都要用 “ 获取状态 码 ” 来取消这个中断,让 INT恢复到高电平,为下次中断做准备。 要是 U 盘连接错误,那么就会返回状态码,若获取状态码GET_STATUS,那么表示 U盘已经连接成功。 接下来就是磁盘的初始化 DISK_INIT,同样也是等待中断,获取状态码,若获取 USB_INT_SUCCE,则成功,否则返回状态码,此时初始化 U盘成功,返回标志 0。 当 CS、 RD 和 A0 都为低电平时 CH375 的数据可以通过 D0~D7 输出;当 CS、 WR 和 A0 12 都为低电平时, D0~D7 上的数据被写入 CH375 芯片中;当 CS 和 WR 都为低电平, A0 为高电平时, D0~D7 中的数据可以作为命令码写入 CH375 中,这样就实现了 CH375 对 U 盘的读写 [5]。 其过程为:在 CH375 对 U 盘进行读写扇区时,首先送入磁盘读取命令 DIST_READ,然后送入 32 位的扇区地址,从低字节开始送入,接着送入要读取的扇区数,当我们只读取一个扇区时,我们就只送一个入一个 1,往下是等待中断读取状态,送入读数据命令再读数据(注:数据的第一个字节是后面数据的长度,紧接着的才是真正的数据),写入继续读数据命令,等待中断获取状态 USB_INT_SUCCESS,最后读取扇区成功。 补充:CH375 的数据缓冲 区仅为 64 个字节,读取一个扇区( 512 字节)要读 8次,每读完一次要从 CH375 中送入继续读取的命令,等待 CH375 的数据缓冲区更新为下面的 64 个字节后,再次等待中断,读取状态。 写入 8 次。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。