基于MCU和音頻解碼器設(shè)計磁帶式MP3播放器
卡式磁帶機播放功能:mTape和通用盒式磁帶一樣可以放入卡式磁帶機中進行同步播放、快進、快退、暫停等所有功能。之所以能夠?qū)崿F(xiàn)這些操作,完全在于它能夠測定卡式磁帶機導帶輪的轉(zhuǎn)動速度的快慢及方向。在mTape中有兩小一大三個互相咬合的齒輪,其中一個小齒輪可以隨卡式磁帶機中的導帶轉(zhuǎn)軸轉(zhuǎn)動,就可以通過大齒輪帶動另一小齒輪向同樣方向轉(zhuǎn)動。在大齒輪正上方的PCB板上安裝有兩個反射式光耦, 以大齒輪中心為交點兩光耦的軸心線夾角為45。,當大齒輪的白色部分位于反射式光耦下部時,由反射式光耦組成的電路會產(chǎn)生低電平;反之,當大齒輪的黑色部分位于反射式光耦下部時,由反射式光耦組成的電路會產(chǎn)生高電平。這樣,當大齒輪勻速轉(zhuǎn)動時,兩個反射式光耦組成的電路就會產(chǎn)生A、B兩路方波。其中A路方波送入FS7821的通用GPIO,B路信號送到FS7821的外部中斷0引腳。A、B兩路方波相位總差90。。當B方波下降沿觸犯外部中斷0后,如果判斷A方波電平為高,就為向前轉(zhuǎn);如果A方波為低電平,就為向后轉(zhuǎn)。轉(zhuǎn)動速度可以通過計算單位時間內(nèi)波形的數(shù)據(jù)進行判斷。
USB充電:由于mTape內(nèi)置一塊大容量的鋰電池,采用一枚高效率的鋰電池充電芯片將來自USB口的+5V電源通過變?yōu)楹銐?.2V對鋰電池進行充電。
自動上電/斷電功能:當mTape插入卡式磁帶機并按下PLAY按鈕時,mTape上的磁頭會被磁帶機的磁頭下壓,mTape磁頭的托架下的小棒就會插入位于它下面的透射式光耦的間隙中,由透射式光耦組成的電路會啟動電源管理芯片為mTape供電。FS7821上電,并檢測系統(tǒng)狀態(tài),然后通過一個GPIO來控制電源管理芯片的狀態(tài),保持電源的穩(wěn)定性。當卡式磁帶機處于暫?;蛲V範顟B(tài)時,mTape的磁頭會彈起,磁頭托架下的小棒會從透射式光耦的間隙中抽出。光耦電路就會發(fā)出一個待機信號。如果這個信號持續(xù)時間超過5分鐘,F(xiàn)S7821就會關(guān)閉電源,為mTape斷電。
軟件架構(gòu)
從軟件上來說,mTape主要有兩個功能,一個是音樂播放功能(包括便攜式MP3模式和卡式磁帶機播放模式),另一個是讀卡器功能。人-機界面管理(MMI management)程序根據(jù)mTape的按鍵、卡帶機傳來的信號、USB連接/斷開等自由的切換這兩種功能。具體軟件架構(gòu)見圖3。
音樂程序流程:音樂功能部分的主要任務(wù)是FS7821從SD/MMC卡中讀取一個音頻文件然后送到解碼器FS2401進行解碼。當所有的音樂文件播放完畢之后,mTape又返回播放第一首曲子,因此這是一個循環(huán)播放的模式。
讀卡器功能:讀卡器程序可以分為兩個部分:USB連接偵測部分和讀卡器實體部分。當PC機的USB接口和mTape連接上以后,系統(tǒng)就進入USB模式,執(zhí)行讀卡器實體程序。
MMI部分:MMI(人-機界面)管理部分處理用戶的發(fā)出的命令。用戶可以通過mTape上的按鍵、卡式磁帶機上的按鍵以及USB線的斷開/連接對mTape發(fā)出命令。這些命令分為兩種:一種是USB命令,另一種是音樂播放命令。因為MMI沒有嚴格的實時性要求,而且程序不是十分復雜,所以在mTape中沒有必要采用實時操作系統(tǒng)。當FS2401沒有音頻數(shù)據(jù)傳送要求時,F(xiàn)S7821就處于空閑狀態(tài)。利用這段空閑時間就足可以處理用戶發(fā)出的命令。
評論