傳統的信號源設計常采用模擬分立元件或單片壓控函數發生器MAX038,可產生正弦波、方波、三角波,并通過調整外部元件改變輸出頻率,但由于采用模擬器件,所用元件的分散性太大,即使使用單片函數發生器,也因參數與外部元件有關(外接的電阻電容對參數影響很大),使頻率穩定度較差,精度低,抗干擾能力低,成本也高;況且其靈活性較差,而不能實現多種波形以及波形運算輸出等功能。 在此,采用直接數字頻率合成(DDFS)技術,并使用單片機控制CPLD的方法。由于CPLD具有可編程重置特性,因而可以方便地改變控制方式或更換波形數據,而且簡單易行,易于系統升級,同時具有很高的性價比。頻率合成是將一個高穩定度和一個高精度的標準頻率經過運算,產生同樣穩定度和精度的大量離散頻率技術,一定程度上解決了既要頻率穩定、精確,又要頻率在較大范圍內可變的矛盾。 1 DDFS的原理和特點 1.1 DDFS的基本原理 DDFS的基本原理圖如圖1所示。 一個完整輸出波形的周期、幅值都被順序地存放在RAM中。當RAM的地址變化時,DAC將該波形數據轉換成電壓波形,該電壓波形的頻率與RAM地址變化的速率成正比。DDFS發生器使用了相位累加技術,以控制波形在RAM中的地址。它用一個加法器代替計數器來產生RAM的順序地址。在每一個時鐘周期,存儲于相位遞增寄存器(Phase Increment Register,PIR)中的常數都被加到相位累加器的當前結果上。相位累加器輸出的最大有效位數被用來確定波形在RAM中的地址。通過改變PIR的常數,確定每個周期中的點數,而這些點數正是用來改變整個波形的頻率。當一個新相位遞增寄存器的(PIR)常數被存進寄存器中,波形的輸出頻率便隨下一個時鐘周期連續地改變相位。相位累加器將依據PIR中存儲的常數來改變RAM的地址,若PIR數值很小(即頻率較低)時,累加器便逐步地經過每個RAM地址;當PIR的值較大時,相位累加器將跳躍某些RAM地址。 1.2 DDFS的特點 DDFS的特點如下: (1)DDFS的頻率分辨率在相位累加器的位數N足夠大時,理論上可以獲得相應的分辨精度,這是傳統方法難以實現的。 (2)由于DDFS中不需要相位反饋控制,頻率建立及頻率切換快,并且與頻率分辨率、頻譜純度相互獨立,這一點明顯優于PPL。 (3)DDFS的相位誤差主要依賴于時鐘的相位特性,相位誤差小。另外,DDFS的相位是連續變化的,形成的信號具有良好的頻譜,這是傳統的直接頻率合成方法無法實現的。 (4)DDFS的失真度除了受到D/A轉換器本身的噪聲影響外,還與離散點數N和D/A字長有著密切的關系。在高輸出頻率取樣點數32和相應的量化級數256條件下,失真度(5.676%)已經足夠小了。 2 系統設計 2.1 總體設計 系統框圖如圖2所示。 2.2 主要模塊設計 (1)波形產生電路模塊。用CPLD產生方波、正弦波、三角波和占空比可調的矩形波,從存儲器讀出波形數據,把數據交給D/A轉換器DAC0832進行轉換得到模擬波形。在CPLD內部采用層次化設計方法產生波形,底層采用硬件描述語言描述波形。 (2)鍵盤控制模塊。用單片機80C196接8255芯片控制4×5鍵盤,8255得到鍵盤碼,通過中斷服務程序把鍵盤信息送給單片機。 (3)LED顯示模塊。用8個LED數碼管顯示占空比和頻率值,接口電路簡單,控制方便。LED數碼管的質量輕,體積小,功耗低,接口簡單方便可與8位微處理器或控制器相連。 (4)單片機控制模塊。是系統的主控制器,用于控制其他模塊協調工作。該系統程序的代碼比較長,約幾十KB,使用80C196單片機,片內有ROM,不必擴展外部ROM。 該程序需要較大的RAM,以便進行波形存儲、失真度分析等操作。 2.3 參數計算 頻率參數計算如下: 波形頻率范圍為20 Hz~20 kHz;步進為10 Hz。因為根據公式:fout=Nfclk/2M,△f=fclk/2M=10 Hz,因此選取的時鐘頻率必須為2 MHz。另外要保證20 kHz以上時,取樣點數都是64點,這樣時鐘頻率必須大于10 MHz。該系統的時鐘頻率采用80 MHz。綜合考慮,相位累加器的時鐘頻率fx根據公式fx=fclk/(2Nfout)選取,相位累加器位數為16位,頻率步進為fs=fx/216=10。相位增量寄存器為16位,故最高輸出頻率為20 kHz。 D/A轉換器的轉換時間為1μs,可以保證在輸出頻率為1 MHz時,輸出64個樣點。用單片機輸出控制信號與數據,CPLD芯片作為系統實現。 2.4 幅度控制 D/A轉換器是實現幅度可調和任意輸出的關鍵,以此來控制信號發生器的輸出電壓。D/A轉換器中電流的建立時間將直接影響到輸出的最高頻率。該系統采用的是DAC0832,電流建立時間為1μs,在最高頻率點,一個周期輸出64個點,可輸出20 Hz~20 kHz的頻率信號。幅度控制用8位D/A控制,最高峰值為12.7 V,因此幅度分辨率為0.1 V。 2.5 濾波、緩沖輸出電路 D/A轉換器輸出后,正弦波通過濾波電路、輸出緩沖電路對信號去毛刺,使信號平滑且具有負載能力。運放選用高速寬帶運放TL084,截止頻率約為1 MHz,20 kHz以內幅度平坦。 為了保證穩幅輸出,選用OCL功放電路,得到的頻率特性好,波形失真小,具有很強大的電流驅動能力。實際電路測量結果表明,當負載為100 Ω,輸出電壓峰值為12 V時,帶寬大于20 kHz,幅度變化小于±1/100。 3 調 試 調試過程分三大部分:硬件調試、軟件調試、軟硬件聯調。電路按模塊調試,各模塊逐個調試通過后再聯調。單片機軟件先在最小系統板上調試,確保外部EPROM和RAM工作正常之后,再與硬件系統聯調。 3.1 軟件調試 該系統的軟件系統很大,全部用80C196來編寫,由于一般仿真器對196的支持都有一定的缺陷,調試比較復雜。除了語法差錯和邏輯差錯外,當確認程序沒問題時,通過直接下載到單片機來調試。采取的是自上到下的調試方法,即單獨調試好每一個模塊,然后再連接成一個完整的系統調試。 3.2 硬件調試 (1)CPLD控制電路的調試。該系統的CPLD采用EPM7128SLC84-15。調試時,使用存儲示波器顯示CPLD的輸出波形,以發現時序與仿真結果是否有出入,便于找出硬件電路中的故障。 (2)高頻電路抗干擾設計。CPLD的時鐘頻率很高,對周圍電路有一定影響。這里采取一些抗干擾措施,如盡量縮短引線,減少交叉,使每個芯片的電源與地之間都接有去耦電容,并將數字地與模擬地分開、敷銅等。實踐證明,這些措施對消除某些引腳上的“毛刺”及高頻噪聲的效果很好。 (3)運算放大器的調試。由于輸出頻率為20 Hz~20 kHz,因此對放大器的帶寬有一定要求,所以在調試濾波電路和緩沖輸出電路時,都選擇了高速寬帶運放TL084。 3.3 軟、硬聯調 該系統軟件與硬件之間的聯系不是十分緊密,一般是軟件計算完畢后,將數據存入ROM,CPLD讀取單片機系統的數據,進行運算、邏輯分析,從而產生波形。因此在軟、硬件都基本調通的情況下,系統的軟、硬件聯調難度不大。輸出波形的頻率范圍測試數據如表1所示。 由表1可以看出,在頻率穩定度方面,正弦波、方波、三角波在帶負載的情況下均十分穩定,這正體現了DDFS技術的特點,輸出頻率穩定度和晶振穩定度在同一數量級。脈沖波占空比的調試如表2所示。 由表2可以看出,占空比可以在10%~90%范圍內預置。在20 kHz正弦波條件下測得的輸出波形幅度數據如表3所示。 由表3可見,電壓穩定度方面,在電壓的絕對值和預置值之差及帶負載和不帶負載的情況下,輸出電壓之差均小于±1/100。 4 結 語 系統采用DDFS技術和單片機控制CPLD的方法,實現了常用的正弦波、方波、三角波和占空比可調的矩形波,頻率范圍為20 Hz~20 kHz。利用LED顯示波形的類型、頻率和幅值,并具有輸出電路保護功能。經實際調試,該系統的頻率范圍寬,步進小,幅度和頻率的精度高。 |