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

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 基于數(shù)字頻率合成技術(shù)的高速任意波形發(fā)生器的

          基于數(shù)字頻率合成技術(shù)的高速任意波形發(fā)生器的

          作者: 時間:2012-02-19 來源:網(wǎng)絡(luò) 收藏
          ZE: 14px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 20px; COLOR: rgb(0,0,0); TEXT-INDENT: 2em; LINE-HEIGHT: 24px; PADDING-TOP: 0px">  時鐘發(fā)生電路用于產(chǎn)生所需的可變時鐘,通常可以由單片機(jī)控制的鎖相環(huán)電路構(gòu)成,在實際設(shè)計中采用鎖相環(huán)集成電路,產(chǎn)生最高頻率為100 MHz的時鐘信號,時鐘電路的輸出信號送往地址計數(shù)器的時鐘輸入端,以驅(qū)動地址計數(shù)器掃描波形存儲器中的數(shù)據(jù),地址計數(shù)器采用15位二進(jìn)制同步計數(shù)器,邏輯上等同于4片74F161級聯(lián),地址計數(shù)器輸出的15位地址數(shù)據(jù)與波形存儲器的地址輸入端相連,波形存儲器使用四片32 K×8(讀寫速度為12 ns)的SRAM級聯(lián)成32 K×32的SRAM陣列,SRAM陣列輸出端的32比特數(shù)據(jù)中,24比特為波形數(shù)據(jù),2比特為控制信號,其余6比特數(shù)據(jù)線不使用。每個波形點分辨率為12比特,每個地址存放兩個波形點的數(shù)據(jù),單片段波信號最長可達(dá)64 K個點,2個控制信號分別為停止位、同步位,停止位數(shù)據(jù)線通過D觸發(fā)器與地址計數(shù)器的預(yù)置數(shù)控制端端相連,當(dāng)檢測到掃描至最后一個波形地址時,停止位將地址計數(shù)器的預(yù)置數(shù)控制端置位,這樣在下一個時鐘到來時,地址計數(shù)器又從該波形的首地址尋址,讀取波形數(shù)據(jù)??刂菩盘栔械耐轿挥糜谳敵鐾馔叫盘?。波形存儲器輸出的24位任意波形數(shù)據(jù)由鎖存器鎖存后送往12位奇偶數(shù)據(jù)選擇電路的輸入端。如前所述,波形存儲器的每個地址存放兩個點的波形數(shù)據(jù),在通過人機(jī)接口向波形存儲器寫入波形數(shù)據(jù)時,一個點的波形數(shù)據(jù)由每個地址中的奇數(shù)位數(shù)據(jù)構(gòu)成,另外一個點的數(shù)據(jù)由偶數(shù)位構(gòu)成,這樣做的好處是每個采樣時鐘到來時,可同時讀取2個波形點的數(shù)據(jù),使得輸出波形的最高頻

            率增大了1倍,相當(dāng)于采樣時鐘的頻率提高了1倍,大大提高儀器性能。12位奇偶數(shù)據(jù)選擇電路邏輯上等同于3片74F157。奇偶數(shù)據(jù)選擇電路的輸出端與D/A轉(zhuǎn)換器的輸入端相連,D/A轉(zhuǎn)換器的作用是將從波形存儲器中讀取的信號轉(zhuǎn)換為模擬信號,由于最高時鐘頻率為100 MHz,所以D/A轉(zhuǎn)換器選擇速率為125百萬次/秒的AD975。根據(jù)采樣定律輸出信號的基波頻率將低于所用的參考時鐘頻率的一半,在本方案中采樣時鐘最高頻率為100 MHz,一個任意波形最少可由4個點構(gòu)成,并且每個時鐘周期讀取兩個波形數(shù)據(jù),因此所輸出的任意波形信號的最高頻率為50 MHz。上述電路中,15位同步二進(jìn)制地址計數(shù)器、24位鎖存器、12位奇偶數(shù)據(jù)選擇電路及相關(guān)控制電路也可由高速CPLD實現(xiàn)。

            1.3 濾波器設(shè)計

            經(jīng)過D/A轉(zhuǎn)換后的信號通常含有較多的時鐘成分及較為陡峭的躍變邊緣,為了減少輸出波形的抖動、抑制高次諧波,在任意的設(shè)計中選擇有效的濾波器就顯得非常重要,高速任意即能輸出正弦波,又可輸出三角波、鋸齒波、脈沖波以及任意波型,因此要根據(jù)不同頻段和波形來選擇不同性能的濾波器,橢圓(Elliptic)濾波器具有陡峭的過渡特性,適合用作正弦波的輸出濾波器,三角波、鋸齒波和任意波具有豐富的頻譜,因此要求濾波器在通帶范圍內(nèi)具有良好的幅頻特性,以保證信號通過濾波器后即不產(chǎn)生失真,又能濾去雜散信號。橢圓濾波器對正弦波以外的其他波形會產(chǎn)生劇烈的振鈴,而具有線形相位的高斯(Gaussian)濾波器可以滿足這些要求,在本方案中由于任意波形發(fā)生器的采樣時鐘可變,因此它的低通濾波器的截止頻率也必須變化,否則在有些頻段就不起濾波作用,或者是在高頻段有用信號會被衰減,為此本設(shè)計方案中采用截止頻率為25 MHz、50 MHz的七階橢圓濾波器以及截止頻率為20 MHz高斯濾波器,由單片機(jī)根據(jù)不同情況編程選擇。圖5給出了截止頻率為50 MHz的七階橢圓濾波器以及截止頻率為20 MHz高斯濾波器的電路。

            

          基于數(shù)字頻率合成技術(shù)的高速任意波形發(fā)生器的

            1.4 GPIB接口設(shè)計

            盡管目前在智能儀器中有許多新的接口標(biāo)準(zhǔn),比如USB、LAN等,但是GPIB(General Purpose Interface Bus)接口仍然是業(yè)界公認(rèn)的智能儀器標(biāo)準(zhǔn)接口,在本方案中采用GPIB接口由PC機(jī)向任意波形發(fā)生器下載數(shù)據(jù),并可通過GPIB總線遠(yuǎn)程控制任意波形發(fā)生器,GPIB接口電路由采用NI公司的NAT7210 GPIB專用集成電路和TI公司生產(chǎn)的GPIB總線驅(qū)動器SN75160以及SN75162構(gòu)成,NAT7210輸出的是標(biāo)準(zhǔn)的GPIB格式數(shù)據(jù),符合IEEE488.2標(biāo)準(zhǔn),GPIB總線驅(qū)動器的作用是增強(qiáng)接口的驅(qū)動能力。NAT7210與SN75160、SN75161以及單片機(jī)之間的連接方法參見文獻(xiàn)。

            2 高速任意波形發(fā)生器的軟件設(shè)計

            高速任意波形發(fā)生器的軟件包括PC機(jī)部分的波形編輯及下載軟件以及儀器內(nèi)部的單片機(jī)控制軟件兩部分,波形編輯及下載軟件具備各種任意波形編輯能力,例如直線編輯方式、曲線編輯方式、公式編輯方式、調(diào)制波形編輯方式。波形編輯及下載軟件能夠通過GPIB接口與任意波形發(fā)生器通信完成任意波形數(shù)據(jù)的下載及儀器的遠(yuǎn)程監(jiān)控。儀器內(nèi)部的單片機(jī)控制軟件結(jié)構(gòu)采用經(jīng)典的主程序循環(huán)和中斷服務(wù)模式,其流程圖如圖6所示。儀器加電后,首先進(jìn)行自檢和軟、硬件的初始化,再進(jìn)入主程序的循環(huán),主程序的循環(huán)是等待中斷處理的過程,它依據(jù)中斷請求判斷中斷源,開中斷并轉(zhuǎn)向相應(yīng)的中斷處理子程序,完成對應(yīng)操作或硬件控制。

            

            3 結(jié)束語

            經(jīng)過對完成的任意波形發(fā)生器樣機(jī)進(jìn)行測試,采用該方案的任意波形發(fā)生器能夠輸出低至10 MHz、高達(dá)50 MHz的任意波形,輸出波形穩(wěn)定,無波形數(shù)據(jù)丟失現(xiàn)象,通過PC機(jī)上的波形編輯軟件,能夠產(chǎn)生種類豐富的任意波形,可廣泛應(yīng)用在國防、科研、教育及工業(yè)生產(chǎn)等各個領(lǐng)域。


          上一頁 1 2 下一頁

          評論


          相關(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); })();