和弦芯片C520的結(jié)構(gòu)與典型應(yīng)用
1 和弦鈴聲概述
本文引用地址:http://m.butianyuan.cn/article/20826.htm和弦原來是樂理上的一個概念,指的是按照三度關(guān)系疊置起來的三個或三個以上的音的結(jié)合;而在音頻器材的工業(yè)設(shè)計領(lǐng)域中,和弦指的是多個音源同時發(fā)音,也叫復(fù)音、多音(polyphony)。和弦鈴聲在手機中得到了廣泛的應(yīng)用,它的音色飽滿圓潤,立體感強,已經(jīng)全面取代了以往的單音鈴聲。目前和弦鈴聲文件格式有多種,如midi、mmf、amr、mp3、imy等,其中midi是目前支持度最高的鈴音文件格式,它的文件占用空間小,表現(xiàn)力強,幾乎已經(jīng)成為目前和弦鈴聲手機的標(biāo)準(zhǔn)配置。
手機中的midi和弦音樂是通過內(nèi)置高集成度的和弦芯片播放midi音樂文件來實現(xiàn)的。和弦芯片使用的聲音合成和音色調(diào)用方式?jīng)Q定了鈴聲的播放效果。早期的fm(frequency modulation)合成法將多個頻率的單音組成復(fù)合音來模擬各種樂器的聲音,產(chǎn)生的聲音音色少、音質(zhì)差。另一種是波形表(wavetable)合成法。這種方法是先把各種真正樂器的音樂錄制下來再進行合成處理,音色好,音域廣。根據(jù)波表產(chǎn)生方式的不同分為軟件和弦和硬件和弦兩種。軟件和弦比硬件和弦節(jié)省系統(tǒng)開銷,更容易集成到移動設(shè)備上。
目前手機市場有多種和弦控制芯片,使用較多的有日本的yamaha,我國臺灣的華邦和旺宏、大陸的中星微和智多微。各個公司的和弦芯片都有自己的特點,其中智多微的c520能夠支持民族樂器播放,所以選用c520作和弦音樂控制。
2 c520和弦芯片
c520是上海智多微電子有限公司的一款和弦芯片,專門用于為手機提供清脆逼真的音樂鈴聲和豐富游戲音效。該芯片集成了64和弦、16音色波表和21首中國民樂,具有3d立體聲環(huán)繞增效的midi合成器、midi gm預(yù)置rom、16位高性能音頻數(shù)模轉(zhuǎn)換器和2/4位adpcm解碼器等功能。
2.1 芯片特點
相對于市場上的其他手機和弦芯片,c520具有以下幾個特點:
① 能夠通過片上的音樂合成器對輸入midi信號合成,或者通過adpcm解調(diào)器對輸入的adpcm信號解調(diào),然后通過內(nèi)置的dac輸出波形。
② 集成了高質(zhì)量的midi gm音色庫,容量高達3 mb;提供gm音色庫之外的民族樂器音色庫,支持二胡、古箏、琵琶等20多種民族樂器;支持多音色和復(fù)音——最多同時支持16個音色和64復(fù)音。
③ 具有多個功能端口,可支持手機振動驅(qū)動及l(fā)cd背光驅(qū)動,可用于播放音樂同步的pwm來控制七彩燈。
④ 與主控端的接口可以是并行接口或者串行接口;允許芯片工作于dac輸入模式,接受兼容通用串行dac數(shù)據(jù)格式的輸入數(shù)據(jù);片內(nèi)集成不同輸入數(shù)據(jù)的fifo;待機模式下典型工作電流小于50 μa。
2.2 功能單元
整個芯片由iou(i/o接口單元)、 sg(音樂合成器)、adec(adpcm解調(diào)器)、tg(時鐘模塊)和analog(邏輯)模塊組成。
iou完成與外部cpu的接口,控制內(nèi)部的fifo以及芯片其他功能接口;形成音樂的midi數(shù)據(jù)以及外部cpu對芯片的控制命令也是通過iou中的寄存器送出。sg模塊從iou的fifo中取的midi數(shù)據(jù),采用波表合成的方式合成音樂。adec接收經(jīng)過壓縮的pcm數(shù)據(jù),根據(jù)相應(yīng)的控制信號進行解碼,將解碼后的16位pcm碼輸出至sg的dsp單元。tg對輸入時鐘倍頻以及產(chǎn)生內(nèi)部時鐘。analog包括一個dac和對dac的輸出信號進行低通濾波以及功率放大的amp。c520芯片內(nèi)部結(jié)構(gòu)如圖1所示。
圖1 c520內(nèi)部結(jié)構(gòu)框圖
3 應(yīng)用
3.1 典型電路
控制cpu選用三星公司的32位risc芯片s3c4510b。該芯片是專為嵌入式以太網(wǎng)應(yīng)用開發(fā)的,內(nèi)核為arm7tdmi,支持高代碼密度的thumb指令集,適用于對價格及功耗敏感的應(yīng)用場合。
c520與s3c4510b可以是并行接口或者串行接口,但是并行接口比串行接口數(shù)據(jù)傳輸速度快,因此在本設(shè)計中采用并行接口。芯片應(yīng)用電路如圖2所示。
圖2典型應(yīng)用電路
在這個電路中,c520的cs_n用s3c4510b的i/o p0進行控制。其實如果在片選信號線夠用的情況下,可選擇s3c4510b中rom/sram/flash片選信號 nrcs[5∶0]中的任何一根信號線,這樣可以節(jié)省1根gpio;同理,如果不想再控制c520復(fù)位,可以將其復(fù)位信號與s3c4510b的復(fù)位線nreset相連,這樣s3c4510b與c520將在上電時同時復(fù)位;c520 pd腳是低功耗狀態(tài)控制引腳,“1”為正常工作狀態(tài),“0”為進入低功耗狀態(tài);c520 irq腳為中斷輸出腳,其可連接s3c4510b的外部中斷請求信號腳xintreq[0]。
3.2 芯片初始化
c520的初始化工作非常簡單,包括:
① 根據(jù)外部時鐘設(shè)置pll分頻比。pll分頻比由寄存器clock(read:10h/write:11h)和寄存器master clock(read:18h/write:19h)共同決定。內(nèi)部時鐘頻率fsys=fclock·(dn+1)/(dm+1)。其中dm為寄存器clock[4∶0],dn為寄存器master clock tuning[5∶0],fclock是外部輸入時鐘,內(nèi)部系統(tǒng)時鐘頻率fsys必須定在48 mhz~50 mhz之間。② 打開模擬模塊,向寄存器analog power down(read:66h/write:67h)的bit3寫0。
③ 設(shè)置analog select,根據(jù)寄存器analog select(read:60h/ write:61h)選擇模擬功能。
3.3 播放midi音樂文件
c520可以播放midi format 0和mmd格式的midi文件。
midi format 0文件開頭4字節(jié)數(shù)據(jù)ascii值為“mthd”,mmd文件開頭4字節(jié)數(shù)據(jù)ascii值為“mmhd”。arm發(fā)送這兩種格式的midi數(shù)據(jù)過程不同,在發(fā)送前根據(jù)文件開頭4字節(jié)數(shù)據(jù)進行區(qū)分。 發(fā)送midi format 0格式的midi文件,文件中的所有數(shù)據(jù)都要發(fā)送。
mmd格式的文件,可分為四塊,每塊的開頭都有8字節(jié)的頭數(shù)據(jù)部分。第1塊頭數(shù)據(jù)部分前4字節(jié)的ascii碼值是“mmhd”,第2塊頭數(shù)據(jù)部分前4字節(jié)的 ascii 碼值是 “mmly”, 第 3 塊頭數(shù)據(jù)部分前 4 字節(jié)的ascii碼值是“mmdd”。第4塊頭數(shù)據(jù)部分前4字節(jié)的ascii碼值是“mmex”。每一塊頭數(shù)據(jù)的第5、6、7、8字節(jié)是這塊數(shù)據(jù)的長度(不包括頭數(shù)據(jù)),第5字節(jié)是低字節(jié)位,第8字節(jié)是高字節(jié)位,這4個字節(jié)組成的十六進制數(shù)據(jù)加上頭數(shù)據(jù)長度8,就是這塊數(shù)據(jù)的長度。mmdd塊數(shù)據(jù)的頭數(shù)據(jù)后面就是經(jīng)過壓縮的midi數(shù)據(jù);mmly塊數(shù)據(jù)是用于卡拉ok的專用數(shù)據(jù),播放midi時無須發(fā)送該塊;mmex為擴展塊。
向c520發(fā)送mmd格式的midi數(shù)據(jù)時,先發(fā)送mmhd塊,接著發(fā)送mmdd塊的midi數(shù)據(jù)部分(即該塊中除塊名及塊長度的部分),而mmly塊不用發(fā)送。
圖3為播放midi文件流程。
圖3播放midi文件流程
結(jié)語
本文介紹了智多微公司的手機和弦芯片c520,給出了其原理及內(nèi)部結(jié)構(gòu)圖。采用三星的risc芯片s3c4510b做控制器,實現(xiàn)了和弦音樂的播放。文中給出了詳細(xì)的電路原理圖和播放midi音樂文件的流程,可以作為和弦芯片在移動產(chǎn)品上的應(yīng)用參考。
評論