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