新型MP3解碼芯片VS1001K及其應(yīng)用
關(guān)鍵詞:MP3 編碼 播放器 VS1001K
1 引言
目前,INTERNET網(wǎng)上和便攜式播放器所使用的MP3音頻數(shù)據(jù)壓縮方法已經(jīng)成為一種公認(rèn)的行業(yè)標(biāo)準(zhǔn)了。這種方法以其壓縮率高、音質(zhì)好而迅速風(fēng)靡全世界。但實(shí)際上,許多MP3播放器的核心就是一片MP3音頻解碼芯片。VS1001K是芬蘭VLSI Solution公司推出的新型MP3解碼芯片。該芯片內(nèi)含高質(zhì)量的立體聲數(shù)模轉(zhuǎn)換器(DAC)和耳機(jī)驅(qū)動(dòng)電路,它支持PCM數(shù)據(jù)輸入,同時(shí)具有體積小、功耗低、接口簡(jiǎn)單、價(jià)格便宜等優(yōu)點(diǎn)。因而有望成為新型MP3解碼器的首選芯片。
2?。郑樱保埃埃保说墓δ芙Y(jié)構(gòu)
2.1 VS1001K的引腳功能
VS1001K具有兩種封裝形式:分別為28腳SOIC雙列式和49腳BGA球柵陣列式。圖1給出了28腳SOIC封裝的引腳排列圖。各引腳的具體功能說明如表1所列。
表1 VS1001K的引腳功能
引腳號(hào) | 引腳名稱 | 功 能 |
1 | DREQ | 數(shù)據(jù)請(qǐng)求端口 |
2 | DCLK | SDI時(shí)鐘信號(hào)輸入端 |
3 | SDATA | SDI數(shù)據(jù)輸入端 |
4 | BSYNC | 字節(jié)同步信號(hào)端 |
5,9,28 | DVDD | 數(shù)字電源 |
6,10,27 | DGND | 數(shù)字地 |
7 | XTALO | 時(shí)鐘信號(hào)輸出 |
8 | XTALI | 時(shí)鐘信號(hào)輸入 |
11 | XCS | 片選,低電平有效 |
12 | SCLK | SCI時(shí)鐘輸入端 |
13 | SI | SCI數(shù)據(jù)輸入端 |
14 | SO | SCI數(shù)據(jù)輸出端 |
15~17 | TEST0 | 備用測(cè)試端口 |
18,21,25 | AGND | 模擬地 |
19,23 | AVDD | 模擬電源 |
20 | RIGHT | 右聲道音頻輸出 |
22 | RCAP | 外接電容接入端 |
24 | LEFT | 左聲道音頻輸出 |
26 | XRESET | 電路復(fù)位端,低電平有效 |
表2 SCI寄存器功能
寄存器名 | 地 址 | 類 型 |
功 能 |
MODE | 0x00 | RW | 用于控制VS1001K的操作 |
STATUS | 0x01 | RW | 當(dāng)前VS1001K的狀態(tài)信息 |
INT_FCTLH | 0x02 | - | 內(nèi)部寄存器,一般不用 |
CLOCKF | 0x03 | RW | 控制時(shí)鐘頻率和倍頻器 |
DECODE_TIME | 0x04 | R | 確定解碼時(shí)間(單位為秒) |
AUDATA | 0x05 | R | 聲音數(shù)據(jù) |
WRAM | 0x06 | W | 用于向程序RAM寫入用戶程序 |
WRAMADDR | 0x07 | W | 為WRAM操作設(shè)置基地址 |
HDAT0 | 0x08 | R | 讀取MP3表頭數(shù)據(jù) |
HDAT1 | 0x09 | R | 讀取MP3表頭數(shù)據(jù) |
A1ADDR | 0x0A | RW | 確定用戶應(yīng)用程序的開始地址 |
VOL | 0x0B | RW | 用于音量控制,高、低字節(jié)分別為左、右聲道。音量取值范圍為0~FF,0位最大,F(xiàn)F為最小 |
RESERVED | 0x0C | - | 保留 |
A1CTRL[0] | 0x0D | RW | 用于控制用戶應(yīng)用程序 |
A1CTRL[1] | 0x0E | RW | 用于控制用戶應(yīng)用程序 |
2.2 VS1001K的內(nèi)部結(jié)構(gòu)
VS1001K解碼芯片內(nèi)部集成有VS DSP處理器,同時(shí)它還集成有立體聲音頻DAC、立體聲耳機(jī)放大驅(qū)動(dòng)器、以及程序ROM和程序RAM等,此外,VS1001K還帶有串行的數(shù)據(jù)接口和控制接口。圖2是VS1001K的內(nèi)部結(jié)構(gòu)原理框圖。
3?。郑樱保埃埃保说墓ぷ髟?/B>
VS1001K主要通過兩個(gè)串行接口SCI和SDI來接收外部微處理器傳送來控制命令和MP3數(shù)據(jù)。其中SCI用于接收外部微處理器傳送來控制命令,SDI用來接收外部微處理器傳送的MP3數(shù)據(jù)。
3.1 SCI控制接口
對(duì)VS1001K的控制主要是通過對(duì)SCI中的15個(gè)16位寄存器進(jìn)行操作來實(shí)現(xiàn)的。表2所列是SCI的15個(gè)16位寄存器的名稱、地址、類型和功能說明。實(shí)際上,對(duì)VS1001K的主要操作都是通過MODE寄存器來完成的,表3給出了MODE寄存器各位的操作功能說明。
表3 MODE寄存器的操作方法
位 | 名 稱 |
功 能 |
操作說明 |
0 | SM_DIFF | 差分輸出控制 | 0為正常,1為左聲道反相 |
1 | SM_FFWD | 快進(jìn) | 0為正??焖俣龋?為快進(jìn) |
2 | SM_RESET | 軟件復(fù)位 | 0時(shí)不復(fù)位,1時(shí)復(fù)位 |
3 | SM_MP12 | 是否解碼MP1和2 | 0為只解MP3,1時(shí)解碼MP1/2/3 |
4 | SM_PDOWN | 掉電控制 | 0為上電,1為掉電 |
5 | SM_DAC | 數(shù)模轉(zhuǎn)換模式控制 | 0為一般MPEG解碼,1為PCM解碼 |
6 | SM_DACMONO | 立體聲數(shù)模轉(zhuǎn)換控制 | 0為立體聲,1為單聲道 |
7 | SM_BASS | 高/低音增強(qiáng)器 | 0為關(guān),1為開 |
8 | SM_DACT | DCLK觸發(fā)沿 | 0為從MSB開始,1為從LSB開始 |
9 | SM_BYTEORD | 字節(jié)傳送順序 | 0為上升沿,1為降沿 |
10 | SM_IBMODE | 工作模式 | 0為從模式,1為主模式 |
11 | SM_IBCLK | VS1001K在主模式工作時(shí),用于DCLK頻率設(shè)置 | 0時(shí)選512kHz,1時(shí)選1024kHz |
SCI和外部微處理器的通訊協(xié)議包括指令字節(jié)、地址字節(jié)和16位字三部分。其中指令字節(jié)取0X03時(shí)為讀寄存器,取0X02時(shí)為寫寄存器;地址字節(jié)的主要用途是確定地址寄存器的地址,其范圍為0X00~0X0E.而16位字則用于指向指定寄存器寫入或讀出的值。圖3所示是SCI寄存器的讀寫操作時(shí)序。
3.2 SDI數(shù)據(jù)接口
當(dāng)外部微處理器通過SDI接口向VS1001K傳送MP3數(shù)據(jù)時(shí),在MODE寄存器的不同設(shè)定下,SDI可工作在主、從兩種模式。
當(dāng)SDI在主模式下工作時(shí),其DCLK信號(hào)由VS1001K內(nèi)部產(chǎn)生(具體是512kHz還是1024kHz由MODE寄存器的SM IBCLK位決定),而當(dāng)SDI工作在從模式時(shí),DCLK由外部輸入。
SDI通常以字節(jié)為單位來進(jìn)行數(shù)據(jù)傳送,并在DCLK的上升沿或下降沿(具體由MODE寄存器的SM_DACT位決定)將SDATA數(shù)據(jù)信號(hào)輸入。數(shù)據(jù)傳送時(shí)采用高位在前還是低位在前是由MODE寄存器的SM DACT位來決定的。SDI采用BSYNC信號(hào)來確保數(shù)據(jù)傳送時(shí)不出現(xiàn)錯(cuò)位的情況。
圖3、圖4
當(dāng)SDI在從模式下接收數(shù)據(jù)時(shí),如果片內(nèi)FIFO還有足夠的空間,VS1001K會(huì)發(fā)出一個(gè)高電平DREQ數(shù)據(jù)請(qǐng)求信號(hào),以表示可以接收至少32個(gè)字節(jié)的MP3數(shù)據(jù)。
4 VS1001K的應(yīng)用
圖4是VS1001K通過SDI和SCI接口與外部微處理器進(jìn)行連接的應(yīng)用電路。從圖中可見,由于VS1001K解碼器在其芯片內(nèi)部已經(jīng)集成了數(shù)模轉(zhuǎn)換器和耳機(jī)音頻驅(qū)動(dòng)電路,因而其外圍電路十分簡(jiǎn)單。實(shí)際上,圖4電路已經(jīng)對(duì)VS1001K與微處理器的接口電路進(jìn)行了優(yōu)化。
關(guān)于讀寫SCI的寄存器或向SDI傳送MP3數(shù)據(jù)的軟件編程,對(duì)于不同的外部微處理器,其軟件編程可能會(huì)有所不同。但都不是很復(fù)雜。限于篇幅,本文不再贅述。