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