DAB接收機實現MP3播放器 - 全文
?提出了一種基于便攜式DAB(Digital Audio Broadcasting,數字音頻廣播)接收機的MP3播放器設計方案,并介紹了系統的軟硬件設計思路。系統采用ARM7單片機作為系統控制器,利用SD卡存儲MP3文件,用ST公司的音頻解碼芯片STA013實現MP3解碼。數字語音信號通過D/A轉換器MAX9850轉換為模擬語音信號,由耳機輸出。
引言
考慮到便攜式MP3播放器在當今社會的普及程度與消費者對其的依賴性,在DAB接收機中融合MP3解碼功能對消費市場的開拓是很必要的。本文在不改動一款DAB接收整機原有性能的基礎上,提出了一種適當加入MP3解碼功能的可行性方案。
1 系統總體結構
1.1 DAB接收系統結構
?
圖1 DAB接收系統結構框圖
DAB接收系統是基于重慶郵電大學微電子重點實驗室自主研發的一款名為ID200的基帶解碼芯片設計而成。
其結構框圖如圖1所示。ID200具有面積較小、功耗極低等特性。MCU采用Atmel公司推出的AT91SAM7S64微處理器,該芯片具有64 KB片內高速Flash存儲器、32個可編程的復用I/O、SPI和TWI等豐富的內部集成資源,性價比較高。該接收系統的靈敏度在3波段與L波段能達到-97 dBm以上。MPEG L2音源解碼,支持48 kHz和24 kHz采樣頻率,自動識別聲道模式,支持單通道、雙通道、立體聲。
1.2 主要器件選擇
考慮到DAB接收機的基帶解碼芯片尚未加入MP3解碼功能,以及生產成本、單片機速率、芯片成熟度等因素,采用了ST公司的STA013解碼芯片。該芯片具有以下特點:支持MPEG1、MPEG2與MPEG2.5格式解碼;支持立體聲、雙聲道、單聲道解碼;支持8~320 kbps的壓縮速率;串行位流輸入和PCM輸出接口,支持I2C總線;低功耗消耗,2?4 V時為85 mW;10 MHz、14?31818 MHz、14?7456 MHz的外部輸入時鐘,或內嵌工業標準XTAL晶振,以滿足不同頻率需求。
由于STA013沒有DAC和耳機功放的功能,需選用DAC芯片,這里選用Maxim公司的MAX9850芯片。該芯片是一款低功耗、高性能的立體聲音頻DAC,集成了直接驅動耳機放大器,允許放大器輸出直接驅動耳機,無需大量隔直電容,可節約成本和布線空間,同時還提供了I2C總線和PCM輸出接口。
考慮到便攜式整機的開發與存儲器的普及程度,本方案選用MicroSD卡作為音頻數據存儲單元。MicroSD卡體積超小,卻擁有著傳輸速度高、移動靈活性強、安全可靠的諸多優勢,可以運用于各類的數碼產品,不浪費產品內部設計的空間。同時,它采用FAT16/32文件系統,且提供了SPI接口,便于消費者文件下載與管理。
2 方案原理與設計思路
2.1 方案原理
DAB接收機中融合MP3解碼功能的方案如圖2所示。這里主要介紹與MP3解碼相關的部分。AT91SAM7S64微處理器利用SPI接口的片選線,最多能與4個從屬設備進行通信。該系統中MCU的4根SPI片選線分別選中ID200、MicroSD卡、STA013以及液晶顯示模塊。RF芯片和ADC分別選用Maxim公司的MAX2170和MAX1191。MCU通過SPI總線將存在SD卡中的音頻數據讀取到MCU內的緩沖器中,然后再通過SPI總線將數據發送到STA013中進行音頻解碼,解碼后的音頻數據流能通過PCM輸出接口送入MAX9850,經過D/A轉換和耳機功放,最終由耳機輸出。
?
圖2 DAB結合MP3解碼功能的系統方案
STA013主要是靠I2C總線來傳輸控制信息,串行數據線接收音頻數據。可以將由SDI、SCKR、DATA_REQ三個引腳組成的串行數據線,看成是一個只有SIMO(從機輸入主機輸出)沒有SOMI(從機輸出主機輸入)的SPI總線。當DATA_REQ置高時,將MCU緩沖器中的數據以盡可能快的速度通過SDI引腳輸入STA013,利用SCKR為解碼芯片提供串行時鐘。當STA013的緩沖區快溢出時將DATA_REQ置低,數據停止傳輸。MCU的I2C總線與STA013的I2C接口相連,利用其傳輸命令、初始化解碼芯片及控制解碼進程。
2.2 設計思路
?
圖3 MP3解碼系統結構框圖
MP3解碼系統中各模塊的連接如圖3所示。SD存儲卡系統定義了SD和SPI兩種通信協議,應用時可以選擇其中一種模式。由于本方案中采用的AT91SAM7S64沒有提供硬件的SD總線接口,但提供了SPI總線接口,為了避免用軟件方式將I/O口模擬為SD總線接口,這里選用SPI總線模式進行Micro SD卡與MCU之間的命令和數據通信。SD卡上電時總是處于SD模式下,如果系統想使用SPI模式進行通信,可以在SD卡發送復位命令CMD0期間,將主控片選(SD_CSN)信號置低,從而進入SPI模式。通過掉電再上電,能夠使SD卡系統重新回到SD模式。Micro SD卡是按簇存儲的,一簇中又有32個扇區,每個扇區可存放512個字節的數據。由于SD卡、STA013和液晶都是通過SPI總線與MCU進行通信,所以要處理好總線通信的時序問題。在SD卡初始化時打開的SPI總線,需要在獲取卡信息后關閉,然后打開LCD的SPI接口;在MP3節目播放時,需要關閉LCD的SPI,打開STA013的SPI總線。
STA013解碼芯片有3個重要的接口,分別是串行輸入接口、I2C接口以及PCM輸出接口。串行輸入接口的SDI、SCKR分別與MCU的SPI總線中的SIMO、SPICLK相連,由DATA_REQ向MCU提供中斷信號。PCM輸出接口與DAC的I2S接口相連,MCU通過I2C總線接口對MCU和DAC進行控制。在初始化STA013芯片時,必須先通過I2C總線接口寫入由ST公司提供的配置文件。
該文件中,奇數項數據是I2C寄存器地址,偶數項數據是相對應的I2C寄存器缺省數值。STA013配置文件解析如圖4所示。STA013和DAC的I2C地址分別為1000011和0010011,所以復用MCU的I2C總線接口時不存在設備沖突的問題。
?
圖4 STA013配置文件解析
I2C總線接口讀寫數據時序如圖5所示。
?
圖5 I2C總線讀寫數據時序示意圖
采用Mentor公司的PADS軟件繪制電路圖。基于STA013解碼芯片和DAB系統各部分的連接電路如圖6所示。
?
圖6 STA013解碼芯片與DAB系統連接電路
MP3解碼的工作流程:
① 解碼芯片的初始化。初始化STA013包括如下幾個步驟:硬件復位STA013;SPI初始化;將由ST公司提供的配置文件通過I2C接口寫入解碼芯片;對解碼后的PCM數據、PLL、解碼器工作模式以及輸入比特流時鐘極性等進行配置。
② 音頻數據的傳送。由于STA013具有較強的解碼功能,因此當STA013需要數據(DATA_REQ為高)時,須立即通過SDI接口以盡可能快的速度(但要低于20 Mbps)傳送給它。可以通過設置SPI總線的SPICLK來實現,這里將SPI時鐘設置為4 MHz。數據以扇區為單位從MCU發向解碼芯片的緩沖器,注意在用SPI傳送數據時,需將BIT_EN端口置高才能進行有效的傳送。STA013會自動決定數據輸入與輸出傳輸率的大小,當其緩沖存儲器飽和時,它會終止數據請求。對于易變的比特流的MP3數據,STA013也能自動處理。另外,它還能根據自動探測到的MP3的采樣頻率合理調整DAC的時鐘。
③ 對音頻數據的解碼。通過獲取MP3文件幀頭來獲取一些解碼參數,從而自動適應不同MP3音頻流的解碼。例如,可以通過解碼參數中的采樣頻率來自動調整音頻的輸出時鐘頻率等。
④ 解碼后音頻流的輸出。可將STA013的 SDO(PCM串行數據輸出)、SCKT(PCM串行時鐘輸出)、OCLK(采樣時鐘)和LRCLK(左右聲道時鐘輸出)引腳,分別與MAX9850的SDIN(串行數據輸入)、BCLK(數字音頻位時鐘輸入)、MCLK(主時鐘輸入)和LRCLK(左右聲道時鐘輸入)相連。解碼后音頻流經過DAC轉換為模擬音頻信號后,再通過耳機功放,便可由耳機輸出完整的PCM音頻。
結語
該設計MP3解碼方案是基于一種DAB接收機所提出的。由于該款DAB接收機采用的基帶解碼芯片ID200擁有極低功耗性(26 mW/128 kbps),所以MP3解碼功能的加入首先要從整機功耗和成本考慮。而STA013解碼芯片既滿足低功耗的要求,又具備價格優勢,且技術成熟度較高,故成為方案設計首選。但其體積相對較大,在PCB布板時應優化設計,以便符合便攜要求。
- 第 1 頁:DAB接收機實現MP3播放器
- 第 2 頁:設計思路
- 第 3 頁:MP3解碼的工作流程
本文導航
非常好我支持^.^
(1) 50%
不好我反對
(1) 50%
相關閱讀:
- [電子說] RoboSense激光雷達E1榮膺“2023金輯獎中國汽車新供應鏈百強” 2023-10-23
- [電子說] 什么是中頻采樣?什么是IQ采樣?中頻采樣和IQ采樣的比較和轉換 2023-10-22
- [電子說] 多通道接收機系統調試通道之間底噪幅度不一致? 2023-10-20
- [電子說] 中頻的頻率范圍是多少?接收機為什么要經過本振、混頻把高頻信號變成中頻? 2023-10-19
- [電子說] 為什么接收機中頻不能落入調諧范圍內? 2023-10-19
- [電子說] 首款車規芯片過測!紐瑞芯FiRa認證UWB芯片數遙遙領先 2023-10-19
- [電子說] 雙重移相(DPS)調制的DAB全局模態分解與仿真驗證 2023-10-16
- [電子說] 一種基于ADM策略的DAB控制方法建模研究 2023-10-16
( 發表人:小蘭 )