基于運用EDA技術,以FPGA器件為核心,用Verilog HDL硬件描述語言來設計各個功能模塊,采用DDS直接數字頻率合成技術設計信號發生器,通過CPU控制每個采樣點的輸出間隔來控制輸出波形的頻率,改變波形存儲器中的波形數據來產生任意波形。
0 引言
信號發生器應用非常廣泛,包括通信、測量、控制、雷達還有教學等鄰域,是不可或缺的工具。隨著科學技術的不斷發展,信號發生器的設計方法越來越多,其設計技術也越來越先進。傳統的信號源種類多樣,但大多是采用專用芯片或單片機或模擬電路,不但具有成本高、控制方式不靈活、波形種類少等特點不能滿足使用者的要求,而且其外圍電路也過于復雜,應用起來效果不盡人意。
隨著FPGA(Field Programmable Gate Array)技術的引入,微電子技術的突飛猛進,在信號發生的領地得到了極大的拓展,技術手段呈現快速發展的勢頭,應用更加廣泛和靈活,特別是其在信號發生器上的良好運用得到了充分的體現,有效解決了傳統信號發生器帶來的模式單一、運行繁雜等一系列問題。
由于以上原因本設計提出以基于EDA技術的FPGA器件作為主控芯片,依據DDS直接數字頻率合成技術,提出了一種比較簡單的信號發生器設計方法。利用Quartus II軟件結合VerilogHDL硬件描述語言進行系統編程,經過調試后下載到本設計中的FPGA器件EP1C3T100C8N中,通過實驗驗證表明,該信號發生器可以產生正弦波、方波、三角波,信號頻率范圍在0.02~1 MHz。
1信號發生器系統結構
1.1 系統總體結構
一個基于FPGA的DDS信號發生器,可以生成標準的正弦波、方波、三角波等常用波形。
在FPGA完成DDS的功能,通過Quartus II實現按鍵控制,系統結構框圖如圖1-1所示。
圖1-1 系統結構框圖
圖1-1所示的是整個系統的結構圖,下面對圖中所涉及的一些功能部分進行簡要的說明。
a.PLL部分:此部分為系統鎖相環,功能是為整個系統提供工作時鐘,并且在后面控制輸出波形的頻率提供一個基準頻率。
b.ROM部分:此部分是存儲波形數據的查找表,是實現DDS信號發生器的必要工具,通過改變ROM查找表內的數據就能改變輸出波形。
c.DDS部分:此部分是通過代碼實現的,是本設計的關鍵所在,它的作用是輸出數字信號給后面的DAC轉換器,是實現設計要求的核心部分。
d.DAC轉換器部分:此部分是將系統輸出的數字量轉換成模擬量并輸出,把前面的DDS定義為本系統的軟件核心,而DAC轉換器則是本系統的硬件核心部分。
e.功能按鍵:這部分的作用是提供給用戶所使用的,用以控制和改變輸出波形的形式以及輸出頻率。
1.2 FPGA基本性能與結構
微電子技術在不斷進步發展的同時,可編程邏輯器件得到了飛速的發展,相比于門陣列和其他ASIC(Application Specific Integrated Circuit),FPGA擁有靈活的體系結構和邏輯單元、同時還兼有集成度高和適用范圍寬、研發單位時間短,成本低廉、選用的開發工具比較領先、能夠實時在線檢驗等優點。
FPGA器件組成十分復雜,內部擁有大量邏輯宏單元。依靠FPGA器件完成不同的功能需要配置好內部的邏輯宏單元,將這些不同的邏輯宏單元合成不同的硬件結構,以此進一步地構成各種各樣的電子系統。FPGA擁有無可比擬的一大優勢便是其硬件重構具有很高的靈活性,借助這一優勢設計者可以使用硬件描述語言(VHDL、Verilog等)在FPGA中實現所描述的電路。
本設計所使用的是Cyclone系列中的EP1C3T100C8N,Cyclone系列器件是ALTERA公司的一款成本低、高性價比的FPGA器件,它的結構和工作原理在FPGA器件中具有典型性。
Cyclone器件主要由邏輯陣列塊LAB、嵌入式存儲器塊、I/O單元、嵌入式硬件乘法器和PLL等模塊構成,在各個模塊之間存在著豐富的互連線和時鐘網絡。Cyclone器件中所含的嵌入式存儲器可以通過多種連線與可編程資源實現連接和大大增強了FPGA的性能,擴大了FPGA的應用范圍。
1.3 DDS基本原理
DDS(Direct Digital Synthesizer),它具備了以往相關技術所不具備的許多特點,它的頻率分辨率較高,這保證了它在運行過程中能夠進行快速的頻率轉換,與此同時它還能保持住相位的穩定性和連續性,因此更加容易獲得信號頻率、相位變化以及震蕩幅度調制的數字控制。下面以正弦波信號發生器為例說明。
通過上面的步驟原理,可以借助于DDS直接數字合成技術設計并且實現所需要的數控頻率合成器。DDS直接數字合成器是用數字控制方式生成所要求的信號頻率、相位變化以及震蕩幅度等等的正弦波,同時還可以對其進行有效地控制,典型的DDS直接數字頻率合成器由許多不可或缺的部分組成,有相位調制器、相位累加器、ROM正弦查找表和D/A數模轉換構成,其結構如圖1-2所示。
2 系統硬件與軟件的設計
2.1 鎖相環設計
鎖相環(phase locked loop),顧名思義,就是鎖定相位的環路。鎖相環(PLL)能提供先進的時鐘管理能力,例如頻率合成、可編程相移、可編程占空比、時鐘倍頻、分頻等完整的時鐘管理方案。在本設計中除了是給整個系統提供工作時鐘信號,還有一個非常重要的作用,決定了本設計最終輸出波形的頻率大小,以及頻率分辨率。
2.2 ROM設計
本設計的最終結果得到正弦、方波、三角波的輸出信號,這個過程是通過將數字量通過DAC轉換器不斷的轉換來完成。因此需要事先將這些波形的的數字量數據存在ROM模塊中,以便系統讀取波形數據。通過定制波形數據文件來設計出需要的正弦波ROM模塊、方波ROM模塊和三角波ROM模塊。
2.3 D/A數模轉換電路
采用非常普遍的8位D/A轉換器DAC0832作為數模轉換芯片。其轉換時間為1us,工作電壓為+5V~+15V,基準電壓為+15V。它主要由兩個8位寄存器和一個8位D/A轉換器組成。
圖2-1 低速DAC0832數模轉換電路
2.4 電源電路設計
由于系統中各個模塊用到的電壓不同,所以就需要對電壓進行轉換。外接12V電源,通過轉換電路來實現各個系統所需要的電壓,轉換電路如下圖所示。
2.5軟件設計
本設計通過Quartus II軟件對FPGA主控進行編程配置,實現了用按鍵控制輸出的波形和頻率,程序流程圖如圖2-4所示。
圖2-4 程序流程圖
3 誤差分析
3.1相位截斷誤差分析
本設計相位累加器設定為32位,正弦表數據為8位,因此在ROM查找表里的容量為232×8=34,359,738,368(bits),在理論上這可以獲得精細的頻率分辨率,但是這么大容量的數據卻很難實現。所以,在本設計中的DDS中采用了相位截斷法,只用了相位累加器輸出的高10位作為地址對ROM查找表進行查表,其他低位的地址就簡單的舍棄了。查表時相位值就會出現誤差,使得最后輸出波形的幅度值產生誤差,就會有很多的雜散信號存在。
3.2電源噪聲誤差
由于電源部分存在多種電壓值,相互間有一定的干擾,會造成輸出波形一定的失真。因此對電源的穩定性有更高的要求,可以對數字地和模擬地隔開,降低對輸出波形的影響。
3.3后級運放誤差分析
數字量經數模轉換器轉換后信號經過集成運放放大后輸出,會有一定的失真。因為集成運放自身會存在一些不可避免的因素,如:輸入電壓失調,輸入電流失調、增益帶寬積、上長速度限制。這會導致,當輸入較高的頻率時,產生相位失真。雖然這些誤差是系統自身的,不可避免,但是只要通過給予合適的頻率控制字,相位累加器位數、查找表地址位數以及控制好系統時鐘頻率和盡量使用高品質的電源,盡量提高濾波器的性能,輸出的波形還是能夠很好的滿足使用者的需要。
4 結論
本設計提出了一種基于FPGA信號發生器的設計方法,以Quartus II為軟件開發平臺,以EP1C3T100C8N器件為硬件平臺,采用Verilog HDL硬件描述語言進行編程,將DDS直接頻率合成技術實現在FPGA器件上,通過數模轉換電路,將系統輸出的數字信號轉換為模擬信號,實現信號頻率范圍在0.02~1MHz的正弦波、方波和三角波的產生,并且可以通過按鍵對正弦波、方波和三角波進行切換。
參考文獻:
[1] 阮圍.基于 FPGA 的 DDS 設計[D].成都:成都理工大學,2011.
[2] 陳科,葉建芳,馬三涵.基于DDS+PLL技術頻率合成器的設計與實現[J].研究與開發, 2010,29(4):43~47.
[3] 韓軍功.基于 DDS 的任意波形發生器的研制[D].西安:西安電子科技大學,2002.
[4] 潘松,黃繼業.EDA與VHDL語言[M].科學出版社,2005:57—68.
[5] 張志剛.FPGA與SOPC設計教程—DE2實踐[M].西安電子科技大學出版社.2007:30~38.
-
FPGA
+關注
關注
1630文章
21794瀏覽量
605132 -
寄存器
+關注
關注
31文章
5363瀏覽量
120927 -
信號發生器
+關注
關注
28文章
1480瀏覽量
108912 -
相位累加器
+關注
關注
0文章
10瀏覽量
9199
發布評論請先 登錄
相關推薦
評論