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