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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 利用FPGA實現(xiàn)外設(shè)通信接口之: 利用FPGA實現(xiàn)A/D、D/A轉(zhuǎn)換器接口

          利用FPGA實現(xiàn)外設(shè)通信接口之: 利用FPGA實現(xiàn)A/D、D/A轉(zhuǎn)換器接口

          作者: 時間:2017-06-05 來源:網(wǎng)絡(luò) 收藏

          10.5利用實現(xiàn)A/D、D/A

          10.5.1A/D、D/A的特點

          A/D、D/A轉(zhuǎn)換器是系統(tǒng)設(shè)計中的常用器件,經(jīng)常用來實現(xiàn)模擬信號和數(shù)字信號的相互轉(zhuǎn)換。根據(jù)應(yīng)用場合的不同,A/D、D/A轉(zhuǎn)換芯片的性能指標(biāo)參數(shù)差別比較大,因此接口格式也無法統(tǒng)一。

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

          10.5.2A/D、D/A的實現(xiàn)方法

          1.標(biāo)準(zhǔn)接口的A/D、D/A轉(zhuǎn)換器與的接口設(shè)計

          在一些典型的應(yīng)用領(lǐng)域,需要處理的信號單一,芯片廠家設(shè)計的芯片一般會遵循一些行業(yè)標(biāo)準(zhǔn)接口。例如音頻信號處理領(lǐng)域,很多廠家的音頻A/D、D/A轉(zhuǎn)換芯片都支持SPI接口。

          FPGA實現(xiàn)這些標(biāo)準(zhǔn)的接口,如SPI接口,可以通過網(wǎng)絡(luò)或者FPGA廠家獲得一些參考代碼。FPGA芯片的生產(chǎn)廠家會在其開發(fā)工具軟件里面集成一些常用接口的IP核,設(shè)計者可以免費使用,降低了開發(fā)難度。

          另外,有一些開源的網(wǎng)站,如http://www.opencores.org等,也提供了免費的接口IP核的源代碼下載服務(wù)。設(shè)計者可以下載代碼后,經(jīng)過仿真驗證或者適當(dāng)修改后,應(yīng)用到自己的系統(tǒng)中去。

          2.特殊接口的A/D、D/A轉(zhuǎn)換器與FPGA的接口設(shè)計

          還有很多信號處理領(lǐng)域,如通信系統(tǒng)設(shè)計領(lǐng)域,需要處理的信號很復(fù)雜。這種情況下,A/D、D/A的芯片廠家一般會根據(jù)處理的精度和采樣的速度要求來設(shè)計接口時序。

          設(shè)計者要根據(jù)廠家提供的芯片手冊給出的時序來設(shè)計接口。

          有些高速的A/D或者D/A芯片會采用LVDS差分信號電平標(biāo)準(zhǔn)。這樣的情況下,F(xiàn)PGA的管腳也要采用對應(yīng)的LVDS模式。

          需要注意的是,F(xiàn)PGA上每一組LVDS管腳是成對出現(xiàn)的,不是任意分組的。而且,如果一個BANK被設(shè)定為LVDS,那么這個BANK的所有管腳都是LVDS模式的。

          10.5.3AD/DA轉(zhuǎn)換器接口的注意事項

          1.選擇正確的時鐘采樣邊沿

          對于一個邊沿采樣的數(shù)據(jù)采集模塊,經(jīng)常需要確定采用上升沿還是下降沿來采樣數(shù)據(jù)。那么,選擇的依據(jù)就是保證數(shù)據(jù)采樣的穩(wěn)定、可靠。

          為了保證同步,F(xiàn)PGA的采樣時鐘一般采用A/D轉(zhuǎn)換芯片的輸出時鐘,這個時鐘和數(shù)據(jù)是同步的。這個時鐘和數(shù)據(jù)的關(guān)系與A/D轉(zhuǎn)換芯片的具體型號有關(guān)。

          圖10.20A/D芯片的部分輸出信號時序關(guān)系

          例如,在如圖10.20所示的時序圖中,每當(dāng)時鐘的上升沿數(shù)據(jù)產(chǎn)生變化。那么這樣的情況下,在時鐘的下降沿的時候,數(shù)據(jù)是最穩(wěn)定的,適合采樣。

          2.選擇適合的同步頭檢測方法

          A/D芯片的輸出數(shù)據(jù)一般都是打包數(shù)據(jù),以數(shù)據(jù)幀的格式輸出。數(shù)據(jù)幀的同步格式分為兩種:。

          圖10.21A/D芯片的部分輸出信號時序關(guān)系

          :是指除了時鐘和數(shù)據(jù)信號外,還有同步指示信號。同步指示信號可以是脈沖信號,指示一幀有效數(shù)據(jù)的開始;也可以是電平信號,指示一幀有效數(shù)據(jù)的持續(xù)時間。

          :是指輸出信號中只有時鐘和數(shù)據(jù)信號,同步頭隱藏在數(shù)據(jù)之中,如表10.7所示是ITU656標(biāo)準(zhǔn)的數(shù)字視頻信號。

          表10.7 ITU656標(biāo)準(zhǔn)的數(shù)字視頻信號

          幀結(jié)構(gòu)

          BlankingPeriod

          80

          10

          TimingReferenceCode

          FF

          00

          00

          SAV

          720PixelsYUV4:2:2Data

          Cb0

          Y0

          Cr0

          Y1

          Cb2

          Y2

          Cr718

          Y719

          TimingReferenceCode

          FF

          00

          00

          EAV

          BlankingPeriod

          80

          10

          其中,“FF0000EAV”和“FF0000SAV”就是幀同步頭,其作用也是用來指示有效數(shù)據(jù)開始和結(jié)束。其格式為:“FF0000XY”,XY的定義如下。

          SAV_EVEN=8H80

          EAV_EVEN=8H9D

          SAV_ODD=8HC7

          EAV_ODD=8HDA

          3.選擇有效的緩存策略

          在數(shù)據(jù)采集系統(tǒng)中,緩存結(jié)構(gòu)的設(shè)計直接影響系統(tǒng)的性能。對于簡單的設(shè)計,可以采用一個FIFO或者雙口RAM來實現(xiàn)緩存。如果單緩存不能滿足系統(tǒng)的性能要求,可以采用乒乓結(jié)構(gòu)的緩存。

          在有些特殊情況下,采集模塊后面數(shù)據(jù)處理模塊的處理時間不固定,和數(shù)據(jù)內(nèi)容相關(guān)。這時候采用乒乓結(jié)構(gòu)的緩存策略就不能滿足要求了,因為乒乓結(jié)構(gòu)的切換時間一般是固定的,而且和數(shù)據(jù)內(nèi)容是無關(guān)的。

          還有一種比乒乓結(jié)構(gòu)更復(fù)雜的緩存管理策略,那就是三緩存環(huán)形結(jié)構(gòu)。如圖10.22所示,這樣的結(jié)構(gòu)雖然比乒乓結(jié)構(gòu)提供了更好的緩存性能,但是管理的復(fù)雜度大大提高了,系統(tǒng)的延遲也增加了。

          圖10.22三緩存的示意圖

          無論是單緩存,雙緩存還是三緩存結(jié)構(gòu),只要能滿足系統(tǒ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); })();