国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

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

發(fā)布時(shí)間:2009-6-9 14:26    發(fā)布者:ARM
1  引 言
  隨著微電子技術(shù)的飛速發(fā)展,嵌入式產(chǎn)品以其自然的人機(jī)交互界面和豐富的多媒體處理能力迅速得以推廣,并取得了巨大成功[1]。目前,在多媒體音頻領(lǐng)域中,MP3播放器占據(jù)了絕對(duì)的主導(dǎo)地位。但現(xiàn)有的MP3播放器驅(qū)動(dòng)能力非常有限,只適合個(gè)人使用,不能滿足大型公共場(chǎng)所在不同區(qū)域播放不同背景音樂(lè)的多通道播放需要。基于以上分析,本文設(shè)計(jì)了一種基于S3C44B0X芯片的μClinux環(huán)境下的多通道專業(yè)MP3播放器。
  2  系統(tǒng)功能分析與結(jié)構(gòu)設(shè)計(jì)
  多通道專業(yè)MP3播放器是專為滿足公共語(yǔ)音廣播市場(chǎng)的需求而設(shè)計(jì)的,其主要功能包括:(1)音頻解碼和播放功能;(2)通過(guò)USB接口與大容量外部存儲(chǔ)設(shè)備進(jìn)行數(shù)據(jù)傳輸;(3)操作界面統(tǒng)一管理功能;(4)多通道播放功能。
  為了提高系統(tǒng)運(yùn)行效率,實(shí)現(xiàn)多通道播放管理,本系統(tǒng)選用三星公司的S3C44B0X作為核心處理器,主要負(fù)責(zé)數(shù)據(jù)轉(zhuǎn)換,輸出通道的選擇,以及LCD的控制。同時(shí),選用意法半導(dǎo)體的STA013作為解碼芯片,配合AK4393實(shí)現(xiàn)模擬音頻信號(hào)的輸出,此外,使用SL811HS和ISP1520提供兩個(gè)主USB接口,以實(shí)現(xiàn)移動(dòng)硬盤或U盤的掛接。其系統(tǒng)總體結(jié)構(gòu)如圖1所示:

圖1 系統(tǒng)總體結(jié)構(gòu)圖
  3  系統(tǒng)硬件設(shè)計(jì)
  作為一種典型的嵌入式系統(tǒng),其開(kāi)發(fā)的優(yōu)點(diǎn)在于軟硬件的可裁剪性[2],在確保有一個(gè)穩(wěn)定的最小系統(tǒng)以后,再對(duì)外圍的設(shè)備進(jìn)行擴(kuò)展。此多通道專業(yè)MP3播放器的核心芯片S3C44B0X是基于ARM7而開(kāi)發(fā)的多功能SOC(Signal Operation Control)。S3C44B0X除具備一般嵌入式芯片所具有的總線、SDRAM控制器和3個(gè)串口等外設(shè)之外,還具有TFT LCD控制器、USB Slave、USBHost、I2C總線控制器、SPI控制器、IIS音頻接口、SD&MMC存儲(chǔ)卡接口等豐富的擴(kuò)展功能[3]。由于S3C44B0X對(duì)于SL811構(gòu)建的主USB接口技術(shù)已經(jīng)相當(dāng)成熟,在這里就不再敘述。此外,S3C44B0X提供的標(biāo)準(zhǔn)接口可以支持市面上絕大多數(shù)型號(hào)的LCD顯示屏,制作也相對(duì)簡(jiǎn)單,所以本文只對(duì)MP3播放器的解碼實(shí)現(xiàn)部分和多通道的實(shí)現(xiàn)方法進(jìn)行詳細(xì)說(shuō)明。
  3.1  MP3解碼電路設(shè)計(jì)
  本系統(tǒng)解碼部分的硬件采用了ST公司的STA013解碼芯片以及AKM的AK4393芯片。STA013是一款優(yōu)秀的MP3解碼芯片,它通過(guò)IIC總線來(lái)傳輸控制信息,通過(guò)串行數(shù)據(jù)線接收語(yǔ)音數(shù)據(jù)。AK4393是一款高品質(zhì)的立體聲DAC芯片,支持24bit/96KHz取樣,采用“復(fù)合比特”技術(shù)使芯片的解碼更為快速和準(zhǔn)確。
  解碼部分與S3C44B0X的接口電路部分如圖2所示。通過(guò)S3C44B0X的I/O口對(duì)STA013發(fā)送音頻數(shù)據(jù),解碼過(guò)程由STA013的DSP核來(lái)進(jìn)行。STA013解碼后的數(shù)字音頻信號(hào)由SDO(串行數(shù)據(jù)輸出), SCKT(串行時(shí)鐘), LRCKT(左右聲道時(shí)鐘),OCLK(采樣時(shí)鐘)4個(gè)腳輸出到D/A轉(zhuǎn)換器AK4393。通過(guò)AK4393將得到的模擬音頻信號(hào),再經(jīng)過(guò)功率放大電路放大后就可以直接驅(qū)動(dòng)無(wú)源音箱。

