基于FPGA的數(shù)字示波器波形合成器研究
引言
波形刷新率是評判數(shù)字示波器性能優(yōu)劣的重要指標(biāo)之一,它直接體現(xiàn)了示波器抓取波形細(xì)節(jié)的能力,刷新率越高意味著捕獲異常的能力越強(qiáng)。目前國內(nèi)示波器的最高波形刷新率在200000wfms/s左右,而高于200000wfms/s的基本上依賴進(jìn)口。國內(nèi)示波器刷新率做不高的主要原因有2個(gè):
①波形合成技術(shù)和國際先進(jìn)水平相比,差距還比較大;
②波形存儲采用外部存儲器。
本文通過對示波器波形合成技術(shù)的深入研究,提出一種基于FPGA的高刷新率的波形合成器,刷新率可達(dá)到400000wfms/s,該波形合成器已經(jīng)成功應(yīng)用在高刷新率示波器中。
1、波形三維映射模型
波形數(shù)據(jù)的三維信息包括:時(shí)間,幅度和幅度命中次數(shù)。在現(xiàn)代DSO中,可將多次觸發(fā)后采集到的多幀數(shù)據(jù)展現(xiàn)在屏幕上,并通過三維映射灰度圖來體現(xiàn)時(shí)間,幅度以及波形數(shù)據(jù)在每一個(gè)幅度上的命中次數(shù)。例如進(jìn)行10次采樣每次采樣700個(gè)樣點(diǎn),那么進(jìn)行三維映射時(shí),會(huì)將這10次采樣的波形進(jìn)行疊加,然后將疊加后的波形數(shù)據(jù)映射到三維數(shù)據(jù)庫中。
如圖1所示,三維波形數(shù)據(jù)庫可以看作是一個(gè)m&mes;k的二維矩陣,m表示DSO屏幕的垂直分辨率(幅度),k表示DSO的水平分辨率(時(shí)間),而矩陣中元素amk表示幅度命中次數(shù)(概率),如圖所示。
圖1 三維波形數(shù)據(jù)庫
為了將三維波形數(shù)據(jù)庫中的信息轉(zhuǎn)換為方便用戶觀察的顯示畫面,需要將幅度命中次數(shù)轉(zhuǎn)換為波形灰度或顏色等級,所以波形三維映射模型實(shí)質(zhì)上是一種三維波形成像技術(shù)。它直接將每次采集到得數(shù)據(jù)映射到三維數(shù)據(jù)庫(灰度圖),然后將灰度圖以人眼可以接受的速率傳送到屏幕上顯示。對于圖2這個(gè)m&mes;k矩陣,若其元素用c位存儲,則灰度圖需要的存儲空間為:m&mes;k&mes;2c/8字節(jié),國內(nèi)示波器一般將這個(gè)三維數(shù)據(jù)庫(灰度圖)存放在外部存儲器中例如SRAM,SSRAM。很明顯,頻繁的訪問外部存儲器將會(huì)大大的減小數(shù)據(jù)映射速度,降低了波形刷新率。
圖2 三維數(shù)據(jù)庫矩陣
2、高刷新率波形合成器
波形刷新率WRR(WaveformRefreshRate)定義為:
WRR=1/(Tacq+Tdead) --公式(1-1)
Tacq為采集時(shí)間,即采集一幅完整波形所需的時(shí)間,它和存儲深度,采樣率等因素有關(guān)。Tdead為死區(qū)時(shí)間,主要由2部分組成:波形數(shù)據(jù)讀取時(shí)間Tr和波形數(shù)據(jù)映射時(shí)間Tmap。系統(tǒng)架構(gòu)決定后,Tacq和Tr也就基本上確定了,但不同的波形合成器會(huì)導(dǎo)致Tmap不同,而且Tmap一般遠(yuǎn)大于Tacq和Tr,所以刷新率可以近似等價(jià)于:
WRR=1/Tacq --公式(1-2)
所以Tmap的大小直接影響波形刷新率。
圖3 傳統(tǒng)DSO結(jié)構(gòu)框圖
圖3是傳統(tǒng)DSO的內(nèi)部結(jié)構(gòu)框圖,采樣電路A從外部采集信號存入動(dòng)態(tài)存儲器DDR,波形合成器將新的采樣數(shù)據(jù)和SRAM中舊的采樣數(shù)據(jù)進(jìn)行疊加操作,最后將疊加后的數(shù)據(jù)寫回靜態(tài)存儲器SRAM。假設(shè)一幅波形有k個(gè)采樣點(diǎn),則有:
Tmap=k*(trd+tmd+twr) --公式(1-3)
trd為靜態(tài)存儲器(三維數(shù)據(jù)庫)的讀取時(shí)間,tmd為修改時(shí)間,twr為寫入時(shí)間,在同步設(shè)計(jì)中,trd=trd=twr,所以公式(1-3)可以簡化為:
Tmap=3k*trd- -公式(1-4)
由于傳統(tǒng)DSO采用外部靜態(tài)存儲器SRAM存放三維數(shù)據(jù)庫(灰度圖),外部存儲器一般只有一個(gè)讀、寫端口,就會(huì)帶來下面2個(gè)問題:①每次只能映射一個(gè)波形數(shù)據(jù),無法做到并行映射。②波形映射時(shí),會(huì)以“讀-修改-寫”這樣的存儲操作模式,無法做到流水處理。這2個(gè)問題導(dǎo)致Tmap時(shí)間過長,也是國產(chǎn)示波器的刷新率做不到200000wfms/s以上的主要原因。
為了解決上面的瓶頸,本文提出了一種基于fpga的高刷新率波形合成器。高刷新率的DSO結(jié)構(gòu)圖如下圖4所示,波形合成器B不再采用外部靜態(tài)存儲器SRAM存儲三維數(shù)據(jù)庫(灰度圖),而是采用FPGA內(nèi)部的BLOCKRAM進(jìn)行替代。采樣BLOCKRAM可以帶來下面的好處:首先BLOCKRAM可以配置成雙口模式有利于進(jìn)行“讀-修改-寫”的流水處理,其次可以將BLOCKRAM配置成多個(gè)小存儲塊有利于波形并行映射。
圖4 高刷新率DSO結(jié)構(gòu)圖
高刷新率波形合成器內(nèi)部結(jié)構(gòu)如圖5所示,波形合成器由n個(gè)小波形合成器G1~Gn組成,波形三維數(shù)據(jù)庫也拆分成由n個(gè)小的BRAM塊BRAM1~BRAMn組成。
Tmap=(k/n)*trd --公式(1-5)
采樣數(shù)據(jù)通過DISPATCH模塊并行的分發(fā)到各個(gè)小波形合成器中,這樣波形合成器在某一個(gè)時(shí)刻可以完成n個(gè)采樣點(diǎn)的并行映射。波形映射時(shí),BRAM采用雙口模式,“讀-修改-寫”這樣的存儲操作模式,就可以做到流水處理。這就克服了上文提到的采用外部存儲器存放三維數(shù)據(jù)庫帶來的2個(gè)問題。
圖5 高刷新率波形合成器結(jié)構(gòu)圖
由于高刷新率的波形合成器在某一個(gè)時(shí)刻可以完成n個(gè)采樣點(diǎn)的并行映射,并可以完成“讀-修改-寫”的流水處理,假設(shè)一幅波形有k個(gè)采樣點(diǎn),則有:
對比公式(1-4)和公式(1-5)可以看出,和傳統(tǒng)DSO相比,基于高刷新率波形合成器的DSO的Tmap減少為原先的1/3n,刷新率約提高3n倍。從公式(1-5)可以看出,Tmap和n成反比關(guān)系,從理論上分析n→∞時(shí),Tmap→0,意味著刷新率可以做到很大。實(shí)際應(yīng)用時(shí),n受限于FPGA的邏輯資源和BLOCKRAM資源,目前采用本文的波形合成器,最高刷新率可達(dá)400000wfms/s。但隨著這幾年FPGA工藝和技術(shù)的飛速發(fā)展,F(xiàn)PGA的邏輯資源和BLOCKRAM會(huì)越來越大,本文提出的波形合成器將會(huì)廣泛運(yùn)用在高刷新率的示波器中。
3、結(jié)論
通過對波形合成技術(shù)的深入研究,提出一種高刷新率的波形合成器,示波器刷新率達(dá)到200000wfms/s以上,對高刷新率示波器以及高刷新率數(shù)據(jù)采集卡的開發(fā)有很大借鑒作用。





