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

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

3天內(nèi)不再提示

【紫光同創(chuàng)國(guó)產(chǎn)FPGA教程】【第十二章】SD卡音樂(lè)播放例程

FPGA技術(shù)專(zhuān)欄 ? 來(lái)源:芯驛電子科技 ? 作者:芯驛電子科技 ? 2021-02-19 13:42 ? 次閱讀

原創(chuàng)聲明:

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

適用于板卡型號(hào):

PGL22G/PGL12G

1. 實(shí)驗(yàn)簡(jiǎn)介

在其他實(shí)驗(yàn)中我們已經(jīng)完成了單獨(dú)的SD卡讀寫(xiě)和音頻模塊的錄音播放,本實(shí)驗(yàn)通過(guò)搜索SD卡中WAV音樂(lè)文件,然后送到音頻模塊播放,完成一個(gè)簡(jiǎn)單音樂(lè)播放器的功能。

2. 實(shí)驗(yàn)原理

本實(shí)驗(yàn)一個(gè)關(guān)鍵是在沒(méi)有文件系統(tǒng)的情況下,搜索SD卡每個(gè)扇區(qū)的內(nèi)容,匹配出WAV文件,這里有一個(gè)假設(shè):假設(shè)每一個(gè)文件都是從一個(gè)扇區(qū)第一個(gè)字節(jié)開(kāi)始而且文件是連續(xù)存儲(chǔ)的,經(jīng)過(guò)大量實(shí)驗(yàn),發(fā)現(xiàn)FAT32文件格式中的文件確實(shí)如此。

WAV文件格式

大部分的文件都有文件頭,WAV也不例外,我們通過(guò)分析SD卡一個(gè)扇區(qū)的前幾個(gè)字節(jié),判斷這個(gè)文件是否為WAV文件。

WAV文件作為多媒體中使用的聲波文件格式之一,它是以RIFF格式為標(biāo)準(zhǔn)的。RIFF是英文Resource Interchange File Format的縮寫(xiě),每個(gè)WAV文件的頭四個(gè)字節(jié)便是“RIFF”,所以本實(shí)驗(yàn)就簡(jiǎn)單的以每個(gè)扇區(qū)的前4個(gè)字節(jié)是否為“RIFF”判斷該文件是否為WAV文件,緊接著4個(gè)字節(jié)表示文件的大小,這樣我們就可以確定要讀取的數(shù)據(jù)量。WAV文件頭大小是88字節(jié),在播放時(shí)要把前88個(gè)字節(jié)的文件頭去掉。

pIYBAGAvT8GARd5bAAAiD6yjMRM495.jpgwav文件頭格式

3. 程序設(shè)計(jì)

例程中通過(guò)wav_read搜尋SD卡中的WAV文件,并將WAV文件讀取出來(lái)寫(xiě)入FIFO,最后再?gòu)腇IFO中將數(shù)據(jù)輸出并寫(xiě)入音頻模塊。

o4YBAGAvT8KACg4pAAA_gSSPH48458.jpg

由于在前面的例程中已經(jīng)講過(guò)其他模塊的原理及使用這里不再贅述,僅說(shuō)明wav_read模塊。

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

pIYBAGAvT8KATaHtAAAYIFSrlII757.jpgwav_read模塊狀態(tài)機(jī)

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

o4YBAGAvT8OABPSIAAAMHeG4l6U786.jpg

說(shuō)明:因?yàn)镾D卡格式化的時(shí)候按最小單元4K格式化,音樂(lè)文件的頭文件一般都是在SD卡的4K分區(qū)的起始位置開(kāi)始放置。

wav_read模塊的管腳說(shuō)明:

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

4. 實(shí)驗(yàn)現(xiàn)象

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

pIYBAGAvT8OAV3zLAABd35d-dXU664.jpg

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

