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