a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 手機與無線通信 > 設計應用 > 基于uC/OS-II的MP3文件播放系統設計

基于uC/OS-II的MP3文件播放系統設計

作者:向賽輝,陳盛云,任華 時間:2008-08-27 來源:中電網 收藏

  1 引言

本文引用地址:http://www.j9360.com/article/87445.htm

  近幾年,音頻產品受到消費者的青睞,而高質量的音效是當前音頻產品發展的重要趨勢。文件解碼一般采用軟件解碼和硬件解碼兩種方法。硬件解碼實現簡單,但需增加硬件成本。軟件解碼需占用大量時間,實現難度大,但成本低、處理靈活,只要具有足夠的處理速度則是一種很好選擇。本文介紹了MP3文件播放系統硬件和軟件設計,采用Cirrus Logic公司的EP9315處理器和UDA1341器,并介紹了基于μC/OS-II開源實時操作系統的MP3解碼原理,播放函數以及硬件接口初始化等。

  2 MP3原理

  MP3是MPEG-1 Atdio Layer-3的縮寫,它是一套完整的基于感知的音頻編碼算法。這一算法應用了心理聲學模型可達到1:12的壓縮比率。心理聲模型應用于人耳特性,最大限度保持原始聲音質量。MPEG-1 Audio編碼對象是20 Hz~20 000 Hz的寬帶聲音,采用感知子帶編碼,也叫做子帶編碼(sub-band coding,SBC),從而達到既壓縮聲音數據又盡可能保持聲音原有質量的目的。SBC編碼對象不局限于話音數據和某一種聲源。具體思想是:首先把時域中的聲音數據變換到頻域,對頻域內的子帶分量分別量化和編碼,根據心理聲學模型確定樣本精度,從而達到壓縮數據量的目的。子帶編碼的理論根據是聽覺系統的掩蔽特性,主要是利用頻域掩蔽特性,編碼過程中保留信號帶寬,但是卻扔掉被掩蔽的信號,因此編碼后還原(解碼、重構)的聲音信號與編碼前的聲音信號不相同,但人的聽覺系統很難分辨出它們的差別。因此,對于聽覺系統,這種壓縮是"無損壓縮"。

  當打開MP3文件后,播放器首先試圖對幀進行同步,然后分別讀取通道息及增益因子等數據,再進行霍夫曼解碼,至此已獲得解壓數據。但這些數據不能播放,它們仍處于頻域,若要播放,還需將其通過特定手段由頻域變換到時域。然后再分別進行立體化處琿、抗鋸齒處理、IMDCT變換、IDCT變換及窗口化滑動處理。這樣得到的數據就可進行D/A轉換并播放。

  MP3歌曲的解碼是一個非常復雜的過程,可通過Start_mp3_decode()解碼函數完成。另外,還需給解碼函數進行供給數據、針對音頻接口的初始化、針對播放過程的初始化等操作。

  3 系統硬件設計

  3.1 系統結構分析

  本系統以EP9315為核心,包括Philips公司的UDA1341型立體聲音頻器、SDRAM、Flash存儲器。處理器通過IIS接口控制音頻數據在系統內存(SDRAM)與UDA1341之間傳輸。通過L3控制端口實現UDA1341的配置和控制,本設計系統MP3采用USB Host結構,使用時需插U盤。系統結構圖如圖1所示。

  3.2 音頻解碼器接口部分

  IIS(inter-IC Sound)總線是Philips公司提出的串行數字音頻總線協議。它是一種面向多媒體的音頻總線專用于音頻設備之間的數據傳輸,為數字立體聲提供序列的連接至標準編解碼器。IIS總線只處理聲音數據,其他信號(如控制信號)必須單獨傳輸。為了使電路的引出腳盡可能少,IIS只使用3條串行總線提供分時復用功能的數據線、字段選擇線和時鐘信號線。

  整個音頻系統的硬件設計主要是與編解碼器的連接。本系統采用Philips公司的基于IIS音頻總線UDA1341型音頻編解碼器。UDA1341支持IIS總線數據格式,采用位元流轉換技術進行信號處理,具有可編程增益放大器(PGA)和數字自動增益控制器(AGC)。UDA1341對外提供兩組音頻信號輸入接口,每組包括左右2個聲道。由于IIS總線只處理音頻數據,因此UDA1341還內置用于傳輸控制信號的L3總線接口。L3接口相當于混音器控制接口,可以控制輸入/輸出音頻信號的低音及音量大小等。L3接口接至EP9315的3個通用GPIO輸入輸出引腳。EP9315內置多達6通道的IIS總線接口,可直接外接16位的立體聲編解碼器,含有3個發送通道和3個接收通道。EP9315支持12個獨立的DMA通道,其中10個通道是用于外圍模塊與存儲器之間的數據傳輸,另外2個通道是專用于存儲器之間的數據傳輸。 如圖2所示,器件EP9315的IIS總線信號與UDA1341的IIS信號直接相連接。L3接口的引腳L3MODE、L3CLOCK和L3DATA分別與EP9315的EGPI012、EGPIO11和EGPIO10通用數據輸出引腳相連,利用這3個I/O端口模擬L3總線的全部時序和協議實現控制。

  4 軟件設計

  4.1 嵌入式實時操作系統μC/OS-II

  對大多數移動設備而言,采用公開源代碼的操作系統μC/OS-II是最好的選擇。μC/OS-II是一個完整、可移植、可固化及可裁減占先實時多任務內核。μC/OS-II大致分為內核、任務管理、時間管理、任務同步與通信、與CPU的接口等5部分,其中任務管理部分與任務操作密切相關,包括任務建立、刪除、掛起、恢復等。任務同步與通信部分包括信號郵箱、郵箱隊列和時間標志等部分,主要用于任務間的相互聯系和對臨界資源的訪問。

  4.2 μC/OS-II內核的多任務管理

  μC/OS-II除了具有良好的穩定性和安全性外,主要是對多任務的管理,可以管理多達64個任務。除了8個白用任務外,用戶的應用程序最多可達56個任務。

  在多任務系統中,內核負責管理各個任務,并且負責任務之間的通信。內核提高的基本服務是任務切換,由實時內核管理。一個任務有5種狀態,在任意給定時刻,任務狀態一定是這5種狀態之一:休眠、就緒、運行、掛起(等待某事件發生)和被中斷。

  μC/OS-II總是進入就緒狀態任務中優先級最高的那一個。通過任務級的調度函數OSSched()或者中斷級的調度函數OSIntExt()在任務就緒列表OSRdyTb()中查找。在確定優先級最高的就緒態任務后,如果有更高優先級的任務要運行,調用OS_TASK_SW()完成實際的任務切換。


上一頁 1 2 下一頁

評論


相關推薦

技術專區

關閉