圖2 解碼部分接口電路圖
  此外,由于實(shí)現(xiàn)多通道的播放形式,所以需要在設(shè)計(jì)過(guò)程中提供多套相同的解碼芯片和DAC。
  3.2  多通道功能的實(shí)現(xiàn)
  系統(tǒng)多通道播放采用的基本方法是(以四通道為例):當(dāng)系統(tǒng)上電以后,解碼控制信號(hào)為了實(shí)現(xiàn)對(duì)每一個(gè)解碼通道的具體工作狀態(tài)控制,通過(guò)采用外接一個(gè)四路轉(zhuǎn)換開(kāi)關(guān)(CD4066),控制各路通道解碼芯片的工作狀態(tài)。轉(zhuǎn)換開(kāi)關(guān)四路通道的輸入部分連接CPU的IIC總線的IICSDA,通過(guò)與CPU相連的多個(gè)控制引腳(CTRL1,2,3,4),確定控制數(shù)據(jù)的傳輸方向。四路通道的時(shí)鐘信號(hào)則直接連接在CPU上,只有控制數(shù)據(jù)傳輸時(shí)才發(fā)生作用。
  在播放過(guò)程中,CPU實(shí)時(shí)響應(yīng)各通道傳輸數(shù)據(jù)的請(qǐng)求,選通該路的解碼芯片,被選通的解碼芯片對(duì)從總線上獲取的mp3文件數(shù)據(jù)進(jìn)行解碼,而未被選通的解碼通道則忽略總線上的音頻數(shù)據(jù)。當(dāng)數(shù)據(jù)請(qǐng)求的中斷請(qǐng)求信號(hào)由高變低,系統(tǒng)開(kāi)始響應(yīng)下一次數(shù)據(jù)請(qǐng)求。通過(guò)這種各通道交替工作的方式,實(shí)現(xiàn)四通道同步播放的功能。工作原理圖如圖3所示:

