數(shù)字存儲示波器的設(shè)計(jì)
一、實(shí)驗(yàn)?zāi)康?/b>?????????????????????????????????????????????????????????????????????????
1.掌握數(shù)字示波測量的基本原理。
2.熟悉數(shù)字存儲示波器的硬件結(jié)構(gòu)。
3.掌握虛擬數(shù)字存儲示波器的CVI軟件設(shè)計(jì)。
? 設(shè)計(jì)虛擬數(shù)字存儲示波器
? (1)設(shè)計(jì)一個(gè)包含耦合方式選擇、伏/格調(diào)整、觸發(fā)源選擇、時(shí)基選擇等基本功能的虛擬數(shù)字存儲示波器界面,要求顯示屏水平刻度為10div,垂直刻度為10div。
? (2)在完成內(nèi)容(1)的基礎(chǔ)上實(shí)現(xiàn)幅值、時(shí)基可調(diào)的虛擬雙蹤數(shù)字存儲示波器。
?? 要求:①垂直靈敏度至少包含50mV/div、0.1V/div、0.5V/div、1V/div四檔;②掃描速度至少包含0.1u/div、1u/div、10u/div、100u/div、500u/div、1m/div、10m/div、0.1s/div八檔;③增加雙蹤示波功能,能同時(shí)顯示兩路被測信號波形。
? (3)數(shù)據(jù)處理設(shè)計(jì)
?? 要求:①顯示被測信號幅值包括:有效值、峰峰值、平均值;②顯示被測信號的頻率值。
? (4)在電子測量實(shí)驗(yàn)箱中示波器硬件提供32K存儲深度的基礎(chǔ)上設(shè)計(jì)波形存儲、回放功能。
三、實(shí)驗(yàn)器材
1.SJ-8002B電子測量實(shí)驗(yàn)箱 ?????????? ???????????? 1臺
2.計(jì)算機(jī)? ?????????????????????????????????????? 1臺
3.信號源(也可以使用平臺的DDS信號源) ?????????? 2臺
4.Q9線?????????????????????????????????????????? 1 條
5.示波器 ??????????????????????????????????????? 1臺
? 4.1 數(shù)字示波器原理
? 數(shù)字存儲示波器是用 A/D 變換器把模擬信號轉(zhuǎn)換成數(shù)字信號,然后把數(shù)據(jù)存儲在半導(dǎo)體存儲器 RAM 中。當(dāng)有需要時(shí),將 RAM 中存儲的內(nèi)容調(diào)出,通過 LCD 用點(diǎn)陣或連線的方式再現(xiàn)波形,其原理框圖可以參考圖1。在這種示波器中信號處理和信號顯示功能是分開的,它的性能主要取決于進(jìn)行信號處理的AD、RAM 和微處理器的性能。由于采用 RAM 存儲器,可以快寫數(shù)慢讀數(shù),使得即使在觀察緩慢信號時(shí)也不會有閃爍現(xiàn)象。
? 4.2 虛擬數(shù)字存儲示波器組成
????????????????????????????? 圖1??? 虛擬數(shù)字存儲示波器
??? 虛擬示波器將計(jì)算機(jī)和測量系統(tǒng)融合于一體,用計(jì)算機(jī)軟件代替?zhèn)鹘y(tǒng)儀器的某些硬件的功能,用計(jì)算機(jī)的顯示器代替?zhèn)鹘y(tǒng)儀器物理面板。通過相關(guān)的軟件可以設(shè)計(jì)出的操作方便、形象逼真的儀器面板,不僅可以實(shí)現(xiàn)傳統(tǒng)示波器的功能,而且具有存儲、再現(xiàn)、分析、處理波形等特點(diǎn),還可以進(jìn)行各種信號的處理、加工和分析,完成各種規(guī)模的測量任務(wù)。而且儀器的體積小、耗電少,方便攜帶,可以在不同的計(jì)算機(jī)上使用。
?? 因此,在SJ-8002B中,也引用了虛擬數(shù)字存儲示波器的原理來實(shí)現(xiàn)數(shù)據(jù)的采集。其中的信號調(diào)理、AD轉(zhuǎn)換、存儲數(shù)據(jù)的SRAM以及控制邏輯都在是實(shí)驗(yàn)平臺中,計(jì)算機(jī)主要起到了數(shù)據(jù)的處理和顯示的作用。
?? 4.3 SJ-8002B電子測量實(shí)驗(yàn)箱示波器硬件結(jié)構(gòu)
?? 4.3.1測試范圍及采集參數(shù)調(diào)整范圍
?? 測試電壓幅度范圍:-20V~+20V(峰峰值)
?? 測量頻率范圍:1Hz~1MHz
?? 采樣時(shí)鐘:
timebase序號 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
采樣時(shí)鐘頻率 |
20M |
20M |
20M |
20M |
20M |
20M |
20M |
20M |
20M |
20M |
timebase序號 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
采樣時(shí)鐘頻率 |
10M |
5M |
2.5M |
1M |
500K |
250K |
100K |
50K |
25K |
12.5K |
?? 可程控增益:
Div序號 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
通道總增益A |
20 |
10 |
5 |
2 |
1 |
0.5 |
0.2 |
0.1 |
0.05 |
0.02 |
?? 數(shù)據(jù)緩存深度:64KB
?? 對采集的數(shù)據(jù)進(jìn)行分析,顯示波形的峰值、平均值、有效值和頻率、周期等參數(shù)。
?? 4.3.2 硬件原理圖
?????????????????????????????????? 圖2? SJ8002B示波器硬件原理圖
?? 圖2為示波器模塊的原理框圖。由圖可見,高速采集的雙通道是完全獨(dú)立的,因此可以完成多種不同的測試任務(wù),實(shí)現(xiàn)虛擬雙蹤數(shù)字存儲示波器的各種功能。
?? 4.3.3 控制邏輯
?? 示波器的硬件控制主要分為數(shù)據(jù)寫入(采集)和數(shù)據(jù)讀出(顯示)兩個(gè)部分。其中控制邏輯全部都在存儲在CPLD內(nèi)部,如圖3所示:
?
???????????????????????????? ??? 圖3? 示波器的硬件控制邏輯
??? Ain1和Ain2通道接入同樣的采樣時(shí)鐘,同時(shí)進(jìn)行轉(zhuǎn)換。轉(zhuǎn)換后的數(shù)據(jù)經(jīng)過緩沖器,送至SRAM鎖存。當(dāng)一次采集完成后,由主機(jī)讀回?cái)?shù)據(jù),進(jìn)行進(jìn)一步的處理,如濾波、顯示等。
?? 數(shù)據(jù)寫入:AD9288在采樣時(shí)鐘CLK的控制下,將兩路輸入模擬信號數(shù)字離散為8bit數(shù)字信號經(jīng)過數(shù)據(jù)緩沖器送至SRAM。地址由同一個(gè)地址計(jì)數(shù)器提供,該地址計(jì)數(shù)器為加/減計(jì)數(shù)器(采集數(shù)據(jù)時(shí)遞增,讀取時(shí)遞減)。這樣,每次采集所得數(shù)據(jù)都會順利的存入SRAM中。
??? 4.3.4采集部分
?? 采集部分的關(guān)鍵器件是ADI公司的AD9288,它是8bit雙通道含有采樣保持電路的單片集成的模/數(shù)轉(zhuǎn)換器,具有低功耗、體積小、動(dòng)態(tài)特性好、易于實(shí)用的特點(diǎn)。雙8bits、40MSPS,低功耗(每個(gè)通道90mw),SNR=47DB(在41MHz時(shí)),每個(gè)通道的模擬輸入范圍1.024Vp-p,中心電平Vin0=1/3 Vdd,3.0V模擬供電(2.7V-3.6V),兩種數(shù)據(jù)輸出模式(補(bǔ)碼或原碼),電平兼容TTL/CMOS。
??? 4.3.5 調(diào)理電路
??? 由于AD9288采用了差分輸入,所以需要將實(shí)驗(yàn)板的模擬輸入的直流耦合單邊信號,無失真的轉(zhuǎn)化為差分信號,并將信號的幅度進(jìn)行平移,以滿足AD9288 0.5~1.5V的輸入要求。采用了如下的通道電路實(shí)現(xiàn)信號的轉(zhuǎn)換。
????? ?????????????????????? 圖4 差分信號轉(zhuǎn)化電路
?? 電路中,U1是一個(gè)跟隨器,作用是阻抗匹配;差分信號的產(chǎn)生采用了2個(gè)運(yùn)算放大器,其中U2是作為輸入的同相放大器,U3是作為輸入補(bǔ)給的反相放大器。兩個(gè)二極管和U4組成了信號平移部分。
?? 4.3.6 衰減和增益控制電路
??? 由于示波器的測試范圍(-20V~+20V)比AD9288的測試范圍(0.5V~1.5V)寬,因此,在采集電路的前端加入信號衰減和信號增益兩級幅度調(diào)整電路,保證測量的正確性以及提高測量的精確度。
??? ???????????????????????????????? 圖5? 衰減電路
?? 輸入通道的第一級是髙阻衰減電路如圖5所示,這樣可以保證數(shù)字示波器有較高的輸入阻抗,同時(shí)把較大的輸入信號經(jīng)過衰減,以滿足后續(xù)電路。這里通過繼電器來實(shí)現(xiàn)電路的切換。通過設(shè)置衰減器的通斷設(shè)置初級放大系數(shù)A1=0.5、1.25、2.5、5;幅度的粗調(diào)和直流偏移部分是由12位DAC7512來控制。通過電子開關(guān)改變運(yùn)放的增益,從而實(shí)現(xiàn)幅度的調(diào)節(jié)。次級放大系數(shù)為A2=×5,所以通道總增益A=K1*A1*K2*A2
?? 4.3.7 數(shù)據(jù)處理
?? 計(jì)算出被測信號的有效值、均值、峰值、頻率。
?? 離散信號的電壓平均值及峰值的數(shù)學(xué)表達(dá)式如下所示:
?? 電壓有效值:
?? 電壓平均值:
?? 電壓峰-峰值: ????
?? 信號頻率計(jì)算:根據(jù)頻率的定義,每秒變化的次數(shù)。
?? 被測信號的上述參數(shù)可調(diào)用實(shí)驗(yàn)平臺軟件提供的函數(shù)processing_data()獲取,該函數(shù)的詳細(xì)說明見5.2節(jié)中實(shí)驗(yàn)平臺提供的函數(shù)列表。
?? 5.1 虛擬數(shù)字存儲示波器界面設(shè)計(jì)
?? 設(shè)計(jì)一個(gè)包含耦合方式選擇、伏/格調(diào)整、觸發(fā)源選擇、時(shí)基選擇等基本功能的虛擬數(shù)字存儲示波器界面,要求顯示屏水平刻度為10div,垂直刻度為10div,如圖6所示。
???????????????????
??????????????????????????????? 圖6?? 虛擬數(shù)字存儲示波器面板
??? 其中用到的控件有列表控件(Ring)、命令按鈕(Command)、圖形控件(Picture)、文本控件(Text)、數(shù)值控件(Numeric)。
??? 5.2 在完成界面設(shè)計(jì)的基礎(chǔ)上實(shí)現(xiàn)幅值、時(shí)基可調(diào)的虛擬雙蹤數(shù)字存儲示波器
??? 要求:①設(shè)置垂直靈敏度至少有50mV/div、0.1V/div、0.5V/div、1V/div四檔;②設(shè)置掃描速度至少有0.1u/div、1u/div、10u/div、100u/div、500u/div、1m/div、10m/div、0.1s/div八檔;③增加雙蹤示波功能,能同時(shí)顯示兩路被測信號波形;④數(shù)據(jù)處理設(shè)計(jì):顯示被測信號幅值包括:有效值、峰峰值、平均值;顯示被測信號的頻率值。
??? 在設(shè)計(jì)時(shí),可以參考的程序流程和函數(shù)調(diào)用如圖7所示,首先進(jìn)行EPP接口的初始化以及取回用戶界面設(shè)置的采集參數(shù),如耦合方式、觸發(fā)方式、垂直靈敏度、時(shí)基等,然后啟動(dòng)采集;當(dāng)預(yù)設(shè)的采集點(diǎn)數(shù)采集完以后計(jì)算機(jī)把數(shù)據(jù)讀回;最后對讀回的數(shù)據(jù)進(jìn)行處理,例如計(jì)算幅度、頻率,進(jìn)行濾波并且顯示波形等操作。
設(shè)計(jì)前,請完成各檔位對應(yīng)的增益和時(shí)基的計(jì)算選擇并把結(jié)果填入下面的表1和表2中。計(jì)算方法舉例:
?? ⑴ 給定垂直靈敏度20mv/div ,則量程 = 20mV × 10 = 200mV = 0.2V ; 由于AD9288的輸入范圍是 0.5V----1.5V,為提高分辨率,可采用5倍的通道總增益,即0.2V×5=1 V,對應(yīng)于4.3.1節(jié)的SJ8002B電子測量實(shí)驗(yàn)箱測試范圍及采集參數(shù)調(diào)整范圍即可得到Div序號為2。
垂直靈敏度 |
50mV/div |
0.1V/div |
0.5V/div |
1V/div |
量程(V) |
||||
通道總增益 |
||||
Div序號 |
?????????????????????????????????????????????? ?? 表1
?? ⑵ 給定掃描速度為200u/div,則采樣時(shí)間TS =200u×10 =2000u=2ms,由于滿屏采樣點(diǎn)數(shù)固定為25000點(diǎn),所以由FS×TS <25000,可得到FS < 12.5M 。由于提供的時(shí)鐘沒有12.5M,因此可選擇最接近的10MHZ作為采樣時(shí)鐘。
Timebase序號 |
||||
tdiv(s) |
0.1u/div |
1u/div |
10u/div |
100u/div |
采樣時(shí)鐘(HZ) |
||||
Timebase序號 |
||||
tdiv(s) |
500u/div |
1m/div |
10m/div |
1s/div |
采樣時(shí)鐘(HZ) |
????????????????? ??????????? ???????????? ?????????????? 表2
???????????????????????????????? 圖7 示波器軟件流程圖
設(shè)計(jì)中可參考的CVI軟件和實(shí)驗(yàn)軟件平臺提供的主要函數(shù)如下表所示:
(1) |
函數(shù)功能 |
EPP接口初始化 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
函數(shù)原型 |
void epp_init(void) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
輸入?yún)?shù) |
無 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
輸出參數(shù) |
無 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回值 |
無 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(2) |
函數(shù)功能 |
返回控件的當(dāng)前值 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
函數(shù)原型 |
int GetCtrlVal (int panelHandle, int controlID, void *value) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
輸入?yún)?shù) |
panelHandle - 內(nèi)存當(dāng)中的面板句柄,即為控件所在面板的句柄值 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
輸出參數(shù) |
value??? 返回的控件當(dāng)前值 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回值 |
0 -成功 其他值-失敗 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(3) |
函數(shù)功能 |
Ain1和Ain2采集過程控制 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
函數(shù)原型 |
int sampling (? unsigned char coupling1_cw, int div1, int DC1_code,unsigned char coupling2_cw, int div2, int DC2_code,int timebase, unsigned chartri, int sampling_points,int Panel_Handle, int stop_ID, unsigned char ain1_data[], unsigned char ain2_data[],double *show_pots) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
輸入?yún)?shù) |
coupling1_cw,coupling2_cw == Ain1,Ain 2通道的耦合方式控制字
DC1_code,DC2_code == Ain1,Ain 2通道的垂直偏置,取值范圍10~4095
tri == 觸發(fā)源選擇 0:時(shí)鐘CLK1? 3: 外部信號? 4:內(nèi)部DDS1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
輸出參數(shù) |
ain1_data[] == Ain1的采集值 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回值 |
0-采集成功;輸出值有效 |
? | ? | |
(4) |
函數(shù)功能 |
由enable_timer( )函數(shù)調(diào)用來設(shè)置定時(shí)器啟動(dòng),實(shí)現(xiàn)循環(huán)采集 |
函數(shù)原型 |
int SetCtrlAttribute (int panelHandle, int controlID, int controlAttribute, ...) | |
輸入?yún)?shù) |
panelHandle - 內(nèi)存當(dāng)中的面板句柄,即為控件所在面板的句柄值 | |
輸出參數(shù) |
無 | |
返回值 |
0 -成功?? 其他值-失敗 | |
(5) |
函數(shù)功能 |
采集數(shù)據(jù)處理-根據(jù)采集的參數(shù)設(shè)置,計(jì)算信號的頻率,峰峰值,平均值和有效值 |
函數(shù)原型 |
int processing_data (unsigned char data[], int points, unsigned char coupling_cw, int div,int timebase, double *signal_fr, double *vp, double *vm, double *ve) | |
輸入?yún)?shù) |
data[ ] - 采集數(shù)據(jù)存放數(shù)組 | |
輸出參數(shù) |
signal_fr== 信號頻率Hz | |
返回值 |
0 -OK ,輸出值有效 | |
(6) |
函數(shù)功能 |
在圖形控件上顯示波形 |
函數(shù)原型 |
int PlotWaveform (int panelHandle, int controlID, void *yArray, int numberOfPoints, int yDataType, double yGain, double yOffset, double initialX, double xIncrement, int plotStyle, int pointStyle, int lineStyle, int pointFrequency, int color) | |
輸入?yún)?shù) |
panelHandle - 圖形控件所在面板的句柄值 | |
輸出參數(shù) |
無 | |
返回值 |
整數(shù) 代表所繪圖形的句柄 |
?? 5.3 在電子測量實(shí)驗(yàn)箱中示波器硬件提供32K存儲深度的基礎(chǔ)上設(shè)計(jì)波形存儲、回放功能
?? 在5.2節(jié)設(shè)計(jì)的虛擬存儲示波器面板上有兩個(gè)命令按鈕(Command)控件,如圖6所示,保存波形(保存按鈕)調(diào)用ArrayToFile()函數(shù),打開波形文件(打開按鈕)調(diào)用FileToArray()函數(shù),波形的顯示調(diào)用PlotWaveform()函數(shù),以上函數(shù)均由CVI軟件提供,可直接使用。
?? 6.1 雙蹤顯示波形的觀測
?? 由兩臺函數(shù)信號源分別產(chǎn)生兩路電壓信號,一個(gè)產(chǎn)生幅度為5V,頻率為5KHz的正弦波,另一個(gè)產(chǎn)生幅度為3V,頻率為5KHz的三角波,從設(shè)計(jì)的虛擬數(shù)字存儲示波器進(jìn)行雙蹤顯示,并畫出波形。
?? 畫信號一波形:畫信號二波形:
?
?? 6.2由函數(shù)信號源產(chǎn)生一個(gè)頻率為5KHz,幅度變化(有效值)如下表的正弦波,利用設(shè)計(jì)的虛擬數(shù)字示波器進(jìn)行有效值測量。
標(biāo)準(zhǔn)信號(V) |
0.25 |
0.5 |
2.5 |
5 |
通道1(Ain1)(V) |
? |
? |
? |
? |
通道2(Ain2)(V) |
? |
? |
? |
? |
??? 6.3由函數(shù)信號源產(chǎn)生一個(gè)幅度為5V,頻率變化如下表的正弦波,利用設(shè)計(jì)的虛擬數(shù)字示波器進(jìn)行頻率測量。
標(biāo)準(zhǔn)信號(KHZ) |
0.01 |
0.1 |
0.5 |
1.0 |
5.0 |
10.0 |
50.0 |
100.0 |
1000.0 |
通道1(Ain1)(KHZ) |
? |
? |
? |
? |
? |
? |
? |
? |
? |
通道2(Ain2)(KHZ) |
? |
? |
? |
? |
? |
? |
? |
? |
? |
七、思考和練習(xí)題
1.能否用一個(gè)帶寬為20MHz的示波器觀測重復(fù)頻率為15MHz的正弦波和方波?為什么?
2.利用示波器測量各種波形參數(shù)時(shí),你如何減小其測量誤差?
3.測量方波的上升和下降時(shí)間可以有哪些方法?
評論