廢話
總體方案論證與選擇
方案一:采用模擬鎖相環(huán)實現(xiàn)。模擬鎖相環(huán)技術(shù)是一項比較成熟的技術(shù)。應(yīng)用模擬鎖相環(huán),可將基準(zhǔn)頻率倍頻,或分頻得到所需的頻率,且調(diào)節(jié)精度可以做到相當(dāng)高、穩(wěn)定性也比較好。但模擬鎖相環(huán)模擬電路復(fù)雜,不易調(diào)節(jié),成本較高,并且頻率調(diào)節(jié)不便且調(diào)節(jié)范圍小,輸出波形的毛刺較多,得不到滿意的效果。
方案二:采用直接數(shù)字頻率合成,用單片機作為核心控制部件。能達(dá)到較高的要求,實現(xiàn)各種波形輸出,但受限于運算位數(shù)和運算速度,產(chǎn)生的波形往往達(dá)不到滿意效果,并且頻率可調(diào)范圍小,很難得到較高頻率,并且單片機的引腳少,存儲容量少,這就導(dǎo)致了外圍電路復(fù)雜。
方案三:采用直接數(shù)字頻率合成,用FPGA器件作為核心控制部件。精度高穩(wěn)定性好,得到波形平滑,特別是由于FPGA的高速度,能實現(xiàn)較高頻率的波形??刂粕细奖?,可得到較寬頻率范圍的波形輸出,步進(jìn)小,外圍電路簡單易實現(xiàn)。
經(jīng)過上述分析,核心控制系統(tǒng)采用方案三。
DDS模塊方案論證
方案一:采用高性能DDS單片電路的解決方案。
隨著微電子技術(shù)的飛速發(fā)展,目前高超性能優(yōu)良的DDS產(chǎn)品不斷推出,主要有Qualcomm、AD、Sciteg和Stanford等公司單片電路(monolithic)。Qualcomm公司推出了DDS系列Q2220、Q2230、Q2334、Q2240、Q2368,其中Q2368的時鐘頻率為130MHz,分辨率為0.03Hz,變頻時間為0.1μs;美國AD公司也相繼推出了他們的DDS系列:AD9850、AD9851、可以實現(xiàn)線性調(diào)頻的AD9852、兩路正交輸出的AD9854以及以DDS為核心的QPSK調(diào)制器AD9853、數(shù)字上變頻器AD9856和AD9857。AD公司的DDS系列產(chǎn)品以其較高的性能價格比,目前取得了極為廣泛的應(yīng)用。
方案二:采用低頻正弦波DDS單片電路的解決方案
此方案的典型電路有MicroLinear公司的電源管理事業(yè)部推出低頻正弦波DDS單片電路ML2035以其價格低廉、使用簡單得到廣泛應(yīng)用。ML2035特性:(1)輸出頻率為直流到25kHz,在時鐘輸入為12.352MHz以外頻率分辨率可達(dá)到1.5Hz(-0.75~+0.75Hz),輸出正弦波信號的峰-峰值為Vcc;(2)高度集成化,無需或僅需極少的外接元件支持,自帶3~12MHz晶體振蕩電路;(3)兼容的3線SPI串行輸入口,帶雙緩沖,能方便地配合單片機使用;(4)增益誤差和總諧波失真很低。ML2035生成的頻率較低(0~25kHz),一般應(yīng)用于一些需產(chǎn)生的頻率為工頻和音頻的場合。如用2片ML2035產(chǎn)生多頻互控信號,并與AMS3104(多頻接收芯片)或ML2031/2032(音頻檢波器)配合,制作通信系統(tǒng)中的收發(fā)電路等??删幊陶也òl(fā)生器芯片ML2035設(shè)計巧妙,具有可編程、使用方便、價格低廉等優(yōu)點,應(yīng)用范圍廣泛。很適合需要低成本、高可靠性的低頻正弦波信號的場合。
方案三:自行設(shè)計的基于CPLD/FPGA芯片的解決方案
DDS技術(shù)的實現(xiàn)依賴于高速、高性能的數(shù)字器件。可編程邏輯器件以其速度高、規(guī)模大、在線可編程,以及有強大EDA軟件支持等特性,十分適合實現(xiàn)DDS技術(shù)。目前PLD器件(包括CPLD、FPGA)的生產(chǎn)廠商主要有Altera,Xilinx以及Lattoce等。Altera是著名的PLD生產(chǎn)廠商,多年來一直占據(jù)著行業(yè)領(lǐng)先的地位。Altera的PLD具有高性能、高集成度和高性價比的優(yōu)點,此外它還提供了功能全面的開發(fā)工具和豐富的IP核、宏功能外它還提供了功能全面的開發(fā)工具和豐富的IP核、宏功能庫等,因此Altera的產(chǎn)品獲得了廣泛的應(yīng)用。雖然有的專用DDS芯片的功能也比較多,但控制方式卻是固定的,因此不一定是我們所需要的。而利用FPGA則可以根據(jù)需要方便地實現(xiàn)各種比較復(fù)雜的調(diào)頻、調(diào)相和調(diào)幅功能,具有良好的實用性。就合成信號質(zhì)量而言,專用DDS芯片由于采用特定的集成工藝,內(nèi)部數(shù)字信號抖動很小,可以輸出高質(zhì)量的模擬信號;利用FPGA也能輸出較高質(zhì)量的信號,雖然達(dá)不到專用DDS芯片的水平,但信號精度誤差在允許范圍之內(nèi)。
基于以上優(yōu)點我們采用了FPGA芯片來實現(xiàn)我們設(shè)計的DDS。
總體設(shè)計方框圖
直接數(shù)字頻率合成技術(shù)的基本原理
Verilog HDL代碼實現(xiàn)與仿真
信號發(fā)生器模塊
頻率控制字和相位累加器
位累加器的位數(shù)N=32,Verilog HDL代碼如下:文章來源:http://www.zghlxwxcb.cn/news/detail-407989.html
1.module F_word_set(
2. input clk ,
3. input rst_n ,
4. input key1_in ,
5.
6. output reg [25:0] f_word
7. );
8.
9. wire key_flag ;
10. wire key_state ;
11. reg [3:0] cnt ;
12.
13. key_filter fword_key (
14. .clk (clk),
15. .rst_n (rst_n),
16. .key_in (key1_in),
17. .key_flag (key_flag),
18. .key_state (key_state)
19. );
20.
21. always @(posedge clk or negedge rst_n) begin
22. if (!rst_n) begin
23. cnt <= 4'd0;
24. end
25. else if (key_flag) begin
26. if (cnt==4'd10) begin
27. cnt <= 4'd0;
28. end
29. else begin
30. cnt <= cnt + 1'b1;
31. end
32. end
33. end
34.
35. always @(posedge clk or negedge rst_n) begin
36. if (!rst_n) begin
37. f_word <= 0;
38. end
39. else begin
40. case(cnt)
41. 4'd0:f_word = 26'd86; //1Hz
42. 4'd1:f_word = 26'd859; //10Hz
43. 4'd2:f_word = 26'd8590; //100Hz
44. 4'd3:f_word = 26'd42950; //500Hz
45. 4'd4:f_word = 26'd85899; //1kHz
46. 4'd5:f_word = 26'd429497; //5kHz
47. 4'd6:f_word = 26'd858993; //10kHz
48. 4'd7:f_word = 26'd4294967; //50kHz
49. 4'd8:f_word = 26'd8589935; //100kHz
50. 4'd9:f_word = 26'd17179869; //200kHz
51. 4'd10:f_word = 26'd42949673;//500kHz
52. default:;
53. endcase
54. end
55. end
56.endmodule
文章來源地址http://www.zghlxwxcb.cn/news/detail-407989.html
到了這里,關(guān)于FPGA實現(xiàn)10M多功能信號發(fā)生器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!