楊巍
摘 要:數(shù)字信號發(fā)生器作為科研和從事電子設計工作的一項重要設備,相比傳統(tǒng)的模擬信號發(fā)生器,它具有測量信號的準確度高、精度高、變換速度快等優(yōu)點。文獻介紹的一種數(shù)字信號發(fā)生器,是由FPGA芯片通過設計并制作完成的。文中重點討論了如何用FPGA實現(xiàn)碼率、濾波器設計、恢復時鐘的電路設計等,可為參與數(shù)字信號發(fā)生器設計的工作人員提供一定的參考價值。
關鍵詞:數(shù)字信號發(fā)生器;FPGA;濾波器;恢復時鐘
中圖分類號:TP2735 文獻標識碼:A 文章編號:1006-8937(2016)05-0081-02
1 設計的基本要求
本數(shù)字信號發(fā)生器要求輸出5V-TTL電平,其中高電平為2.4 ~5 V,低電平為0 ~0.4 V,碼率為10~100 kpbs,步進率為10 kpbs,誤差小于1%。
2 芯片的選取與論證
2.1 方案1
采用高性能單片機,如ARM公司的Cortex-M3,它是32位的CPU,具有完全基于硬件的中斷處理,并可用定時器做10 us、11.1 us、12.5 us、14.3 us……的定時中斷,在中斷服務函數(shù)里做移位、異或運算,可以實現(xiàn)設計要求要求,但性能稍顯勉強。
2.2 方案2
采用CPLD/FPGA芯片,如xilinx的artix-7系列的FPGA芯片。在設計的技術參數(shù)中有偽隨機噪聲10Mbps的碼率要求,故均采用CPLD/FPGA比較合適。由于設計允許的碼元周期的最大誤差為:1/100 k,1/101 k = 99 ns,1/99 ns = 10.1 MHz,因此CPLD/FPGA的工作時鐘大于10.1MHz即可保證1%的碼率誤差。
目前大部分主流的單片機、CPLD、FPGA的IO電平為3.3 V-LVCMOS,或3.3 V-LVTTL,其輸出特性是可以滿足TTL電平輸出要求的。
綜上所述,應選用FPGA的核來完成本次數(shù)字信號發(fā)生器的設計。
3 濾波器的設計
數(shù)字信號發(fā)生器中對濾波器的要求是:截止頻率100 kHz、200 kHz、500 kHz,誤差不大于10%,在100 kbps的碼率下,數(shù)百kHz的截止頻率已比較接近傳輸帶寬要求,用于模擬非理想信道的傳輸特性。10%的誤差要求并不算高,但如果采用運放做有源濾波器,應考慮運放的非理想特性,設計電路后,可采用具體的仿真模型仿真整個電路,修調(diào)R、C值,以達到要求。且設計成通帶增益0.2~4.0可調(diào),濾波與4倍增益可同時完成,然后通過電位器分壓,也可電位器分壓后在經(jīng)過4倍同相放大。
此外,帶外衰減不小于40 dB/Dec,因此要考慮至少采用2階及以上的濾波器,因?qū)嶋H濾波器可能不夠精準,為求穩(wěn)妥,最好采用3階濾波器(60 dB/Dec)。當然,也可采用3階無源濾波器,電路簡單,但需匹配輸入、輸出阻抗,誤差也不易做??;如果采用運放做有源濾波器,只需1~2個運放完成;或者采用通用濾波器芯片,如美信公司的MAX297(低通濾波器)和MAX263(高通濾波器)來直接完成。
3.1 采用運放實現(xiàn)
我們設計中采用Filter Solution,TI-TINA等軟件設計濾波器,運放可采用TL081(082, 084)等常見運放芯片,其帶寬增益積為3 MHz,滿足這里的濾波器要求。
最大增益時輸出信號電壓 0 ~20 V,因一般運放最大供電電壓約30 V,可采用同相濾波放大配合不對稱電源供電(25 V, -5 V),如果要在濾波同時做放大,不宜做反相放大,否則電源供電難于處理。由運放實現(xiàn)的濾波電路,如圖1所示。
3.2 采用專用芯片實現(xiàn)
我們可以采用通用高通或低通濾波器,例如LT1562-2和LT1568,使用時在外部僅需使用電阻配置截止頻率,若用LT1562-2,則需四個可組成一個2階單元,可配置為兩個4階濾波器,通帶帶寬為20~300 kHz;若用LT 1568,則需兩個芯片,組成一個2階單元,也可配置為一個4階濾波器,通帶帶寬為 200 kHz~5 MHz。
在具體應用時要注意的是,它們的供電電壓最大為雙5V,不能提供增益,若用于此設計,必須另外在后級做4倍增益。由專用芯片設計的濾波器電路,如圖2所示。
4 偽隨機信號發(fā)生器的設計
此部分設計與數(shù)字信號發(fā)生器相似。設本原多項式:
f2(x)=1+x+x4+x5+x12
碼率10 Mbps,因此此部分設計必須采用CPLD或FPGA來完成,10 Mbps的碼率下,該偽噪聲的功率譜密度在數(shù)百kHz處已非常平坦,完全可當做白噪聲處理。輸出峰峰值100 mV,誤差不大于10%,CPLD/FPGA輸出后通過電位器分壓并調(diào)整準確,但最好后面用運算放大器做電壓跟隨電路。
5 恢復時鐘電路的設計
本設計的編碼信號(數(shù)字基帶)的碼率是不確定的(11種可能值),為恢復時鐘增加難度。通常而言,恢復時鐘電路的設計方法有濾波法、鎖相環(huán)法、直接測周/測頻法。
5.1 濾波法
將基帶信號進行波形變換后使用窄帶濾波器提取其中的時鐘頻率成分,但本題基帶碼率不確定,不宜采用;如果窮舉11種碼率需要11個窄帶濾波器,太復雜。
5.2 鎖相環(huán)法
采用異或門鑒相器的鎖相環(huán),鎖定范圍有限(±90 °相差,兩倍頻以內(nèi)),對于本題不太實用,采用11種不同的初始頻率去窮舉或許可以,但沒有仿真或?qū)嶒烌炞C。
5.3 雙觸發(fā)器鑒頻法
當編碼輸入相位超前時,環(huán)路濾波計數(shù)器加計數(shù),數(shù)控振蕩器計數(shù)步進(相角步進)增加,輸出頻率增加。實際上,NCO初始化頻率取決于環(huán)路濾波計數(shù)器的初始值。本設計采用上述方法完成恢復時鐘的設計,除此之外,我們還可以采用方法4和方法5來完成設計。
5.4 直接測周并同步
我們可以檢測一小段時間內(nèi)曼碼的最大/最小跳沿間隔(碼元周期/周期的一半),讓計數(shù)器以此為模循環(huán)計數(shù),并在合適地跳沿出現(xiàn)時清零。
5.5 直接測頻并同步
這種方法是在一小段時間內(nèi)計曼碼的跳沿個數(shù),根據(jù)4/3的關系確定碼率,確定碼元周期,讓計數(shù)器以此循環(huán)周期計數(shù),并由曼碼的跳沿清零。
6 TTL電平和幅度的控制
根據(jù)前面所述,希望TTL輸出高電平接近上限5 V,可采用 5 V供電的74HCT244作緩沖輸出,其輸入高電平僅要求2 V以上,可接受FPGA的輸出,而輸出可以很接近電源軌。
在這里,我們將74HCT244輸出后經(jīng)過電位器控制衰減后在經(jīng)過運放進行電壓跟隨,以保證電平輸出的低輸出內(nèi)阻。電路如圖3所示。
7 結(jié) 語
數(shù)字信號發(fā)生器的設計是一項很復雜的工作,限于篇幅,在此文中只能介紹有限的設計方法和經(jīng)驗,望同行的科技工作人員和學者多提寶貴意見,讓我們把數(shù)字信號發(fā)生器做得更好。
參考文獻:
[1] 秦龍.MSP430單片機常用模塊與綜合系統(tǒng)實例精講[M].北京:電子工 業(yè)出版社,2007.
[2] 黃根春,周立青,張望先.全國大學生電子設計競賽教程-基于TI器件 設計方法[M].北京:電子工業(yè)出版社,2011.
[3] 羅杰.Verilog HDL與FPGA數(shù)字系統(tǒng)設計[M].北京:機械工業(yè)出版社,
2015.