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

          新聞中心

          EEPW首頁 > 設計應用 > 基于MAXl01A的1GHz數(shù)字射頻存儲器的設計

          基于MAXl01A的1GHz數(shù)字射頻存儲器的設計

          作者: 時間:2010-06-30 來源:網(wǎng)絡 收藏

          1 DRFM數(shù)據(jù)采集模塊的設計

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

          1.1 MAXlOlA的主要特點

          ADC芯片是數(shù)據(jù)采集的核心器件,本系統(tǒng)中A/D轉換器采用MAXIM公司的MAXlOlA,它的最高采樣速率可達到500 Msps,采樣精度為8 bit。本文采用兩片MAXl01A交替采樣,以使系統(tǒng)達到1 Gsps的采樣速率。MAXlOlA主要特點如下:

          ◇具有500 MHz轉換速率;
          ◇在250 MHz時的有效位為7.0位;
          ◇1.2 GHz模擬輸入帶寬;
          ◇誤差小于±1/2LSB INL;
          ◇帶50 Ω差分或單端輸入;
          ◇具有±250 mV的模擬輸入范圍;
          ◇數(shù)據(jù)通路可雙路鎖存輸出;

          1.2 MAXl01A的原理

          (1)多位轉換

          MAXl01A采用并行結構(即閃爍結構)進行比普通積分ADC更快的多位轉換。典型的n位閃爍結構含有(2n-1)個比較器,其負輸入端均勻的從基準網(wǎng)絡階梯電阻的底部排布到頂部,各占據(jù)一個LSB增量值。MAXl01A是一個單片雙交叉并行量化的芯片,它內部具有兩個獨立的8位轉換器,n=8時,應有255個比較器。這些轉換器將結果傳送給A、B兩組輸出端,并在輸入時鐘交替負邊沿鎖存它們。

          (2)跟蹤/保持

          MAXlOlA內部自帶的跟蹤/保持放大器提升了獲得有效數(shù)據(jù)位的性能,并允許在高轉換速率情況下仍以較高的精度捕捉模擬數(shù)據(jù)。其內部Track/Hold電路為MAXIMA提供了兩個重要的功能:一是它的4倍額定增益減少了輸入差動電壓的振幅,對±1.02 V基準源,輸入信號為+250mV;二是提供一個差動的50 Ω輸入,使MAXl01A接口應用極為方便。

          (3)數(shù)據(jù)流

          MAXlOlA內部的跟蹤/保持放大器為ADC提供模擬輸入電壓的采樣。而T/H放大器被同時分為兩部分,分別工作在交替的時鐘負邊沿。輸入時鐘CLK應滿足T/H放大器要求,同時還可回饋給A/D部分。輸出時鐘DCLK用于數(shù)據(jù)定時,是輸入時鐘CLK的2分頻或10分頻。

          1.3 MAXlOlA的應用

          (1)模擬輸入范圍

          雖然正常工作范圍為+250 mV,但對MAXl01A的每個輸入端而言,其對地的輸入范圍實際上為±500 mV,這擴展了包括模擬信號和任何DC共模的電壓的輸入電平。要在差動輸入模式下得到滿量程的數(shù)字輸出,應在AIN+和AIN-之間加+250 mv電壓,也就是說,AIN+=+125 mV,AIN-=-125mV (無直流偏置)。在模擬輸入端之間無電壓差時,會出現(xiàn)中間刻度數(shù)字分驅動為-250mV,即AIN+=-125 mV,AIN-=+125 mV時,會出現(xiàn)零刻度數(shù)字輸出代碼。

          (2)基準

          ADC的基準電阻確定了ADC的最低有效位(LSB)的大小和動態(tài)工作范圍。通常,電阻串的底部和頂部都是由內部緩沖放大器驅動的。在ADC的基準輸入端加RC網(wǎng)絡可獲得最佳性能,可將一個33 Ω電阻與驅動該基準電阻串的緩沖輸出級相聯(lián),而0.47μF電容必須接在緩沖輸出級的電阻器旁邊。這個電阻與電容的組合必須位于MAXl01A封裝的0.5英寸(1.27 cm)之內。任一端接點的噪聲都會直接影響代碼的檢測,并且降低ADC的有效數(shù)據(jù)位指標。

          (3)時鐘CLK和DCLK

          MAXl01A的所有輸入時鐘和輸出時鐘都是差動的。輸入時鐘CLK和DCLK是MAXl01A的基本定時信號。CLK和DCLK通過內部一個50 Ω電阻傳輸線鎖到內部電路。只有一對CLK和DCLK輸入端被驅動,而其他對耦端子通過該50 Ω傳輸線接到-2 V。對簡單電路連接而言,任一對輸入端子都可以用作被驅動的端子。DCLK和/DCLK是由輸入時鐘產生的輸出時鐘,用于數(shù)據(jù)分組A和B的內部輸出定時(A組數(shù)據(jù)在DCLK的上升沿后有效。B組數(shù)據(jù)在下降沿后有效)。在正常模式下,它們是輸入時鐘速度的一半的時鐘信號。MAXl01A可以工作在輸入時鐘高達500 MHz的頻率上。

          (4)輸出模式控制(DIVl0)

          當MAXl01A的DIVl0腳接地時,它工作于檢測模式。這時輸入時鐘被10分頻,從而將輸出數(shù)據(jù)和時鐘頻率降至1/5,但仍保證輸出時鐘的占空比為50%,而接輸出定相的時鐘保持不變,這樣每5個輸入采樣值中就有4個被丟掉。反之,當DIVlO腳懸空時,它被內部電阻拉低,MAX-lolA工作于正常模式。

          (5)布線、接地和電源

          正常工作時,MAxl01A需要一個+5×(1±0.01) V的正電源和一個-5.2×(1±0.01)V的負電源。用高質量的0.1μF和0.01μF的陶瓷電容,將VTT和Vcc電源旁路,并且在盡可能靠近引腳的地方接地。需將所有接地引腳接到地平面,可優(yōu)化抗噪聲性能并提高器件的應用精度。

          2 數(shù)據(jù)緩存模塊設計

          數(shù)據(jù)緩存器使用Ahera公司的FLEXlOKE系列CPLD。該設計利用FLEXlOKE器件實現(xiàn)高速FIFO,由于作為數(shù)據(jù)緩存的FIF0的輸入輸出時鐘頻率不能相同,所以必須使用雙時鐘FIFO。且該類器件用低電壓供電,大大降低了系統(tǒng)功耗,提高了系統(tǒng)的靈活性和可靠性。

          本文所介紹的系統(tǒng)使用VHDL硬件描述語言來對FLEXlOKE進行編程,編程環(huán)境為MAX+PLUSⅡV9.6扳本。

          采用模塊式設計。首先建立4個模塊,即FIF0、MUX、counterl、counter2。其中的FIFO既可以調用lpm-FIF0(dualClock)來修改其中的一些關鍵參數(shù)以符合要求,也可以手工編寫程序實現(xiàn),這里采用調用宏模塊的方式。值得注意的是,F(xiàn)IFO的輸入輸出時鐘頻率不同,因此必須采用雙時鐘FIF0。MUX、counterl、counter2是配合FIF0使用的多路復用器和分頻器(計數(shù)器),均應手工編寫其源程序。幾個子模塊完成以后,要新建一個總的系統(tǒng)模塊(system)來調用子模塊,以在system模塊中完成系統(tǒng)端口的定義以及各個子模塊之間的邏輯關系描述。這種設計有利于邏輯設計的集成化,從而為后續(xù)的改進提供方便。圖2為編譯通過后的系統(tǒng)仿真波形圖。

          3 結束語

          本文以DRFM設計為核心,著重介紹了DRFM的數(shù)據(jù)采集前端的設計思路和方法。在超高速數(shù)據(jù)采集領域,數(shù)百兆乃至1 GHz的采樣速度非但在國內,即就在國外也是電路設計的難點。使用基于SRAM的CPLD可以有效避開使用高速FIFO作為緩存器帶來的高功耗、高開銷的影響。數(shù)據(jù)緩存可以在一個片子內實現(xiàn),降低了硬件的復雜度,減小了系統(tǒng)的功耗。更加值得關注的是,這類CPLD具有icr,即在電路可重配置,可以通過對其編程的方法其修改電路功能,這樣就為后續(xù)的系統(tǒng)改進打下了良好的基礎。



          評論


          技術專區(qū)

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