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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 網(wǎng)絡(luò)特性虛擬分析儀

          網(wǎng)絡(luò)特性虛擬分析儀

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

          摘要:介紹一種掃頻儀——兼有任意波形發(fā)生器和數(shù)字存儲示波功能的虛擬儀器??删W(wǎng)時顯示幅頻特性、相頻特性,還可顯示采集的波形。在設(shè)計技術(shù)上,采用FPGA、EDA技術(shù)和VC++6.0Windows編程技術(shù)。

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

          關(guān)鍵詞:完EDA ISP FPGA VHDL VC++ DLL

          隨著計算機技術(shù)、電子設(shè)計自動化(EDA)技術(shù)和在系統(tǒng)可編程技術(shù)(ISP)的廣泛應(yīng)用,使得虛擬儀器的設(shè)計列為靈活、測試更為方便,從而使虛擬世界更為豐富多彩。

          虛擬儀器的設(shè)計包括硬件和軟件部分。本系統(tǒng)的框圖如圖1所示。

          1 系統(tǒng)硬件

          由圖1可看出硬件部分主要包括:EPP口、DDS(直接數(shù)字頻率合成)、信號調(diào)理、鑒相及數(shù)據(jù)采集等模塊。

          1.1 EPP口

          因為EPP(增強型并行端口)比SPP(標準并行接口)傳輸速率高,最高可達2Mbytes/s,所以本項目選用它以提高系統(tǒng)速率。實現(xiàn)時,用VHDL編寫簡單的接口譯碼電路。

          1.2 DDS

          本系統(tǒng)利用DDS技術(shù)合成精度高、頻率穩(wěn)定度好和控制方便的優(yōu)點來產(chǎn)生掃頻信號。其基本原理如圖2所示。

          設(shè)相位累加器的位數(shù)為n,累加器的輸入控制字為F_word,系統(tǒng)時鐘頻率為Fclk,則輸出信號S_out的頻率Fout為:

          Fout=(Fclk×F_word)/2 n

          因此,通過計算機給DDS的累加器發(fā)同的頻率控制字就可得到不同的頻率。該頻率的精度主要由相位累加器的位數(shù)n決定(注:Fout與波形存貯器RAM的深度沒有關(guān)系,存儲器容量只改變一個周期內(nèi)的數(shù)據(jù)點數(shù),因而地址寬度m只影響波形的精度)。本系統(tǒng)取n=32,m=15。所以,頻率分辨率為Fclk/2 32,一個周期內(nèi)最多有2 15個數(shù)據(jù)點。下面給出相位累加器的VHDL源程序:

          ENTITY dds_adder IS

          PORT(

          clr :in std_logic;

          clk :in std_logic;

          f_word :in std_logic_vector(31 downto 0);

          addr_end :in std_logic_vector(31 downto 0);

          address :out std_logic_vector(14 downto 0);

          );

          END dds_adder;

          ARCHITECTURE behav OF dds_adder IS

          SIGNAL mid_address:std_logic_vector(31 downto 0);

          BEGIN

          PROCESS (clk,clr,f_word,addr_end)

          BEGIN

          IF(clr='0') THEN

          IF(mid_address=addr_end)

          --CHECK ONE CIRCLE'S END

          THEN

          mid_address=0000000000 00000000;

          ELSE mid_address=mid_address + f_word;

          --PHASE ADDER

          END IF;

          END IF;

          END PROCESS;

          Address=mid_address(31 downto 17);

          --OUTPUT 15 HIGH BITS

          BND behav;

          由程序可看出f_word為頻率控制字,addr_end為一個周期的結(jié)束地址,這兩個輸入都是32位的,而輸入address為位累加器的中間信號mid_address的高15位。Address直接尋址波形存儲器。

          1.3 鑒相部分

          鑒相部分原理如圖3所示。掃頻信號S1和S1經(jīng)過被測網(wǎng)絡(luò)的輸出信號S2,首先分別經(jīng)過比較器形成占空比相同的方波I1和I2。接著以I1為參考,兩者通過數(shù)字鑒相器,得到高電平寬度受S1和S2相位差調(diào)制的方波P0。圖3(b)和圖3(c)分別給出了I2滯后I1和I2超前I1的兩種情況。

          最后通過積分電路得到平均電平Peven,送到A/D轉(zhuǎn)換器進行轉(zhuǎn)換。這里用R-S觸發(fā)器來進行數(shù)字鑒相,鑒相范圍-π~π。

          1.4 數(shù)據(jù)采集

          通過A/D轉(zhuǎn)換電路,先后把S2經(jīng)過調(diào)理的信號波形和載有相位差信息的直流平均電平采集下來,存入RAM中,最后計算機統(tǒng)一讀取。這部分中,關(guān)鍵是采集RAM地址發(fā)生器的設(shè)計。采集RAM地址發(fā)生器的VHDL源程序如下:

          LIBRARY IEEE;

          USE IEEE.STD_LOGIC_1164.ALL;

          USE IEEE.STD_LOGIC_UNSIGNEC.ALL;

          ENTITY c_15 IS

          PORT (

          clk :in std_logic;

          en :in std_logic;

          clr :in std_logic;

          co :out std_locig;

          addr :out integer range 0 to 32767

          );

          END c_15;

          ARCHITECTURE behav OF c_15 IS

          SIGNAL mid: integer range 0 to 32767;

          BEGIN

          PROCESS(clk)

          BEGIN

          IF(clr='0')THEN

          mid=0;

          co='0';

          ELSE

          IF(clk'event and clk='1') THEN

          IF (en='1') THEN

          mid=mid+1;

          ELSE null;

          END IF;

          IF(mid=32767) THEN

          co='1';

          ELSE co='0';

          END IF;

          END IF;

          END IF;

          END PROCESS;

          Addr=mid;

          END behav;

          計算機讀采集RAM地址發(fā)生器基本和上面一樣,只不過時鐘clk由EPP口通信信號譯碼得到(采集地址發(fā)生器的時鐘clk用的是A/D轉(zhuǎn)換器的時鐘)。另外,采集地址發(fā)生器不用co信號(地址寫滿標志信號,由計算機讀取判斷。若為高電平,則采集RAM已寫滿,計算機可以讀取數(shù)據(jù))。

          1.5 信號調(diào)理

          信號調(diào)理部分主要是對模擬信號進行濾波、隔離、推動,調(diào)節(jié)信號的直流偏移及信號的程控衰減和放大。

          系統(tǒng)硬件的數(shù)字部分用一片Altera公司的FPGA芯片F(xiàn)lex10K10,運用FPGA的現(xiàn)場可重構(gòu)技術(shù),使虛擬儀器的智能化和自動化得以實現(xiàn)。其開發(fā)平臺為Altera公司的Muxplus Ⅱ。各模塊的設(shè)計主要用VHDL硬件硬件語言來編寫,使得設(shè)計更為靈活、方便,尤其在控制邏輯的實現(xiàn)方面更顯示其優(yōu)點。

          2 系統(tǒng)軟件

          Microsoft公司的VC++ 6.0有MFC(Microsoft Foundation Classes)支持,因此可實現(xiàn)強大功能,編程效率高,運行速度快。本項目利用上述優(yōu)點,運用DLL(動態(tài)鏈接庫)技術(shù)進行編程。軟件框圖如圖4所示。軟件主要分為控制、數(shù)據(jù)處理、圖形顯示三大模塊。

          2.1 控制模塊

          控制主要是設(shè)置DDS的頻率控制字,波形RAM數(shù)據(jù)的寫入,采集數(shù)據(jù)的讀取以及控制硬件部分的通路選擇,設(shè)置信號調(diào)理的衰減和放大器。

          2.2 數(shù)據(jù)處理模塊

          要得到網(wǎng)絡(luò)的頻率特性,就要處理采集過來的波形數(shù)據(jù)(采集過來的數(shù)據(jù)包括經(jīng)過被測網(wǎng)絡(luò)的波形數(shù)據(jù)和相位差平均電平的相位數(shù)據(jù))。這里利用軟件的“起泡算法”來得到波形峰值,計算衰減量和放大量,得到網(wǎng)絡(luò)的幅度頻率特性。相位頻率特性直接由相位數(shù)據(jù)得到。

          2.3 圖形顯示模塊

          調(diào)用MFC的CpaintDC類現(xiàn)圖函數(shù)進行現(xiàn)圖。CpaintDC類中有豐富的畫圖函數(shù),包括畫線(可選擇線的形式、顏色)、畫點等基本函數(shù)。本項目中主要由三個圖形顯示模塊:波形顯示、振幅頻率特性曲線顯示(線性、對數(shù)坐標)、相位頻率特性曲線顯示(線性、對數(shù)坐標)。

          軟件設(shè)計中,采集數(shù)據(jù)的處理、外部FPGA的配置和三個顯示模塊分別做成了DLL(動態(tài)鏈接庫)函數(shù),被主執(zhí)行程序動態(tài)調(diào)用。

          通過以上分析可知,系統(tǒng)中有信號產(chǎn)生通道和數(shù)據(jù)采集通道。對濾形存儲器RAM寫入不同的波形,可產(chǎn)生任意波形。另外,還可采集外部波形,加入測頻和觸發(fā)模塊,具有示波器的完整功能。所以該儀器兼有多種功能,可和為掃頻儀、信號源及數(shù)字存儲示波器。其設(shè)計思想新穎,手段先進,性價比較高,充分體現(xiàn)了虛擬世界的無窮魅力。



          評論


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