您的位置 首页 技术

根据51单片机的多功能MP3规划完成

基于51单片机的多功能MP3设计实现-MP3是生活中常见的电子产品。受手机、paid的冲击,当前人们对MP3功能的要求更加差异化和苛刻。传统MP3功能单一,芯片处理能力较差,大多无法播放高音质音乐文件。基于这一问题本文提出一种基于51增强型单片机的低成本多功能大容量MP3解决方案,在可播放高音质MP3歌曲的基础上加入图片播放和电子书播放,以应对MP3功能的差异化需求。详细设计如下。

1.导言

MP3是日子中常见的电子产品。受手机、paid的冲击,当时人们对MP3功用的要求愈加差异化和严苛。传统MP3功用单一,芯片处理才能较差,大多无法播映高音质音乐文件。根据这一问题本文提出一种根据51增强型单片机的低成本多功用大容量MP3处理方案,在可播映高音质MP3歌曲的基础上参加图片播映和电子书播映,以应对MP3功用的差异化需求。具体规划如下。

2.硬件规划

本多功用MP3由数据存储、音频解码、液晶显现、中心操控、电源、键盘等功用模块构成。

2.1 数据存储模块

选用Kingston SDHC卡作为存储介质。SDHC卡是一种高容量SD存储卡,容量在2GB~32G,契合SD2.0规范,可选用FAT32文件体系管理。单片机通过通讯读写SDHC卡指令和状况寄存器完结相关操作作业。SD卡内部有7个寄存器。其间OCR,CID,CSD和SCR寄存器保存卡的装备信息:RCA寄存器保存SD方法下通讯进程SDHC卡当时暂时地址;卡状况(Card Status)和SD状况(SD Status)寄存器保存卡当时状况,如:是否写成功,通讯的CRC校验是否正确等,这两个寄存器的内容与通讯方法有关。

须留意SD卡的作业电压为3.3V,不能与5V单片机直接相连,可在SD模块集成5-3.3V转化电路,便利单片机与SDHC卡的耦合

2.2 音频解码模块

MP3文件其实是一种通过MP3(即动态印象专家紧缩规范音频层面)编码算法紧缩的数据,不能直接送给功放,必须先通过解码复原出原始音频数据再进行播映。本文所选解码芯片为VLSI公司的VS1003,它支撑MP3/WAV/WMA/MIDI音频解码和ADPCM编码。VS1003的作业是通过对功用、状况寄存器的读写完结的。其间操控信息通过SCI写入功用寄存器,音频数据通过SDI写入VS1003数据缓冲区。写音频数据时,拉低XDCS,SDI有用;写指令数据时,拉低XCS,SCI有用。须留意,VS1003在DREQ管脚为高电平时才能够接纳数据。当作业在解码状况时它通过一个串行接口接纳比特流,比特流被解码后通过数字音量操控器被送到18位DAC,得到的音频模仿信号通过功放被送到耳机接口,接上耳机即可听到音乐声。

2.3 单片机操控模块

本文选用宏晶公司STC15F2K60S2单片机作为操控器,其2K字节片内RAM可满意体系运转RAM要求;该单片机选用增强型8051内核,速度快,可满意MP3播映数据交换要求;内置SPI串行通讯接口,易于与SD模块、VS1003模块耦合操作。该单片机的作业电压5.5V~3.8V的宽电压,引荐5V,须做好与SD卡管脚3.3V作业电压的耦合,以防SD卡损坏或作业异常。

2.4 TFT液晶显现模块

TFT液晶即五颜六色晶体管液晶显现器,它的像素点由集成在这以后的薄膜晶体管来驱动,通过必定电路操控每一像素三基色光强的配比即可显现各种五颜六色。8位单片机体系下的TFT液晶的显现需求TFT液晶操控器来驱动,单片机可通过与TFT液晶操控器的交互直接操控TFT液晶的显现。

本文显现模块选用的是一款3.5寸320*480分辨率的16位真五颜六色TFT液晶屏。模块选用8位并口办法与单片机衔接,可通过8位的规范Intel8080总线进行指令和数据的传输,便于操作。

