新型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)靡全世界。但實際上,許多MP3播放器的核心就是一片MP3音頻解碼芯片。VS1001K是芬蘭VLSI Solution公司推出的新型MP3解碼芯片。該芯片內(nèi)含高質(zhì)量的立體聲數(shù)模轉(zhuǎn)換器(DAC)和耳機驅(qū)動電路,它支持PCM數(shù)據(jù)輸入,同時具有體積小、功耗低、接口簡單、價格便宜等優(yōu)點。因而有望成為新型MP3解碼器的首選芯片。
2 VS1001K的功能結(jié)構(gòu)
2.1 VS1001K的引腳功能
VS1001K具有兩種封裝形式:分別為28腳SOIC雙列式和49腳BGA球柵陣列式。圖1給出了28腳SOIC封裝的引腳排列圖。各引腳的具體功能說明如表1所列。
表1 VS1001K的引腳功能
| 引腳號 | 引腳名稱 | 功 能 |
| 1 | DREQ | 數(shù)據(jù)請求端口 |
| 2 | DCLK | SDI時鐘信號輸入端 |
| 3 | SDATA | SDI數(shù)據(jù)輸入端 |
| 4 | BSYNC | 字節(jié)同步信號端 |
| 5,9,28 | DVDD | 數(shù)字電源 |
| 6,10,27 | DGND | 數(shù)字地 |
| 7 | XTALO | 時鐘信號輸出 |
| 8 | XTALI | 時鐘信號輸入 |
| 11 | XCS | 片選,低電平有效 |
| 12 | SCLK | SCI時鐘輸入端 |
| 13 | SI | SCI數(shù)據(jù)輸入端 |
| 14 | SO | SCI數(shù)據(jù)輸出端 |
| 15~17 | TEST0 | 備用測試端口 |
| 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 | 控制時鐘頻率和倍頻器 |
| DECODE_TIME | 0x04 | R | 確定解碼時間(單位為秒) |
| 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處理器,同時它還集成有立體聲音頻DAC、立體聲耳機放大驅(qū)動器、以及程序ROM和程序RAM等,此外,VS1001K還帶有串行的數(shù)據(jù)接口和控制接口。圖2是VS1001K的內(nèi)部結(jié)構(gòu)原理框圖。
3?。郑樱保埃埃保说墓ぷ髟?/B>
VS1001K主要通過兩個串行接口SCI和SDI來接收外部微處理器傳送來控制命令和MP3數(shù)據(jù)。其中SCI用于接收外部微處理器傳送來控制命令,SDI用來接收外部微處理器傳送的MP3數(shù)據(jù)。
3.1 SCI控制接口
對VS1001K的控制主要是通過對SCI中的15個16位寄存器進(jìn)行操作來實現(xiàn)的。表2所列是SCI的15個16位寄存器的名稱、地址、類型和功能說明。實際上,對VS1001K的主要操作都是通過MODE寄存器來完成的,表3給出了MODE寄存器各位的操作功能說明。
表3 MODE寄存器的操作方法
| 位 | 名 稱 |
功 能 |
操作說明 |
| 0 | SM_DIFF | 差分輸出控制 | 0為正常,1為左聲道反相 |
| 1 | SM_FFWD | 快進(jìn) | 0為正??焖俣?,1為快進(jìn) |
| 2 | SM_RESET | 軟件復(fù)位 | 0時不復(fù)位,1時復(fù)位 |
| 3 | SM_MP12 | 是否解碼MP1和2 | 0為只解MP3,1時解碼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 | 高/低音增強器 | 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在主模式工作時,用于DCLK頻率設(shè)置 | 0時選512kHz,1時選1024kHz |
SCI和外部微處理器的通訊協(xié)議包括指令字節(jié)、地址字節(jié)和16位字三部分。其中指令字節(jié)取0X03時為讀寄存器,取0X02時為寫寄存器;地址字節(jié)的主要用途是確定地址寄存器的地址,其范圍為0X00~0X0E.而16位字則用于指向指定寄存器寫入或讀出的值。圖3所示是SCI寄存器的讀寫操作時序。
3.2 SDI數(shù)據(jù)接口
當(dāng)外部微處理器通過SDI接口向VS1001K傳送MP3數(shù)據(jù)時,在MODE寄存器的不同設(shè)定下,SDI可工作在主、從兩種模式。
當(dāng)SDI在主模式下工作時,其DCLK信號由VS1001K內(nèi)部產(chǎn)生(具體是512kHz還是1024kHz由MODE寄存器的SM IBCLK位決定),而當(dāng)SDI工作在從模式時,DCLK由外部輸入。
SDI通常以字節(jié)為單位來進(jìn)行數(shù)據(jù)傳送,并在DCLK的上升沿或下降沿(具體由MODE寄存器的SM_DACT位決定)將SDATA數(shù)據(jù)信號輸入。數(shù)據(jù)傳送時采用高位在前還是低位在前是由MODE寄存器的SM DACT位來決定的。SDI采用BSYNC信號來確保數(shù)據(jù)傳送時不出現(xiàn)錯位的情況。
圖3、圖4
當(dāng)SDI在從模式下接收數(shù)據(jù)時,如果片內(nèi)FIFO還有足夠的空間,VS1001K會發(fā)出一個高電平DREQ數(shù)據(jù)請求信號,以表示可以接收至少32個字節(jié)的MP3數(shù)據(jù)。
4 VS1001K的應(yīng)用
圖4是VS1001K通過SDI和SCI接口與外部微處理器進(jìn)行連接的應(yīng)用電路。從圖中可見,由于VS1001K解碼器在其芯片內(nèi)部已經(jīng)集成了數(shù)模轉(zhuǎn)換器和耳機音頻驅(qū)動電路,因而其外圍電路十分簡單。實際上,圖4電路已經(jīng)對VS1001K與微處理器的接口電路進(jìn)行了優(yōu)化。
關(guān)于讀寫SCI的寄存器或向SDI傳送MP3數(shù)據(jù)的軟件編程,對于不同的外部微處理器,其軟件編程可能會有所不同。但都不是很復(fù)雜。限于篇幅,本文不再贅述。





