新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ARM的多通道專業MP3播放器設計

        基于ARM的多通道專業MP3播放器設計

        作者: 時間:2015-06-02 來源:網絡 收藏

          4系統軟件設計

        本文引用地址:http://www.104case.com/article/275079.htm

          系統軟件包括操作系統、驅動程序及播放器應用程序3部分。

          4.1操作系統的實現

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

          4.2驅動程序的設計

          本系統所編譯的μClinux內核中包含有USB、LCD等驅動程序,只要根據需要適當的修改便可以應用。但是對于解碼部分芯片的驅動需要自己編寫。音頻驅動程序實現的主要功能是:(1)系統啟動時可以完成芯片的初始化;(2)具體操作時可以提供給操作系統合適的軟件接口。音頻驅動初始化程序如下:

          void STA013_Init(void)

          {

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

          STA013_PrintError();

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

          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))) //選擇16位IIS數據格式

          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)) //數據傳送激活

          STA013_PrintError();

          }

          4.3播放程序的設計

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

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

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

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

          exit(1);

          }

          }

          4.4 操作界面的實現

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

          

         

          圖4 播放器主界面

          5 結束語

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


        上一頁 1 2 下一頁

        關鍵詞: ARM MP3

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 洞头县| 大名县| 裕民县| 胶州市| 安泽县| 沾益县| 化德县| 申扎县| 南投市| 长汀县| 郯城县| 广安市| 夹江县| 西充县| 龙口市| 武义县| 通河县| 游戏| 屏边| 临沭县| 漠河县| 东乌| 桃江县| 巴彦县| 武威市| 菏泽市| 沁源县| 遵义县| 阿尔山市| 张掖市| 余干县| 澎湖县| 江源县| 普宁市| 阿克| 维西| 土默特右旗| 龙陵县| 乐山市| 灌阳县| 淅川县|