<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

【紫光同創國產FPGA教程】【第十二章】SD卡音樂播放例程

FPGA技術專欄 ? 來源:芯驛電子科技 ? 作者:芯驛電子科技 ? 2021-02-19 13:42 ? 次閱讀

原創聲明:

本原創教程由芯驛電子科技(上海)有限公司(ALINX)創作,版權歸本公司所有,如需轉載,需授權并注明出處。

適用于板卡型號:

PGL22G/PGL12G

1. 實驗簡介

在其他實驗中我們已經完成了單獨的SD卡讀寫和音頻模塊的錄音播放,本實驗通過搜索SD卡中WAV音樂文件,然后送到音頻模塊播放,完成一個簡單音樂播放器的功能。

2. 實驗原理

本實驗一個關鍵是在沒有文件系統的情況下,搜索SD卡每個扇區的內容,匹配出WAV文件,這里有一個假設:假設每一個文件都是從一個扇區第一個字節開始而且文件是連續存儲的,經過大量實驗,發現FAT32文件格式中的文件確實如此。

WAV文件格式

大部分的文件都有文件頭,WAV也不例外,我們通過分析SD卡一個扇區的前幾個字節,判斷這個文件是否為WAV文件。

WAV文件作為多媒體中使用的聲波文件格式之一,它是以RIFF格式為標準的。RIFF是英文Resource Interchange File Format的縮寫,每個WAV文件的頭四個字節便是“RIFF”,所以本實驗就簡單的以每個扇區的前4個字節是否為“RIFF”判斷該文件是否為WAV文件,緊接著4個字節表示文件的大小,這樣我們就可以確定要讀取的數據量。WAV文件頭大小是88字節,在播放時要把前88個字節的文件頭去掉。

pIYBAGAvT8GARd5bAAAiD6yjMRM495.jpgwav文件頭格式

3. 程序設計

例程中通過wav_read搜尋SD卡中的WAV文件,并將WAV文件讀取出來寫入FIFO,最后再從FIFO中將數據輸出并寫入音頻模塊。

o4YBAGAvT8KACg4pAAA_gSSPH48458.jpg

由于在前面的例程中已經講過其他模塊的原理及使用這里不再贅述,僅說明wav_read模塊。

wav_read模塊完成了從SD卡中搜索wav文件,讀取wav文件,狀態機如下,如果有搜索請求(按鍵按下),則進入搜索狀態“S_FIND”,如果搜索到WAV文件,進入“S_PLAY_WAIT”狀態,檢查FIFO的剩余空間是否夠512個字節,如果有512個字節空間,就進入“S_PLAY”狀態讀取wav的一個扇區內容。

pIYBAGAvT8KATaHtAAAYIFSrlII757.jpgwav_read模塊狀態機

在程序設計中,搜尋SD卡里圖片的文件頭是按每8個扇區地址(4K字節)搜尋一次的形式操作,所以在一次搜尋結束后,下一次搜尋時需要將地址左移3位對齊以保證下一次搜尋的地址和圖片在SD卡中存儲的地址一致。

o4YBAGAvT8OABPSIAAAMHeG4l6U786.jpg

說明:因為SD卡格式化的時候按最小單元4K格式化,音樂文件的頭文件一般都是在SD卡的4K分區的起始位置開始放置。

wav_read模塊的管腳說明:

信號名稱 方向 說明
clk in 時鐘輸入
rst in 異步復位輸入,高復位
ready out 空閑狀態指示
find in 搜索播放請求
sd_init_done in sd卡初始化完成
state_code out 狀態碼0,表示sd還在初始化1,sd卡初始化完成,等待按鍵按下2,正在搜索WAV文件3,找到WAV文件,正在播放
sd_sec_read out sd卡讀請求
sd_sec_read_addr out sd卡讀請求扇區地址
sd_sec_read_data in sd卡讀到的數據
sd_sec_read_data_valid in sd卡讀數據有效
sd_sec_read_end in sd卡讀請求完成
fifo_wr_cnt in fifo寫端口已經使用量
wav_data_wr_en out wav文件寫使能
wav_data out wav文件的音頻數據

4. 實驗現象

1)格式化sd卡(fat32格式),sd卡必須是2.0以上的版本(容量大于4G

pIYBAGAvT8OAV3zLAABd35d-dXU664.jpg

2)我們已經在demo的目錄下為大家準備了一下的2個wav文件,把wav格式文件放到sd卡中,注意:這里的wav文件是立體聲雙聲道,48K采樣率,16bit的音頻文件。

o4YBAGAvT8SADlH5AABZPsG6HyE098.jpg