TFT液晶的显现是将图形中每个像素点的方位和色彩信息在屏上对应显现,16位真五颜六色屏每一个像素点的方位信息(即坐标)和色彩信息依照必定格局存储在两个字节中。单片机操作时在对应方法下将图画一切像素点的信息送给操控器,在显现器上通过像素点的点阵组合便可完结显现。

3.软件规划

本多功用MP3具有三大功用:歌曲播映、图片播映、电子书播映。方针数据的获取是完结每个功用的首要问题。因为歌曲、图片、电子书文件大,在SDHC卡以簇链方法存储,需由文件体系进行数据管理,故嵌入FAT32文件体系(znFAT)处理上述问题。在此基础上完结每个子功用与之相关的数据处理及体系全体运转结构即可完结悉数功用。

3.1 数据获取

数据获取需确保SDHC卡的正确驱动和FAT32文件体系的正常运转。

3.2 SDHC卡的驱动

(1)初始化操作

①延时至少74clock,等候SD卡内部操作完结。

②拉低CS选中SD卡。

③发送CMD0,若回来0x01,进入Idle状况。

④发送CMD8指令,若回来0x01,初步判断为2.0卡,循环发送CMD55+ACMD41,直至回来0x00,确认SD2.0卡初始化成功。

⑤拉高CS。

(2)读数据操作

①发送CMD17(读取单个扇区)或CMD18(接连读取多个扇区)读指令,回来0x00表明操作成功。

②接纳数据:格局为开端令牌(0xfe)+512B正式数据+2B CRC校验码。

(3)写数据操作

①发送CMD24(写单个扇区)或CMD25(接连写多个扇区)写指令,回来0x00表明操作成功。   ②发送数据:格局为开端令牌(0xfe)+512B正式数据+2B CRC校验码。

(4)擦除操作

①发送CMD32擦除开端地址。

②发送CMD33和擦除完毕地址。

③发送CMD38,擦除指定的多扇区内容。

SDHC驱动常用函数如下:

函数界说 功用与参数描绘

SD_Init() SD卡初始化

SD_Write_Sector(addr,buffer) 将buffer中的数据写入到addr扇区中

SD_Read_Sector(addr,buffer) 读取addr扇区中数据到buffer中

SD_Write_nSector(nsec,addr,buffer) 将buffer中的数据写入到addr开端的nsec个扇区中

SD_Read_nSector(nsec,addr,buffer) 读取addr开端的nsec个扇区数据到buffer中

SD_Erase_nSector(addr_sta,addr_end) 擦除addr_sta开端addr_end完毕的多个扇区

SD_GetTotalSec() 获取SD卡的物理总扇区数

4.FAT32文件体系

本文文件体系挑选免费开源体系znFAT。znFAT的全体结构分为使用层层、完结层、物理驱动层,用户只需编写物理驱动层扇区读写等函数。可供用户操作的功用包含翻开文件、读取数据、创立文件等;

本文中触及最多的是数据的读取,读取数据可通过“翻开文件函数UINT8 znFAT_Open_File(struct FileInfo *pfi,INT8 *filepath,UINT32 n,UINT8 is_file)”和“读取数据函数UINT32 znFAT_Read_File(struct FileInfoStruct *pfi,UINT32 offset,UINT32 len,UINT8 *pbuf)”来完结。

4.1 歌曲播映

歌曲播映是STC15F单片机通过文件体系读取SDHC卡中的MP3文件,将MP3数据送给VS1003模块解码得到模仿音频信号流的进程。一起通过MP3文件文件目录项信息解析出文件名(歌曲名);用文件已读取字节数量除以文件总巨细得到播映进展;在VS1003打入频谱补丁的前提下从地址0x6 0x7 0xa三个寄存器中读出频谱相关信息;并逐个显现。播映进程中,按键能够切换歌曲,调理音量。歌曲的切换是通过改动体系内部为不同歌曲分配的不同序列号而完结的。因为一方面单片机RAM有限,无法单次读取太多MP3数据且一次读取过多会因耗时过多而引起播映的卡顿;另一方面,两次数据读取中心有按键检测,若一次读取数据过多会下降按键的灵敏性。要完结边播映边检侧按键需找到一个单次读取数据量的平衡点,主张挑选300B。

