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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的嵌入式音頻處理系統(tǒng)設(shè)計(jì)

          基于FPGA的嵌入式音頻處理系統(tǒng)設(shè)計(jì)

          作者: 時(shí)間:2014-04-30 來(lái)源:網(wǎng)絡(luò) 收藏

          在SPB 基礎(chǔ)上搭建訪問(wèn)NB 3000 開(kāi)發(fā)板的音頻接口,并對(duì)音頻流數(shù)據(jù)進(jìn)行處理的軟件平臺(tái)文件(SwPlat-form),如圖3所示.

          本文引用地址:http://www.ex-cimer.com/article/246209.htm

          ?

          ?

          NB 3000開(kāi)發(fā)板上的音頻編解碼器為CS4270,因此圖3 中選擇CS4270 Audio Codec Driver模塊,不需要再自行編寫(xiě)音頻編解碼器的驅(qū)動(dòng)代碼.設(shè)計(jì)采用SPI作為配置和控制,I2S用來(lái)傳輸數(shù)字音頻數(shù)據(jù)流.因此軟件平臺(tái)文件的底層設(shè)計(jì)選擇了I2S Master Controller和SPI Master Controller 模塊.中間層設(shè)計(jì)選擇了I2SDriver.SPI Driver和CS4270 Audio Codec模塊.軟件平臺(tái)文件使硬件外圍設(shè)備的訪問(wèn)變得容易,底層模塊為特定的外圍設(shè)備提供了配置數(shù)據(jù)和驅(qū)動(dòng)代碼.設(shè)計(jì)軟件平臺(tái)文件時(shí),選擇什么樣的模塊,取決于設(shè)計(jì)中需要訪問(wèn)哪些外圍設(shè)備.

          2.3 嵌入式代碼設(shè)計(jì)

          嵌入式系統(tǒng)設(shè)計(jì)中,嵌入式工程是“嵌在”微處理器中的.嵌入式代碼就是在軟件平臺(tái)構(gòu)建器上搭建的軟件平臺(tái)的基礎(chǔ)上完成的軟件編程.嵌入式工程中的軟件代碼,主要完成音頻數(shù)據(jù)流的獲取.音頻數(shù)據(jù)流的處理和將處理好的音頻數(shù)據(jù)流送到NB 3000開(kāi)發(fā)板的喇叭上.主要程序代碼如下:

          ?

          ?

          ?

          ?

          3 設(shè)計(jì)總結(jié)

          將嵌入式設(shè)計(jì)文件下載到智能開(kāi)發(fā)平臺(tái) 3000上的 器件后,利用音頻線將電腦或者音箱的音頻源送到 3000的音頻輸入接口,就能從喇叭上聽(tīng)到處理后的音頻效果.設(shè)計(jì)過(guò)程表明,AD的軟件平臺(tái)構(gòu)建器(SPB)為嵌入式設(shè)計(jì)訪問(wèn)硬件電路相關(guān)外圍設(shè)備提供了底層軟件驅(qū)動(dòng)提供了便利.通過(guò)搭建軟件平臺(tái),調(diào)用IP模塊,避開(kāi)了對(duì)于底層硬件的驅(qū)動(dòng)程序的編寫(xiě),只要掌握高級(jí)C語(yǔ)言就可以方便地對(duì)外圍設(shè)備進(jìn)行編程,簡(jiǎn)化了嵌入式代碼的編寫(xiě),縮短了FPGA嵌入式設(shè)計(jì)的開(kāi)發(fā)時(shí)間。


          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: FPGA NanoBoard

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();