3)將準備好的sd卡注入開發板的sd卡槽(sd卡不能帶電插拔),音頻模塊接開發板J9擴展口,上電,下載實驗程序,等待LED1滅、LED2、LED3、LED4亮(4'b0001)時,按下KEY2,這個時候等待LED1亮、LED2滅、LED3、LED4亮(4'b0010),表示正在搜索wav文件,如果找到LED1、LED2滅、LED3、LED4亮,這時候就可以聽到音樂了。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1606

    文章

    21344

    瀏覽量

    594175
  • 音頻
    +關注

    關注

    28

    文章

    2616

    瀏覽量

    80135
  • SD
    SD
    +關注

    關注

    1

    文章

    136

    瀏覽量

    33353
  • 開發板
    +關注

    關注

    25

    文章

    4528

    瀏覽量

    94573
  • 紫光同創
    +關注

    關注

    5

    文章

    71

    瀏覽量

    27297
收藏 人收藏

    評論

    相關推薦

    2024新品|紫光同創盤古系列FPGA開發板套件,100%國產化方案

    專業廠商紫光同創生態合作伙伴,小眼睛科技一直深耕FPGA產品和解決方案,基于紫光同創器件,推出100%
    發表于 12-28 14:18

    國產FPGA介紹-紫光同創

    紫光同創紫光集團旗下紫光國微的子公司,成立于2013年,有十余年可編程邏輯器件研發經歷,布局覆蓋高中低端FPGA產品。 早在2015年,
    發表于 01-24 10:45

    紫光同創FPGA有哪些型號

    請問紫光同創FPGA有哪些型號?分別用于什么場景?
    發表于 01-24 10:48

    數據采集光盤實例第六第十二章

    數據采集光盤實例第六第十二章
    發表于 06-28 21:17

    明德揚視頻分享點撥FPGA課程---第十二章??學習自檢方法

    第十二章學習自檢方法1. 波形對比方法http://yunpan.cn/cjZTiDA9pY56x訪問密碼 c359
    發表于 11-13 11:01

    至芯科技之altera 系列FPGA教程 第十二篇 功能仿真

    至芯科技之altera 系列FPGA教程 第十二篇 功能仿真
    發表于 08-11 03:30

    紫光同創簡介

    本帖最后由 DamonXZ 于 2018-5-26 23:56 編輯 紫光同創紫光集團旗下公司,注冊資金1.5億元,總投資5億元,是是國家高新技術企業,已通過ISO9001-2015
    發表于 05-26 10:58

    UNIX線程控制

    UNIX環境高級編程(3) 第十二章
    發表于 10-12 10:02

    正點原子開拓者FPGA開發板資料連載第四十二章 音樂播放器實驗

    ://www.openedv.com/thread-13912-1-1.html第四十二章 音樂播放器實驗在 “音頻環回實驗”中,我們成功地用WM8978實現了音頻環回,將WM8978輸入的音頻數據通過WM8978輸出。本章我們
    發表于 08-24 11:25

    如何去使用嵌入式SQL呢

    文章目錄 第十二章 使用嵌入式SQL(四)SQL游標`DECLARE`游標聲明OPEN游標聲明`FETCH`游標聲明CLOSE游標聲明 第十二章 使用嵌入式SQL(四)SQL游標游標是指向數據的指針
    發表于 12-15 09:01

    紫光同創國產FPGA教程】【PGC1/2KG第一】控制LED燈實驗例程

    適用于板卡型號: 紫光同創PGC1/2KG開發平臺(盤古1K/2K) 一:盤古1K/2K開發板(紫光同創PGC2KG開發平臺)簡介 盤古1/2K 開發板是一套基于
    發表于 08-08 11:49

    紫光同創PGL22G開發板|盤古22K開發板,國產FPGA開發板,接口豐富,高性價比

    盤古22K開發板是基于紫光同創Logos系列PGL22G芯片設計的一款FPGA開發板,全面實現國產化方案,板載資源豐富,高容量、高帶寬,外圍接口豐富,不僅適用于高校教學,還可以用于實驗
    發表于 09-21 18:16

    基于紫光同創PGL50H-6IFBG484的光端機方案

    基于紫光同創PGL50H-6IFBG484的光端機方案展示#小眼睛FPGA#紫光同創#國產
    發表于 11-02 17:44

    紫光同創FPGA開發套件,高性能國產FPGA方案

    紫光同創FPGA開發套件,高性能國產FPGA方案,100%國產化,全系列產品,方案可定制,滿足多
    發表于 11-16 17:25

    【正點原子Linux連載】第十二章官方SDK移植試驗-摘自【正點原子】I.MX6U嵌入式Linux驅動開發指南V1.0

    【正點原子Linux連載】第十二章官方SDK移植試驗-摘自【正點原子】I.MX6U嵌入式Linux驅動開發指南V1.0
    發表于 11-23 17:51 ?11次下載
    【正點原子Linux連載】<b class='flag-5'>第十二章</b>官方SDK移植試驗-摘自【正點原子】I.MX6U嵌入式Linux驅動開發指南V1.0
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>