吳社民
(安陽市高級技工學(xué)校,河南 安陽 455000)
本方案采用ST公司的STM32F103VBT6芯片完成MP3/WMA音頻文件的解碼播放功能。其中STM32F103VBT6為主控芯片,采用VS1003芯片進行硬件解碼,MP3/WMA格式音頻文件存儲在SD卡中。
由于采用新的數(shù)據(jù)壓縮標準,MP3文件具有良好的音效和始于傳輸?shù)捏w積大小。
本方案完成的功能包括:
(1)SD 卡文件的讀寫
(2)FAT32 文件系統(tǒng)的讀寫
(3)支持“上一曲/下一曲”、“順序播放”功能
(4)支持歌詞同步
1.1.1 Cortex-M3內(nèi)核
Cortex-M3是ARM公司推出的新一代32位嵌入式微處理器內(nèi)核。它采用ARM-V7-M架構(gòu),具有高性能、低功耗、少門數(shù)的特點;因此,非常適合嵌入式系統(tǒng)領(lǐng)域的設(shè)計和應(yīng)用。
Cortex-M3具有一個與內(nèi)核系統(tǒng)緊密耦合的嵌套向量終端控制器NVIC(Nested Vectored Interrupt Controller)。該NVIC可配置8級搶占式、256級優(yōu)先級的1—240個外部中斷,同時支持咬尾中斷、遲到中斷技術(shù),大大縮短了中斷響應(yīng)時間。
1.1.2 STM32芯片
STM32xxx系列芯片是ST公司基于ARM Cortex-M3設(shè)計的一個32位微處理器系列。該系列處理器在繼承ARM Cortex-M3內(nèi)核優(yōu)點的基礎(chǔ)上,擴展了其外部接口、增強其定時器功能、增加了A/D、D/A模塊。
1.1.3 VS1003音頻解碼芯片
VS1003是VSL公司生產(chǎn)的一款單片MP3/WMA/MIDI音頻解碼和ADPCM編碼芯片。VS1003內(nèi)部包含一個DSP處理器,為用戶提供5KB的指令RAM和0.5KB的數(shù)據(jù)RAM,提供一個SPI接口和一個UART接口,同時支持一個高質(zhì)量采樣頻率可變的ADC和立體聲DAC模塊。
1.1.4 TDA1308T數(shù)模轉(zhuǎn)換芯片
當前,自然資源確權(quán)登記就是將相對完整的生態(tài)功能區(qū)域作為一個自然資源登記單元,自然資源統(tǒng)一確權(quán)登記將各類自然資源的質(zhì)量、數(shù)量和保護要求全面摸清,并通過登記的法律手段予以公示明確,落實到每一個產(chǎn)權(quán)人或者使用權(quán)人,有助于充分掌握自然資源家底,并根據(jù)自然資源容量和承載力進行分類開發(fā)和保護,做到自然資源分類施策。
TDA1308是AB類的數(shù)字音頻(CD)專用耳機功放IC,具有低電壓、低失真、高速率、強輸出的優(yōu)異特性。芯片內(nèi)采用MOS管輸出,可直接推動低阻抗耳機。因為封裝和功能引腳位與一般的雙運放相同,在特定條件下,也能當雙運放使用。在低供電電壓條件下,性能比一般的運放要好。因其封裝體積小,低電壓低功耗等特點,主要應(yīng)用在便攜式數(shù)字音頻電路中,如discman,光驅(qū)的耳放電路等。
按模塊劃分,本方案主要包括如下幾個模塊:SD卡模塊、STM32主控模塊、VS1003音頻轉(zhuǎn)換模塊、TDA1308T數(shù)模轉(zhuǎn)換模塊、液晶模塊、人機交互模塊。
硬件電路框圖如圖1所示。
下面主要介紹SD卡模塊、VS1003模塊與STM32模塊的鏈接。
1.2.1 SD卡與STM32
本方案中SD卡用來存儲MP3/WMA格式的音頻文件。STM32處理器通過SPI1接口讀取SD卡中的音頻文件。STM32芯片處于Master模式,SD卡處于Slave模式。
在本方案中SD卡與STM32芯片之間的數(shù)據(jù)通信采用SPI協(xié)議。PA4:低電平有效,連接至SD卡的CS/DATA3引腳。在初始化過程中,SD卡根據(jù)該引腳電平的高低判斷進入SPI模式還是SDHC模式。在STM32與SD卡的數(shù)據(jù)通信過程中,該引腳需保持為低電平。
圖1 硬件電路框圖
PA5:連接至SD卡的CLK引腳,用于提供STM32與SD卡數(shù)據(jù)通信過程中時鐘信號。
PA7:連接至SD卡的CMD引腳。對SD卡而言,該引腳為數(shù)據(jù)輸入引腳,對STM32而言,該引腳為數(shù)據(jù)輸出引腳。
1.2.2 VS1003與STM32
本方案中VS1003用來進行MP3/WMA格式音頻文件的硬件解碼。STM32處理器通過SPI2接口將數(shù)據(jù)送入VS1003進行解碼。STM32芯片處于Master模式,VS1003芯片處于Slave模式。
硬件電路框圖如圖2所示。
圖2 硬件電路框圖
PB14:連接至VS1003的SO引腳。對STM32而言,該引腳為數(shù)據(jù)輸入引腳;對VS1003而言,該引腳為數(shù)據(jù)輸出引腳。
PB15:連接至VS1003的SI引腳。對STM32而言,該引腳為數(shù)據(jù)輸出應(yīng)交;對VS1003而言,該引腳為數(shù)據(jù)輸入引腳。
PB13:連接至VS1003的CLK引腳,用于提供VS1003與STM32之間數(shù)據(jù)通信時所需的始終信號。
PB12:連接至VS1003的CS引腳,低電平有效。在STM32與VS1003通信過程中,該引腳需保持低電平。
本方案程序設(shè)計的總體思路為:STM32芯片通過SPI1接口從SD卡中讀取以FAT32文件系統(tǒng)個格式存儲的MP3/WMA音頻文件,然后將數(shù)據(jù)文件通過SPI2接口送至VS1003進行解碼,解碼結(jié)果通過TDA1308T芯片的轉(zhuǎn)換送往耳機播放。
應(yīng)用程序流程圖,如圖3所示。
圖3 應(yīng)用程序流程圖
本方案提出一種基于STM32F103VBT6的MP3/WMA音頻文件播放設(shè)計模型。硬件上,簡要介紹了各個模塊的電路連接和工作流程;軟件上,介紹了程序組織模型和應(yīng)用程序設(shè)計流程。整個系統(tǒng)設(shè)計簡明、簡單、可靠性強,具有很高的性價比。
[1]STM32F103X Datasheet Rev1[OL].pdf www.st.com.
[2]STM32F10X Reference Manual V8[OL].pdf www.st.com.
[3]The Definitive Guide to The ARM Cortex-M3.pdf[OL].
[4]李寧.ARM開發(fā)工具KeilMDK使用入門[M].北京:北京航空航天大學(xué)出版社,2008.
[5]李寧.基于MDK的STM32處理器開發(fā)應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2008.