<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 消費電子 > 設計應用 > 基于ARM的多通道專業(yè)MP3播放器設計

          基于ARM的多通道專業(yè)MP3播放器設計

          作者:徐英欣 時間:2008-06-27 來源:微計算機信息 收藏

            4.2  驅動程序的設計

          本文引用地址:http://www.ex-cimer.com/article/84900.htm

            本系統(tǒng)所編譯的μClinux內(nèi)核中包含有USB、LCD等驅動程序,只要根據(jù)需要適當?shù)男薷谋憧梢詰?。但是對于MP3解碼部分芯片的驅動需要自己編寫。音頻驅動程序實現(xiàn)的主要功能是:(1)系統(tǒng)啟動時可以完成芯片的初始化;(2)具體操作時可以提供給操作系統(tǒng)合適的軟件接口。音頻驅動初始化程序如下:

            void STA013_Init(void)

            {

            if(STA013_SendCommand(RESET_REG,0,0x00))         //復位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)))  //選擇16位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();

            }


            4.3  播放程序的設計

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

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


          圖4 播放器主界面

            5  結束語

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

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

            參考文獻

            [1] 王旭東,徐剛.基于Windows CE.Net 4.2操作系統(tǒng)播放器的應用研究[J].微計算機信息, 2006,22-6:77-79

            [2] 馬忠梅,馬廣云,徐英慧等.處理器結構與應用基礎[M].北京:北京航空航天大學出版社,2002

            [3] 王道乾,劉定智,文俊浩.基于處理器的MP3播放器分析與實現(xiàn)[J].計算機工程與設計, 2007,28-7:1595-1597

            [4] 李巖,榮盤祥.基于S3C44B0XμClinux系統(tǒng)原理及應用[M].北京:清華大學出版社,2005

            [5] 閆玉忠,石理.嵌入式Linux的MiniGUI研究和移植[J].單片機與嵌入式系統(tǒng)應用,2003,6-1:5-7

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();