直流電壓表的設計
?一、實驗目的?????????????????????????????????????????????????????????????????????????????????????????????????????????
1. 理解雙積分A/D轉換器7109及數字電壓表的工作原理。
2. 掌握直流電壓表的界面設計和軟件設計。
3.測量數據的誤差分析。
二、實驗任務和內容
1. 設計一個直流電壓表,設計要求為
(1)測量量程分為200mV、400mV、800mV、2V、4V、8V;
(2)測量分辯率為12bit;
(3)測量對象可選擇為可調電位器的輸出或外部電壓
2. 設計完成后,用電壓表不同量程進行測量,求相對誤差。
三、實驗器材
1. 計算機(具有運行windows2000和圖形化控件的能力)?? 1臺
2. SJ-8002B電子測量實驗箱 ???????????????????????? 1臺
3. Q9連接線??????????????????????????????????????? 1根
4. 4 1/2數字萬用表 ??????????????????????????????? 1臺
四、實驗原理
1、直流電壓表原理
?? 直流電壓表的測量原理是,被測模擬直流電壓經輸入放大后,經A/D轉換器為數字量,通過計算機的EPP接口傳到計算機進行數據處理,將測量結果顯示在計算機屏幕上。本實驗使用“SJ8002B電子測量實驗箱”的雙積分A/D轉換器7109完成直流電壓的數字化轉換,采樣 PC機的虛擬儀器軟件平臺(LabVIEW)完成界面設計和軟件設計,實現直流電壓的數字化測量。測量原理如圖1所示
???????????????????????????????????? 圖1??? 直流電壓測量原理框圖
4.2??? A/D7109的接口工作原理
?? 本實驗雙積分A/D轉換器ICL7109實驗電路圖。
????????????????????? 圖2 ????? 雙積分式A/D轉換器7109測量電壓原理圖
?? ICL 7109 是雙積分式12 位A/D轉換器,轉換時間由外部時鐘周期決定,為10140/58個時鐘周期。其主要引腳定義如下:
?? ① B1~B12:12bit的數據輸出端
?? ②OR:溢出判別,輸出高電平表示過量程;反之,數據有效。
?? ③POL:極性判別,輸出高電平表示測量值為正值;反之,負值。
?? ④MODE:方式選擇, 當輸入低電平信號時,轉換器處于直接輸出工作方式。此時可在片選和字節使能的控制下直接讀取數據;當輸入高電平時,轉換器將在信號信號握手方式的每一轉換周期的結尾輸出數據(本實驗選用直接輸出工作方式)。
?? ⑤REF:外部參考電壓輸入(本實驗用其典型值:2.048V)。
?? ⑥INL,INH:輸入電壓端口(有效范圍是參考電壓的2倍)。
?? ⑦OO,OI:外部時鐘輸入(本實驗用其典型值:3.579MHz)。
?? ⑧RUN/HOLD_:運行/保持輸入, 當輸入高電平時,每經8192時鐘脈沖完成一次轉換;當輸入低電平時,完成正在進行的轉換,并停在自動調零階段
?? ⑨STATUS:狀態輸出,輸出高電平,表明芯片處于積分和反向積分階段;輸出為低電平,表明反向積分結束,數據被鎖存,模擬部分處于自動返回零態階段。
?? ⑩CE/LOAD_:片選,當其為低電平時,數據正常輸出;當其為高電平時,所有數據輸出端(B1~B12、POL、OR)均處于高阻狀態。
?? ⑾LBEN_:低字節使能,輸入低電平時,數據線輸出低位字節B1~B8。
?? ⑿HBEN_:高字節使能,輸入低電平時,數據線輸出高位字節B9~B12及POL、OR的狀態值。
? A/D7109轉換時序:ICL7109直接接口方式的定時圖如圖3所示。
?????????????????????????????????? 圖3?? 7109轉換時序
7109的A/D轉換關系為:
??????????????? (1)
式中, —— A/D轉換器輸入電壓;
???? —— A/D轉換結果的12bit數字量;
??? —— A/D轉換器外部參考輸入電壓,調節為=2.048V;
由式(1)可知,若=2.048V ,則即為以mv單位表示了,即
???
4.3 輸入通道電路
??? 外部待測直流電壓信號從實驗箱的DCin的Q9接線端輸入如圖3。另外,實驗箱上提供了通過電位器調節的-4.096V-+4.096V的直流電壓。由于實驗中雙積分式A/D轉換器7109的輸入電壓范圍為:-4.096V-+4.096V,為了較好的適應A/D轉換器的輸入范圍,不同大小的待測模擬電壓信號需經過不同的增益進行信號放大。增益的選擇由計算機發出信號控制模擬開關選擇。
??????????????????????????????????????? ?????????????????????????????????????????
????????????????????????????????????????? 圖4?? 實驗連接圖
4.4? 實驗原理圖
實驗箱提供直流電壓測量電路原理圖如圖4所示
????????????????????????????????? 圖5?? 直流電壓測量電路原理圖
五、設計指導??? 在實驗設計之前應認真思考設計任務要求,仔細閱讀實驗原理。
5.1功能與前面板設計
? ? 虛擬直流數字電壓表主要完成對電位器或外部直流電壓的測量與顯示。因此,在虛擬儀器界面上需有測量對象的選擇功能。為了適應不同大小的待測模擬電壓信號,還應有測量量程選擇功能,量程設置10檔: 40mV、80mV、200mV、400mV、800mV、2V、4V、8V(對應增益:×100 、× 50、× 20、×10、×5、×2、×1、×0.5),量程缺省值設為8V。界面上設置有超量程指示燈,當測量溢出時,超量程指示燈點亮。測量結果同時進行表盤和數字顯示,并通過實驗箱上的七段LED顯示出來。此外,界面上還需設置測量的啟動和退出測量功能。
圖5為前面板設計的參考。
??????????????????????? 圖6?? 虛擬直流數字電壓表面板
?? 前面板控件說明如表1:
??? ??????? ??????????? ??????? ????? 表1 前面板控件
控件類別 |
序號 |
名稱 |
控件在控件模板中的位置 |
注釋 |
指示類 |
(1) |
電壓顯示表盤 |
All controls>Numeric>Meter |
設置電壓表的顯示量程屬性,對不同測量量程進行顯示控制 |
(2) |
超量程指示燈 |
LEDS>Round LED |
溢出時點亮 | |
(3) |
電壓數字顯示框 |
Num Indis>Numeric Indicator |
設置顯示量程屬性,對不同顯示位數進行控制 | |
測量選擇類 |
(4) |
量程選擇旋鈕 |
Num Ctrls>Dial |
用于選擇測量量程 |
(5) |
測試對象選擇開關 |
AllControls>Classic Controls>Classic Boolean>HorizontalSwitch |
選擇測試對象 | |
程序控制類 |
(6) |
退出 |
Buttons>OK Button |
控制程序退出 |
(7) |
測量 |
Buttons>Push Button |
控制程序開始 |
5.2程序設計指導
??? SJ8002B電子測量實驗箱通過EPP接口和計算機主機相連,通過EPP接口操作實驗箱的雙積分A/D轉換器7109的操作步驟依次是,EPP接口的初始化、EPP接口的讀數檢查、 啟動A/D7109轉換、讀取轉換數據、數據的顯示處理。本程序設計的主要實現已經做成底層fp函數(用Labwindows/CVI實現),在程序設計時可直接調用實驗箱提供的驅動函數動態鏈接庫(即cvidll.dll函數),驅動函數原型及常數和變量在cvidll.prj中。
?? 1.程序流程圖
整個程序采取順序結構,整個設計思路流程圖如下:
?
????????????????????????????? 圖7 ?? 直流電壓表程序流程圖
?? 2.動態鏈接庫調用
?? 實現直流電壓測量的驅動函數如表2所示:
表2直流電壓測量的驅動函數
序號 |
fp函數 |
實現功能 |
輸入參數 |
輸出參數 |
返回值 |
動態鏈接圖標 |
1 |
void __stdcall epp_init(void) |
初始化EPP接口 |
無 |
無 |
無 |
|
2 |
int __stdcall epp_read_check (void) |
EPP讀數檢查 |
無 |
無 |
0:EPP可正常讀數;1:EPP不能讀數 |
|
3 |
int __stdcall run_7109 (unsigned char m_what, unsigned char gain_cw,double vref, double *rult) |
運行7109,實現7109的讀數及轉化 |
m_what:測試對象控制字 |
rult:測量結果 |
0:讀數有效;2:讀數無效,正溢出;3:讀數無效,負溢出;4: EPP不能讀數 |
|
4 |
void __stdcall amp_7109 (unsigned char gain_cw, double *gain, int *showdot) |
根據量程設置增益和顯示位數 |
gain_cw: 量程控制字 |
gain:量程的增益 howdot:該量程的有效位數(V為單位,showdot為小數點后的位數) |
無 |
|
5 |
void __stdcall? indicator_7109 (unsigned char gain_cw, double *indicator_gain,double *indicator_max) |
根據量程設置7109輸入增益,電壓表表最大顯示數字 |
gain_cw: 量程控制字 |
gain:量程的增益 |
無 |
|
6 |
void __stdcall start_7109 (void) |
啟動7109 |
無 |
無 |
無 |
|
7 |
int __stdcall led_display(double display_data) |
LED顯示 |
display_data:顯示數據 |
無 |
成功執行后,返回值為0 |
?? 在直流電壓驅動函數中,調用參數gain_cw(量程控制字,用10進制數表示)與程序設計的量程檔和運放的實際增益有如表3所示的一一對應關系。由于7109的輸入電壓為4V,故每檔量程對應的增益與量程之乘積應為4V。
?????????????????? ????????????? ?????? 表3?? 量程選擇控制字的設置
量程 |
8V |
4V |
2V |
800mV |
400 mV |
200 mV |
80 mV |
40 mV |
gain_cw |
16 |
17 |
18 |
19 |
33 |
34 |
35 |
49 |
gain |
0.5 |
1 |
2 |
5 |
10 |
20 |
50 |
100 |
測試對象控制字由測試對象選擇開關決定,由于測試對象只有兩種(電位器輸出電壓和實驗箱外部輸入電壓),故將選擇開關設置為布爾量,由一個程序選擇結構根據開關的值來決定測試對象控制字的值,具體對應關系如表4所示
????????????????????????? 表4???? 測試對象選擇開關與測試對象控制字和測試對象對應關系
測試對象控件位置選擇 |
布爾值 |
測試對象控制字 |
測試對象(m_what) |
左邊 |
FALSE |
50 |
電位器輸出電壓 |
右邊 |
TRUE |
1 |
實驗箱外部輸入電壓 |
動態鏈接調用舉例:以調用int ?led_display(double display_data)為例
在block panel中點擊右鍵:All functions>Advanced>Call library function node.
? ???????????????????????????????????? 圖8 動態鏈接調用界面
雙擊圖圖標,將出現如圖9所示
?
?
?
????????????????? ????????? 圖9 動態鏈接調用
此時可根據調用函數的路徑,參數及名稱進行設置進行得到圖10
??????????????????????????????????????? 圖10 動態鏈接設置
這樣就完成了動態鏈接的調用及設置。
? 3.框圖程序設計
? (1)整個程序要求由 “退出”按扭來控制程序的運行與否,因此主框架可以設計為structure中的while循環。由“測量”控制測量與否。
? (2)由于Labview特性是順序流程,因此,循環內部可以設計為順序結構。即使用structure中的flat sequence case。整個設計流程分為EPP初始化:調用動態鏈接實現,函數無返回值,啟動7109:調用動態鏈接實現,函數無返回值,EPP讀數檢查:由函數返回值判斷EPP讀數是否成功,當EPP讀數成功時進入下一步否則將“測量”鍵彈起,停止程序。
? (3) 運行7109:用case結構實現量程和測量對象的選擇,作為動態鏈接函數run_7109的輸入,然后把run_7109的輸出分別接到表盤和數字顯示,并作為led_display的輸入,進行led顯示。根據7109的返回值判斷,當其等于2或者3時,表示超量程,則點亮超量程指示燈。
?? 根據采集數據和計算結果,顯示在相應的顯示窗口。根據被測信號數值,可驗證雙積分式AD原理和直流電壓測量的關系。
? 六、調試和測試結果
? 直流電壓表設計完成后,可使用直流電壓表完成直流電壓的測試,以驗證設計是否正確。測試對象可選為“待測電壓”和“電位器(電壓)”。當選擇電位器(電壓)時,即測量虛擬儀器實驗平臺左下腳電位器的電壓,可用萬用表在實驗箱的“TEST”點監測。當選擇待測電壓時,即可測量外加直流電壓(由于虛擬直流電壓表的最大量程為±8V,因此建議使用的直流電壓小于±8V)。
?? 1、調節電位器輸出不同大小的直流電壓信號,用虛擬數字直流電壓表對其進行測量,量程選擇為4V檔。同時使用萬用表測試輸入電壓,作為電壓標準值,記錄測量值,并填入表5中,對測量結果進行比較和分析,求出絕對誤差和相對誤差。
調節電位器輸出 |
-4V |
-3V |
-2V |
-1V |
0V |
1V |
2 V |
3V |
4V |
標準電壓值 |
? |
? |
? |
? |
? |
? |
? |
? |
? |
測試數據 |
? |
? |
? |
? |
? |
? |
? |
? |
? |
絕對誤差 |
? |
? |
? |
? |
? |
? |
? |
? |
? |
相對誤差 |
? |
? |
? |
? |
? |
? |
? |
? |
? |
表5
? ? 2、調節電位器輸出一個固定大小的直流電壓信號,用萬用表測試作為標準值,用虛擬數字直流電壓表的不同量程檔進行測量,測試結果填入表6內,對測量結果進行比較和分析,求出絕對誤差和相對誤差。
????? ???? ?? ??? ??? ??? ??? ?? ??? ???? ??? ??? ??? 表6
標準電壓值 |
? | |||||
量程 |
200mV |
400mV |
800mV |
2V |
4V |
8V |
測試數據 |
? |
? |
? |
? |
? |
? |
絕對誤差 |
? |
? |
? |
? |
? |
? |
相對誤差 |
? |
? |
? |
? |
? |
? |
?? 七、思考和練習
?? 7109的輸入參考電壓對A/D轉換結果有何影響?如A/D轉換結果偏大,應如何調節參考電壓?
評論
查看更多