百度首页 | 百度空间
 
查看文章
 
MP3播放器实现(十)
2008-06-27 13:57

3.2 MP3播放器的软件设计   

不同于硬件,在软件设计是由我自己独自完成,所以对这一块比较熟悉。就如果上文介绍的几个功能模块一样,在软件编写上同样的分成那么几块,下图显示彼此间的关系:

            (图3.5)

    由上图可知,SD卡读写是整个系统的最基本的一块,因为不论是什么是哪一块功能都涉及到SD卡的读写,所以在程序中我将其做成了子函数,向外只提供三个子函数,所有关于SD的操作均是由这三个函数完成:

初始化函数   SD_INIT()

SD读出函数 SD_READ(INT8U *Buffer, INT16U Bytes,INT32U Number_Sector)

SD写入函数 SD_WRITE(INT8U* Buffer,INT32U Number_Sector)

同样对于液晶显示部分同样进行子函数处理:

字符串显示   PutGBstring(INT8U x, INT8U y, unsigned char *c, INT16U f,INT16U b)

液晶初始化   PCF8833INIT()

液晶屏清空   PCF8833CLR()

上述两块功能对整个软件而言,无疑是最底层的设计,对于MP3播放器中的三个最主要功能:USB通信、电子书阅读、MP3解码而言都是需要用到的,所以做成子函数更有利于整个程序的模块式设计。

3.2.1 USB通信程序设计

     对于MP3的三大功能,相较于其它两个,USB通信更为独立些,因为USB的通信均是由中断实现的,所以除了在主函数中涉及到其的初始化以外,在其它

部分并没有有联系的地方。其函数框图如下:

                            (图3.6)

3.2.2 电子书、MP3解码程序

     由于电子书和MP3均涉及到FAT32文件系统,所以两者在程序上关联性较大,所以在很大程序上两者的程序是混在一起的,只是到最后才分开。其框图如下:

                                  (图3.7)

3.3 总结

      本次MP3播放器采用分立芯片设计,不同现有MP3芯片整体集成化趋向。采用分立芯片设计能最大限度的发挥不同芯片的功能,因为MP3解码采用独立芯片,理论上能达到更好的音质。但在实际设计中,由于自身能力有限,未能发挥两块芯片的全部功能,如不能对WMA解码等,希望在以后的工作学习中能对其加以完善。


类别:自行设计类 | 添加到搜藏 | 浏览() | 评论 (3)
 
最近读者:
 
网友评论:
1
2008-07-05 14:28
谢谢分享。
 
2
2008-07-05 14:34
如果可以的话,我想学习一下你的论文,邮箱:hot225dog@163.com
 
3
2008-07-06 22:01
可以加我QQ:50511251
最好是非工作时间聊
呵呵
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码:
 

     

©2008 Baidu