o4YBAGAvT8SADlH5AABZPsG6HyE098.jpg

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1624

    文章

    21539

    瀏覽量

    600533
  • 音頻
    +關(guān)注

    關(guān)注

    29

    文章

    2811

    瀏覽量

    81089
  • SD
    SD
    +關(guān)注

    關(guān)注

    1

    文章

    161

    瀏覽量

    33608
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4838

    瀏覽量

    96855
  • 紫光同創(chuàng)
    +關(guān)注

    關(guān)注

    5

    文章

    78

    瀏覽量

    27467
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    紫光同創(chuàng)國(guó)產(chǎn)FPGA教程】【第八SD讀寫(xiě)實(shí)驗(yàn)

    SD是現(xiàn)在嵌入式設(shè)備重要的存儲(chǔ)模塊,內(nèi)部集成了nand flash控制器,方便了主機(jī)的的管理。本實(shí)驗(yàn)主要是練習(xí)對(duì)sd的扇區(qū)進(jìn)行讀寫(xiě),通常sd
    的頭像 發(fā)表于 02-05 11:35 ?8230次閱讀
    【<b class='flag-5'>紫光</b><b class='flag-5'>同創(chuàng)</b><b class='flag-5'>國(guó)產(chǎn)</b><b class='flag-5'>FPGA</b>教程】【第八<b class='flag-5'>章</b>】<b class='flag-5'>SD</b><b class='flag-5'>卡</b>讀寫(xiě)實(shí)驗(yàn)

    紫光同創(chuàng)國(guó)產(chǎn)FPGA教程】【第十四章】SD讀取BMP圖片顯示例程

    SD讀寫(xiě),HDMI視頻顯示等例程,本實(shí)驗(yàn)將SD卡里的BMP圖片讀出,寫(xiě)入到外部存儲(chǔ)器,再通過(guò)HDMI、LCD等顯示。 本實(shí)驗(yàn)如果通過(guò)液晶屏顯示,需要有液晶屏模塊。 2. 實(shí)驗(yàn)原理 在
    的頭像 發(fā)表于 02-20 13:44 ?7811次閱讀
    【<b class='flag-5'>紫光</b><b class='flag-5'>同創(chuàng)</b><b class='flag-5'>國(guó)產(chǎn)</b><b class='flag-5'>FPGA</b>教程】【<b class='flag-5'>第十</b>四章】<b class='flag-5'>SD</b><b class='flag-5'>卡</b>讀取BMP圖片顯示<b class='flag-5'>例程</b>

    2024新品|紫光同創(chuàng)盤(pán)古系列FPGA開(kāi)發(fā)板套件,100%國(guó)產(chǎn)化方案

    專(zhuān)業(yè)廠商紫光同創(chuàng)生態(tài)合作伙伴,小眼睛科技一直深耕FPGA產(chǎn)品和解決方案,基于紫光同創(chuàng)器件,推出100%國(guó)
    發(fā)表于 12-28 14:18

    國(guó)產(chǎn)FPGA介紹-紫光同創(chuàng)

    紫光同創(chuàng)紫光集團(tuán)旗下紫光國(guó)微的子公司,成立于2013年,有十余年可編程邏輯器件研發(fā)經(jīng)歷,布局覆蓋高中低端FPGA產(chǎn)品。 早在2015年,
    發(fā)表于 01-24 10:45

    紫光同創(chuàng)FPGA有哪些型號(hào)

    請(qǐng)問(wèn)紫光同創(chuàng)FPGA有哪些型號(hào)?分別用于什么場(chǎng)景?
    發(fā)表于 01-24 10:48

    數(shù)據(jù)采集光盤(pán)實(shí)例第六第十二章

    數(shù)據(jù)采集光盤(pán)實(shí)例第六第十二章
    發(fā)表于 06-28 21:17

    明德?lián)P視頻分享點(diǎn)撥FPGA課程---第十二章??學(xué)習(xí)自檢方法

    第十二章學(xué)習(xí)自檢方法1. 波形對(duì)比方法http://yunpan.cn/cjZTiDA9pY56x訪問(wèn)密碼 c359
    發(fā)表于 11-13 11:01

    至芯科技之a(chǎn)ltera 系列FPGA教程 第十二篇 功能仿真

    至芯科技之a(chǎn)ltera 系列FPGA教程 第十二篇 功能仿真
    發(fā)表于 08-11 03:30

    紫光同創(chuàng)簡(jiǎn)介

    本帖最后由 DamonXZ 于 2018-5-26 23:56 編輯 紫光同創(chuàng)紫光集團(tuán)旗下公司,注冊(cè)資金1.5億元,總投資5億元,是是國(guó)家高新技術(shù)企業(yè),已通過(guò)ISO9001-2015
    發(fā)表于 05-26 10:58

    正點(diǎn)原子開(kāi)拓者FPGA開(kāi)發(fā)板資料連載第四十二章 音樂(lè)播放器實(shí)驗(yàn)

    ://www.openedv.com/thread-13912-1-1.html第四十二章 音樂(lè)播放器實(shí)驗(yàn)在 “音頻環(huán)回實(shí)驗(yàn)”中,我們成功地用WM8978實(shí)現(xiàn)了音頻環(huán)回,將WM8978輸入的音頻數(shù)據(jù)通過(guò)WM8978輸出。本章我們
    發(fā)表于 08-24 11:25

    紫光同創(chuàng)FPGA開(kāi)發(fā)套件,高性能國(guó)產(chǎn)FPGA方案

    紫光同創(chuàng)FPGA開(kāi)發(fā)套件,高性能國(guó)產(chǎn)FPGA方案,100%國(guó)產(chǎn)化,全系列產(chǎn)品,方案可定制,滿(mǎn)足多
    發(fā)表于 11-16 17:25

    國(guó)家金卡工程第十二次全國(guó)工作會(huì)在京召開(kāi)

    國(guó)家金卡工程第十二次全國(guó)工作會(huì)在京召開(kāi) 【RFID中國(guó)網(wǎng)獨(dú)家報(bào)道】2009年12月23日,由國(guó)家金卡工程協(xié)調(diào)領(lǐng)導(dǎo)小組辦公室主辦的“國(guó)家金卡工程第十二次全國(guó)IC/RFID應(yīng)用
    發(fā)表于 12-25 11:12 ?642次閱讀

    紫光同創(chuàng)亮相ELEXCON 2019,引領(lǐng)國(guó)產(chǎn)FPGA邁入新高度!

    12月19日,ELEXCON2019深圳國(guó)際電子展在深圳會(huì)展中心盛大開(kāi)幕。紫光同創(chuàng)旗下全系列FPGA產(chǎn)品、軟件及IP、開(kāi)發(fā)板及應(yīng)用解決方案悉數(shù)亮相,全面展現(xiàn)了國(guó)產(chǎn)
    發(fā)表于 12-20 16:39 ?2061次閱讀

    【正點(diǎn)原子Linux連載】第十二章官方SDK移植試驗(yàn)-摘自【正點(diǎn)原子】I.MX6U嵌入式Linux驅(qū)動(dòng)開(kāi)發(fā)指南V1.0

    【正點(diǎn)原子Linux連載】第十二章官方SDK移植試驗(yàn)-摘自【正點(diǎn)原子】I.MX6U嵌入式Linux驅(qū)動(dòng)開(kāi)發(fā)指南V1.0
    發(fā)表于 11-23 17:51 ?11次下載
    【正點(diǎn)原子Linux連載】<b class='flag-5'>第十二章</b>官方SDK移植試驗(yàn)-摘自【正點(diǎn)原子】I.MX6U嵌入式Linux驅(qū)動(dòng)開(kāi)發(fā)指南V1.0

    如何利用Arduino UNO和SD制作音樂(lè)播放

    前面用ATtiny85制作SD音樂(lè)播放器,本次主要利用Arduino UNO 和SD制作
    的頭像 發(fā)表于 04-13 16:45 ?7570次閱讀
    如何利用Arduino UNO和<b class='flag-5'>SD</b><b class='flag-5'>卡</b>制作<b class='flag-5'>音樂(lè)</b><b class='flag-5'>播放</b>器