图1: USb HOST音频解码器功能框图。芯片可执行的音乐文件操作包括:播放、暂停、停止、快进/快退、跳到下一曲/上一曲、重复播放、随机播放、音量调节、文件浏览、读取ID3信息等。 该芯片具有三种工作模式,可通过功能引脚来选择: 模式1也叫“独立模式”。芯片工作时不需要外接微型控制器,可以作为主机直接播放存储器中的音乐文件,通过内置的键盘控制器读取外部的按键操作来选择播放模式。芯片还内置了7个LED驱动接口,通过LED丰富的表现,可以清楚地了解到其工作模式。在该模式下芯片还支持自动播放功能,上电后会自动读取和播放存储器中的音乐文件,不需要外部干预。 模式2和模式3称为“从动模式”。芯片需要外接微型控制器,通过I2C总线传输指令,设计人员需要编写相应的控制软件。这两种模式的实现相对于模式1复杂一些,但可以构建更高性能的系统。其中,模式2的工作流程类似于模式1的按键输入,需要通过接收微型控制器发出的指令执行"PLAY"、"PAUSE"等操作。在模式3中,芯片通过I2C总线将存储器中的音乐文件的位置发送给微型控制器,然后控制器通过指定文件的位置来选择播放。播放时,芯片会每隔100ms读取播放时间,通过LCD可以将曲目的播放时间、曲名等信息显示出来。在这两种模式中,芯片还具有RESUME功能,在下次播放时可从上次停止的地方继续播放。 设计实现 本文将介绍使用ROHM的USb HOST音频解码器bU9437AKV和NEC的16位单片机uPD1166组成的数字音频系统的设计实例。bU9437支持MP3和WMA文件解码,具有上面所述的USb HOST音频解码芯片的所有功能。 1.硬件设计 硬件电路主要参考bU9437的从动模式来设计,通过I2C总线接收MCU发来的控制信息,实现模式2和模式3的功能。 bU9437配置了SD卡和USb接口,同时为了保护USb设备在热插拔的过程中不受到损坏,我们还设计了USb保护开关,使用的也是ROHM的USb High Side Switch芯片。音频输出使用的是模拟立体声输出,外接了一个耳机功放,可以通过耳机或有源音箱来收听声音。MCU外接了一个五向的开关,可以方便地进行菜单的选择。LCD为16 X 2的字符型点阵液晶,可以显示功能菜单、文件信息等简单画面。芯片通过I2C总线与MCU通讯。硬件系统框图见图2,bU9437应用电路见图3。
图5:软件流程图。导航键的操作使用中断来处理,当有任何一个按键被按下时产生按键中断,在中断程序中除了防抖之外还要判断按键的优先级,中断程序中将直接得到按键的键值。 液晶显示模组有8位数据线,编写了专用的子程序用来发送显示数据。 USb HOST 芯片的控制是通过I2C总线来实现的,软件还设计了相应的I2C通讯程序,使其满足I2C总线的通讯协议,通讯时序见图4。