基于FPGA的李沙育圖形在手持式示波表中實現(xiàn)
1.引言
示波器測量頻率和相位的方法很多, “李沙育圖形法”就是其中用得最多的一種。“李沙育圖形法”又稱波形合成法,就是將被測頻率的信號和頻率已知的標準信號分別加至示波器的Y軸輸入端和x軸輸入端,在示波器顯示屏上將出現(xiàn)一個合成圖形,這個圖形就是李沙育圖形。李沙育圖形隨兩個輸入信號的頻率、相位、幅度不同,所呈現(xiàn)的波形也不同。
早期的模擬示波器顯示李沙育圖形的原理是將電信號轉(zhuǎn)換為光信號,核心部分是陰極射線示波管(CRT)。將輸入信號加到示波管內(nèi)部的偏轉(zhuǎn)系統(tǒng),高速電子經(jīng)聚焦、加速和偏轉(zhuǎn)后,打到熒光屏上形成亮點,實現(xiàn)李沙育圖形。李沙育圖形在數(shù)字示波器上顯示與在模擬示波器上顯示完全不同,輸入的兩路信號,經(jīng)采樣后變?yōu)閿?shù)字信號,利用CPU做一次算法,通過運算后的數(shù)字信號映射到液晶屏上后形成了對應的李沙育圖形,此種顯示方法也能達到模擬示波器的效果。
該設計應用于手持式數(shù)字示波表,主要部分由高速ADC、FPGA、ARM 7和TFT_LCD組成,由于成本原因,選用低速處理器ARM7,其主頻低于50MHz,如果采用常規(guī)設計方法,達不到模擬示波器相同的顯示效果。利用FPGA來實現(xiàn)李沙育圖形是該設計的關(guān)鍵所在。
2.FPGA設計原理
由FPGA完成李沙育圖形,核心在于利用FPGA的內(nèi)部數(shù)字邏輯單元實現(xiàn)數(shù)據(jù)的運算與存儲。該系統(tǒng)主要由高速數(shù)據(jù)采集模塊、可編程邏輯器件FPGA、微處理器和液晶顯示模塊等四部分組成,其中顯示模塊由液晶屏和一塊低成本的CPLD組成。當兩路信號分別接至A、B通道的輸入端,經(jīng)衰減、放大后輸入到數(shù)據(jù)采集模塊進行采樣。由ADC采樣回來的信號直接送到FPGA,此時數(shù)據(jù)并不是馬上存儲到FPGA的內(nèi)部RAM模塊里面,而是先做一次算法處理,此算法的功能就是利應兩路信號的數(shù)值大小,計算出在液晶屏上的對應的被點亮的像素點的位置,而屏幕上不同的位置又對應不同的地址,此地址作為FPGA內(nèi)部RAM的地址,用來存儲對應的像素點是否點亮的信息,因此實際上RAM內(nèi)部存儲的數(shù)據(jù)就是一幅李沙育圖形。此數(shù)據(jù)為二進制數(shù)據(jù),都由邏輯信號0、1組成,0對應該像素點不被點亮,1則表示點亮。ARM讀取這些數(shù)據(jù)時,RAM屏蔽寫使能,只有當ARM把所有的數(shù)據(jù)讀完后,RAM才被重新寫使能??梢钥吹?,在ARM讀取數(shù)據(jù)的期間,從A、B兩通道輸進來的信號仍然在往FPGA里面?zhèn)魉?,為了保證數(shù)據(jù)不丟失,該設計采用了兩塊大小相同的RAM的乒乓工作模式,即ARM在讀取RAM1的數(shù)據(jù)時,RAM2用來存儲輸入進來的數(shù)據(jù),當讀完RAM1的數(shù)據(jù)后,ARM轉(zhuǎn)到讀RAM2的數(shù)據(jù),而由RAM1來存儲輸入進來的數(shù)據(jù)。
3.李沙育圖形在FPGA內(nèi)部的實現(xiàn)
3.1 FPGA內(nèi)部算法
為了將純粹的數(shù)字信號轉(zhuǎn)化為對應的李沙育圖形,必須從李沙育圖形的形成原理來做分析。
李沙育圖形上的每一個點都可以下面兩個公式來表示:
x=A lsin(ω1t+ψ1) (1)
Y=A 2sin(ω2t+ψ2) (2)
由上式可知,李沙育圖形實際上是一個質(zhì)點同時在x軸和Y軸上振動形成的,其初始相差值△ψ=ψ2一ψ1,頻率比為ω2/ω1。為了在屏幕上達到顯示的效果,把實際李沙育圖形顯示區(qū)域(256*200)等分為四個象限,水平中心線為X軸,垂直中心線為Y軸。當A、B兩通道同時輸入進來信號以后,把A通道的數(shù)值按由小到大的順序,從左向右排列,B通道的信號則同理從下向上排列,同時進來的一組信號共同決定了它們所對應的在屏幕上顯示的位置,而位置對應了FPGA內(nèi)部RAM的地址。其算法可由下面兩個公式實現(xiàn):
ADD=Y
評論