新聞中心

EEPW首頁 > 測試測量 > 設計應用 > 數字存儲示波器的設計

數字存儲示波器的設計

作者: 時間:2017-02-06 來源:網絡 收藏

垂直靈敏度

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 - 內存當中的面板句柄,即為控件所在面板的句柄值
controlID - 控件的ID值,在控件屬性面板中可以獲得

輸出參數

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通道的耦合方式控制字
0:直流耦合(不隔直) 1:交流耦合(隔直)
div1,div2 == Ain1,Ain 2通道的伏格序號


Div序號

0

1

2

3

4

5

6

7

8

9

通道總增益

20

10

5

2

1

0.5

0.2

0.1

0.05

0.02

DC1_code,DC2_code == Ain1,Ain 2通道的垂直偏置,取值范圍10~4095
time_base == 時基


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

tri == 觸發(fā)源選擇 0:時鐘CLK1 3: 外部信號 4:內部DDS1
5:內部DDS2 6: 手動
sampling_points ==采樣點數
Panel_Handle==中斷采集的控件面板句柄
stop_ID ==中斷采集的控件名稱

輸出參數

ain1_data[] == Ain1的采集值
ain2_data[] == Ain1的采集值;
show_pots == 在顯示波形的graph控件上X軸的點數

返回值

0-采集成功;輸出值有效
1-采集不成功,被中斷;輸出值無效
8-采集不成功,EPP不能讀數;輸出值無效

(4)

函數功能

由enable_timer( )函數調用來設置定時器啟動,實現(xiàn)循環(huán)采集

函數原型

int SetCtrlAttribute (int panelHandle, int controlID, int controlAttribute, ...)

輸入參數

panelHandle - 內存當中的面板句柄,即為控件所在面板的句柄值
controlID - 控件的ID值,在控件屬性面板中可以獲得
controlAttribute - 特定的控件屬性

輸出參數

返回值

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[ ] - 采集數據存放數組
Points - 采集數據點數
coupling_cw - 耦合方式 0:直流耦合(不隔直) 1:交流耦合(隔直)
div - 垂直靈敏度(伏/格)序號 必須和采集時設置的div一致
timebase - 掃描速度(時基)序號 必須和采集時設置的timebase一致

輸出參數

signal_fr== 信號頻率Hz
vp == 峰值;
vm == 均值;
ve == 有效值;

返回值

0 -OK ,輸出值有效
1 -出錯,輸出值無效。 采樣頻率太大,應減小時基序號,以增大采樣頻率

(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 - 圖形控件所在面板的句柄值
controlID - 圖形控件的ID值
*yArray - 沿Y軸分布的數據數組首地址
numberOfPoints - 需要顯示的數據點數
yDataType - 指定數據類型
yGain - 指定Y軸顯示數據的增益
yOffset - 指定Y軸顯示數據的偏移量
initialX - 指定X軸的初始值
xIncrement - 指定X軸的步進值
plotStyle - 指定顯示波形的連點方式
pointStyle - 指定顯示波形的點的形狀
lineStyle - 指定顯示波形的線條形狀
pointFrequency -當plotStyle VAL_CONNECTED_POINTS or VAL_SCATTER時 指定點之間的標記間;
color - 指定線條的顏色

輸出參數

返回值

整數 代表所繪圖形的句柄

5.3 在電子測量實驗箱中示波器硬件提供32K存儲深度的基礎上設計波形存儲、回放功能
在5.2節(jié)設計的虛擬存儲示波器面板上有兩個命令按鈕(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.測量方波的上升和下降時間可以有哪些方法?


上一頁 1 2 3 下一頁

關鍵詞: 數字存儲示波

評論


技術專區(qū)

關閉