當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于ARM的多通道專業(yè)MP3播放器設(shè)計

 1  引 言

  隨著微電子技術(shù)的飛速發(fā)展,嵌入式產(chǎn)品以其自然的人機交互界面和豐富的多媒體處理能力迅速得以推廣,并取得了巨大成功[1]。

        目前,在多媒體音頻領(lǐng)域中,MP3播放器占據(jù)了絕對的主導(dǎo)地位。但現(xiàn)有的MP3播放器驅(qū)動能力非常有限,只適合個人使用,不能滿足大型公共場所在不同區(qū)域播放不同背景音樂的多通道播放需要?;谝陨戏治觯疚脑O(shè)計了一種基于S3C44B0X芯片的μClinux環(huán)境下的多通道專業(yè)MP3播放器。

  2  系統(tǒng)功能分析與結(jié)構(gòu)設(shè)計

  多通道專業(yè)MP3播放器是專為滿足公共語音廣播市場的需求而設(shè)計的,其主要功能包括:

        (1)音頻解碼和播放功能;

        (2)通過USB接口與大容量外部存儲設(shè)備進行數(shù)據(jù)傳輸;

        (3)操作界面統(tǒng)一管理功能;

        (4)多通道播放功能。

  為了提高系統(tǒng)運行效率,實現(xiàn)多通道播放管理,本系統(tǒng)選用三星公司的S3C44B0X作為核心處理器,主要負責(zé)數(shù)據(jù)轉(zhuǎn)換,輸出通道的選擇,以及 LCD的控制。同時,選用意法半導(dǎo)體的STA013作為解碼芯片,配合AK4393實現(xiàn)模擬音頻信號的輸出,此外,使用SL811HS和ISP1520提供兩個主USB接口,以實現(xiàn)移動硬盤或U盤的掛接。其系統(tǒng)總體結(jié)構(gòu)如圖1所示:

圖1 系統(tǒng)總體結(jié)構(gòu)圖

  3  系統(tǒng)硬件設(shè)計

  作為一種典型的嵌入式系統(tǒng),其開發(fā)的優(yōu)點在于軟硬件的可裁剪性[2],在確保有一個穩(wěn)定的最小系統(tǒng)以后,再對外圍的設(shè)備進行擴展。此多通道專業(yè)MP3播放器的核心芯片S3C44B0X是基于arm7 而開發(fā)的多功能SOC(Signal Operation Control)。S3C44B0X除具備一般嵌入式芯片所具有的總線、SDRAM控制器和3個串口等外設(shè)之外,還具有TFT LCD控制器、USB Slave、USB Host、I2C總線控制器、SPI控制器、IIS音頻接口、SD&MMC存儲卡接口等豐富的擴展功能[3]。由于S3C44B0X對于SL811構(gòu)建的主USB接口技術(shù)已經(jīng)相當(dāng)成熟,在這里就不再敘述。此外,S3C44B0X提供的標(biāo)準(zhǔn)接口可以支持市面上絕大多數(shù)型號的LCD顯示屏,制作也相對簡單,所以本文只對MP3播放器的解碼實現(xiàn)部分和多通道的實現(xiàn)方法進行詳細說明。

  3.1  MP3解碼電路設(shè)計

  本系統(tǒng)解碼部分的硬件采用了ST公司的STA013解碼芯片以及AKM的AK4393芯片。STA013是一款優(yōu)秀的MP3解碼芯片,它通過 IIC總線來傳輸控制信息,通過串行數(shù)據(jù)線接收語音數(shù)據(jù)。AK4393是一款高品質(zhì)的立體聲DAC芯片,支持24bit/96KHz取樣,采用 “復(fù)合比特”技術(shù)使芯片的解碼更為快速和準(zhǔn)確。

  解碼部分與S3C44B0X的接口電路部分如圖2所示。通過S3C44B0X的I/O口對STA013發(fā)送音頻數(shù)據(jù),解碼過程由STA013的 DSP核來進行。STA013解碼后的數(shù)字音頻信號由SDO(串行數(shù)據(jù)輸出), SCKT(串行時鐘), LRCKT(左右聲道時鐘), OCLK(采樣時鐘)4個腳輸出到D/A轉(zhuǎn)換器AK4393。通過AK4393將得到的模擬音頻信號,再經(jīng)過功率放大電路放大后就可以直接驅(qū)動無源音箱。

圖2 解碼部分接口電路圖

  此外,由于實現(xiàn)多通道的播放形式,所以需要在設(shè)計過程中提供多套相同的解碼芯片和DAC。[!--empirenews.page--]

  3.2  多通道功能的實現(xiàn)

  系統(tǒng)多通道播放采用的基本方法是(以四通道為例):當(dāng)系統(tǒng)上電以后,解碼控制信號為了實現(xiàn)對每一個解碼通道的具體工作狀態(tài)控制,通過采用外接一個四路轉(zhuǎn)換開關(guān)(CD4066),控制各路通道解碼芯片的工作狀態(tài)。轉(zhuǎn)換開關(guān)四路通道的輸入部分連接CPU的IIC總線的IICSDA,通過與CPU相連的多個控制引腳(CTRL1,2,3,4),確定控制數(shù)據(jù)的傳輸方向。四路通道的時鐘信號則直接連接在CPU上,只有控制數(shù)據(jù)傳輸時才發(fā)生作用。

  在播放過程中,CPU實時響應(yīng)各通道傳輸數(shù)據(jù)的請求,選通該路的解碼芯片,被選通的解碼芯片對從總線上獲取的mp3文件數(shù)據(jù)進行解碼,而未被選通的解碼通道則忽略總線上的音頻數(shù)據(jù)。當(dāng)數(shù)據(jù)請求的中斷請求信號由高變低,系統(tǒng)開始響應(yīng)下一次數(shù)據(jù)請求。通過這種各通道交替工作的方式,實現(xiàn)四通道同步播放的功能。工作原理圖如圖3所示:

