姜 斌,李豐璞,包建榮,劉 超,郭春生
(杭州電子科技大學 a.通信工程學院;b.信息工程學院,杭州 310018)
作為常見的電子測量儀,示波器能測量并顯示信號波形及相關參數,已被廣泛用于各類科學研究及生產實踐[1-2]。隨著集成電路和信息技術的發展,傳統示波器波形不穩定、測讀易老化而不準確、功能單一等缺點逐漸突顯,已無法滿足現代科研和測量等諸多應用。其中,國內一些理工類高校實驗室常使用國產數字示波器輔助本科教學,其成本區間約為1 000~3 000元,其中,電信類科研實驗室使用的一些國外多功能示波器價格高達萬元,成本高昂,購買不易[3]。
虛擬示波器主要將計算機和現代測量技術融合,使用軟件代替傳統示波器部分硬件功能,利用計算機顯示器代替傳統示波器物理面板[4]。相比傳統示波器,虛擬示波器在波形顯示,功能多樣化,成本控制等方面都更具有靈活可配置及低成本等優勢[5]。但現有的虛擬示波器仍存在成本較高,信號處理接口不公開,難以擴展信號處理算法而無法適應不同測試場景等缺陷。基于此,本文使用壓縮感知(Compressed Sensing,CS)信號處理技術,并將STM32單片機、現場可編程門陣列(Field-Programmable Gate Array,FPGA)等模塊與個人微機(Personal Computer,PC)結合作為硬件平臺,研制了具有50 MB帶寬,100 MS/s采樣頻率的低成本功能可擴展虛擬示波器。該示波器在優化了傳統示波器的信號波形顯示、測量等功能的基礎上,還實現了頻譜分析、掃頻輸出及幅頻測量等信號特征顯示的擴展功能,具有配置靈活,功能多,成本低廉,便攜性好等優勢,便于教育界和工業界的大批量推廣應用。
該虛擬示波器的整體布局由高速通用串行總線(Universal Serial Bus,USB)數據采集模塊與PC軟件信號處理端兩部分構成。高速USB數據采集模塊采用STM32單片機與FPGA模塊為核心組成的集成式結構。其中,FPGA模塊負責高速數字信號處理,包括高速數據采集和緩存;STM32單片機為高速USB數據采集模塊的主控制器,主要完成了數據流控制與傳輸并通過控制USB接口完成數據采集模塊與PC軟件信號處理端的對接。PC軟件信號開發使用微軟公司的Visual Basic編程語言,一方面通過高速USB接口接收下位機發送的波形信號,利用軟件編程完成各波形顯示、測量以及變換,實現虛擬示波的窗口化顯示;另一方面向數據采集模塊發送各類指令,使虛擬示波器實現信號發生器、頻譜儀、掃頻儀等新型功能。該虛擬示波器的典型應用場景如圖1所示。

圖1 虛擬示波器應用場景圖
圖1同時展示了該多功能虛擬示波器的兩種應用場景。左側所示為下位機與便捷式PC相連構成的虛擬示波器。數據采集模塊未封裝體積約為10 cm×7 cm×3 cm,不到傳統示波器體積的5%,其便攜性相比傳統示波器有質的提升[6]。該下位機與便攜式電腦的組合非常適合個人攜帶,可應用于各類現場測試和生產實踐,并極大降低了運輸及人力成本。右側為實驗室科研及教學應用場景,本新型虛擬示波器同時具備信號發生功能,集成下位機于PC上位機相結合可同時實現示波器功能及信號發生器功能,可同時代替傳統示波器以及傳統信號發生器,集成下位機制造成本低廉,大大節省了電信類實驗室科研和教學的費用成本。
虛擬示波器的硬件模塊框圖如圖2所示。其中,數據采集模塊主要包括了模擬信號預處理接口芯片、高速AD/DA轉換器、STM32核心處理器、FPGA信號處理芯片、高速USB接口芯片及其配套的電源管理等外圍芯片與線路。

