<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于MCU和音頻解碼器設計磁帶式MP3播放器

          基于MCU和音頻解碼器設計磁帶式MP3播放器

          作者: 時間:2013-03-01 來源:網絡 收藏

            卡式磁帶機播放功能:mTape和通用盒式磁帶一樣可以放入卡式磁帶機中進行同步播放、快進、快退、暫停等所有功能。之所以能夠實現(xiàn)這些操作,完全在于它能夠測定卡式磁帶機導帶輪的轉動速度的快慢及方向。在mTape中有兩小一大三個互相咬合的齒輪,其中一個小齒輪可以隨卡式磁帶機中的導帶轉軸轉動,就可以通過大齒輪帶動另一小齒輪向同樣方向轉動。在大齒輪正上方的PCB板上安裝有兩個反射式光耦, 以大齒輪中心為交點兩光耦的軸心線夾角為45。,當大齒輪的白色部分位于反射式光耦下部時,由反射式光耦組成的電路會產生低電平;反之,當大齒輪的黑色部分位于反射式光耦下部時,由反射式光耦組成的電路會產生高電平。這樣,當大齒輪勻速轉動時,兩個反射式光耦組成的電路就會產生A、B兩路方波。其中A路方波送入FS7821的通用GPIO,B路信號送到FS7821的外部中斷0引腳。A、B兩路方波相位總差90。。當B方波下降沿觸犯外部中斷0后,如果判斷A方波電平為高,就為向前轉;如果A方波為低電平,就為向后轉。轉動速度可以通過計算單位時間內波形的數(shù)據(jù)進行判斷。

          USB充電:由于mTape內置一塊大容量的鋰電池,采用一枚高效率的鋰電池充電芯片將來自USB口的+5V電源通過變?yōu)楹銐?.2V對鋰電池進行充電。

          圖3mTape軟件架構


            自動上電/斷電功能:當mTape插入卡式磁帶機并按下PLAY按鈕時,mTape上的磁頭會被磁帶機的磁頭下壓,mTape磁頭的托架下的小棒就會插入位于它下面的透射式光耦的間隙中,由透射式光耦組成的電路會啟動電源管理芯片為mTape供電。FS7821上電,并檢測系統(tǒng)狀態(tài),然后通過一個GPIO來控制電源管理芯片的狀態(tài),保持電源的穩(wěn)定性。當卡式磁帶機處于暫停或停止狀態(tài)時,mTape的磁頭會彈起,磁頭托架下的小棒會從透射式光耦的間隙中抽出。光耦電路就會發(fā)出一個待機信號。如果這個信號持續(xù)時間超過5分鐘,F(xiàn)S7821就會關閉電源,為mTape斷電。

            軟件架構

            從軟件上來說,mTape主要有兩個功能,一個是音樂播放功能(包括便攜式MP3模式和卡式磁帶機播放模式),另一個是讀卡器功能。人-機界面管理(MMI management)程序根據(jù)mTape的按鍵、卡帶機傳來的信號、USB連接/斷開等自由的切換這兩種功能。具體軟件架構見圖3。

            音樂程序流程:音樂功能部分的主要任務是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ā)出的命令。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();