AU7842實現車載MP3播放器 - 全文
AU7842是MVSILICON公司設計的一款集成了微控制器、MP3/WMA解碼器、USB主機控制器、SD/MMC卡控制器、16 bit音頻解碼器和一個紅外線解碼器的MP3/WMV音頻解碼芯片。本文介紹用STC12C561624 AD通過I2C總線控制AU7842芯片,運用軟件對寄存器的讀寫操作,實現多種音效的MP3播放。
1 I2C總線技術及AU7842芯片原理
1.1 I2C協議
I2C總線作為同步串行數據輸出總線,由一條串行數據線(SDA)和一條串行時鐘線(SCL)組成。它是一個真正的多主機總線,如果2個或更多主機同時初始化數據傳輸可以通過沖突檢測和仲裁,防止數據被破壞。每個連接到總線的器件都可以通過唯一的地址和一直存在的簡單的主機/從機關系軟件設定地址;主機可以作為主機發送器或主機接收器[1]。
1.2 AU7842芯片原理
AU7842芯片是將在存儲器中以數字信號形式存儲的音樂解碼成可以播放的模擬信號。它可以解碼MP3和WMA兩種格式的音頻信號。工作原理如圖1所示。開機后,單片機循環檢測解碼芯片周圍電路的動作。當檢測到芯片外圍有存儲設備接入,單片機控制芯片直接訪問存儲器里的內容,讀取數據送入MP3/WMA解碼器,解碼得到的數字信號通過數模轉換器轉換成模擬信號,經模擬音頻放大和低通濾波,就可以聽到音樂[2]。
?
2 硬件電路
2.1 電路設計
根據車載MP3播放器的特點選STC12C5624 AD系列單片機。該單片機是***宏晶公司推出的51增強型單片機,其具有低功耗,計算速度快等特點。當關閉MP3播放器時,單片機進入低功耗休眠狀態,單片機切斷所有外圍模塊的供電。播放器需要工作時,通過外部中斷喚醒單片機工作,這樣最大限度地減少功耗[3]。其計算速度是普通單片機的8~12倍。播放器電路圖如圖2所示。
?
2.2 外圍硬件模塊
本文以STC12C5624AD單片機為核心,來控制其他模塊的工作。硬件模塊框圖如圖3示。
?
(1)電源模塊:完成對整個MP3播放器的供電。電源模塊的電壓輸入端是發電機或蓄電池,電壓經過開關型集成穩壓電路(LM2575/LM2576),得到的輸出電壓穩定且紋波小[4]。
(2)LCD模塊:顯示MP3播放時的曲目序號、播放的時間、文件的格式以及播放模式。
(3)按鍵模塊:結合軟件可以實現控制MP3播放器的工作,如瀏覽播放、順序播放、隨機播放以及不同播放音效之間的切換等。
(4)MP3模塊:讀取存儲設備(SD卡/U盤)中的音頻文件(MP3/WMA),通過數模轉換將數字信號解碼成模擬信號。
(5)音效模塊:音效模塊提供音效處理功能。來自MP3模塊的音頻信號經過音效處理,能夠以爵士、搖滾、古典、流行等多種音效播放音樂,帶給聽眾很好的聽覺感受。
(6)其他:包括USB接口和SD接口等。
3 軟件設計
MP3播放器受控于按鍵模塊,單片機循環檢測按鍵模塊按鍵的動作,并通過軟件對相關的寄存器進行讀寫操作,實現MP3播放器相應的功能。
3.1存儲設備讀取及切換
單片機循環檢測芯片外圍電路電平的變化,判斷當前是否有存儲設備插入,是否須進行存儲設備之間的切換。通過軟件改變相應標志位的值,實現存儲設備的讀取或存儲設備的切換。讀取流程如圖4所示。
?
MP3處理模塊子程序:
if(mp3_start_flag==1) /*初次插入設備*/
{ ……
mp3_flag=1;
/*AU7842啟動標志位置位,開始響應*/
currentchannel=0x01;
if(Current_PlayDev==1) /*檢測到USB接口有存儲
設備接入*/
{ ……
Play_BreakPoint_USB(1);
/*讀取USB存儲設備中的數據 */
}
else if(Current_PlayDev==2)
/*檢測到SD接口有存儲設備接入*/
{ ……
Play_BreakPoint_SD(1); /*讀取SD卡中的數據*/
}
} /* */
if((Dev_Status!=0)&&(Current_DevStatus!=Dev_Status)&&(Current_DevStatus==DEV_USB_SD))
/*后設備的啟動播放*/
{ ……
if(Current_PlayDev==DEV_USB)
/*正在播放的USB存儲器*/
{ DEV_Change_Flag=1; /*切換標志位置位*/
uart_putc(0x55);
uart_putc(0x00);
uart_putc(0xFF);
uart_putc(0x15);
uart_putc(0xEA);
……
Play_BreakPoint_SD(1);
/*切換到從SD卡播放*/
}
else if(Current_PlayDev==
DEV_SD) /*正在播放的是SD卡*/
{ DEV_Change_Flag=1; /*切換標志位置位*/
uart_putc(0x55);
uart_putc(0x00);
uart_putc(0xFF);
uart_putc(0x1B);
uart_putc(0xE4);
……
Play_BreakPoint_USB(1);
/*切換到從USB存儲器播放*/
}
}
3.2掉電記憶功能
為滿足使用的要求,車載MP3播放器應具有掉電記憶功能。掉電記憶功能可實現MP3播放器在掉電或關機后,上次各種設定值(如音量、音效、播放模式等)不會因斷電而復位,在下一次開機時不需重新設定,可以直接調用上次設定值。記憶流程如圖5所示。
?
掉電記憶子程序:
void Save_Data(void) /*定義掉電記憶函數*/
{ Wirte_EEPROM(0x06db,vol_val);
/*記憶掉電前音量設定值*/
Wirte_EEPROM(0x06dc,bass_val);
/*記憶掉電前低音設定值*/
Wirte_EEPROM(0x06dd,tre_val);
/*記憶掉電前高音設定值*/
Wirte_EEPROM(0x06de,loud_val);
/*記憶掉電前低音設定值*/
Wirte_EEPROM(0x0700,Save_USB_Song1);
/*記憶掉電前USB曲目順序號*/
… …
Wirte_EEPROM(0x0703,Save_USB_Min1);
/*記憶掉電前USB中正在播放曲目的播放時間*/
… …
Wirte_EEPROM(0x0707,Save_SD_Song1);
/*記憶掉電前SD中正在播放的曲目順序號*/
… …
Wirte_EEPROM(0x070a,Save_SD_Min1);}
/*記憶掉電前USB中正在播放曲目的播放時間*/
本文設計的車載MP3播放器,在MP3音頻文件存儲設備方面有較大的突破,新型大容量存儲設備(SD卡等)取代了傳統卡帶存儲,并能夠以多種音效播放。系統操作簡便, MP3播放性能良好。
- 第 1 頁:AU7842實現車載MP3播放器
- 第 2 頁:軟件設計
- 第 3 頁:掉電記憶功能
本文導航
非常好我支持^.^
(2) 100%
不好我反對
(0) 0%
相關閱讀:
- [電子說] 使用MC34063設計的mp3播放器充電器 2023-10-06
- [電子說] 基于CW32的MP3播放器設計 2023-09-06
- [電子說] 用于MP3播放器塢站的D類、2.1聲道音頻放大器參考設計 2023-06-12
- [電子說] 如何構建一個簡單而強大的MP3播放器 2023-01-25
- [電子說] 如何使用CATALEX的Mp3播放器 2022-05-13
- [今日頭條] 游泳也有音樂相伴,韶音OpenSwim運動MP3播放器全新上市 2021-07-15
- [電子說] 游泳也有音樂相伴,韶音OpenSwim運動MP3播放器全新上市 2021-07-12
- [電子說] 使用Arduino和DFPlayer迷你MP3播放器模塊制作帶有LCD的MP3播放器 2020-12-07
( 發表人:小蘭 )