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