圖3 多通道工作原理圖
  4  系統(tǒng)軟件設(shè)計(jì)
  系統(tǒng)軟件包括操作系統(tǒng)、驅(qū)動(dòng)程序及播放器應(yīng)用程序3部分。
  4.1  操作系統(tǒng)的實(shí)現(xiàn)
  在嵌入式系統(tǒng)中,通常并沒(méi)有像BIOS那樣的固件程序,因此整個(gè)系統(tǒng)的加載啟動(dòng)任務(wù)就完全由BootLoader來(lái)完成。BootLoader的任務(wù)是初始化芯片和主板,系統(tǒng)選用的是U-Boot-1.1.2啟動(dòng)程序,因?yàn)閁-Boot的優(yōu)點(diǎn)在于對(duì)多系統(tǒng)和多平臺(tái)的支持。由于S3C44B0X沒(méi)有存儲(chǔ)管理單元(MMU),所以無(wú)法移植標(biāo)準(zhǔn)的Linux內(nèi)核,而μClinux主要是針對(duì)沒(méi)有MMU的處理器設(shè)計(jì)的操作系統(tǒng)[4],因此可以作為播放器的操作系統(tǒng)平臺(tái)進(jìn)行移植。通過(guò)修改相應(yīng)的配置文件和驅(qū)動(dòng)程序就可以實(shí)現(xiàn)移植過(guò)程中需要?jiǎng)?chuàng)建的開(kāi)發(fā)板文件。
  4.2  驅(qū)動(dòng)程序的設(shè)計(jì)
  本系統(tǒng)所編譯的μClinux內(nèi)核中包含有USB、LCD等驅(qū)動(dòng)程序,只要根據(jù)需要適當(dāng)?shù)男薷谋憧梢詰?yīng)用。但是對(duì)于MP3解碼部分芯片的驅(qū)動(dòng)需要自己編寫。音頻驅(qū)動(dòng)程序?qū)崿F(xiàn)的主要功能是:(1)系統(tǒng)啟動(dòng)時(shí)可以完成芯片的初始化;(2)具體操作時(shí)可以提供給操作系統(tǒng)合適的軟件接口。音頻驅(qū)動(dòng)初始化程序如下:
  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)))  //選擇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  播放程序的設(shè)計(jì)

  作為本系統(tǒng)的一個(gè)主要?jiǎng)?chuàng)新點(diǎn),在多通道部分設(shè)計(jì)合理且高效的播放程序代碼很重要,在這里采用的是將待解碼的MP3文件先由USB設(shè)備復(fù)制到內(nèi)存的緩沖區(qū),再由緩沖區(qū)發(fā)送給解碼器的方法。播放時(shí),程序會(huì)根據(jù)每個(gè)通道的歌曲信息將MP3文件流從USB設(shè)備復(fù)制到相應(yīng)的緩沖區(qū)中。其主要實(shí)現(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  操作界面的實(shí)現(xiàn)
  完整的MP3播放器設(shè)備需要有一個(gè)簡(jiǎn)潔的操作界面。本系統(tǒng)的操作界面選用MiniGUI軟件進(jìn)行編寫,通過(guò)對(duì)MiniGUI運(yùn)行模式的選擇、MiniGUI的移植[5]以及界面程序的編寫,最終的操作界面如圖4所示。整個(gè)操作界面簡(jiǎn)潔明了,系統(tǒng)在開(kāi)機(jī)后提供了當(dāng)前時(shí)間,以及播放、設(shè)置和復(fù)位按鍵,可以直接通過(guò)播放鍵來(lái)實(shí)現(xiàn)多通道播放功能,通過(guò)設(shè)置鍵進(jìn)行歌曲目錄的編排。

圖4 播放器主界面
  5  結(jié)束語(yǔ)
  多通道MP3播放器與傳統(tǒng)的MP3播放器相比,具有許多優(yōu)勢(shì),可以滿足大型公共場(chǎng)所對(duì)背景音樂(lè)更高性能的需求。多通道MP3播放器可以實(shí)現(xiàn)多個(gè)音頻輸出通道同步播放,并可以通過(guò)USB接口外掛存儲(chǔ)設(shè)備實(shí)現(xiàn)歌曲的大容量存儲(chǔ)。此外,系統(tǒng)還提供了串口、以太網(wǎng)等一系列接口,方便與外部進(jìn)行數(shù)據(jù)交換和軟件升級(jí)。
  本文創(chuàng)新點(diǎn):設(shè)計(jì)了基于ARM7平臺(tái)下的多通道MP3播放器,實(shí)現(xiàn)了對(duì)外接移動(dòng)硬盤或U盤上的mp3文件進(jìn)行多通道同步播放。
  參考文獻(xiàn)
  [1] 王旭東,徐剛.基于Windows CE.Net 4.2嵌入式操作系統(tǒng)多媒體播放器的應(yīng)用研究[J].微計(jì)算機(jī)信息, 2006,22-6:77-79
  [2] 馬忠梅,馬廣云,徐英慧等.ARM嵌入式處理器結(jié)構(gòu)與應(yīng)用基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,2002
  [3] 王道乾,劉定智,文俊浩.基于ARM處理器的MP3播放器分析與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì), 2007,28-7:1595-1597
  [4] 李巖,榮盤祥.基于S3C44B0X嵌入式μClinux系統(tǒng)原理及應(yīng)用[M].北京:清華大學(xué)出版社,2005
  [5] 閆玉忠,石理.嵌入式Linux的MiniGUI研究和移植[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2003,6-1:5-7
本文地址:http://m.qingdxww.cn/thread-2470-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 安靜高效的電機(jī)控制——這才是正確的方向!
  • 為何選擇集成電平轉(zhuǎn)換?
  • 無(wú)線充電基礎(chǔ)知識(shí)及應(yīng)用培訓(xùn)教程3
  • 無(wú)線充電基礎(chǔ)知識(shí)及應(yīng)用培訓(xùn)教程2
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)在線工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 午夜a级理论片在线播放一级 | 欧美在线一区二区三区不卡 | 2022欧美高清中文字幕在线看 | 青青网站 | 日韩在线不卡视频 | 日本高清免费h色视频在线观看 | 日韩伦理在线看不卡 | 女人一级毛片 | 爽躁多水快深点小说妇 | 亚洲一级毛片在线播放 | 偷偷鲁国内视频视频在线 | 欧美女人天堂 | va亚洲va欧美va国产综合 | 亚洲图色网站 | 9热在线精品视频观看 | 狂野欧美老黑粗又硬 | 色在线视频免费 | 先锋资源亚洲 | 成人亚州| 亚洲黄色在线观看视频 | 午夜一级毛片不卡 | 免费国产a国产片高清不卡 免费国产99久久久香蕉 | 二级毛片免费观看全程 | 国产成人精品综合久久久 | 一级毛片aaaaaa免费看 | a毛片全部免费播放 | 久久伊人精品青青草原高清 | 欧美日韩国产不卡在线观看 | 亚洲欧美另类日韩 | 久久精品一区二区国产 | 91国在线国内在线播放 | 日韩欧美高清在线观看 | 日韩黄色网址 | 玖玖中文| 国产白嫩在线 | 国内精品影院久久久久 | 99精品国产自在现线观看 | 91小视频app 91香蕉在线看私人影院 | 色费女人18毛片a级视频在线 | 久久精品伊人网 | 成年女人在线观看片免费视频 |