播映进程需处理VS1003驱动问题和相关数据处理。VS1003驱动办法如下:

单片机对VS1003驱动是通过SPI通讯办法对VS1003的指令状况寄存器进行读取和刷写而完结的。使用时须首要对VS1003硬件复位,将XRESET拉低并延时;其次向方法寄存器(地址0x0)写入0X0804;再次设置时钟寄存器(地址0x3)和采样率寄存器(地址0x5);最终设置音量且发送4个无效数据发动数据传输,4个无效数据的传输不能疏忽。其间VS1003选用大端方法;音量寄存器的设置值为0~255,对应音量的最大和最小,编程时需留意。

数据处理伪代码如下:

void Mp3play()

{

//相关变量界说

//文件体系及相关物理设备初始化

//刷写播映布景

while(!znFAT_Open_File(&FileInfo,”\\歌曲\\*.mp3”,Sang_Num,1))//翻开歌曲目录下序号为1的歌曲文件

{

while( len = znFAT_Read_File(&FileInfo,FileInfo.FileCurOffset,400,mp3_buf))//读出部分MP3数据

{

//MP3数据发送给VS1003

VS_XDCS = 0;

for( i=0; i《len; i++)

{

VS_Send_Dat(mp3_buf[i]);

}

VS_XDCS = 1;

//播映进展显现

//频谱显现

}

//歌曲名显现

//按键检测及处理

}

}

4.2 图片播映

图片播映类似于歌曲播映,不同在于读出的图片文件数据发送给TFT显现屏模块进行显现。因为所选显现屏分辨率为320*480,单次数据读取巨细主张为320,则两次读数据写屏进程便可写满显现屏的一行,重复书写320行即可完结图片显现。

4.3 电子书播映

电子书播映的首要问题是汉字显现。汉字的显现就是以字模信息为蓝本在显现屏上画图,以某汉字字模信息为蓝本画出的图便是该汉字。本文挑选的字模库是UCDOS操作体系下的汉字字模库HZK16.dat。

txt文件存储信息本质为汉字在字模库中的区码和位码。首要从SDHC卡分屡次读出txt文件数据,其间每个汉字信息由两个字节贮存,每个英文字母及英文标点由一个字节贮存。字节内容为字符在字模库中的方位,汉字字模方位可由公式“字模在HZK16中的偏移量=[(区码-1)*94+(位码-1)]*32”算出;接着用“UINT8 znFAT_seek(struct FileInfo *pfi,UINT32 offset)函数(znfat功用层函数)”读出16*16汉字的32字节字模信息并将对应汉字刷写在显现屏上。重复以上汉字的显现进程便可完结电子书的播映。主张每次读取的txt文件巨细为200B,需特别留意的是,须检测每次读取最终一个字节是不是英文字母或英文标点,是则读,若不是或是下个汉字的区码,则不读,避免形成汉字显现紊乱。一起,在每次txt文件读取的空隙进行按键处理,包含上下页、上下篇、回来等。

5.什物调试及成果

通过制板和元件焊接,完结什物制造。将SDHC卡格局化为FAT32格局,装入歌曲、图片、电子书文件。将内存卡装入卡座进行测验。各方面功用正常,可正常播映320kbs音乐文件、300K 320*480的二进制图片文件、txt电子书文件。MP3文件的播映能够暂停,切换上下去,快进;图片的播映可切换上下张;txt的播映可上下翻页,可切换篇,检查进展。但图片刷写和电子书刷写稍稍显慢,这是受单片机处理速度所限,但也在可接受规模。

6.结语

尽管当时电子产品日益丰厚,但因为MP3的便携性和专业性,信任MP3不会走出人们的视角,并会将以功用特性化作为主打,在不远的将来,MP3的功用及规划有望完结个人定制。本文便是针对当时MP3功用差异化需求现象做出的一次测验,规划了一款多功用MP3,旨在满意当下人们对电子产品功用的差异化需求。该规划功用强大,成本低,适宜批量化出产。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/jishu/347968.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部