圖2 虛擬示波器硬件模塊設計框圖
硬件模塊由集成運放電路OPA2356芯片和模擬開關CD4053芯片組成,并實現兩個功能。首先,對該系統示波器功能中的輸入信號做預處理,通過分壓電阻及旁路電容對輸入信號濾波,實現信號的放大、衰減和電位平移,從而使得輸入信號位于AD采集范圍之內,避免波形失真;其次,對該系統信號發生器功能中的信號輸出處理,該模塊接收到高速DA轉換器發出的模擬信號后,先通過低通濾波處理,再根據STM32給出的指令完成信號的放大或衰減,最后將模擬信號輸出。
高速AD轉換模塊利用壓縮感知算法,壓縮進入AD芯片的信號,降低了信號最小采樣頻率,從而提高AD采樣效率。同時,降低芯片功耗和成本。AD芯片選擇滿足采樣頻率≥100 MS/s的低功耗芯片。DA轉換器模塊負責完成信號發生器功能中的信號轉換工作,該模塊由2個四位T形權電阻網絡串聯組成,具體包括電阻網絡、緩沖寄存器、模擬開關以及運放電路4部分,將FPGA模塊發出的數字信號轉為模擬信號,完成信號發生器的波形輸出。
模塊主體為一塊STM32集成芯片,該集成芯片擁有多個功能模塊,使用各模塊自帶的固件庫大大簡化了設計開發難度且降低了成本,使用STC-ISP燒寫軟件,將通過Keil編寫的固件程序下載至STM32中[7]。當系統實現示波器功能時,STM32芯片控制運放電路對進入AD轉換器的模擬信號放大、衰減等處理,使其不超過采集范圍,然后接收經過AD模塊以及FPGA模塊處理的信號并通過高速USB模塊將信號傳輸至上位機。當系統實現信號發生器功能時,STM32通過高速USB模塊接收上位機發出的指定波形數據,再將該數據發送給FPGA模塊,通過DA轉換器以及模擬信號處理模塊后輸出。
如圖2所示,為了同時實現虛擬示波器、信號發生器以及掃頻儀等功能,需在FPGA中開辟多個功能區域,實現采樣頻率控制、先進先出(First Input First Output,FIFO)數據緩沖、鎖相環(Phase Locked Loop,PLL)時鐘同步及只讀存儲器(Read-Only Memory,ROM)存儲。當系統實現示波器功能時,模擬信號經AD轉換器變為數字信號進入FPGA模塊中的FIFO數據緩沖區,再根據觸發條件將所需數據傳給STM32。同時,FPGA模塊對高速AD轉換器下達采樣頻率數據指令。當系統實現信號發生器功能時,FPGA模塊將STM32波形數據寫入ROM表。同時,對PLL時鐘模塊的頻率數據累加及譯碼。最后,FPGA模塊將ROM表中的波形數據按一定頻率發給DA轉換器。
STM32芯片內置一個兼容全速USB(12 MB/s)的設備控制器,且端點可由軟件自由配置[8]。高速USB接口模塊實現了數據采集模塊與PC軟件信號處理端的實時數據交換,根據本集成架構特性,設置其傳輸帶寬為50 MB。同時,下位機USB端口采用MiniUSB接口,壓縮了下位機體積,提高了便攜性。
下位機固件(Firmware)程序采用Keil編程軟件編寫。圖3所示為下位機固件程序流程圖。其中,圖3(a)為示波器功能流程圖,下位機根據上位機指令,以指定采樣頻率對接收信號采樣,并按指定觸發方式將波形輸至上位機。同時,也可對信號實現一定增益。其中,觸發方式有單次,多次及連續觸發3種,且信號增益效果區間為0.01~1 V/div,以滿足各場景需求。圖3(b)為信號發生器功能流程圖,下位機按照指令,以一定波形、頻率和幅值輸出波形信號。

(a)示波器功能

(b)信號發生器功能
圖3 下位機固件程序流程圖
信號處理部分則采用最新的CS算法,使輸入信號實現功率壓縮,降低了信號最小采樣頻率,從而加速了AD轉換效率,且減少了FPGA緩存空間。壓縮感知的應用流程如圖4所示。

圖4 壓縮感知流程圖
設待測信號先經AD變換至維度為1×N的離散實值信號向量X,再經稀疏矩陣變換將X表示為一組稀疏基ΨT=[Ψ1,Ψ2,…,Ψm,…,ΨM]的線性組合,且有:

(1)
式中:αk=〈X,Ψk〉;α與X是N×1矩陣;Ψ是N×N矩陣。當X在某組基Ψ上僅有K≤N個非零系數αk時,稱Ψ為信號向量X的稀疏基。該公式將X投影變換至稀疏投影區間,減小了信號功率,經稀疏變換壓縮的信號輸入FPGA緩存模塊,即可極大減少儲存需求,降低成本。接著,通過稀疏向量計算:?=ΨTX,得出壓縮采樣的觀測部分,并解碼重構信號。該過程主要圍繞觀測矩陣φ,其選擇是為了得到M個觀測值:yj=〈Θ,φj〉(j=1,2,…,M),以確保重構完整X,獲得的觀測向量
Y=φΘ=φΨTX=ACSX
(2)
式中:ACS=φΨT,且ACS為CS信息算子。該公式也可表示為X經矩陣ACS實施非自適應觀測。最后,利用0—范數優化問題求解X的精確或近似逼近值,完成信號的還原[9-10]:
(3)
上位機軟件實現了該虛擬示波器的可視化操作以及多功能開發,其開發平臺為VB,易于實現窗口化、模塊化設計[11-12]。上位機軟件至下而上可分為USB驅動模塊、功能實現模塊以及UI模塊。USB驅動模塊調用STM32自帶的USB接口相關程序庫,以實現在Windows操作系統下的自動安裝,USB的數據鏈采集與分析流程如圖5所示。

