

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 電子測量技術(shù)課程設(shè)計</p><p> 本文從DDS基本原理出發(fā),利用FPGA來產(chǎn)生正弦波,可以實現(xiàn)頻率和相位的控制和調(diào)節(jié)。相對于現(xiàn)在的DDS芯片,F(xiàn)PGA更加的靈活和方便。同時,也是未來得發(fā)展方向。</p><p><b> 一、設(shè)計要求 </b></p><p><b> 1.基本要求</b>
2、;</p><p> ?。?)制作完成一路正弦波信號輸出,頻率范圍20Hz~20kHz;</p><p> ?。?)具有頻率設(shè)置和頻率步進功能,頻率步進10Hz;</p><p> (3)輸出信號頻率穩(wěn)定度優(yōu)于10-5,用示波器觀察時無明顯失真;</p><p> ?。?)輸出電壓幅度:在10kΩ負載電阻上的電壓峰-峰值Vopp≥20V;&
3、lt;/p><p> (5)數(shù)字顯示正弦波的電壓有效值、頻率等,電壓有效值精度5%,頻率精度0.1%。</p><p><b> 2.發(fā)揮部分</b></p><p> ?。?)將正弦波輸出信號擴展到三相輸出,波形無明顯失真,頻率可調(diào)范圍擴展到1Hz~30kHz,頻率步進1Hz;</p><p> (2)在上述信號頻率
4、范圍內(nèi),任兩相間的相位差在0°~359°范圍內(nèi)可任意預(yù)置,相位差步進1°;</p><p> ?。?)在1Hz~30kHz頻率范圍內(nèi),增加矩形波輸出信號,頻率可任意預(yù)置,頻率步進2Hz,頻率精度0.05%;矩形波信號的占空比可以預(yù)置,占空比步進,當占空比為時,誤差≤±;</p><p> (4)信號發(fā)生器能輸出載波頻率約為10kHz的調(diào)頻信號輸出,
5、要求調(diào)制信號頻率在100Hz~1kHz頻率范圍內(nèi)可變,用示波器觀察載波信號無明顯失真; </p><p><b> 二、設(shè)計方案</b></p><p> 方案一:用專用的DDS芯片ADI公司的AD9959,AD9959可以實現(xiàn)最多16電平的</p>&l
6、t;p> 頻率、相位和幅度調(diào)制,還可以工作在線性調(diào)頻、調(diào)相或調(diào)幅模式。AD9959的應(yīng)用范圍包括相控陣列雷達/盧納系統(tǒng)、儀表、同步時鐘和RF信號源,并且有4路帶10位DAC的DDS通道,最高取樣頻率為500 MSPS,完全可以滿足題目要求。</p><p> 方案二:FPGA實現(xiàn)DDS技術(shù),把DDS中的ROM改用SRAM,SRAM作為一個波形抽樣數(shù)據(jù)的公共存儲器,只要改變存儲波形信息的數(shù)據(jù),就可以靈活地
7、實現(xiàn)任意波形發(fā)生器。</p><p> 方案比較:方案一中使用到專用的DDS芯片,利用專門DDS芯片開發(fā)的信號源比較多,它們輸出頻率高、波形好、功能也較多,但它們的ROM里一般都只存有一種波形(正弦波),加上一些外圍電路也能產(chǎn)生少數(shù)幾種波形,但速度受到很大的限制,因此使用不是很靈活。用FPGA設(shè)計DDS電路比采用專用DDS芯片更為靈活。因為只要改變SRAM中的數(shù)據(jù),就可以產(chǎn)生任意波形,因而具有相當大的靈活性。F
8、PGA芯片還支持在線升級,將DDS設(shè)計嵌入到FPGA芯片所構(gòu)成的系統(tǒng)中,并采用流水線技術(shù),其系統(tǒng)成本并不會增加多少,而購買專用芯片的價格則是前者的很多倍。因此,采用FPGA來設(shè)計DDS系統(tǒng)具有很高的性能價格比。因此我們選擇方案一。</p><p><b> 三、單元模塊設(shè)計</b></p><p> 本系統(tǒng)由FPGA、單片機控制模塊、鍵盤、LCD液晶顯示屏、DAC
9、輸出電路和穩(wěn)壓電源電路構(gòu)成。用FPGA實現(xiàn)直接數(shù)字頻率合成技術(shù)(DDS),產(chǎn)生正弦波、方波、三角波,合成FSK、ASK、PSK、AM、FM 等信號。采用單片機ATMAGE128控制直接數(shù)字頻率合成器(DDS)的工作、按鍵及顯示。整個系統(tǒng)結(jié)構(gòu)緊湊,電路簡單,功能強大,可擴展性強</p><p><b> 系統(tǒng)框圖</b></p><p> 2、FPGA DDS模塊
10、(參考附錄)</p><p> 3、單片機最小系統(tǒng)級顯示電路</p><p><b> 4、DA轉(zhuǎn)換器模塊</b></p><p> 5、3路OPA452,后級運算放大電路</p><p><b> 四、系統(tǒng)軟件設(shè)計</b></p><p> 1、單片機顯示控制程序
11、流程圖</p><p><b> (如附錄A)</b></p><p> 五、系統(tǒng)功能、指標參數(shù)</p><p> 1、系統(tǒng)功能:實現(xiàn)三相三相正弦信號輸出</p><p> 從以上數(shù)據(jù)可以得出,系統(tǒng)完全符合指標。</p><p><b> 測試儀器</b></
12、p><p> Tektronix TDS 2024B 示波器 </p><p> Luyang YB1731B 3A DC POWER SUPPLY;</p><p> 數(shù)英 TFG3150L DDS函數(shù)信號發(fā)生器</p><p><b> 六、設(shè)計總結(jié)</b></p><p> 本設(shè)
13、計提出了一種使用經(jīng)濟有效的低頻信號發(fā)生器的設(shè)計方法,系統(tǒng)可以實現(xiàn)各種頻率各種相位的輸出,可以實現(xiàn)ASK、FSK調(diào)制信號的輸出,其他的調(diào)制信號也可在以后系統(tǒng)升級中需要的時候設(shè)置,也可在載波位10K模擬調(diào)頻信號的輸出,調(diào)制信號在100HZ到1KHZ范圍內(nèi)可調(diào)。系統(tǒng)功能強大,更可以升級擴長,系統(tǒng)DDS部分用的是 Verilog HDL和VHDL混合編程實現(xiàn),可以很方便的下載到FPGA芯片中測試,可以得到廣泛的應(yīng)用。</p>&
14、lt;p><b> 參考文獻</b></p><p> [1]《信號與系統(tǒng)》,ALAN V.OPPENHEIM著,西安:西安交通大學(xué)出版社,1997年;</p><p> [2]《VHDL高等教程》,劉明業(yè)著,北京:清華大學(xué)出版社,2004年;</p><p> [3]《Verilog 數(shù)字系統(tǒng)設(shè)計》,夏宇聞著,北京:北京航空航天
15、大學(xué)出版社,2008年;</p><p> [4]《基于FPGA的DDS調(diào)頻信號得研究與實現(xiàn)》,石偉,宋躍,李琳著,湖南:湖南科技大學(xué),2000年;</p><p><b> 附錄A </b></p><p><b> 附錄B </b></p><p><b> 附錄C </
16、b></p><p> DDS得VHDL程序:</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use IEEE.STD_LOGIC_arith.all;</p><p> use IEEE.STD_LOGIC_
17、unsigned.all;</p><p> use work.sine_lut_pkg.all;</p><p> package dds_synthesizer_pkg is</p><p> component dds_synthesizer</p><p><b> generic(</b></p&
18、gt;<p> ftw_width : integer</p><p><b> );</b></p><p><b> port(</b></p><p> clk_i : in std_logic;</p><p> rst_i : in std_logic;
19、</p><p> ftw_i : in std_logic_vector(ftw_width-1 downto 0);</p><p> phase_i : in std_logic_vector(PHASE_WIDTH-1 downto 0);</p><p> phase_o : out std_logic_vector(PHASE_WIDTH-
20、1 downto 0);</p><p> ampl_o : out std_logic_vector(AMPL_WIDTH-1 downto 0)</p><p><b> );</b></p><p> end component;</p><p> end dds_synthesizer_pkg;<
21、/p><p> package body dds_synthesizer_pkg is</p><p> end dds_synthesizer_pkg;</p><p> -- Entity Definition</p><p> library ieee;</p><p> use ieee.std_logi
22、c_1164.all;</p><p> use IEEE.STD_LOGIC_arith.all;</p><p> use IEEE.STD_LOGIC_unsigned.all;</p><p> use work.sine_lut_pkg.all;</p><p> entity dds_synthesizer is</
23、p><p><b> generic(</b></p><p> ftw_width : integer := 32</p><p><b> );</b></p><p><b> port(</b></p><p> clk_i : in
24、 std_logic;</p><p> rst_i : in std_logic;</p><p> ftw_i : in std_logic_vector(ftw_width-1 downto 0);</p><p> phase_i : in std_logic_vector(PHASE_WIDTH-1 downto 0);</p&g
25、t;<p> phase_o : out std_logic_vector(PHASE_WIDTH-1 downto 0);</p><p> ampl_o : out std_logic_vector(AMPL_WIDTH-1 downto 0)</p><p><b> );</b></p><p> end dds
26、_synthesizer;</p><p> architecture dds_synthesizer_arch of dds_synthesizer is</p><p> signal ftw_accu : std_logic_vector(ftw_width-1 downto 0);</p><p> signal phase
27、 : std_logic_vector(PHASE_WIDTH-1 downto 0);</p><p> signal lut_in : std_logic_vector(PHASE_WIDTH-3 downto 0);</p><p> signal lut_out : std_logic_ve
28、ctor(AMPL_WIDTH-1 downto 0);</p><p> signal lut_out_delay : std_logic_vector(AMPL_WIDTH-1 downto 0);</p><p> signal lut_out_inv_delay : std_logic_vector(AMPL_WIDTH-1 downto 0);<
29、/p><p> signal quadrant_2_or_4 : std_logic;</p><p> signal quadrant_3_or_4 : std_logic;</p><p> signal quadrant_3_or_4_delay : std_logic;</p><p> signal qu
30、adrant_3_or_4_2delay : std_logic;</p><p><b> begin</b></p><p> phase_o <= phase;</p><p> quadrant_2_or_4 <= phase(PHASE_WIDTH-2);</p><p>
31、quadrant_3_or_4 <= phase(PHASE_WIDTH-1);</p><p> lut_in <= phase(PHASE_WIDTH-3 downto 0) when quadrant_2_or_4 = '0' else conv_std_logic_vector(2**(PHASE_WIDTH-2)-conv_integer(phase(PHASE_WIDTH
32、-3 downto 0)), PHASE_WIDTH-2);</p><p> ampl_o <= lut_out_delay when quadrant_3_or_4_2delay = '0' else lut_out_inv_delay;</p><p> process (clk_i, rst_i)</p&g
33、t;<p><b> begin</b></p><p> if rst_i = '1' then</p><p> ftw_accu <= (others => '0');</p><p> phase <= (others => '0');<
34、;/p><p> elsif clk_i'event and clk_i = '1' then</p><p> ftw_accu <= conv_std_logic_vector(conv_integer(ftw_accu) + conv_integer(ftw_i), ftw_width);</p><p> phase &
35、lt;= conv_std_logic_vector(conv_integer(ftw_accu(ftw_width-1 downto ftw_width-PHASE_WIDTH)) + conv_integer(phase_i), PHASE_WIDTH);</p><p> if quadrant_2_or_4 = '1' and phase(PHASE_WIDTH - 3 downto 0
36、) = conv_std_logic_vector (0, PHASE_WIDTH - 2) then</p><p> lut_out <= conv_std_logic_vector(2**(AMPL_WIDTH - 1) - 1, AMPL_WIDTH);</p><p><b> else</b></p><p> lut_
37、out <= sine_lut(conv_integer(lut_in));</p><p><b> end if;</b></p><p> quadrant_3_or_4_delay <= quadrant_3_or_4;</p><p> quadrant_3_or_4_2delay <= quadrant_3_
38、or_4_delay;</p><p> lut_out_inv_delay <= conv_std_logic_vector(-1*conv_integer(lut_out), AMPL_WIDTH);</p><p> lut_out_delay <= lut_out;</p><p><b> end if;</b>&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子技術(shù)課程設(shè)計
- 模擬電子技術(shù)課程設(shè)計--音頻功率測量電路
- 數(shù)字電子技術(shù)課程設(shè)計---溫度測量與控制設(shè)計
- 電子技術(shù)課程設(shè)計 --電子秒表
- 模擬電子技術(shù)課程設(shè)計
- 電子技術(shù)課程設(shè)計報告
- 數(shù)字電子技術(shù)課程設(shè)計
- 模擬電子技術(shù)課程設(shè)計
- 模擬電子技術(shù)課程設(shè)計
- 數(shù)字電子技術(shù)課程設(shè)計
- 模擬電子技術(shù)課程設(shè)計
- 電子技術(shù)課程設(shè)計報告
- 數(shù)字電子技術(shù)課程設(shè)計
- 模擬電子技術(shù)課程設(shè)計
- 電子技術(shù)課程設(shè)計題目
- 模擬電子技術(shù)課程設(shè)計
- 電子技術(shù)課程設(shè)計-溫度測量與控制器
- 模擬電子技術(shù)課程設(shè)計---傳感器測量系統(tǒng)的設(shè)計
- 模擬電子技術(shù)課程設(shè)計--平均氣溫測量系統(tǒng)的設(shè)計
- 數(shù)顯式扭矩測量儀的設(shè)計--電子技術(shù)課程設(shè)計報告
評論
0/150
提交評論