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