基于ATmega128L的大容量MP3播放机
3.4 其它模块接口
人机界面是便携式系统的重要组成部分,尤其对本系统,由于硬盘可以存储海量的歌曲,如果能够对硬盘中的歌曲进行有效管理和搜索,无疑会大大提高系统使用的方便性和灵活性。基于该考虑,本系统采用了多个按键和1块点阵式LCD,用于控制和显示。LCD液晶模块采用Solomon公司的SSD1815。SSD1815是单片CMOS LCD控制器,有串/并行两种控制方式。本系统中采用串行控制方式。SSD1815内部有一个用于存放图形点阵信息的存储区,将要显示的图形或字符的点阵信息送入该区域即可完成显示。由于控制的复杂性,系统需要罗多的按键,为了尽可能地减少I/O口的占用和降低控制复杂性,对按键的查询采用I2C串行口,通过一片I2C扩展芯片PCF8574,可以实现对多个按键的查询。
4 系统的软件设计
笔记本硬盘是MP3文件的存储介质,由于其容量较大,PC机通过USB接口对硬盘进行管理和操作时采用FAT32文件系统。文件以簇号链的形式在硬盘上存放,由磁盘分区信息和文件分配表的相关信息计算出文件在硬盘中的起始地址,通过硬盘数据口将该地址的数据读出来。连续的读操作将实现一个文件的读取。
在该系统中,MCU需要完成数据从硬盘到Flash缓冲区的拷贝、送Flash中的压缩音频数据流给解码器解码、按键的监测、根据按键的控制对歌曲播放模式和歌曲相关信息的显示等几个主要任务。考虑到Flash的读写速度较慢,为保证歌曲的连续播放,在SRAM中划分2×512字节的区域作为二级缓存,用于暂存从Flash传送过来的音频数据。根据解码器的反馈需求信号,从该缓冲区中取数送给解码器进行解码。歌曲的播放具有实时性的要求,即如果解码芯片的DEMAND信号为高,MCU必须停止目前正在执行的任务来响应发送码流的任务。为保证数据码流的不间断,在系统软件设计中,将硬盘→Flash、Flash→RAM的数据缓冲任务以及给解码芯片发送码流的任务用中断来实现。系统的软件设计流程如图4所示。由于给解码器发送码流的任务实时性要求最高,故单独用一中断实现该任务,且设置该中断的优先级最高。硬盘→Flash、Flash→RAM的数据缓冲任务作为另一中断的中断服务程序;而按键检测、液晶显示和电源管理作为前台的三个任务,MCU轮流分配给各个任务使用。这样的设计既能满足歌曲播放的实时性要求,又能对按键检测、显示等其它任务作出响应。模块化设计和分时操作系统思想在软件设计中得到了充分的体现。
结语
本文讨论了基于ATmega128L的大容量MP3播放机(第3页)的设计思路,对系统中的各个模块接口作了简要的描述,并提出了系统软件设计的总体思想。以上软硬件设计思想已经实现产品化。该产品功耗低、功能强,性能稳定可靠,具有友好的用户界面和操作性。
《基于ATmega128L的大容量MP3播放机(第3页)》