基于USB HOST音频解码器的数字音频系统设计
扫描二维码
随时随地手机看文章
以往在设计数字音频系统时,需要工程师具备相关的知识和经验,并且在软件开发方面也要花费大量的时间和精力。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数字音频系统框图[!--empirenews.page--]
图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存储卡中,因此需要更新语音数据时,即快速又方便。