<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

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

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

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

本文引用地址:http://dyxdggzs.com/article/226429.htm

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

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

虛擬儀器的設計包括硬件和軟件部分。本系統的框圖如圖1所示。

1 系統硬件

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

1.1 EPP口

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

1.2 DDS

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

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

Fout=(Fclk×F_word)/2 n

因此,通過(guò)計算機給DDS的累加器發(fā)同的頻率控制字就可得到不同的頻率。該頻率的精度主要由相位累加器的位數n決定(注:Fout與波形存貯器RAM的深度沒(méi)有關(guān)系,存儲器容量只改變一個(gè)周期內的數據點(diǎn)數,因而地址寬度m只影響波形的精度)。本系統取n=32,m=15。所以,頻率分辨率為Fclk/2 32,一個(gè)周期內最多有2 15個(gè)數據點(diǎn)。下面給出相位累加器的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為一個(gè)周期的結束地址,這兩個(gè)輸入都是32位的,而輸入address為位累加器的中間信號mid_address的高15位。Address直接尋址波形存儲器。

1.3 鑒相部分

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

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

1.4 數據采集

通過(guò)A/D轉換電路,先后把S2經(jīng)過(guò)調理的信號波形和載有相位差信息的直流平均電平采集下來(lái),存入RAM中,最后計算機統一讀取。這部分中,關(guān)鍵是采集RAM地址發(fā)生器的設計。采集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ā)生器基本和上面一樣,只不過(guò)時(shí)鐘clk由EPP口通信信號譯碼得到(采集地址發(fā)生器的時(shí)鐘clk用的是A/D轉換器的時(shí)鐘)。另外,采集地址發(fā)生器不用co信號(地址寫(xiě)滿(mǎn)標志信號,由計算機讀取判斷。若為高電平,則采集RAM已寫(xiě)滿(mǎn),計算機可以讀取數據)。

1.5 信號調理

信號調理部分主要是對模擬信號進(jìn)行濾波、隔離、推動(dòng),調節信號的直流偏移及信號的程控衰減和放大。

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

2 系統軟件

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

2.1 控制模塊

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

2.2 數據處理模塊

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

2.3 圖形顯示模塊

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

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

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



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>