圖3 多通道工作原理圖

  4  系統(tǒng)軟件設(shè)計

  系統(tǒng)軟件包括操作系統(tǒng)、驅(qū)動程序及播放器應(yīng)用程序3部分。

  4.1  操作系統(tǒng)的實現(xiàn)

  在嵌入式系統(tǒng)中,通常并沒有像BIOS那樣的固件程序,因此整個系統(tǒng)的加載啟動任務(wù)就完全由BootLoader來完成。BootLoader 的任務(wù)是初始化芯片和主板,系統(tǒng)選用的是U-Boot-1.1.2啟動程序,因為U-Boot的優(yōu)點在于對多系統(tǒng)和多平臺的支持。由于S3C44B0X沒有存儲管理單元(MMU),所以無法移植標(biāo)準(zhǔn)的Linux內(nèi)核,而μClinux主要是針對沒有MMU的處理器設(shè)計的操作系統(tǒng)[4],因此可以作為播放器的操作系統(tǒng)平臺進行移植。通過修改相應(yīng)的配置文件和驅(qū)動程序就可以實現(xiàn)移植過程中需要創(chuàng)建的開發(fā)板文件。

        4.2  驅(qū)動程序的設(shè)計

  本系統(tǒng)所編譯的μClinux內(nèi)核中包含有USB、LCD等驅(qū)動程序,只要根據(jù)需要適當(dāng)?shù)男薷谋憧梢詰?yīng)用。但是對于MP3解碼部分芯片的驅(qū)動需要自己編寫。音頻驅(qū)動程序?qū)崿F(xiàn)的主要功能是:

  (1)系統(tǒng)啟動時可以完成芯片的初始化;

        (2)具體操作時可以提供給操作系統(tǒng)合適的軟件接口。音頻驅(qū)動初始化程序如下:

  void STA013_Init(void)

  {

  if(STA013_SendCommand(RESET_REG,0,0x00))         //復(fù)位STA013

            STA013_PrintError();

  if(STA013_SendCommand(ACT_CON_REG,0,0x00))      //未激活狀態(tài)

            STA013_PrintError();

  if(STA013_SendCommand(PWR_CON_REG,0,0x00))      //上電

            STA013_PrintError();

  if(STA013_SendCommand(FS_CON_REG,0,

  I STA013L_FsValue[SysInfo.SamplingIndex]))            //選擇采樣頻率

            STA013_PrintError();

  if(STA013_SendCommand(IF_CON_REG,0,0x02+(0<<6)))  //選擇1

6位IIS數(shù)據(jù)格式

            STA013_PrintError();                     

  if(STA013_SendCommand(ANG_CTL_REG,0,0))          // 0x13, 0x12選擇DAC

            STA013_PrintError();                        和Line In輸入模式

  if(STA013_SendCommand(DGT_CTL_REG,0,0x00))       // DAC靜音

            STA013_PrintError();

  if(STA013_SendCommand(LHP_VOL_REG,0,0x00))       //左聲道音量

       STA013_PrintError();


  if(STA013_SendCommand(RHP_VOL_REG,0,0x00))       //右聲道音量

            STA013_PrintError();

  if(STA013_SendCommand(ACT_CON_REG,0,0x00))       //數(shù)據(jù)傳送激活

            STA013_PrintError();

  }

[!--empirenews.page--]
  4.3  播放程序的設(shè)計

  作為本系統(tǒng)的一個主要創(chuàng)新點,在多通道部分設(shè)計合理且高效的播放程序代碼很重要,在這里采用的是將待解碼的MP3文件先由USB設(shè)備復(fù)制到內(nèi)存的緩沖區(qū),再由緩沖區(qū)發(fā)送給解碼器的方法。播放時,程序會根據(jù)每個通道的歌曲信息將MP3文件流從USB設(shè)備復(fù)制到相應(yīng)的緩沖區(qū)中。其主要實現(xiàn)代碼如下:

  for(i=0;i<4;i++){

                if((dbuf[i]=malloc(BUF_LEN))==NULL){

                           printf("Allocation %d Error n", i);

                           exit(1);

           }

  }

  4.4  操作界面的實現(xiàn)

  完整的MP3播放器設(shè)備需要有一個簡潔的操作界面。本系統(tǒng)的操作界面選用MiniGUI軟件進行編寫,通過對MiniGUI運行模式的選擇、 MiniGUI的移植[5]以及界面程序的編寫,最終的操作界面如圖4所示。整個操作界面簡潔明了,系統(tǒng)在開機后提供了當(dāng)前時間,以及播放、設(shè)置和復(fù)位按鍵,可以直接通過播放鍵來實現(xiàn)多通道播放功能,通過設(shè)置鍵進行歌曲目錄的編排。

圖4 播放器主界面

  5  結(jié)束語

  多通道MP3播放器與傳統(tǒng)的MP3播放器相比,具有許多優(yōu)勢,可以滿足大型公共場所對背景音樂更高性能的需求。多通道MP3播放器可以實現(xiàn)多個音頻輸出通道同步播放,并可以通過USB接口外掛存儲設(shè)備實現(xiàn)歌曲的大容量存儲。此外,系統(tǒng)還提供了串口、以太網(wǎng)等一系列接口,方便與外部進行數(shù)據(jù)交換和軟件升級。

  本文創(chuàng)新點:設(shè)計了基于arm7平臺下的多通道MP3播放器,實現(xiàn)了對外接移動硬盤或U盤上的mp3文件進行多通道同步播放。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