色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開發(fā)>基于Cortex-M3的MP3播放器設(shè)計資料下載

基于Cortex-M3的MP3播放器設(shè)計資料下載

2021-04-07 | pdf | 167.6KB | 次下載 | 2積分

資料介紹

引言STM32系列微控制器采用ARM公司最新的CortexM3內(nèi)核\[1\]。VS1003音頻解碼芯片為VS10xx系列的第三代產(chǎn)品,是芬蘭VLSI Solution 公司生產(chǎn)的單片MP3/WMA/MIDI解碼和ADPCM編碼芯片\[2\]。本文采用STM32系列微控制器,結(jié)合解碼芯片VS1003、SD卡、LCD等外圍設(shè)備設(shè)計并實(shí)現(xiàn)了MP3播放器。其主要功能有:播放VS1003支持的所有音頻文件,如MP3、WMA、WAV文件,且音質(zhì)非常好;通過搖桿控制播放上一首/下一首、音量增減等;通過LCD顯示歌曲名字和播放狀態(tài);本系統(tǒng)還實(shí)現(xiàn)了讀卡器功能,PC機(jī)可通過USB接口直接對開發(fā)板上的SD卡進(jìn)行讀寫操作,以方便拷貝音頻文件。1 STM32處理器CortexM3是ARM公司最新推出的基于ARMv7體系架構(gòu)的處理器核,具有高性能、低成本、低功耗的特點(diǎn),專門為嵌入式應(yīng)用領(lǐng)域設(shè)計。ARMv7架構(gòu)采用了Thumb2技術(shù),它是在ARM的Thumb代碼壓縮技術(shù)的基礎(chǔ)上發(fā)展起來的,并且保持了對現(xiàn)存ARM解決方案完整的代碼兼容性\[3\]。Thumb2技術(shù)比純ARM代碼少使用31%的內(nèi)存,減小了系統(tǒng)開銷,同時能夠提供比Thumb技術(shù)高出38%的性能。在中斷處理方面,CortexM3集成了嵌套向量中斷控制器NVIC(Nested Vectored Interrupt Controller)。NVIC是CortexM3處理器的一個緊耦合部分,可以配置1~240個帶有256個優(yōu)先級、8級搶占優(yōu)先權(quán)的物理中斷,為處理器提供出色的異常處理能力。同時,搶占(Preemption)、尾鏈(Tailchaining)、遲到技術(shù)(Latearriving)的使用,大大縮短了異常事件的響應(yīng)時間。CortexM3異常處理過程中由硬件自動保存和恢復(fù)處理器狀態(tài),進(jìn)一步縮短了中斷響應(yīng)時間,降低了軟件設(shè)計的復(fù)雜性\[3\]。CortexM3體系架構(gòu)提出了新的單線調(diào)試技術(shù),CortexM3處理器的跟蹤調(diào)試是通過調(diào)試訪問端口(Debug Access Port,DAP)來實(shí)現(xiàn)的。DAP端口可以作為串行線調(diào)試端口(SWDP)或串行JTAG調(diào)試端口(SWJDP,允許JTAG或SW協(xié)議)使用\[3\]。其中SWDP只需要時鐘和數(shù)據(jù)2個引腳,實(shí)現(xiàn)低成本跟蹤調(diào)試,避免使用多引腳進(jìn)行JTAG調(diào)試,并全面支持RealView編譯器和RealView調(diào)試產(chǎn)品\[4\]。此外CortexM3還具備高度集成化的特點(diǎn),大大減小了芯片面積,內(nèi)部集成了許多緊耦合系統(tǒng)外設(shè),合理利用了芯片空間,使系統(tǒng)滿足下一代產(chǎn)品的控制需求。STM32系列是基于CortexM3核的微控制器,它在CortexM3內(nèi)核的基礎(chǔ)上擴(kuò)展了高性能的外圍設(shè)備。2 VS1003 MP3/WMA音頻編解碼器VS1003內(nèi)部包含1個高性能、低功耗的DSP處理核(VSDSP),1個工作內(nèi)存,1片可供用戶程序使用的5.5 KB RAM,1個串行SPI總線接口,1個高質(zhì)量的采樣頻率可調(diào)的過采樣DAC以及1個16位的采樣ADC。VS1003的內(nèi)部結(jié)構(gòu)如圖1所示\[2\]。MP3播放過程是STM32通過SPI1接口將數(shù)據(jù)從SD卡中取出,然后通過SPI2接口送至解碼芯片VS1003解碼播放。這里解碼模塊單獨(dú)使用一個SPI接口,以減小干擾和噪聲、提高音質(zhì)。3 系統(tǒng)硬件設(shè)計本系統(tǒng)在硬件上分為6個模塊: 微控制器STM32F103、解碼模塊VS1003、存儲模塊SD卡、控制搖桿Joystick、USB接口和顯示屏LCD。系統(tǒng)硬件框架如圖2所示。下面分別介紹系統(tǒng)的存儲模塊SD卡、解碼芯片VS1003與STM32的硬件連接情況。3.1 SD卡與STM32的連接該系統(tǒng)使用STM32內(nèi)部接口SPI1與SD卡進(jìn)行通信,下面介紹其引腳連接情況。PE3:低電平有效,連接到SD卡的片選引腳CD/DAT3。SPI在和SD卡進(jìn)行通信時,需要將PE3拉低才能對SD卡進(jìn)行操作。PA7:映射為STM32內(nèi)部接口SPI1的主輸出從輸入(MOSI)信號線。這里STM32是主設(shè)備,SD卡是從設(shè)備。數(shù)據(jù)流的傳輸方向是從STM32傳輸給SD卡。該信號線用于傳輸一些控制命令來完成SD卡的操作,如讀、寫等。PA5:已連接到STM32內(nèi)部接口SPI1的時鐘(SCLK)信號線。可設(shè)置SPI的時鐘頻率來調(diào)整讀取SD卡數(shù)據(jù)的快慢。PA6:已連接到STM32內(nèi)部接口SPI1的主輸入從輸出(MISO)信號線。數(shù)據(jù)的傳輸方向是從SD卡傳輸給STM32,主要返回SD卡的一些狀態(tài)、內(nèi)部寄存器值等。PC12:用于檢測SD卡是否完全插入。當(dāng)SD卡完全插入時,PC12為低電平,否則為高電平。3.2 VS1003與STM32的連接該系統(tǒng)使用STM32內(nèi)部接口SPI2與VS1003進(jìn)行通信,下面介紹其引腳連接情況。PA3:VS1003的中斷請求引腳。當(dāng)VS1003內(nèi)部數(shù)據(jù)已處理完畢,需要新的數(shù)據(jù)時,將DREQ拉高。STM32根據(jù)這個信號來給VS1003發(fā)送新的數(shù)據(jù)流。PB13:已連接到STM32內(nèi)部接口SPI2的時鐘(SCLK)信號線。PB14:已連接到STM32內(nèi)部接口SPI2的主輸入從輸出(MISO)信號線。這里STM32是主設(shè)備,VS1003是從設(shè)備。數(shù)據(jù)流的傳輸方向是從VS1003傳輸給STM32。主要用于讀取VS1003的一些狀態(tài)和內(nèi)部寄存器值,比如寄存器測試返回的內(nèi)部寄存器的值。PB15:已連接到STM32內(nèi)部接口SPI2的主輸出從輸入(MOSI)信號線。這里STM32是主設(shè)備,VS1003是從設(shè)備。數(shù)據(jù)流方向是從STM32傳輸給VS1003,主要傳輸給VS1003一些控制命令、MP3/WMA數(shù)據(jù)流等。PA1:低電平有效,如果拉低該引腳,那么通過SPI傳輸?shù)氖强刂菩盘枴?刂菩盘柊ㄗx寫VS1003的內(nèi)部寄存器、對VS1003進(jìn)行初始化、設(shè)置左右聲道音量等。PA2:低電平有效,如果拉低該引腳,那么通過SPI傳輸?shù)氖菙?shù)據(jù)信號。比如在向VS1003傳輸MP3/WMA的數(shù)據(jù)流時需要拉低該引腳。PA0:低電平有效,拉低該引腳則硬件復(fù)位VS1003。4 系統(tǒng)軟件設(shè)計本系統(tǒng)的軟件由集成開發(fā)工具RealView MDK專業(yè)版開發(fā),它具有強(qiáng)大的編譯、鏈接和調(diào)試功能。軟件結(jié)構(gòu)如圖3所示。本系統(tǒng)的工作過程大致為:STM32通過SPI1從SD卡中讀取MP3/WMA文件,將所讀取的數(shù)據(jù)流通過SPI2發(fā)送到VS1003解碼器中播放;PC機(jī)可通過USB總線讀寫SD卡的內(nèi)容,傳送MP3/WMA等文件;LCD顯示屏用于顯示MP3的文件名、播放狀態(tài)。五維搖桿左右搖動控制播放上一首/下一首,上下?lián)u動控制音量,按下則控制播放/暫停。由于SPI1讀取SD卡文件的速度遠(yuǎn)超過VS1003播放數(shù)據(jù)流的速度,因此VS1003在播放來自SPI2的數(shù)據(jù)流期間,SPI1能從SD卡中讀取下次播放所需的數(shù)據(jù),不會產(chǎn)生聲音不連續(xù)的情況。由于使用了2個SPI接口,相互之間無干擾,且提高了文件系統(tǒng)的效率,因此本系統(tǒng)能得到非常高品質(zhì)的音樂。限于篇幅,下面僅介紹軟件的兩個核心模塊。4.1 SD模塊SD模塊主要提供SD卡驅(qū)動以及對FAT文件系統(tǒng)操作的函數(shù),F(xiàn)AT文件系統(tǒng)支持長文件名。該模塊主要含有2個文件msd.c和fat16.c。下面分別介紹其主要函數(shù)的功能。4.1.1 msd.c該文件用于提供SD卡的驅(qū)動,主要包括以下函數(shù)。SPI_Config:配置與SD卡相連接的SPI1及相關(guān)GPIO。MSD_Init:初始化SD卡通信。Get_Medium_Characteristics:獲取SD卡的容量和塊大小等相關(guān)信息。MSD_GoIdleState:令SD卡處于空閑態(tài)。MSD_SendCmd:向SD卡發(fā)送命令。MSD_GetResponse:從SD卡獲取響應(yīng)。MSD_GetStatus:獲取SD卡的狀態(tài)。MSD_WriteBlock:向SD卡寫入1個塊的數(shù)據(jù)。MSD_ReadBlock:從SD卡讀取1個塊的數(shù)據(jù)。以下是函數(shù)MSD_ReadBlock的實(shí)現(xiàn):u8 MSD_ReadBlock(u8* pBuffer, u32 ReadAddr, u16 NumByteToRead){u32 i = 0;u8 rvalue = MSD_RESPONSE_FAILURE;MSD_CS_LOW();//拉低片選信號,選中SD卡MSD_SendCmd(MSD_READ_SINGLE_BLOCK, ReadAddr, 0xFF);//發(fā)送讀取塊命令//檢測SD卡是否有返回信息,若是則返回0x00if (!MSD_GetResponse(MSD_RESPONSE_NO_ERROR)){if (!MSD_GetResponse(MSD_START_DATA_SINGLE_BLOCK_READ)){//等待數(shù)據(jù)令牌,標(biāo)志數(shù)據(jù)傳輸開始for (i = 0; i < NumByteToRead; i++){//讀取數(shù)據(jù)*pBuffer = MSD_ReadByte(); //緩存收到的數(shù)據(jù)pBuffer++;//緩存指針后移}rvalue = MSD_RESPONSE_NO_ERROR;//修改rvalue的值為成功}}MSD_CS_HIGH();//拉高片選信號,禁用SD卡MSD_WriteByte(DUMMY);//寫無效字節(jié),傳輸結(jié)束return rvalue;//返回}4.1.2 fat16.c該文件提供對FAT16文件系統(tǒng)的支持,主要包含以下函數(shù)。ReadMBR:讀取MBR數(shù)據(jù)結(jié)構(gòu)。ReadBPB:讀取BPB數(shù)據(jù)結(jié)構(gòu)。ReadFAT:讀取文件分配表指定項(xiàng)。ReadBlock:讀取SD卡的一個扇區(qū)。FAT_Init:獲取FAT16文件系統(tǒng)的基本信息。DirStartSec:獲取根目錄的開始扇區(qū)號。DataStartSec:獲取數(shù)據(jù)區(qū)的開始扇區(qū)號。ClusConvLBA:獲取一個簇的開始扇區(qū)號。LBAConvClus:轉(zhuǎn)換扇區(qū)號與簇號之間的關(guān)系。GetFileName:獲取指定文件的首扇區(qū)號。ListDateTime:列出文件或子目錄創(chuàng)建的時間日期。SearchFoler:在指定范圍內(nèi)查找文件或子目錄。ListDir:列出指定范圍內(nèi)的文件或子目錄及相關(guān)信息。FAT_FileOpen:打開指定文件。FAT_FileRead:讀取文件數(shù)據(jù)。4.2 VS1003模塊VS1003模塊主要提供對解碼芯片VS1003的驅(qū)動,為應(yīng)用層播放音頻數(shù)據(jù)、控制音量聲道等提供基本接口。該模塊主要含文件vs1003.c。其主要函數(shù)的功能如下。vs1003.c文件主要提供VS1003芯片的驅(qū)動,包含以下幾個主要函數(shù)。VS1003_Config:配置STM32與VS1003連接的相關(guān)引腳,包括SPI2、PA0、PA1、PA2、PA3。SPIGetChar:通過SPI從VS1003讀取1個字節(jié)。SPIPutChar:通過SPI向VS1003寫入1個字節(jié)。如果是MP3/WMA數(shù)據(jù)流,則VS1003將開始解碼并播放。Mp3ReadRegister:讀取VS1003寄存器的值。Mp3WriteRegister:寫VS1003寄存器。Mp3Reset:VS1003復(fù)位,包括軟件復(fù)位和硬件復(fù)位。Mp3SoftReset:VS1003軟件復(fù)位,設(shè)置時鐘、采樣率、重音、音量、立體聲等參數(shù),一般在2首樂曲之間需要一次軟件復(fù)位。VsSineTest:播放正弦聲波,用于測試VS1003和STM32的連接是否完好。結(jié)語本文提出了一種基于STM32的MP3播放器設(shè)計方案,并使用ARM開發(fā)工具RealView MDK實(shí)現(xiàn)了該方案的原型。盡管該方案無法作為一個通用MP3的方案,但是對于某些音頻需要的工業(yè)控制、汽車電子、醫(yī)療電子等方案具有一定的參考性。另外,本系統(tǒng)綜合使用了STM32處??器的多個外圍接口,也可供讀者學(xué)習(xí)參考。(mbbeetchina)
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費(fèi)
  3. 2開關(guān)電源基礎(chǔ)知識
  4. 5.73 MB  |  6次下載  |  免費(fèi)
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設(shè)計
  8. 0.60 MB  |  3次下載  |  免費(fèi)
  9. 5基于FPGA的光纖通信系統(tǒng)的設(shè)計與實(shí)現(xiàn)
  10. 0.61 MB  |  2次下載  |  免費(fèi)
  11. 6基于FPGA的C8051F單片機(jī)開發(fā)板設(shè)計
  12. 0.70 MB  |  2次下載  |  免費(fèi)
  13. 751單片機(jī)窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費(fèi)
  15. 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計實(shí)例指南
  8. 未知  |  21548次下載  |  免費(fèi)
  9. 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537796次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191185次下載  |  免費(fèi)
  13. 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183278次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)
