在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>嵌入式開發>基于Cortex-M3的MP3播放器設計資料下載

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

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

資料介紹

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

評論

查看更多

下載排行

本周

  1. 1EMC電路設計工程師必備的EMC基礎
  2. 0.42 MB   |  4次下載  |  2 積分
  3. 2AU3116 2×60W模擬輸入雙通道Class-D 音頻功率放大器數據手冊
  4. 1.19 MB   |  1次下載  |  免費
  5. 3低壓降肖特基整流管SR340L數據手冊
  6. 0.78 MB   |  1次下載  |  免費
  7. 4ZX8002E 觸摸調光LED集成IC數據手冊
  8. 2.27 MB   |  次下載  |  免費
  9. 5SOD-323塑料封裝ESD保護二極管SD05T系列規格書
  10. 1.07 MB   |  次下載  |  免費
  11. 6SOT-23塑料封裝ESD保護二極管SMxx Series系列規格書
  12. 0.93 MB   |  次下載  |  免費
  13. 7高效率整流二極管HER151 THRU HER158數據手冊
  14. 0.54 MB   |  次下載  |  免費
  15. 8低壓降肖特基整流管SL22 THRU SL210數據手冊
  16. 1.03 MB   |  次下載  |  免費

本月

  1. 1三相逆變主電路的原理圖和PCB資料合集免費下載
  2. 27.35 MB   |  111次下載  |  1 積分
  3. 2運算放大器基本電路中文資料
  4. 1.30 MB   |  16次下載  |  免費
  5. 3蘋果iphone 11電路原理圖
  6. 4.98 MB   |  11次下載  |  5 積分
  7. 4TL494工業用開關電源原理圖資料
  8. 0.22 MB   |  10次下載  |  1 積分
  9. 5常用電子元器件介紹
  10. 3.21 MB   |  8次下載  |  免費
  11. 6QW2893應急燈專用檢測芯片
  12. 590.40 KB  |  4次下載  |  免費
  13. 7相關協議信號總結
  14. 0.94 MB   |  4次下載  |  免費
  15. 8EMC電路設計工程師必備的EMC基礎
  16. 0.42 MB   |  4次下載  |  2 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935130次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191390次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183344次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81591次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73815次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65989次下載  |  10 積分
主站蜘蛛池模板: 色偷偷成人 | 人人搞人人 | 亚洲三级成人 | 中国一级特黄真人毛片 | 深夜视频在线免费 | 天天夜干| 被公侵犯肉体中文字幕一区二区 | 精品在线一区二区 | 操久久| 国产男女交性视频播放免费bd | 我不卡老子影院午夜伦我不卡四虎 | 国产精品久久久久久久人热 | 狠狠五月深爱婷婷网免费 | h在线视频 | 亚洲高清免费视频 | 免费人成网站永久 | av大片| 日本一区免费在线观看 | 国产美女精品在线 | 黄色性生活毛片 | 开心激情五月网 | 综合se| 凹凸福利视频导航 | 免费人成a大片在线观看动漫 | 一级视频在线免费观看 | 在线天堂中文新版有限公司 | 欧美一卡二卡3卡4卡无卡六卡七卡科普 | 97射射| 亚洲一区亚洲二区 | 女色专区 | 好吊色37pao在线观看 | 亚洲va中文字幕 | 成人在线91 | 在线观看精品国产福利片100 | 国产yw855.c免费观看网站 | 免费观看的黄色网址 | 人与牲动交xxxbbb | 99久久国产综合精品国 | 免费看一级片 | 在线a亚洲老鸭窝天堂新地址 | 开心激情播播网 |