随着MP3、WMA等数字音频的流行,以及大容量存储介质的迅速发展,一种新的可直接播放存储器中音乐数据的数字音频系统的设计方案开始崭露头角。
以往在设计数字音频系统时,需要工程师具备相关的知识和经验,并且在软件开发方面也要花费大量的时间和精力。ROHM公司的USB HOST音频解码器大大简化了设计流程,软件解码都由芯片内部实现,设计者可以很轻松地构建数字音频系统。
传统的CD播放系统、MP3播放器的设计通常需要存储器控制器、解码器、DAC、系统控制器等,这些模块分散在各个IC中,硬件和软件设计都比较复杂。而USB HOST音频解码器将这些功能集成于单芯片中,外部仅需少量的晶振和阻容元件,大大降低了成本,而且可靠性提高。
芯片功能
ROHM公司的USB HOST音频解码器中所有的解码工作都是由硬件自动完成的,不同于其它内嵌CPU的设计方案,减少了软件编程的复杂度。内部集成了USB和SD卡控制器,可以直接访问存储器中的文件。芯片按Unicode编码对存储器内的音乐文件排序,并按顺序播放。内置了FAT文件系统,可以自动区分音乐文件和非音乐文件。芯片还可以自动跳读损坏文件,来防止产生噪音。芯片内置了键盘控制器,可以外接4 X 3按键矩阵。音频输出支持模拟输出和数字输出。模拟输出时可直接连接扬声器放大器,并且内置了7种音效均衡器,在输出时可以通过I2C总线来选择。数字输出支持高通用性的I2S BUS和SPDIF,可以很方便地连接到下一级数字信号处理电路中。芯片内置了一个I2C总线接口,可以与微型控制器进行通讯。USB HOST音频解码器的功能框图见图1。
图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。
图2:USB HOST数字音频系统框图
图3:U9437应用电路图
2.软件设计
软件的设计是利用MCU的键盘中断来判断并识别键值,主程序循环查询键值及BU9437的状态,根据键值向BU9437发送不同的命令,同时在LCD上显示BU9437的工作状态等信息。主程序流程图见图5。
图5:软件流程图。
导航键的操作使用中断来处理,当有任何一个按键被按下时产生按键中断,在中断程序中除了防抖之外还要判断按键的优先级,中断程序中将直接得到按键的键值。
液晶显示模组有8位数据线,编写了专用的子程序用来发送显示数据。
USB HOST 芯片的控制是通过I2C总线来实现的,软件还设计了相应的I2C通讯程序,使其满足I2C总线的通讯协议,通讯时序见图4。
图4:I2C总线通讯时序。
3. 设计注意事项
1. USB HOST芯片需要外接一个16.9344MHz的晶振,如果使用无源晶振应注意该晶振的起振条件,选择合适的震荡电路,保证芯片上电后晶振能正常工作。
2. 选择模拟音频作为输出时,在PCB设计时最好将模拟地和数字地分开,并且在电源输入时加大容量的滤波电容或钽电容,可以很好地抑制噪音。
3. 为了增加软件的可靠性,当读取寄存器的值时,读取到的第一个字节都是系统的忙闲状态,每次读取时软件都要处理此字节。
本文小结
ROHM公司的USB HOST音频解码芯片不仅适合于车载级应用,还能用于卫生间、保健设备等通常与音乐无关的设备,可以简单地播放出治疗音乐、自然环境音等。另外,还可以用于娱乐设备的音乐、效果音的播放,以及公共交通的车内广播等语音发声。这种情况下,语音数据保存在USB存储器、SD存储卡中,因此需要更新语音数据时,即快速又方便。
QQ:258202179
|