姜 斌,李豐璞,包建榮,劉 超,郭春生
(杭州電子科技大學(xué) a.通信工程學(xué)院;b.信息工程學(xué)院,杭州 310018)
作為常見的電子測(cè)量?jī)x,示波器能測(cè)量并顯示信號(hào)波形及相關(guān)參數(shù),已被廣泛用于各類科學(xué)研究及生產(chǎn)實(shí)踐[1-2]。隨著集成電路和信息技術(shù)的發(fā)展,傳統(tǒng)示波器波形不穩(wěn)定、測(cè)讀易老化而不準(zhǔn)確、功能單一等缺點(diǎn)逐漸突顯,已無法滿足現(xiàn)代科研和測(cè)量等諸多應(yīng)用。其中,國內(nèi)一些理工類高校實(shí)驗(yàn)室常使用國產(chǎn)數(shù)字示波器輔助本科教學(xué),其成本區(qū)間約為1 000~3 000元,其中,電信類科研實(shí)驗(yàn)室使用的一些國外多功能示波器價(jià)格高達(dá)萬元,成本高昂,購買不易[3]。
虛擬示波器主要將計(jì)算機(jī)和現(xiàn)代測(cè)量技術(shù)融合,使用軟件代替?zhèn)鹘y(tǒng)示波器部分硬件功能,利用計(jì)算機(jī)顯示器代替?zhèn)鹘y(tǒng)示波器物理面板[4]。相比傳統(tǒng)示波器,虛擬示波器在波形顯示,功能多樣化,成本控制等方面都更具有靈活可配置及低成本等優(yōu)勢(shì)[5]。但現(xiàn)有的虛擬示波器仍存在成本較高,信號(hào)處理接口不公開,難以擴(kuò)展信號(hào)處理算法而無法適應(yīng)不同測(cè)試場(chǎng)景等缺陷?;诖?,本文使用壓縮感知(Compressed Sensing,CS)信號(hào)處理技術(shù),并將STM32單片機(jī)、現(xiàn)場(chǎng)可編程門陣列(Field-Programmable Gate Array,F(xiàn)PGA)等模塊與個(gè)人微機(jī)(Personal Computer,PC)結(jié)合作為硬件平臺(tái),研制了具有50 MB帶寬,100 MS/s采樣頻率的低成本功能可擴(kuò)展虛擬示波器。該示波器在優(yōu)化了傳統(tǒng)示波器的信號(hào)波形顯示、測(cè)量等功能的基礎(chǔ)上,還實(shí)現(xiàn)了頻譜分析、掃頻輸出及幅頻測(cè)量等信號(hào)特征顯示的擴(kuò)展功能,具有配置靈活,功能多,成本低廉,便攜性好等優(yōu)勢(shì),便于教育界和工業(yè)界的大批量推廣應(yīng)用。
該虛擬示波器的整體布局由高速通用串行總線(Universal Serial Bus,USB)數(shù)據(jù)采集模塊與PC軟件信號(hào)處理端兩部分構(gòu)成。高速USB數(shù)據(jù)采集模塊采用STM32單片機(jī)與FPGA模塊為核心組成的集成式結(jié)構(gòu)。其中,F(xiàn)PGA模塊負(fù)責(zé)高速數(shù)字信號(hào)處理,包括高速數(shù)據(jù)采集和緩存;STM32單片機(jī)為高速USB數(shù)據(jù)采集模塊的主控制器,主要完成了數(shù)據(jù)流控制與傳輸并通過控制USB接口完成數(shù)據(jù)采集模塊與PC軟件信號(hào)處理端的對(duì)接。PC軟件信號(hào)開發(fā)使用微軟公司的Visual Basic編程語言,一方面通過高速USB接口接收下位機(jī)發(fā)送的波形信號(hào),利用軟件編程完成各波形顯示、測(cè)量以及變換,實(shí)現(xiàn)虛擬示波的窗口化顯示;另一方面向數(shù)據(jù)采集模塊發(fā)送各類指令,使虛擬示波器實(shí)現(xiàn)信號(hào)發(fā)生器、頻譜儀、掃頻儀等新型功能。該虛擬示波器的典型應(yīng)用場(chǎng)景如圖1所示。
圖1 虛擬示波器應(yīng)用場(chǎng)景圖
圖1同時(shí)展示了該多功能虛擬示波器的兩種應(yīng)用場(chǎng)景。左側(cè)所示為下位機(jī)與便捷式PC相連構(gòu)成的虛擬示波器。數(shù)據(jù)采集模塊未封裝體積約為10 cm×7 cm×3 cm,不到傳統(tǒng)示波器體積的5%,其便攜性相比傳統(tǒng)示波器有質(zhì)的提升[6]。該下位機(jī)與便攜式電腦的組合非常適合個(gè)人攜帶,可應(yīng)用于各類現(xiàn)場(chǎng)測(cè)試和生產(chǎn)實(shí)踐,并極大降低了運(yùn)輸及人力成本。右側(cè)為實(shí)驗(yàn)室科研及教學(xué)應(yīng)用場(chǎng)景,本新型虛擬示波器同時(shí)具備信號(hào)發(fā)生功能,集成下位機(jī)于PC上位機(jī)相結(jié)合可同時(shí)實(shí)現(xiàn)示波器功能及信號(hào)發(fā)生器功能,可同時(shí)代替?zhèn)鹘y(tǒng)示波器以及傳統(tǒng)信號(hào)發(fā)生器,集成下位機(jī)制造成本低廉,大大節(jié)省了電信類實(shí)驗(yàn)室科研和教學(xué)的費(fèi)用成本。
虛擬示波器的硬件模塊框圖如圖2所示。其中,數(shù)據(jù)采集模塊主要包括了模擬信號(hào)預(yù)處理接口芯片、高速AD/DA轉(zhuǎn)換器、STM32核心處理器、FPGA信號(hào)處理芯片、高速USB接口芯片及其配套的電源管理等外圍芯片與線路。
圖2 虛擬示波器硬件模塊設(shè)計(jì)框圖
硬件模塊由集成運(yùn)放電路OPA2356芯片和模擬開關(guān)CD4053芯片組成,并實(shí)現(xiàn)兩個(gè)功能。首先,對(duì)該系統(tǒng)示波器功能中的輸入信號(hào)做預(yù)處理,通過分壓電阻及旁路電容對(duì)輸入信號(hào)濾波,實(shí)現(xiàn)信號(hào)的放大、衰減和電位平移,從而使得輸入信號(hào)位于AD采集范圍之內(nèi),避免波形失真;其次,對(duì)該系統(tǒng)信號(hào)發(fā)生器功能中的信號(hào)輸出處理,該模塊接收到高速DA轉(zhuǎn)換器發(fā)出的模擬信號(hào)后,先通過低通濾波處理,再根據(jù)STM32給出的指令完成信號(hào)的放大或衰減,最后將模擬信號(hào)輸出。
高速AD轉(zhuǎn)換模塊利用壓縮感知算法,壓縮進(jìn)入AD芯片的信號(hào),降低了信號(hào)最小采樣頻率,從而提高AD采樣效率。同時(shí),降低芯片功耗和成本。AD芯片選擇滿足采樣頻率≥100 MS/s的低功耗芯片。DA轉(zhuǎn)換器模塊負(fù)責(zé)完成信號(hào)發(fā)生器功能中的信號(hào)轉(zhuǎn)換工作,該模塊由2個(gè)四位T形權(quán)電阻網(wǎng)絡(luò)串聯(lián)組成,具體包括電阻網(wǎng)絡(luò)、緩沖寄存器、模擬開關(guān)以及運(yùn)放電路4部分,將FPGA模塊發(fā)出的數(shù)字信號(hào)轉(zhuǎn)為模擬信號(hào),完成信號(hào)發(fā)生器的波形輸出。
模塊主體為一塊STM32集成芯片,該集成芯片擁有多個(gè)功能模塊,使用各模塊自帶的固件庫大大簡(jiǎn)化了設(shè)計(jì)開發(fā)難度且降低了成本,使用STC-ISP燒寫軟件,將通過Keil編寫的固件程序下載至STM32中[7]。當(dāng)系統(tǒng)實(shí)現(xiàn)示波器功能時(shí),STM32芯片控制運(yùn)放電路對(duì)進(jìn)入AD轉(zhuǎn)換器的模擬信號(hào)放大、衰減等處理,使其不超過采集范圍,然后接收經(jīng)過AD模塊以及FPGA模塊處理的信號(hào)并通過高速USB模塊將信號(hào)傳輸至上位機(jī)。當(dāng)系統(tǒng)實(shí)現(xiàn)信號(hào)發(fā)生器功能時(shí),STM32通過高速USB模塊接收上位機(jī)發(fā)出的指定波形數(shù)據(jù),再將該數(shù)據(jù)發(fā)送給FPGA模塊,通過DA轉(zhuǎn)換器以及模擬信號(hào)處理模塊后輸出。
如圖2所示,為了同時(shí)實(shí)現(xiàn)虛擬示波器、信號(hào)發(fā)生器以及掃頻儀等功能,需在FPGA中開辟多個(gè)功能區(qū)域,實(shí)現(xiàn)采樣頻率控制、先進(jìn)先出(First Input First Output,F(xiàn)IFO)數(shù)據(jù)緩沖、鎖相環(huán)(Phase Locked Loop,PLL)時(shí)鐘同步及只讀存儲(chǔ)器(Read-Only Memory,ROM)存儲(chǔ)。當(dāng)系統(tǒng)實(shí)現(xiàn)示波器功能時(shí),模擬信號(hào)經(jīng)AD轉(zhuǎn)換器變?yōu)閿?shù)字信號(hào)進(jìn)入FPGA模塊中的FIFO數(shù)據(jù)緩沖區(qū),再根據(jù)觸發(fā)條件將所需數(shù)據(jù)傳給STM32。同時(shí),F(xiàn)PGA模塊對(duì)高速AD轉(zhuǎn)換器下達(dá)采樣頻率數(shù)據(jù)指令。當(dāng)系統(tǒng)實(shí)現(xiàn)信號(hào)發(fā)生器功能時(shí),F(xiàn)PGA模塊將STM32波形數(shù)據(jù)寫入ROM表。同時(shí),對(duì)PLL時(shí)鐘模塊的頻率數(shù)據(jù)累加及譯碼。最后,F(xiàn)PGA模塊將ROM表中的波形數(shù)據(jù)按一定頻率發(fā)給DA轉(zhuǎn)換器。
STM32芯片內(nèi)置一個(gè)兼容全速USB(12 MB/s)的設(shè)備控制器,且端點(diǎn)可由軟件自由配置[8]。高速USB接口模塊實(shí)現(xiàn)了數(shù)據(jù)采集模塊與PC軟件信號(hào)處理端的實(shí)時(shí)數(shù)據(jù)交換,根據(jù)本集成架構(gòu)特性,設(shè)置其傳輸帶寬為50 MB。同時(shí),下位機(jī)USB端口采用MiniUSB接口,壓縮了下位機(jī)體積,提高了便攜性。
下位機(jī)固件(Firmware)程序采用Keil編程軟件編寫。圖3所示為下位機(jī)固件程序流程圖。其中,圖3(a)為示波器功能流程圖,下位機(jī)根據(jù)上位機(jī)指令,以指定采樣頻率對(duì)接收信號(hào)采樣,并按指定觸發(fā)方式將波形輸至上位機(jī)。同時(shí),也可對(duì)信號(hào)實(shí)現(xiàn)一定增益。其中,觸發(fā)方式有單次,多次及連續(xù)觸發(fā)3種,且信號(hào)增益效果區(qū)間為0.01~1 V/div,以滿足各場(chǎng)景需求。圖3(b)為信號(hào)發(fā)生器功能流程圖,下位機(jī)按照指令,以一定波形、頻率和幅值輸出波形信號(hào)。
(a)示波器功能
(b)信號(hào)發(fā)生器功能
圖3 下位機(jī)固件程序流程圖
信號(hào)處理部分則采用最新的CS算法,使輸入信號(hào)實(shí)現(xiàn)功率壓縮,降低了信號(hào)最小采樣頻率,從而加速了AD轉(zhuǎn)換效率,且減少了FPGA緩存空間。壓縮感知的應(yīng)用流程如圖4所示。
圖4 壓縮感知流程圖
設(shè)待測(cè)信號(hào)先經(jīng)AD變換至維度為1×N的離散實(shí)值信號(hào)向量X,再經(jīng)稀疏矩陣變換將X表示為一組稀疏基ΨT=[Ψ1,Ψ2,…,Ψm,…,ΨM]的線性組合,且有:
(1)
式中:αk=〈X,Ψk〉;α與X是N×1矩陣;Ψ是N×N矩陣。當(dāng)X在某組基Ψ上僅有K≤N個(gè)非零系數(shù)αk時(shí),稱Ψ為信號(hào)向量X的稀疏基。該公式將X投影變換至稀疏投影區(qū)間,減小了信號(hào)功率,經(jīng)稀疏變換壓縮的信號(hào)輸入FPGA緩存模塊,即可極大減少儲(chǔ)存需求,降低成本。接著,通過稀疏向量計(jì)算:?=ΨTX,得出壓縮采樣的觀測(cè)部分,并解碼重構(gòu)信號(hào)。該過程主要圍繞觀測(cè)矩陣φ,其選擇是為了得到M個(gè)觀測(cè)值:yj=〈Θ,φj〉(j=1,2,…,M),以確保重構(gòu)完整X,獲得的觀測(cè)向量
Y=φΘ=φΨTX=ACSX
(2)
式中:ACS=φΨT,且ACS為CS信息算子。該公式也可表示為X經(jīng)矩陣ACS實(shí)施非自適應(yīng)觀測(cè)。最后,利用0—范數(shù)優(yōu)化問題求解X的精確或近似逼近值,完成信號(hào)的還原[9-10]:
(3)
上位機(jī)軟件實(shí)現(xiàn)了該虛擬示波器的可視化操作以及多功能開發(fā),其開發(fā)平臺(tái)為VB,易于實(shí)現(xiàn)窗口化、模塊化設(shè)計(jì)[11-12]。上位機(jī)軟件至下而上可分為USB驅(qū)動(dòng)模塊、功能實(shí)現(xiàn)模塊以及UI模塊。USB驅(qū)動(dòng)模塊調(diào)用STM32自帶的USB接口相關(guān)程序庫,以實(shí)現(xiàn)在Windows操作系統(tǒng)下的自動(dòng)安裝,USB的數(shù)據(jù)鏈采集與分析流程如圖5所示。
圖5 USB數(shù)據(jù)鏈采集與分析流程圖
虛擬示波器的功能實(shí)現(xiàn)模塊如圖6所示。上位機(jī)通過VB編程實(shí)現(xiàn)以下5類數(shù)據(jù)處理:信號(hào)源設(shè)置、波形/參數(shù)顯示、數(shù)字信號(hào)采樣、數(shù)據(jù)存儲(chǔ)/讀取、快速傅里葉變換,通過信號(hào)源設(shè)置對(duì)下位機(jī)下發(fā)相關(guān)指令(波形、頻率、幅值)以實(shí)現(xiàn)該系統(tǒng)的信號(hào)發(fā)生器功能;通過對(duì)接收信號(hào)采樣、數(shù)據(jù)存儲(chǔ)/讀取及波形/參數(shù)顯示處理,以實(shí)現(xiàn)示波功能;通過對(duì)采樣波形信號(hào)的快速傅里葉變化實(shí)現(xiàn)頻譜儀功能,實(shí)現(xiàn)功能拓展,完成DCT變換;此外,將下位機(jī)信號(hào)發(fā)生器的信號(hào)輸出端口與示波器信號(hào)輸入端口相連接,同時(shí)上位機(jī)通過信號(hào)源設(shè)置,使下位機(jī)發(fā)出頻率可變的掃頻信號(hào),再利用示波器功能測(cè)量信號(hào),輸出對(duì)應(yīng)的幅值變化,繪制成幅頻特性曲線,從而實(shí)現(xiàn)該系統(tǒng)的掃頻儀功能。
圖6 上位機(jī)軟件功能流程圖
本文主要通過對(duì)待測(cè)信號(hào)的頻率響應(yīng)測(cè)試,驗(yàn)證壓縮感知對(duì)該示波器波形顯示的影響。如圖7所示,輸入一個(gè)隨機(jī)復(fù)頻信號(hào),將未使用壓縮感知的信號(hào)與通過壓縮感知壓縮還原的信號(hào)的頻率響應(yīng)對(duì)比,其頻率響應(yīng)基本一致。壓縮感知使得該虛擬示波器的采樣頻率范圍提高了25%~30%,采樣速度提高了近35%。因此,除了極大地增加了AD芯片采樣效率,還釋放了FPGA緩存空間,降低了制造成本[13-14]。
(a)原始信號(hào)
(b)接收信號(hào)
圖7 CS技術(shù)頻率響應(yīng)圖
壓縮感知提高了AD采樣效率,但使FPGA的輸入與輸出時(shí)鐘域不同步。另外,為了防止FPGA數(shù)據(jù)溢出,在FPGA模塊中使用異步FIFO結(jié)構(gòu)。異步FIFO結(jié)構(gòu)實(shí)現(xiàn)了對(duì)數(shù)據(jù)流的緩沖,使得速率較高,間隔較大的寫入數(shù)據(jù)變得平滑均勻,減少了空信號(hào)出現(xiàn),增大了信號(hào)突變?nèi)蒎e(cuò)率,從而有效防止了信號(hào)數(shù)據(jù)的溢出和丟失[15]。
通常,高功耗會(huì)使USB數(shù)據(jù)采集器因溫度過高而無法長(zhǎng)期工作。為了保證該虛擬示波器長(zhǎng)時(shí)間穩(wěn)定運(yùn)行,在USB傳輸模塊中,使用了門控時(shí)鐘屏蔽技術(shù)及動(dòng)態(tài)調(diào)頻技術(shù),以降低功耗。門控時(shí)鐘屏蔽技術(shù)使虛擬示波器在運(yùn)行指定功能時(shí),可斷開不相關(guān)模塊的時(shí)鐘和電源,且激活必要的運(yùn)行模塊,從而降低靜態(tài)功耗。動(dòng)態(tài)調(diào)頻技術(shù)根據(jù)各芯片工作的不同狀態(tài),調(diào)節(jié)各模塊運(yùn)行頻率和電壓,降低了系統(tǒng)運(yùn)行動(dòng)態(tài)功耗[16]。
為防止該虛擬示波器產(chǎn)生電磁干擾(Electromagnetic Interference,EMI)且減少靜電放電(Electrostatic Discharge,ESD)現(xiàn)象,下位機(jī)印制電路板板信號(hào)走線皆于同一層,且靠近電源層,實(shí)現(xiàn)電磁屏蔽;電源層使用低數(shù)值電感,減少瞬態(tài)信號(hào),降低共模EMI;在芯片引腳間增加了特定分壓電阻和二極管等元件組成的ESD保護(hù)電路,在確保芯片正常工作的同時(shí),防止靜電產(chǎn)生。
經(jīng)過樣機(jī)實(shí)驗(yàn)測(cè)試,獲得該虛擬示波器的參數(shù)結(jié)果如表1所示。
表1 低成本可擴(kuò)展虛擬示波器的驗(yàn)證參數(shù)表
前端用戶界面設(shè)計(jì)參考傳統(tǒng)數(shù)字示波器界面,多以按鈕形式呈現(xiàn),達(dá)到實(shí)現(xiàn)簡(jiǎn)潔、直觀的交互體驗(yàn)。圖8所示為虛擬示波器的主界面,左側(cè)為波形顯示窗口。當(dāng)前波形窗口展示了由該示波器自身信號(hào)源產(chǎn)生頻率為1 kHz的調(diào)制波。右側(cè)為功能控制區(qū)域,集成了示波器、信號(hào)發(fā)生器、頻譜儀以及掃頻儀功能。圖9所示為信號(hào)發(fā)生器及頻譜儀功能界面,信號(hào)發(fā)生器功能支持多種波形輸出。而頻譜儀界面左側(cè)顯示了頻域波形,右側(cè)提供了基波數(shù)據(jù)以及屏幕測(cè)讀功能。圖10所示為掃頻儀功能界面,掃頻儀具有掃頻輸出和幅頻測(cè)試兩種功能,滿足了不同應(yīng)用場(chǎng)景。圖11為該新型多功能虛擬示波器的樣機(jī)演示圖。
圖8 虛擬示波器主界面
圖9 信號(hào)發(fā)生器及頻譜儀功能界面
圖10 掃頻儀功能界面
圖11 樣機(jī)測(cè)試效果的展示
由于AD芯片量化器為8 bits,該虛擬示波器的垂直分辨率上限無法改變。故對(duì)采樣信號(hào)用平均及高分辨率運(yùn)算,增加了其噪聲失真比,提高了系統(tǒng)整體有效位數(shù),優(yōu)化了波形顯示分辨率。平均算法即在捕獲周期信號(hào)時(shí),先設(shè)定一個(gè)平均次數(shù)N,然后采樣N段觸發(fā)位置相同的信號(hào)。最后,經(jīng)平均運(yùn)算得到最終波形,并輸出。該方法降低了隨機(jī)噪聲且未減少帶寬,進(jìn)而增加了噪聲失真比。而高分辨率算法對(duì)固定時(shí)間間隔內(nèi)的M個(gè)采樣點(diǎn)進(jìn)均計(jì)算,對(duì)波形平滑處理,極大地提高了分辨率。經(jīng)測(cè)試通過分辨率優(yōu)化處理,使整體系統(tǒng)有效位數(shù)從8位增加到接近12位,分辨率性能提升了約50%。
本文研制的采用CS信號(hào)處理技術(shù)的虛擬示波器,在優(yōu)化了示波器基本波形顯示、測(cè)量等功能基礎(chǔ)上,還實(shí)現(xiàn)了頻譜分析、掃頻輸出及幅頻測(cè)量等信號(hào)特征顯示的擴(kuò)展功能,具有配置靈活,功能多,成本低廉,便攜性好等優(yōu)勢(shì),便于教育界和工業(yè)界的大批量推廣應(yīng)用。同時(shí),該系統(tǒng)在軟件方面仍存在靈活的擴(kuò)展空間。其在穩(wěn)定性,測(cè)量精度及功能復(fù)雜度等方面,還可通過軟件編程及改進(jìn)而進(jìn)一步擴(kuò)展。