在44B0X上播放MP3
本页提供BIN文件(V1.0)供大家在优龙的FS44B0XII上测试,其它公司的开发板不一定支持,支持TCP/IP,SHELL,MP3解码,FAT12/FAT16,请看后面测试步骤。V2.0已经支持MMC/SD卡,我正在发展让它支持硬盘和U盘。
应用领域:利用MP3数据流基于以太网的数字网络广播(校园、社区、公园、语音教学等)、汽车音响、U盘MP3,有意向的公司或个人可以与我们洽谈合作。
优龙的FS44B0XII是一块比较完善的开发板,板载8MB SDRAM,16MB NAND FLASH,音频D/A:CS4334,为我的开发提供极大的方便,硬件上不需做任何改动。
我最近已经完成了在44B0X上实时解压播放MP3、基于NAND FLASH(以下简称NF)上的FAT12/FAT16文件系统工作,下来还要完成USB对NAND FLASH的文件管理功能,在此基础上,程序可以移植到其它芯片(如DSP、ARM)或系统下,有利提高解码性能,下面谈谈开发过程一些问题和经验,供大家参考:
44B0X标称频率66MHz,加上它没有浮点运算指令,实时解压播放MP3确实有点吃力,想想当年66MHz的486时代就知道了。
扬长避短,44B0X在整数运算还是很高效的,所以MP3解码程序采用整数(定点数)解码,大大提高解码速度,音频的输出采用DMA方式,
预备3个缓冲区,当DMA在传其中一个BUFFER时,MP3解码程序往另外两个BUFFER填音频数据流,所以音频输出几乎不占用CPU时间,
实测主频调到74MHz,可以完全顺畅播放MP3了,其实主频用60MHz就可以,速度上还有余量,CPU还可以做其它事情。
采用FAT16文件系统主要是为了与WINDOWS兼容,方便通过USB在浏览器中进行管理,分为FAT16驱动程序和NF驱动程序,大家知道,NF是按块
进行擦除的,每块为16KB,而且中间可能有坏块,使得它物理块地址不连续,我的NF就有第77、949号坏块,这样就不方便FAT的访问,
所以我们建立一逻辑块表,逻辑块表是线性的,共有1000项,每一项指向实际的物理块,所以16MB的NF必需要有1000个好块,NF驱动就是完成
NF的读写、擦除、逻辑块到物理块的管理,提供给FAT的是以扇区为单位的访问接口,并且屏蔽了NF的擦除动作,
FAT只要以Nf_read_open(sector),Nf_read_byte(),Nf_read_close(),Nf_write_open(sector),Nf_write_byte(),Nf_write_close()进行访问,
完全不必管NF的“读-擦除-修改-写”这些复杂过程。
问题1:
重设rPCONC的值,NF的Ready/Busy脚接PORTC.9,优龙的NF演示程序并没有把这一位设为输入。
问题2:
在ADS中
i=(Nf_rd_byte()<<8);
i|=Nf_rd_byte();
执行结果: i=0xec73;
i=(Nf_rd_byte()<<8)+Nf_rd_byte();
执行结果: i=0x73ec;
采用第一种写法才能得到正确结果。
问题3:
在FS44B0XII上NF接到MEMORY的BANK1上,优龙的启动程序把它配置为最高访问速度,当我运行在主频为40MHz,可以正访问NF,但在74MHz时
不能正确访问,把访问速度调慢后没问题。
问题4:
板子杂音比较大,估计PCB布线时考虑不周。
测试步骤:
1、下载解压MP3解码主程序。
2、连好FS44B0XII网线,打开电源进入BIOS。
3、在dnw.exe中打“netload”,运行上面下载的“FS44B0II_Test.BAT”,开始装入MP3解码程序到0XC008000。
4、在dnw.exe中打“prog 0 c008000
29000 -no0”,把MP3解码程序烧到FLASH中。
5、复位重启FS44B0XII,进入SHELL管理程序。
6、在dnw.exe中打“erasenf”,低级清除NAND
FLASH。
7、在dnw.exe中打“format”,格式化NAND
FLASH。
8、在dnw.exe中打“dir”,可以看到没有文件,剩余容量16M多。
9、准备一首MP3,把文件各改成01.mp3。
10、下载MP3
downloader并运行。
11、在dnw.exe中打“downfile”,在“MP3
downloader”中选中“01.mp3”,击“发送”,开始通过NET发送MP3文件。
12、发完后可以通过“dir”命令查看NAND
FLASH中的文件。
13、在dnw.exe中打“playmp3”,赶快接上音箱,听到了吗?恭喜你,请在我的网站上留个言吧。
注:
1、打“help”可以看到各种命令的用法。
2、板上按键:
KEY2:播放
KEY3:停止
KEY4:下一首
3、板子可以脱机使用的,开启电源后,如果NAND
FLASH上有MP3文件,直接按KEY2就可以播放,如果在停止状态下按KEY3,则进入原先优龙的BIOS。
|