"); //-->
摘要:手机中的midi****音乐是通过内置高集成度的****芯片播放midi音乐文件来实现的。****芯片一般采用波形表合成法。上海智多微公司的c520专门用于为手机提供清脆逼真的音乐铃声和丰富的游戏音效。三星的risc芯片s3c4510b用来控制c520实现****音乐的播放。文中给出c520的特点、工作原理及其内部结构,详细的电路原理图和播放midi音乐文件的软件流程。可作为移动产品****音乐开发的应用参考。
关键词:****芯片 c520 s3c4510b midi
1 ****铃声概述
****原来是乐理上的一个概念,指的是按照三度关系叠置起来的三个或三个以上的音的结合;而在音频器材的工业设计领域中,****指的是多个音源同时发音,也叫复音、多音(polyphony)。****铃声在手机中得到了广泛的应用,它的音色饱满圆润,立体感强,已经全面取代了以往的单音铃声。目前****铃声文件格式有多种,如midi、mmf、amr、mp3、imy等,其中midi是目前支持度最高的铃音文件格式,它的文件占用空间小,表现力强,几乎已经成为目前****铃声手机的标准配置。
手机中的midi****音乐是通过内置高集成度的****芯片播放midi音乐文件来实现的。****芯片使用的声音合成和音色调用方式决定了铃声的播放效果。早期的fm(frequency modulation)合成法将多个频率的单音组成复合音来模拟各种乐器的声音,产生的声音音色少、音质差。另一种是波形表(wavetable)合成法。这种方法是先把各种真正乐器的音乐录制下来再进行合成处理,音色好,音域广。根据波表产生方式的不同分为软件****和硬件****两种。软件****比硬件****节省系统开销,更容易集成到移动设备上。
目前手机市场有多种****控制芯片,使用较多的有日本的yamaha,我国台湾的华邦和旺宏、大陆的中星微和智多微。各个公司的****芯片都有自己的特点,其中智多微的c520能够支持民族乐器播放,所以选用c520作****音乐控制。
2 c520****芯片
c520是上海智多微电子有限公司的一款****芯片,专门用于为手机提供清脆逼真的音乐铃声和丰富游戏音效。该芯片集成了64****、16音色波表和21首中国民乐,具有3d立体声环绕增效的midi合成器、midi gm预置rom、16位高性能音频数模转换器和2/4位adpcm解码器等功能。
2.1 芯片特点
相对于市场上的其他手机****芯片,c520具有以下几个特点:
① 能够通过片上的音乐合成器对输入midi信号合成,或者通过adpcm解调器对输入的adpcm信号解调,然后通过内置的dac输出波形。
② 集成了高质量的midi gm音色库,容量高达3 mb;提供gm音色库之外的民族乐器音色库,支持二胡、古筝、琵琶等20多种民族乐器;支持多音色和复音――最多同时支持16个音色和64复音。
③ 具有多个功能端口,可支持手机振动驱动及lcd背光驱动,可用于播放音乐同步的pwm来控制七彩灯。
④ 与主控端的接口可以是并行接口或者串行接口;允许芯片工作于dac输入模式,接受兼容通用串行dac数据格式的输入数据;片内集成不同输入数据的fifo;待机模式下典型工作电流小于50 μa。
2.2 功能单元
整个芯片由iou(i/o接口单元)、 sg(音乐合成器)、adec(adpcm解调器)、tg(时钟模块)和analog(逻辑)模块组成。
iou完成与外部cpu的接口,控制内部的fifo以及芯片其他功能接口;形成音乐的midi数据以及外部cpu对芯片的控制命令也是通过iou中的寄存器送出。sg模块从iou的fifo中取的midi数据,采用波表合成的方式合成音乐。adec接收经过压缩的pcm数据,根据相应的控制信号进行解码,将解码后的16位pcm码输出至sg的dsp单元。tg对输入时钟倍频以及产生内部时钟。analog包括一个dac和对dac的输出信号进行低通滤波以及功率放大的amp。c520芯片内部结构如图1所示。
3 应用
3.1 典型电路
控制cpu选用三星公司的32位risc芯片s3c4510b。该芯片是专为嵌入式以太网应用开发的,内核为arm7tdmi,支持高代码密度的thumb指令集,适用于对价格及功耗敏感的应用场合。
图1c520内部结构框图
图2典型应用电路
c520与s3c4510b可以是并行接口或者串行接口,但是并行接口比串行接口数据传输速度快,因此在本设计中采用并行接口。芯片应用电路如图2所示。
在这个电路中,c520的cs_n用s3c4510b的i/o p0进行控制。其实如果在片选信号线够用的情况下,可选择s3c4510b中rom/sram/flash片选信号 nrcs[5∶0]中的任何一根信号线,这样可以节省1根gpio;同理,如果不想再控制c520复位,可以将其复位信号与s3c4510b的复位线nreset相连,这样s3c4510b与c520将在上电时同时复位;c520 pd脚是低功耗状态控制引脚,“1”为正常工作状态,“0”为进入低功耗状态;c520 irq脚为中断输出脚,其可连接s3c4510b的外部中断请求信号脚xintreq[0]。
3.2 芯片初始化
c520的初始化工作非常简单,包括:
① 根据外部时钟设置pll分频比。pll分频比由寄存器clock(read:10h/write:11h)和寄存器master clock(read:18h/write:19h)共同决定。内部时钟频率fsys=fclock·(dn+1)/(dm+1)。其中dm为寄存器clock[4∶0],dn为寄存器master clock tuning[5∶0],fclock是外部输入时钟,内部系统时钟频率fsys必须定在48 mhz~50 mhz之间。
② 打开模拟模块,向寄存器analog power down(read:66h/write:67h)的bit3写0。
③ 设置analog select,根据寄存器analog select(read:60h/ write:61h)选择模拟功能。
3.3 播放midi音乐文件
c520可以播放midi format 0和mmd格式的midi文件。
midi format 0文件开头4字节数据ascii值为“mthd”,mmd文件开头4字节数据ascii值为“mmhd”。arm发送这两种格式的midi数据过程不同,在发送前根据文件开头4字节数据进行区分。
发送midi format 0格式的midi文件,文件中的所有数据都要发送。
mmd格式的文件,可分为四块,每块的开头都有8字节的头数据部分。第1块头数据部分前4字节的ascii码值是“mmhd”,第2块头数据部分前4字节的 ascii 码值是 “mmly”, 第 3 块头数据部分前 4 字节的ascii码值是“mmdd”。第4块头数据部分前4字节的ascii码值是“mmex”。每一块头数据的第5、6、7、8字节是这块数据的长度(不包括头数据),第5字节是低字节位,第8字节是高字节位,这4个字节组成的十六进制数据加上头数据长度8,就是这块数据的长度。mmdd块数据的头数据后面就是经过压缩的midi数据;mmly块数据是用于卡拉ok的专用数据,播放midi时无须发送该块;mmex为扩展块。
图3播放midi文件流程
向c520发送mmd格式的midi数据时,先发送mmhd块,接着发送mmdd块的midi数据部分(即该块中除块名及块长度的部分),而mmly块不用发送。
图3为播放midi文件流程。
结语
本文介绍了智多微公司的手机****芯片c520,给出了其原理及内部结构图。采用三星的risc芯片s3c4510b做控制器,实现了****音乐的播放。文中给出了详细的电路原理图和播放midi音乐文件的流程,可以作为****芯片在移动产品上的应用参考。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。