圖5 USB數據鏈采集與分析流程圖
虛擬示波器的功能實現模塊如圖6所示。上位機通過VB編程實現以下5類數據處理:信號源設置、波形/參數顯示、數字信號采樣、數據存儲/讀取、快速傅里葉變換,通過信號源設置對下位機下發相關指令(波形、頻率、幅值)以實現該系統的信號發生器功能;通過對接收信號采樣、數據存儲/讀取及波形/參數顯示處理,以實現示波功能;通過對采樣波形信號的快速傅里葉變化實現頻譜儀功能,實現功能拓展,完成DCT變換;此外,將下位機信號發生器的信號輸出端口與示波器信號輸入端口相連接,同時上位機通過信號源設置,使下位機發出頻率可變的掃頻信號,再利用示波器功能測量信號,輸出對應的幅值變化,繪制成幅頻特性曲線,從而實現該系統的掃頻儀功能。

圖6 上位機軟件功能流程圖
本文主要通過對待測信號的頻率響應測試,驗證壓縮感知對該示波器波形顯示的影響。如圖7所示,輸入一個隨機復頻信號,將未使用壓縮感知的信號與通過壓縮感知壓縮還原的信號的頻率響應對比,其頻率響應基本一致。壓縮感知使得該虛擬示波器的采樣頻率范圍提高了25%~30%,采樣速度提高了近35%。因此,除了極大地增加了AD芯片采樣效率,還釋放了FPGA緩存空間,降低了制造成本[13-14]。

(a)原始信號

(b)接收信號
圖7 CS技術頻率響應圖
壓縮感知提高了AD采樣效率,但使FPGA的輸入與輸出時鐘域不同步。另外,為了防止FPGA數據溢出,在FPGA模塊中使用異步FIFO結構。異步FIFO結構實現了對數據流的緩沖,使得速率較高,間隔較大的寫入數據變得平滑均勻,減少了空信號出現,增大了信號突變容錯率,從而有效防止了信號數據的溢出和丟失[15]。
通常,高功耗會使USB數據采集器因溫度過高而無法長期工作。為了保證該虛擬示波器長時間穩定運行,在USB傳輸模塊中,使用了門控時鐘屏蔽技術及動態調頻技術,以降低功耗。門控時鐘屏蔽技術使虛擬示波器在運行指定功能時,可斷開不相關模塊的時鐘和電源,且激活必要的運行模塊,從而降低靜態功耗。動態調頻技術根據各芯片工作的不同狀態,調節各模塊運行頻率和電壓,降低了系統運行動態功耗[16]。
為防止該虛擬示波器產生電磁干擾(Electromagnetic Interference,EMI)且減少靜電放電(Electrostatic Discharge,ESD)現象,下位機印制電路板板信號走線皆于同一層,且靠近電源層,實現電磁屏蔽;電源層使用低數值電感,減少瞬態信號,降低共模EMI;在芯片引腳間增加了特定分壓電阻和二極管等元件組成的ESD保護電路,在確保芯片正常工作的同時,防止靜電產生。
經過樣機實驗測試,獲得該虛擬示波器的參數結果如表1所示。

表1 低成本可擴展虛擬示波器的驗證參數表
前端用戶界面設計參考傳統數字示波器界面,多以按鈕形式呈現,達到實現簡潔、直觀的交互體驗。圖8所示為虛擬示波器的主界面,左側為波形顯示窗口。當前波形窗口展示了由該示波器自身信號源產生頻率為1 kHz的調制波。右側為功能控制區域,集成了示波器、信號發生器、頻譜儀以及掃頻儀功能。圖9所示為信號發生器及頻譜儀功能界面,信號發生器功能支持多種波形輸出。而頻譜儀界面左側顯示了頻域波形,右側提供了基波數據以及屏幕測讀功能。圖10所示為掃頻儀功能界面,掃頻儀具有掃頻輸出和幅頻測試兩種功能,滿足了不同應用場景。圖11為該新型多功能虛擬示波器的樣機演示圖。

圖8 虛擬示波器主界面


圖9 信號發生器及頻譜儀功能界面


圖10 掃頻儀功能界面

圖11 樣機測試效果的展示
由于AD芯片量化器為8 bits,該虛擬示波器的垂直分辨率上限無法改變。故對采樣信號用平均及高分辨率運算,增加了其噪聲失真比,提高了系統整體有效位數,優化了波形顯示分辨率。平均算法即在捕獲周期信號時,先設定一個平均次數N,然后采樣N段觸發位置相同的信號。最后,經平均運算得到最終波形,并輸出。該方法降低了隨機噪聲且未減少帶寬,進而增加了噪聲失真比。而高分辨率算法對固定時間間隔內的M個采樣點進均計算,對波形平滑處理,極大地提高了分辨率。經測試通過分辨率優化處理,使整體系統有效位數從8位增加到接近12位,分辨率性能提升了約50%。
本文研制的采用CS信號處理技術的虛擬示波器,在優化了示波器基本波形顯示、測量等功能基礎上,還實現了頻譜分析、掃頻輸出及幅頻測量等信號特征顯示的擴展功能,具有配置靈活,功能多,成本低廉,便攜性好等優勢,便于教育界和工業界的大批量推廣應用。同時,該系統在軟件方面仍存在靈活的擴展空間。其在穩定性,測量精度及功能復雜度等方面,還可通過軟件編程及改進而進一步擴展。