資料介紹
1引言
隨著微電子技術的飛速發展,嵌入式產品以其自然的人機交互界面和豐富的多媒體處理能力迅速得以推廣,并取得了巨大成功[1]。目前,在多媒體音頻領域中,MP3播放器占據了絕對的主導地位。但現有的MP3播放器驅動能力非常有限,只適合個人使用,不能滿足大型公共場所在不同區域播放不同背景音樂的多通道播放需要。基于以上分析,本文設計了一種基于S3C44B0X芯片的μClinux環境下的多通道專業MP3播放器。
2系統功能分析與結構設計
多通道專業MP3播放器是專為滿足公共語音廣播市場的需求而設計的,其主要功能包括:(1)音頻解碼和播放功能;(2)通過USB接口與大容量外部存儲設備進行數據傳輸;(3)操作界面統一管理功能;(4)多通道播放功能。
為了提高系統運行效率,實現多通道播放管理,本系統選用三星公司的S3C44B0X作為核心處理器,主要負責數據轉換,輸出通道的選擇,以及LCD的控制。同時,選用意法半導體的STA013作為解碼芯片,配合AK4393實現模擬音頻信號的輸出,此外,使用SL811HS和ISP1520提供兩個主USB接口,以實現移動硬盤或U盤的掛接。其系統總體結構如圖1所示:
圖1系統總體結構圖
3系統硬件設計
作為一種典型的嵌入式系統,其開發的優點在于軟硬件的可裁剪性[2],在確保有一個穩定的最小系統以后,再對外圍的設備進行擴展。此多通道專業MP3播放器的核心芯片S3C44B0X是基于ARM7而開發的多功能SOC(Signal Operation Control)。S3C44B0X除具備一般嵌入式芯片所具有的總線、SDRAM控制器和3個串口等外設之外,還具有TFT LCD控制器、USB Slave、USB Host、I2C總線控制器、SPI控制器、IIS音頻接口、SD
3.1 MP3解碼電路設計
本系統解碼部分的硬件采用了ST公司的STA013解碼芯片以及AKM的AK4393芯片。STA013是一款優秀的MP3解碼芯片,它通過IIC總線來傳輸控制信息,通過串行數據線接收語音數據。AK4393是一款高品質的立體聲DAC芯片,支持24bit/96KHz取樣,采用“復合比特”技術使芯片的解碼更為快速和準確。
解碼部分與S3C44B0X的接口電路部分如圖2所示。通過S3C44B0X的I/O口對STA013發送音頻數據,解碼過程由STA013的DSP核來進行。STA013解碼后的數字音頻信號由SDO(串行數據輸出),SCKT(串行時鐘),LRCKT(左右聲道時鐘),OCLK(采樣時鐘)4個腳輸出到D/A轉換器AK4393.通過AK4393將得到的模擬音頻信號,再經過功率放大電路放大后就可以直接驅動無源音箱。
圖2解碼部分接口電路圖
此外,由于實現多通道的播放形式,所以需要在設計過程中提供多套相同的解碼芯片和DAC.
3.2多通道功能的實現
系統多通道播放采用的基本方法是(以四通道為例):當系統上電以后,解碼控制信號為了實現對每一個解碼通道的具體工作狀態控制,通過采用外接一個四路轉換開關(CD4066),控制各路通道解碼芯片的工作狀態。轉換開關四路通道的輸入部分連接CPU的IIC總線的IICSDA,通過與CPU相連的多個控制引腳(CTRL1,2,3,4),確定控制數據的傳輸方向。四路通道的時鐘信號則直接連接在CPU上,只有控制數據傳輸時才發生作用。
在播放過程中,CPU實時響應各通道傳輸數據的請求,選通該路的解碼芯片,被選通的解碼芯片對從總線上獲取的mp3文件數據進行解碼,而未被選通的解碼通道則忽略總線上的音頻數據。當數據請求的中斷請求信號由高變低,系統開始響應下一次數據請求。通過這種各通道交替工作的方式,實現四通道同步播放的功能。工作原理圖如圖3所示:
圖3多通道工作原理圖
4系統軟件設計
系統軟件包括操作系統、驅動程序及播放器應用程序3部分。
4.1操作系統的實現
在嵌入式系統中,通常并沒有像BIOS那樣的固件程序,因此整個系統的加載啟動任務就完全由BootLoader來完成。BootLoader的任務是初始化芯片和主板,系統選用的是U-Boot-1.1.2啟動程序,因為U-Boot的優點在于對多系統和多平臺的支持。由于S3C44B0X沒有存儲管理單元(MMU),所以無法移植標準的Linux內核,而μClinux主要是針對沒有MMU的處理器設計的操作系統[4],因此可以作為播放器的操作系統平臺進行移植。通過修改相應的配置文件和驅動程序就可以實現移植過程中需要創建的開發板文件。
4.2驅動程序的設計
本系統所編譯的μClinux內核中包含有USB、LCD等驅動程序,只要根據需要適當的修改便可以應用。但是對于MP3解碼部分芯片的驅動需要自己編寫。音頻驅動程序實現的主要功能是:(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播放程序的設計
作為本系統的一個主要創新點,在多通道部分設計合理且高效的播放程序代碼很重要,在這里采用的是將待解碼的MP3文件先由USB設備復制到內存的緩沖區,再由緩沖區發送給解碼器的方法。播放時,程序會根據每個通道的歌曲信息將MP3文件流從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]。目前,在多媒體音頻領域中,MP3播放器占據了絕對的主導地位。但現有的MP3播放器驅動能力非常有限,只適合個人使用,不能滿足大型公共場所在不同區域播放不同背景音樂的多通道播放需要。基于以上分析,本文設計了一種基于S3C44B0X芯片的μClinux環境下的多通道專業MP3播放器。
2系統功能分析與結構設計
多通道專業MP3播放器是專為滿足公共語音廣播市場的需求而設計的,其主要功能包括:(1)音頻解碼和播放功能;(2)通過USB接口與大容量外部存儲設備進行數據傳輸;(3)操作界面統一管理功能;(4)多通道播放功能。
為了提高系統運行效率,實現多通道播放管理,本系統選用三星公司的S3C44B0X作為核心處理器,主要負責數據轉換,輸出通道的選擇,以及LCD的控制。同時,選用意法半導體的STA013作為解碼芯片,配合AK4393實現模擬音頻信號的輸出,此外,使用SL811HS和ISP1520提供兩個主USB接口,以實現移動硬盤或U盤的掛接。其系統總體結構如圖1所示:
圖1系統總體結構圖
3系統硬件設計
作為一種典型的嵌入式系統,其開發的優點在于軟硬件的可裁剪性[2],在確保有一個穩定的最小系統以后,再對外圍的設備進行擴展。此多通道專業MP3播放器的核心芯片S3C44B0X是基于ARM7而開發的多功能SOC(Signal Operation Control)。S3C44B0X除具備一般嵌入式芯片所具有的總線、SDRAM控制器和3個串口等外設之外,還具有TFT LCD控制器、USB Slave、USB Host、I2C總線控制器、SPI控制器、IIS音頻接口、SD
3.1 MP3解碼電路設計
本系統解碼部分的硬件采用了ST公司的STA013解碼芯片以及AKM的AK4393芯片。STA013是一款優秀的MP3解碼芯片,它通過IIC總線來傳輸控制信息,通過串行數據線接收語音數據。AK4393是一款高品質的立體聲DAC芯片,支持24bit/96KHz取樣,采用“復合比特”技術使芯片的解碼更為快速和準確。
解碼部分與S3C44B0X的接口電路部分如圖2所示。通過S3C44B0X的I/O口對STA013發送音頻數據,解碼過程由STA013的DSP核來進行。STA013解碼后的數字音頻信號由SDO(串行數據輸出),SCKT(串行時鐘),LRCKT(左右聲道時鐘),OCLK(采樣時鐘)4個腳輸出到D/A轉換器AK4393.通過AK4393將得到的模擬音頻信號,再經過功率放大電路放大后就可以直接驅動無源音箱。
圖2解碼部分接口電路圖
此外,由于實現多通道的播放形式,所以需要在設計過程中提供多套相同的解碼芯片和DAC.
3.2多通道功能的實現
系統多通道播放采用的基本方法是(以四通道為例):當系統上電以后,解碼控制信號為了實現對每一個解碼通道的具體工作狀態控制,通過采用外接一個四路轉換開關(CD4066),控制各路通道解碼芯片的工作狀態。轉換開關四路通道的輸入部分連接CPU的IIC總線的IICSDA,通過與CPU相連的多個控制引腳(CTRL1,2,3,4),確定控制數據的傳輸方向。四路通道的時鐘信號則直接連接在CPU上,只有控制數據傳輸時才發生作用。
在播放過程中,CPU實時響應各通道傳輸數據的請求,選通該路的解碼芯片,被選通的解碼芯片對從總線上獲取的mp3文件數據進行解碼,而未被選通的解碼通道則忽略總線上的音頻數據。當數據請求的中斷請求信號由高變低,系統開始響應下一次數據請求。通過這種各通道交替工作的方式,實現四通道同步播放的功能。工作原理圖如圖3所示:
圖3多通道工作原理圖
4系統軟件設計
系統軟件包括操作系統、驅動程序及播放器應用程序3部分。
4.1操作系統的實現
在嵌入式系統中,通常并沒有像BIOS那樣的固件程序,因此整個系統的加載啟動任務就完全由BootLoader來完成。BootLoader的任務是初始化芯片和主板,系統選用的是U-Boot-1.1.2啟動程序,因為U-Boot的優點在于對多系統和多平臺的支持。由于S3C44B0X沒有存儲管理單元(MMU),所以無法移植標準的Linux內核,而μClinux主要是針對沒有MMU的處理器設計的操作系統[4],因此可以作為播放器的操作系統平臺進行移植。通過修改相應的配置文件和驅動程序就可以實現移植過程中需要創建的開發板文件。
4.2驅動程序的設計
本系統所編譯的μClinux內核中包含有USB、LCD等驅動程序,只要根據需要適當的修改便可以應用。但是對于MP3解碼部分芯片的驅動需要自己編寫。音頻驅動程序實現的主要功能是:(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播放程序的設計
作為本系統的一個主要創新點,在多通道部分設計合理且高效的播放程序代碼很重要,在這里采用的是將待解碼的MP3文件先由USB設備復制到內存的緩沖區,再由緩沖區發送給解碼器的方法。播放時,程序會根據每個通道的歌曲信息將MP3文件流從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接口外掛存儲設備實現歌曲的大容量存儲。此外,系統還提供了串口、以太網等一系列接口,方便與外部進行數據交換和軟件升級。
?
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 基于S3C44B0X和μcLinux的嵌入式以太網設計與分析
- stm32的MP3播放器 56次下載
- 基于DSP的MP3播放器的設計 16次下載
- S3C44B0X原理圖 167次下載
- S3C44B0X datasheet, RISC MICRO
- S3C44B0X中文手冊 pdf
- ARM CPU S3C44B0X與C54X DSP的接口設計
- 基于S3C44B0X處理器的VxWorks中斷設計
- μC/OS-Ⅱ在S3C44B0X上的移植
- 基于S3C44B0X+μcLinux的嵌入式以太網設計與分析
- S3C44B0X與LM2028的接口及其編程
- 三星S3C44B0X目標板的μClinux Bootload
- S3C44B0X的培訓資料及源代碼程序
- s3c44b0x中文資料,s3c44b0x中文數據手冊
- S3C44B0X pdf
- 車載播放器怎么選擇格式 1882次閱讀
- 基于LPC2214和S3C44B0X實現PCB鉆床控制器的設計 4989次閱讀
- 微雪電子VS1003B MP3 Board簡介 3277次閱讀
- MP3播放器的工作原理及工作電路的作用分析 1.3w次閱讀
- MP3播放器的基本原理及電路組成 2w次閱讀
- AT89C51單片機對MP3播放器硬件系統的設計 3104次閱讀
- 怎么鑒別MP3的無損音樂格式,你會了? 1.4w次閱讀
- 探析提升MP3芯片音質的3個小技巧 6856次閱讀
- 基于AT89C51SND1C單片機的MP3播放器的設計方案 6712次閱讀
- 基于51單片機的多功能MP3設計實現 1.3w次閱讀
- 關于ARM7 S3C4510B上μClinux移植問題 2407次閱讀
- C51內核單片機的MP3播放器設計 5907次閱讀
- hifi播放器排行榜 3.5w次閱讀
- 新型嵌入式MP3播放器設計方案 5027次閱讀
- 基于S3C44B0開發板的圖像采集方法研究 2075次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多