主站蜘蛛池模板: Y8848高清私人影院软件优势| 影音先锋男人资源813.| 蜜柚视频网在线观看免费| 花蝴蝶高清在线视频免费观看| 高h肉文np| 国产高清亚洲日韩字幕一区| 超碰免费视频在线观看| 啊轻点灬大JI巴又大又粗| 2020亚洲国产在线播放在线 | 宫交拔不出来了h黑人| 国产伦精品一区二区三区精品| 国产亚洲日韩另类在线观看| 久久精品视频在线看99| 暖暖视频中国在线观看免费韩国| 青柠在线观看视频在线| 污污又黄又爽免费的网站| 一个人在线观看免费高清视频| 99国产这里只有精品视频| 国产精品久久久久久人妻精品蜜桃| 好紧小嫩嫩水的10p| 女人爽得直叫免费视频| 香蕉免费高清完整| 99精品国产福利在线观看| 国产成人永久免费视频| 久久婷婷五月免费综合色啪| 神马影院午夜理论二| 中文字幕一区在线观看视频| 钉钉女老师| 久久re热线视频国产| 日本久久久WWW成人免费毛片丨| 亚洲精品高清在线观看| 97久久伊人精品影院| 国语自产一区视频| 日韩在线看片中文字幕不卡| 我要色色网| YY8090福利午夜理论片| 精品久久伊人| 思思久99久女女精品| xiao77唯美清纯| 久久精品国产色蜜蜜麻豆国语版 | 男人的天堂久久精品激情a|