摘要:設計了以FPGA為核心采集模塊,以單片機為顯示控制核心,以TFT彩屏液晶為顯示器件的便攜數(shù)字存儲示波器。通過異步FIFO實現(xiàn)了FPGA中高速數(shù)據(jù)流與單片機處理速度之間的速率匹配。以三總線結(jié)構(gòu)以及控制信號的握手協(xié)議為基礎,保證了FPGA與單片機通信的有效性和可靠性。該系統(tǒng)具有自動頻率控制(AFC)和自動增益控制(AGC)的功能,可以方便地對信號進行測量。
關鍵詞:FPGA;TFT液晶;異步FIFO;數(shù)字存儲示波器
在現(xiàn)代通信、雷達和航空航天等應用領域,由于設備復雜度和集成度的不斷增加,在進行外場維護和測試時,通常需要借助于示波器等一些輔助的電子測量儀器來觀察信號的波形并進行相關參數(shù)的測量。目前,現(xiàn)代化的數(shù)字存儲示波器以其獨特的優(yōu)勢逐步取代了模擬示波器,對信號的測量帶來了很大的便利。然而,外場測試及維護工作的實際需要對示波器這樣的測量儀器也提出了更多的要求,除了成本的限制以外,在體積、精度、實時性以及使用的靈活性等方面也有了更高的標準。常用的示波器一般體積比較大,成本高,這就使它的應用受到了一些限制。在這種情況下,開發(fā)低成本便攜的手持示波器,將會大大提高其應用空間,為設備的外場維護和測試工作提供更多的便利。
本文針對實際需要,設計了以FPGA為核心采集模塊,以單片機為顯示控制核心,以TFT彩屏液晶為顯示器件的便攜數(shù)字存儲示波器。FPGA與高速A/D獲取波形采樣數(shù)據(jù),通過單片機完成彩屏的初始化,合理設計出單片機與FPGA通信的總線握手協(xié)議,配合異步FIFO作為數(shù)據(jù)緩沖模塊,實現(xiàn)了邊采集邊顯示的效果。該系統(tǒng)具有小型化、操作簡單、采樣率高、動態(tài)范圍大、精度高、實時性強和波形顯示效果連續(xù)穩(wěn)定的特點,同時還具有自動頻率控制和自動增益控制的功能,具有很廣闊的應用空間。
1 系統(tǒng)組成與工作原理
1.1 系統(tǒng)組成
系統(tǒng)主要由信號調(diào)理電路、核心采集模塊、單片機處理模塊和液晶外圍電路組成。信號調(diào)理電路由繼電器、增益控制D/A、兩級可變增益放大器AD603和保護電路組成,主要用于對輸入信號進行程控的衰減與放大,使信號在最佳的測量和顯示量程范圍內(nèi)。核心采集模塊以FPGA和高速A/D為核心,實現(xiàn)對信號的高速采樣處理以及與單片機的通信。單片機處理模塊接收波形數(shù)據(jù)并控制LCD進行譯碼顯示。液晶外圍電路為LCD提供合適的工作電壓,并對液晶模塊與單片機的接口電路進行設計。系統(tǒng)組成的總體框圖如圖1所示。
1.2 系統(tǒng)工作原理
根據(jù)輸入信號電平的范圍,F(xiàn)PGA發(fā)出控制信號控制調(diào)理電路的增益,將信號電平調(diào)整到最佳采集范圍。在FPGA內(nèi)配置兩塊異步FIFO作為采集數(shù)據(jù)的緩存區(qū),實現(xiàn)高速采集與單片機讀取速度之間的匹配。高速A/D在系統(tǒng)時鐘的驅(qū)動下采集波形數(shù)據(jù),并由FPGA測出信號的電壓和頻率。根據(jù)信號頻率的不同,按照程序的預設選擇最佳的時基,控制FIFO的寫時鐘信號,而讀FIFO的時鐘信號則固定不變,這樣就可以在屏幕上得到最適合觀察的信號波形。該系統(tǒng)的量程設置和時基選擇完全由程序控制,不需要手動設置就可以自動將信號波形調(diào)整到最佳觀察狀態(tài)。
2 系統(tǒng)硬件設計
系統(tǒng)硬件主要實現(xiàn)對輸入信號的程控衰減放大、過壓保護,信號的采集處理,采集數(shù)據(jù)的傳輸以及單片機與液晶模塊接口電路等,系統(tǒng)硬件總體框圖如圖2所示。
2.1 信號調(diào)理電路
信號調(diào)理電路實現(xiàn)了對輸入信號的程控衰減放大,它由增益變化范圍線性連續(xù)可調(diào)的可控增益放大器AD603組成。通過FPGA,結(jié)合8位D/A轉(zhuǎn)換芯片CA3338E,對兩片AD603引腳端的輸入電壓進行控制,增益和控制電壓關系為:
其中,Vc1,Vc2分別表示兩片AD603的控制電壓。
在工作時,F(xiàn)PGA輸出控制信號,使繼電器對輸入信號進行100倍衰減。衰減后的信號經(jīng)A/D轉(zhuǎn)換后采集到FPGA中,根據(jù)預先設置的檔位判斷信號所屬的范圍。如果信號幅度過低,不在這些范圍之內(nèi),則FPGA重新發(fā)出控制信號,并減小對輸入信號的衰減倍數(shù),直到衰減后的信號滿足最佳測量范圍為止。對應于每個檔位的信號,輸出一個8位的數(shù)字信號至CA3338E芯片,并將其輸出的模擬信號加到AD603的輸入端,得到不同的放大倍數(shù),完成信號的程控衰減放大。信號調(diào)理電路實現(xiàn)了自動增益控制的功能,有效地提高了輸入信號的動態(tài)范圍。
2.2 FPGA核心板模塊
FPGA核心板是系統(tǒng)的核心,一方面負責采集并緩存數(shù)據(jù),另一方面實現(xiàn)與單片機的通信。FPGA最小系統(tǒng)板采用的是Xilinx公司SpartanII系列的XC2S200-PQ208型20萬門芯片,其配置芯片為Xilinx公司的專用配置PROM芯片XCF02S,以實現(xiàn)加電自動配置。核心板采用5 V輸入,板上有兩塊LM317電源芯片分別輸出3.3 V和2.5 V電壓。板上采用40 MHz有源晶振,滿足高速設計要求。
2.3 高速A/D模塊
本系統(tǒng)選用ADI公司的12位高速模/數(shù)轉(zhuǎn)換芯片AD9224,完成對模擬信號的A/D采樣功能,該芯片具有極佳的動態(tài)無雜波失真范圍。AD-9224的電源由+5 V的模擬電源和+3.3 V的數(shù)字電源組成。為減少A/D轉(zhuǎn)換結(jié)果的二次諧波,提高信噪比(RSN),A/D芯片前端采用AD8138組成信號調(diào)理電路將單端信號轉(zhuǎn)換成差分信號輸入。該放大器的輸入阻抗高達6 MΩ,可以直接與輸入信號相連從而省略隔離放大器,因而可大大精簡了電路結(jié)構(gòu)。AD9224的外圍電路設計如圖3所示。
2.4 單片機與液晶模塊接口
單片機使用C8051F020,它是一種高集成度的混合信號片上系統(tǒng),有按8位端口組織的64個數(shù)字I/O引腳。液晶模塊采用ILI9320片上系統(tǒng)(SoC)驅(qū)動器,支持26萬色顯示,分辨率為240 RGBx320像素,圖像數(shù)據(jù)存儲區(qū)的大小為172 800字節(jié)。ILI9320與MCU之間有4種總線接口方法,分別為i80系統(tǒng)總線、串行總線、RGB總線和VSYNC總線。本系統(tǒng)中采用i80總線進行控制,通過讀使能(RDB)和寫使能(WRB)2條控制線進行讀寫操作,其中數(shù)據(jù)線的寬度為8位,液晶模塊中的控制信號和數(shù)據(jù)信號均為標準的TTL電平,應用時直接與單片機的GPIO總線相連。
3 系統(tǒng)軟件設計
系統(tǒng)軟件設計主要完成對程控衰減放大電路的控制,時基的選擇,異步FIFO設計,F(xiàn)PGA與單片機的通信協(xié)議設計,波形參數(shù)測量以及波形顯示中的觸發(fā)設置等。軟件設計總體框圖如圖4所示。
3.1 異步FIFO設計
A/D采樣得到采樣數(shù)據(jù)的數(shù)據(jù)率很高,為了保證單片機讀取數(shù)據(jù)的有效性和可靠性,系統(tǒng)中使用異步FIFO對數(shù)據(jù)進行緩存。FIFO的設計是通過配置FPGA內(nèi)部的BlockRAM資源實現(xiàn)的。為了實現(xiàn)邊采集邊顯示的目的,配置兩塊相同的FIFO,在讀寫時鐘的控制下,通過讀使能和寫使能信號的設置,使得在同一時刻始終有一塊FIFO在進行寫操作,而另一塊FIFO在將寫滿的數(shù)據(jù)讀出。而對于同一塊FIFO不允許讀寫信號同時有效,這樣接收A/D數(shù)據(jù)和讀取數(shù)據(jù)并交給單片機處理可以同時進行,從而保證數(shù)據(jù)傳輸?shù)倪B續(xù)性。
3.2 FPGA與單片機通信的實現(xiàn)
FPGA與單片機之間有效的通信是系統(tǒng)實現(xiàn)正常功能的重要前提,系統(tǒng)中通過數(shù)據(jù)總線,地址總線和控制總線將兩個模塊聯(lián)系起來。在FPGA中,將不同類型的數(shù)據(jù)存放到不同的地址中,這些數(shù)據(jù)包括實時采集到的波形數(shù)據(jù),測量得到的信號參數(shù)(電壓和頻率),當前的時基、垂直分辨率以及一些控制參數(shù)。單片機通過地址總線對FPGA的內(nèi)存進行訪問,并對讀取的數(shù)據(jù)做出相關的譯碼處理,并將處理結(jié)果實時顯示在液晶屏幕上。
控制總線包括讀使能和寫使能信號,分別控制異步FIFO的讀寫操作。當其中一塊FIFO中存夠指定數(shù)量的采樣數(shù)據(jù)以后,讀使能信號有效,單片機開始接收數(shù)據(jù),此時另一塊FIFO開始寫入采集數(shù)據(jù)。當數(shù)據(jù)接收完畢后,單片機向FPGA發(fā)出寫使能信號,此時兩塊FIFO交換功能,單片機控制LCD將波形實時顯示出來,并以此循環(huán)交替工作。這種異步總線握手協(xié)議的設計,使得單片機的讀和FIFO的讀寫協(xié)調(diào)工作,大大提高了數(shù)據(jù)傳輸?shù)目煽啃浴?br />
3.3 波形參數(shù)的測量和觸發(fā)囂的軟件實現(xiàn)
對信號參數(shù)的測量是示波器的重要功能,本系統(tǒng)可以測量輸入信號的頻率和電壓。在FPGA內(nèi)利用等精度測頻技術和比較法分別進行測頻和測壓,由單片機通過地址線讀取數(shù)據(jù)并完成數(shù)據(jù)的譯碼和顯示。
觸發(fā)器是示波器的重要組成部分,通過觸發(fā)器產(chǎn)生的控制信號,控制示波器對波形數(shù)據(jù)的存儲和顯示,達到穩(wěn)定同步的目的。本系統(tǒng)設計的觸發(fā)器,采用全數(shù)字化結(jié)構(gòu),大大降低了系統(tǒng)硬件電路的復雜性,并且觸發(fā)條件的調(diào)整比較方便。觸發(fā)器通過引用單片機內(nèi)部的RAM資源定制了一個采集數(shù)據(jù)的緩存區(qū),將波形數(shù)讀入該緩存區(qū),按照預先設定的觸發(fā)門限,將緩存區(qū)中的數(shù)據(jù)讀出,如果滿足觸發(fā)條件,則將數(shù)據(jù)在屏幕上顯示出來。
4 系統(tǒng)調(diào)試和測試
在完成了系統(tǒng)的硬件設計和軟件設計以后,需要進行綜合調(diào)試和測試。通過調(diào)試,不斷優(yōu)化程序代碼,使系統(tǒng)的性能得以提高,工作狀態(tài)更加穩(wěn)定。在進行測試時,輸入峰峰值為2 V,頻率為1 kHz的正弦信號,在LCD上觀察到的波形及測量參數(shù)如圖5所示。從圖中可以看出,波形顯示穩(wěn)定連續(xù),測量信號參數(shù)的精度高,且包含彩色信息豐富。
5 結(jié)束語
研究了以TFT彩屏液晶作為顯示器件的手持數(shù)字存儲示波器的總體方案,即信號調(diào)理電路,核心采集模塊,單片機處理模塊和液晶外圍電路組成。在確定總體方案的同時,給出了實現(xiàn)此總體方案的具體方法。
通過握手協(xié)議合理解決單片機與FPGA通信的問題,用軟件設計了數(shù)字觸發(fā)器,取代了一般示波器中常用的觸發(fā)電路,降低了系統(tǒng)的硬件復雜度。該數(shù)字存儲示波器允許輸入信號的動態(tài)范圍大,體積小,便于攜帶,操作簡單,具有很高的應用價值和廣闊的發(fā)展空間。