基于FPGA的模擬信號波形的設計
1 引言
本文引用地址:http://dyxdggzs.com/article/150104.htm波形發(fā)生器已經(jīng)廣泛的應用在通信、控制、測量等各個(gè)領(lǐng)域,如鋸齒波、正弦波、方波等波形常用于電路的設計與調試。隨著(zhù)電子技術(shù)的迅猛發(fā)展,數字化正逐漸地成為電子產(chǎn)業(yè)的發(fā)展趨勢,各公司都將自己的產(chǎn)品向數字化、集成化、小型化等方向進(jìn)行拓展。眾所周知,數字化的電子產(chǎn)品有其不可替代的優(yōu)勢,譬如體積小、集成程度高、抗干擾能力強等特點(diǎn)。但是,數字電路只能夠較好地處理脈沖波形,即只對l和0形成的方波處理得很好.對于連續漸變的信號不能夠很好地處理,而這恰恰正是模擬電路的優(yōu)勢所在。本文將數字電路與模擬電路相結合,即通過(guò)FPGA來(lái)產(chǎn)生所需各種模擬波形的控制信號,然后通過(guò)模擬電路來(lái)處理漸變信號,這樣町以得到各種清晰的波形。
2 示波器顯示原理
首先,對示波器的顯示原理進(jìn)行簡(jiǎn)要地說(shuō)明,以便更好地了解硬件電路的工作過(guò)程。在整個(gè)顯示期間,示波器需要始終處于“X-Y”檔,即爾波器的波形是 X軸和Y軸輸入信號的疊加合成顯示??芍?,一般情況下,x軸輸入的變量為信號頻率,Y軸輸入的變量為信號幅度。因此,當在x軸上輸入5KHz的信號頻率值,在Y軸上輸入0V的直流電壓幅度時(shí),在示波器位于(5KHz,0V)的位置處就會(huì )顯示出一個(gè)亮點(diǎn);同理,若在Y軸上輸入5V的直流電壓幅度,而在x軸上輸入0Hz的信號頻率值時(shí),在示波器位于(0Hz,5V)的位置處也會(huì )顯示出一個(gè)亮點(diǎn);而如果在x軸和Y軸上的輸入分別為5KHz、5V時(shí),則亮點(diǎn)就會(huì )出現在示波器上的(5KHz,5V)處。這樣,如果通過(guò)程序不間斷地對兩個(gè)坐標軸進(jìn)行賦值,就可以在示波器上顯示出一條清晰.連續的信號波形。
3 硬件設計
本文主要詳細地介紹了常用信號中階梯波和鋸齒波的模擬波形設計,它們的模擬電路實(shí)現簡(jiǎn)單,并且實(shí)際的輸出波形清晰。方案中的硬件電路主要是南DSP、 FPGA以及外圍芯片構成,DSP用于控制模擬波形的輸出位置和幅度;外圍芯片用來(lái)進(jìn)行模擬波形的產(chǎn)生,如利用兩個(gè)DAC0832來(lái)產(chǎn)生兩路電壓信號,一個(gè)用于控制鋸齒波的高度,另一個(gè)用于控制階梯波的高度。而FPGA則進(jìn)行所需的各種控制信號的邏輯編程。
這里,FPGA采用的是ALTERA公司的10K10系列的可編程邏輯器件。ALTERA公司的FLEX 10K系列器件是業(yè)界第一塊嵌入式可編程邏輯器件,為柔性邏輯元素陣列架構,利用通用的門(mén)海架構來(lái)實(shí)現一般性的邏輯功能,還采用專(zhuān)用的硅片來(lái)實(shí)現規模較大的專(zhuān)用功能。和標準的門(mén)陣列比較,由于嵌入式功能在硅片上實(shí)現,所需的硅片面積更小、系統速度更高。FLEX 10K系列不僅能提供高密度、高速度和系統集成功能,并且在單個(gè)器件內部包含多重32比特總線(xiàn)、*4比特的RAM空間,還支持串行與并行兩種配置方式及JTAG模式的在線(xiàn)仿真,這些特點(diǎn)都使得FLEX IOK系列器件成為目前應用最為廣泛的可編程邏輯器件之一。與之對應,采用的開(kāi)發(fā)工具是MaxplusⅡ可編程邏輯開(kāi)發(fā)軟件,利用MaxplusⅡ作為 EDA的軟件工具,可實(shí)現強大的邏輯功能,還具有周期短、集成度高、價(jià)格合適等優(yōu)點(diǎn)。并且,由于電路的邏輯模塊都是在FPGA中實(shí)現的,因此,它們具有良好的可移植性和易維護性等特點(diǎn),并方便以后系統的改進(jìn)。同時(shí),這也進(jìn)一步地減少了電路板面積,使電路的集成度大大地提高。在本設計方案中,主要是使用 FPGA來(lái)進(jìn)行各種模擬波形的控制編程,產(chǎn)生各種邏輯用以作為其控制信號。其中,FPGA中邏輯控制的結構框圖如圖1所示,可分為三個(gè)部分,而粗掃、精掃信號是作為鋸齒波的控制信號。
圖1 FPGA中控制信號模塊功能框圖
FPGA的工作過(guò)程為:首先,對輸入的32KHz時(shí)鐘信號以計數器進(jìn)行分頻,產(chǎn)生一個(gè)1600Hz的窄脈沖信號,它一方面作為外部模擬波形產(chǎn)生電路的掃描觸發(fā)信號,另一方面作為鋸齒波控制信號的工作起始信號,即該信號每到來(lái)一次,就啟動(dòng)其它功能模塊,按照需要的時(shí)序產(chǎn)生所需的控制信號。由圖1可知,1600Hz頻率到來(lái),會(huì )打開(kāi)精掃計數器與粗掃計數器的輸入時(shí)鐘(2MHz),并啟動(dòng)二者的初始裝載過(guò)程,然后以這個(gè)初始值對輸入脈沖進(jìn)行減法計數,當減法溢出時(shí),輸出端就會(huì )產(chǎn)生所需的掃描信號。同時(shí),還要利用該信號關(guān)閉各自的輸入時(shí)鐘信號,直到下一個(gè)1600Hz的到來(lái)。當經(jīng)過(guò)邏輯運算改變減法計數器的8位初始值時(shí),輸出信號的時(shí)刻相對于1600Hz信號來(lái)講,就會(huì )有相應的變化。通過(guò)這種邏輯方式,就可以控制各種模擬波形的出現時(shí)間,從而能夠控制示波器上各種波形的顯示位置。其中,減法計數器初值的改變是通過(guò)一個(gè)8位鎖存器來(lái)實(shí)現,即將DSP的地址線(xiàn)、讀/寫(xiě)信號線(xiàn)及I/O空間的訪(fǎng)問(wèn)控制線(xiàn)進(jìn)行邏輯運算,作為8位鎖存器的選通信號,然后利用程序將8位數據寫(xiě)入減法計數器。
而階梯波控制信號則是完全由軟件程序來(lái)實(shí)現,即根據其各種時(shí)序,在不同的時(shí)刻將不同的數據寫(xiě)入FPGA中進(jìn)行鎖存,然后經(jīng)由D觸發(fā)器輸出用以控制信號的產(chǎn)生。為了滿(mǎn)足系統的需要,還設計了一個(gè)控制波形寬度變化的邏輯用以產(chǎn)生顯示所需的不同寬度的脈沖序列,其T.作方式是將兩個(gè)不同頻率的方波信號和一個(gè)D觸發(fā)器的輸出端D與,D分別作邏輯與操作,然后再進(jìn)行邏輯或運算,再通過(guò)程序來(lái)改變D觸發(fā)器的輸出狀態(tài),從而得列具有兩種寬度的輸出脈沖。
評論