基于便攜式DAB接收機(jī)的MP3播放器設(shè)計(jì)方案
提出了一種基于便攜式DAB(Digital Audio Broadcasting,數(shù)字音頻廣播)接收機(jī)的MP3播放器設(shè)計(jì)方案,并介紹了系統(tǒng)的軟硬件設(shè)計(jì)思路。系統(tǒng)采用ARM7單片機(jī)作為系統(tǒng)控制器,利用SD卡存儲(chǔ)MP3文件,用ST公司的音頻解碼芯片STA013實(shí)現(xiàn)MP3解碼。數(shù)字語(yǔ)音信號(hào)通過D/A轉(zhuǎn)換器MAX9850轉(zhuǎn)換為模擬語(yǔ)音信號(hào),由耳機(jī)輸出。
引言
近年來,數(shù)字音頻廣播(Digital Audio Broadcasting,DAB)憑借其音質(zhì)好,靈敏度高,頻譜利用率高等諸多優(yōu)點(diǎn)引起了國(guó)際通信廣播行業(yè)的關(guān)注,并取得了飛速的進(jìn)展。廣電總局于2006年6月推出的《30~3000 MHz地面數(shù)字音頻廣播系統(tǒng)技術(shù)規(guī)范》,不僅使DAB在我國(guó)有了標(biāo)準(zhǔn)的支持,更對(duì)DAB在全國(guó)的普及產(chǎn)生了重大而積極的影響??紤]到便攜式MP3播放器在當(dāng)今社會(huì)的普及程度與消費(fèi)者對(duì)其的依賴性,在DAB接收機(jī)中融合MP3解碼功能對(duì)消費(fèi)市場(chǎng)的開拓是很必要的。本文在不改動(dòng)一款DAB接收整機(jī)原有性能的基礎(chǔ)上,提出了一種適當(dāng)加入MP3解碼功能的可行性方案。
1系統(tǒng)總體結(jié)構(gòu)
1.1 DAB接收系統(tǒng)結(jié)構(gòu)
圖1 DAB接收系統(tǒng)結(jié)構(gòu)框圖
DAB接收系統(tǒng)是基于重慶郵電大學(xué)微電子重點(diǎn)實(shí)驗(yàn)室自主研發(fā)的一款名為ID200的基帶解碼芯片設(shè)計(jì)而成。
其結(jié)構(gòu)框圖如圖1所示。ID200具有面積較小、功耗極低等特性。MCU采用Atmel公司推出的AT91SAM7S64微處理器,該芯片具有64 KB片內(nèi)高速Flash存儲(chǔ)器、32個(gè)可編程的復(fù)用I/O、SPI和TWI等豐富的內(nèi)部集成資源,性價(jià)比較高。該接收系統(tǒng)的靈敏度在3波段與L波段能達(dá)到-97 dBm以上。MPEG L2音源解碼,支持48 kHz和24 kHz采樣頻率,自動(dòng)識(shí)別聲道模式,支持單通道、雙通道、立體聲。
1.2主要器件選擇
考慮到DAB接收機(jī)的基帶解碼芯片尚未加入MP3解碼功能,以及生產(chǎn)成本、單片機(jī)速率、芯片成熟度等因素,采用了ST公司的STA013解碼芯片。該芯片具有以下特點(diǎn):支持MPEG1、MPEG2與MPEG2.5格式解碼;支持立體聲、雙聲道、單聲道解碼;支持8~320 kbps的壓縮速率;串行位流輸入和PCM輸出接口,支持I2C總線;低功耗消耗,24 V時(shí)為85 mW;10 MHz、1431818 MHz、147456 MHz的外部輸入時(shí)鐘,或內(nèi)嵌工業(yè)標(biāo)準(zhǔn)XTAL晶振,以滿足不同頻率需求。
由于STA013沒有DAC和耳機(jī)功放的功能,需選用DAC芯片,這里選用Maxim公司的MAX9850芯片。該芯片是一款低功耗、高性能的立體聲音頻DAC,集成了直接驅(qū)動(dòng)耳機(jī)放大器,允許放大器輸出直接驅(qū)動(dòng)耳機(jī),無(wú)需大量隔直電容,可節(jié)約成本和布線空間,同時(shí)還提供了I2C總線和PCM輸出接口。
考慮到便攜式整機(jī)的開發(fā)與存儲(chǔ)器的普及程度,本方案選用MicroSD卡作為音頻數(shù)據(jù)存儲(chǔ)單元。MicroSD卡體積超小,卻擁有著傳輸速度高、移動(dòng)靈活性強(qiáng)、安全可靠的諸多優(yōu)勢(shì),可以運(yùn)用于各類的數(shù)碼產(chǎn)品,不浪費(fèi)產(chǎn)品內(nèi)部設(shè)計(jì)的空間。同時(shí),它采用FAT16/32文件系統(tǒng),且提供了SPI接口,便于消費(fèi)者文件下載與管理。
2方案原理與設(shè)計(jì)思路
2.1方案原理
DAB接收機(jī)中融合MP3解碼功能的方案如圖2所示。這里主要介紹與MP3解碼相關(guān)的部分。AT91SAM7S64微處理器利用SPI接口的片選線,最多能與4個(gè)從屬設(shè)備進(jìn)行通信。該系統(tǒng)中MCU的4根SPI片選線分別選中ID200、MicroSD卡、STA013以及液晶顯示模塊。RF芯片和ADC分別選用Maxim公司的MAX2170和MAX1191.MCU通過SPI總線將存在SD卡中的音頻數(shù)據(jù)讀取到MCU內(nèi)的緩沖器中,然后再通過SPI總線將數(shù)據(jù)發(fā)送到STA013中進(jìn)行音頻解碼,解碼后的音頻數(shù)據(jù)流能通過PCM輸出接口送入MAX9850,經(jīng)過D/A轉(zhuǎn)換和耳機(jī)功放,最終由耳機(jī)輸出。
圖2 DAB結(jié)合MP3解碼功能的系統(tǒng)方案
STA013主要是靠I2C總線來傳輸控制信息,串行數(shù)據(jù)線接收音頻數(shù)據(jù)??梢詫⒂蒘DI、SCKR、DATA_REQ三個(gè)引腳組成的串行數(shù)據(jù)線,看成是一個(gè)只有SIMO(從機(jī)輸入主機(jī)輸出)沒有SOMI(從機(jī)輸出主機(jī)輸入)的SPI總線。當(dāng)DATA_REQ置高時(shí),將MCU緩沖器中的數(shù)據(jù)以盡可能快的速度通過SDI引腳輸入STA013,利用SCKR為解碼芯片提供串行時(shí)鐘。當(dāng)STA013的緩沖區(qū)快溢出時(shí)將DATA_REQ置低,數(shù)據(jù)停止傳輸。MCU的I2C總線與STA013的I2C接口相連,利用其傳輸命令、初始化解碼芯片及控制解碼進(jìn)程。
2.2設(shè)計(jì)思路
圖3 MP3解碼系統(tǒng)結(jié)構(gòu)框圖
MP3解碼系統(tǒng)中各模塊的連接如圖3所示。SD存儲(chǔ)卡系統(tǒng)定義了SD和SPI兩種通信協(xié)議,應(yīng)用時(shí)可以選擇其中一種模式。由于本方案中采用的AT91SAM7S64沒有提供硬件的SD總線接口,但提供了SPI總線接口,為了避免用軟件方式將I/O口模擬為SD總線接口,這里選用SPI總線模式進(jìn)行Micro SD卡與MCU之間的命令和數(shù)據(jù)通信。SD卡上電時(shí)總是處于SD模式下,如果系統(tǒng)想使用SPI模式進(jìn)行通信,可以在SD卡發(fā)送復(fù)位命令CMD0期間,將主控片選(SD_CSN)信號(hào)置低,從而進(jìn)入SPI模式。通過掉電再上電,能夠使SD卡系統(tǒng)重新回到SD模式。Micro SD卡是按簇存儲(chǔ)的,一簇中又有32個(gè)扇區(qū),每個(gè)扇區(qū)可存放512個(gè)字節(jié)的數(shù)據(jù)。由于SD卡、STA013和液晶都是通過SPI總線與MCU進(jìn)行通信,所以要處理好總線通信的時(shí)序問題。在SD卡初始化時(shí)打開的SPI總線,需要在獲取卡信息后關(guān)閉,然后打開LCD的SPI接口;在MP3節(jié)目播放時(shí),需要關(guān)閉LCD的SPI,打開STA013的SPI總線。
STA013解碼芯片有3個(gè)重要的接口,分別是串行輸入接口、I2C接口以及PCM輸出接口。串行輸入接口的SDI、SCKR分別與MCU的SPI總線中的SIMO、SPICLK相連,由DATA_REQ向MCU提供中斷信號(hào)。PCM輸出接口與DAC的I2S接口相連,MCU通過I2C總線接口對(duì)MCU和DAC進(jìn)行控制。在初始化STA013芯片時(shí),必須先通過I2C總線接口寫入由ST公司提供的配置文件。
該文件中,奇數(shù)項(xiàng)數(shù)據(jù)是I2C寄存器地址,偶數(shù)項(xiàng)數(shù)據(jù)是相對(duì)應(yīng)的I2C寄存器缺省數(shù)值。STA013配置文件解析如圖4所示。STA013和DAC的I2C地址分別為1000011和0010011,所以復(fù)用MCU的I2C總線接口時(shí)不存在設(shè)備沖突的問題。
圖4 STA013配置文件解析
I2C總線接口讀寫數(shù)據(jù)時(shí)序如圖5所示。
圖5 I2C總線讀寫數(shù)據(jù)時(shí)序示意圖
采用Mentor公司的PADS軟件繪制電路圖?;赟TA013解碼芯片和DAB系統(tǒng)各部分的連接電路如圖6所示。
圖6 STA013解碼芯片與DAB系統(tǒng)連接電路
MP3解碼的工作流程:
①解碼芯片的初始化。初始化STA013包括如下幾個(gè)步驟:硬件復(fù)位STA013;SPI初始化;將由ST公司提供的配置文件通過I2C接口寫入解碼芯片;對(duì)解碼后的PCM數(shù)據(jù)、PLL、解碼器工作模式以及輸入比特流時(shí)鐘極性等進(jìn)行配置。
②音頻數(shù)據(jù)的傳送。由于STA013具有較強(qiáng)的解碼功能,因此當(dāng)STA013需要數(shù)據(jù)(DATA_REQ為高)時(shí),須立即通過SDI接口以盡可能快的速度(但要低于20 Mbps)傳送給它??梢酝ㄟ^設(shè)置SPI總線的SPICLK來實(shí)現(xiàn),這里將SPI時(shí)鐘設(shè)置為4 MHz.數(shù)據(jù)以扇區(qū)為單位從MCU發(fā)向解碼芯片的緩沖器,注意在用SPI傳送數(shù)據(jù)時(shí),需將BIT_EN端口置高才能進(jìn)行有效的傳送。STA013會(huì)自動(dòng)決定數(shù)據(jù)輸入與輸出傳輸率的大小,當(dāng)其緩沖存儲(chǔ)器飽和時(shí),它會(huì)終止數(shù)據(jù)請(qǐng)求。對(duì)于易變的比特流的MP3數(shù)據(jù),STA013也能自動(dòng)處理。另外,它還能根據(jù)自動(dòng)探測(cè)到的MP3的采樣頻率合理調(diào)整DAC的時(shí)鐘。
③對(duì)音頻數(shù)據(jù)的解碼。通過獲取MP3文件幀頭來獲取一些解碼參數(shù),從而自動(dòng)適應(yīng)不同MP3音頻流的解碼。例如,可以通過解碼參數(shù)中的采樣頻率來自動(dòng)調(diào)整音頻的輸出時(shí)鐘頻率等。
④解碼后音頻流的輸出??蓪TA013的SDO(PCM串行數(shù)據(jù)輸出)、SCKT(PCM串行時(shí)鐘輸出)、OCLK(采樣時(shí)鐘)和LRCLK(左右聲道時(shí)鐘輸出)引腳,分別與MAX9850的SDIN(串行數(shù)據(jù)輸入)、BCLK(數(shù)字音頻位時(shí)鐘輸入)、MCLK(主時(shí)鐘輸入)和LRCLK(左右聲道時(shí)鐘輸入)相連。解碼后音頻流經(jīng)過DAC轉(zhuǎn)換為模擬音頻信號(hào)后,再通過耳機(jī)功放,便可由耳機(jī)輸出完整的PCM音頻。
結(jié)語(yǔ)
該設(shè)計(jì)MP3解碼方案是基于一種DAB接收機(jī)所提出的。由于該款DAB接收機(jī)采用的基帶解碼芯片ID200擁有極低功耗性(26 mW/128 kbps),所以MP3解碼功能的加入首先要從整機(jī)功耗和成本考慮。而STA013解碼芯片既滿足低功耗的要求,又具備價(jià)格優(yōu)勢(shì),且技術(shù)成熟度較高,故成為方案設(shè)計(jì)首選。但其體積相對(duì)較大,在PCB布板時(shí)應(yīng)優(yōu)化設(shè)計(jì),以便符合便攜要求。隨著數(shù)字化廣播在我國(guó)的迅速普及與DAB技術(shù)成熟度的提升,在DAB基帶解碼芯片中融入MP3解碼功能,對(duì)于提高整機(jī)的便攜性、開發(fā)簡(jiǎn)易性起到至關(guān)重要的作用,這將是今后優(yōu)化設(shè)計(jì)方案的一個(gè)重要方向。
評(píng)論