实验四基于LabVIEW的虚拟直流电压表设计说明.docx
《实验四基于LabVIEW的虚拟直流电压表设计说明.docx》由会员分享,可在线阅读,更多相关《实验四基于LabVIEW的虚拟直流电压表设计说明.docx(16页珍藏版)》请在冰豆网上搜索。
实验四基于LabVIEW的虚拟直流电压表设计说明
西华大学实验报告(理工类)
开课学院及实验室:
电气信息学院电气信息专业实验中心
实验时间:
2014年6月11日
学生姓名
学号
成绩
学生所在学院
年级/专业/班
课程名称
虚拟仪器技术
课程代码
6001429
实验项目名称
基于LabVIEW的虚拟直流电压表设计
项目代码
实验代码4
指导教师
王孝平
项目学分
一、实验目的:
1.理解双积分A/D转换器7109及数字电压表的工作原理。
2.掌握虚拟直流电压表设计的基本方法。
3.测量数据的误差分析。
二、实验内容:
1.根据实验指导实现直流电压表的设计。
设计要求:
测试对象:
电位器,外部电压
量程:
40mV,80mV,200mV,400mV,800mV,2V,4V,8V。
2.选择电压表不同量程和不同测量对象,进行测量。
三、实验器材:
1.1.SJ-8002B电子测量实验箱1台
2.双踪示波器(20MHz模拟或数字示波器)1台
3.计算机(具有运行windowsXP和LabVIEW软件的能力)1台
4.万用表(31/2位以上)1台
5.Q9连接线 1根
四、实验原理:
1.双积分A/D转换器ICL7109.
如图4-1为双积分A/D转换器ICL7109实验电路图。
图4-1双积分式A/D转换器7109测量电压原理图
2.工作原理
整个直流电压表设计主要包括四个部分:
7109工作原理,A/D转换时序,增益选择电路,通道输入电路。
系统电路图如图4-2所示:
图4-2电路图
(1)7109工作原理
ICL7109是双积分式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的状态值。
(2)A/D转换时序
ICL7109直接接口方式的定时图如图4-3所示。
图4-37109直接接口方式
(3)增益选择电路
待测模拟信号需经过测量放大器进行信号放大,如图4-4所示,通过模拟开关CD4052选择放大器反馈电阻即可进行增益选择,图中共设置了4档增益:
×0.5、×1、×2、×5。
图4-4测量放大电路
(4)通道输入电路
待测模拟信号从实验箱的外部接线端7109+和7109-输入。
另外,为了方便实验,实验箱上提供了通过电位器调节的0~±4V的直流电压。
此外为了进行校准测量,还提供了接地(0V)和参考电压(2.048V)输入通道。
7109的A/D转换关系为:
(4-1)
式中,
——A/D转换器输入电压;
——A/D转换结果的12bit数字量;
——A/D转换器外部参考输入电压,调节为
=2.048V;
由式(4-1)可知,若
=2.048V,则
即为以mv单位表示了
,即
(4-2)
五、设计指导
1.方案设计
本实验基于“SJ8002B电子测量实验箱”的高速数据采集和基于PC机的虚拟仪器软件平台(Labview)构建测量方案,实现直流电压的数字化测量,完成“虚拟交流数字电压表”的设计。
整个程序采取顺序结构,依次实现系统的初始化,7109启动,EPP接口通信测试,7109的运行及结果显示。
整个设计思路流程图如下:
2.功能与前面板设计
虚拟直流数字电压表主要完成对电位器或外部直流电压的测量与显示。
因此,在虚拟仪器界面上需有测量对象的选择,同时,结果测量中,需同时进行表盘和数字显示并通过LED显示出来。
根据SJ8002B高速数据采集的主要性能指标,设置10档量程:
40mV、80mV、200mV、400mV、800mV、2V、4V、8V(对应增益:
×100、×50、×20、×10、×5、×2、×1、×0.5)。
界面上设置超量程指示。
此外,界面上还需设置测量的启动和退出测量功能。
将量程缺省值设为8V。
图4-5为前面板设计的参考。
图4-5虚拟直流数字电压表面板
启动虚拟仪器labview软件开发环境,建立新的工程文件,打开frontPanel设计界面,并存储,由界面文件自动生成相关流程图框架。
本程序中需要用到的前面板控件有:
表4-1前面板控件
控件类别
序号
名称
位置
注释
指示类
(1)
电压显示表盘
数值Numeric>仪表Meter
设置电压表的属性结点,对不同量程进行控制
(2)
超量程指示灯
布尔LEDS>RoundLED圆形指示灯
溢出时点亮
(3)
电压数字显示框
数值NumIndis>NumericIndicator数值显示控件
设置属性结点,对不同显示位数进行控制
测量选择类
(4)
量程选择档
数值NumCtrls>转盘Dial
选择量程(具体见表3-2)
(5)
测试对象选择档
布尔Boolean>HorizontalSwitch
选择测试对象,具体见表3-3)
程序控制类
(6)
退出
Buttons>OKButton
控制程序退出
(7)
测量
Buttons>PushButton
控制程序开始
使用量程选择档对量程控制字gain_cw(10进制)进行选择,得到增益gain(10进制),由于7109的输入电压为4V。
由于7109的输入电压为4V,故每档量程对应的增益与量程之乘积应为4V。
如表4-2所示:
表4-2量程选择档设置
量程
8V
4V
2V
800mV
400mV
200mV
80mV
40mV
gain_cw
16
17
18
19
33
34
35
49
gain
0.5
1
2
5
10
20
50
100
使用测试对象选择档对测试对象控制字进行控制,由于测试对象只有两种,故将控件设置为布尔量,具体设置如表4-3所示
表4-3测试对象选择档设置
控件位置选择
布尔值
测试对象控制字
测试对象(m_what)
左边
FALSE
50
电位器
右边
TRUE
1
外部电压
3.动态链接调用
本程序设计的主要实现已经做成底层fp函数(用Labwindows/CVI实现),在程序实现时可直接调用实验箱提供的驱动函数动态链接(即.dll函数),驱动函数原型及常数和变量在cvidll.prj中。
程序设计时,应加入动态链接7109.dll。
实现直流电压测量的驱动函数如表4-4所示:
表4-4动态链接
序号
fp函数
实现功能
输入参数
输出参数
返回值
动态链接图标
1
void__stdcallepp_init(void)
初始化EPP接口
无
无
在cvidll.dll
无
2
int__stdcallepp_read_check(void)
EPP读数检查
无
无
在cvidll.dll
0:
EPP可正常读数;1:
EPP不能读数
3
int__stdcallrun_7109(unsignedcharm_what,unsignedchargain_cw,doublevref,double*rult)
运行7109,实现7109的读数及转化
m_what:
测试对象
gain_cw:
量程控制字
vref:
参考电压
rult:
测量结果
在cvidll.dll
0:
读数有效;2:
读数无效,正溢出;3:
读数无效,负溢出;4:
EPP不能读数
4
void__stdcallamp_7109(unsignedchargain_cw,double*gain,int*showdot)
根据量程设置增益和显示位数
gain_cw:
量程控制字
gain:
量程的增益howdot:
该量程的有效位数(V为单位,showdot为小数点后的位数)
无
5
void__stdcallindicator_7109(unsignedchargain_cw,double*indicator_gain,double*indicator_max)
根据量程设置7109输入增益,电压表表最大显示数字
gain_cw:
量程控制字
gain:
量程的增益
indicator_gain:
7109输入增益
indicator_max:
表盘最大显示数字
无
6
void__stdcallstart_7109(void)
启动7109
无
无
在cvidll.dll
无
7
int__stdcallled_display(doubledisplay_data)
LED显示
display_data:
显示数据
无
在cvidll.dll
成功执行后,返回值为0
动态链接函数见附录
动态链接调用举例:
intled_display(doubledisplay_data):
在blockpanel中点击右键:
Allfunctions>Advanced>Calllibraryfunctionnode.
图4-6动态链接调用界面
双击图图标,将出现如图4-7所示
图4-7动态链接调用
此时可根据调用函数的路径,参数及名称进行设置进行得到图4-8
图4-8动态链接设置
这样就完成了动态链接的调用及设置。
4.流程图设计
整个程序要求由“退出”按扭来控制程序的运行与否,因此主框架可以设计为structure中的while循环。
由“测量”控制测量与否。
如图4-9所示:
图4-9程序总框图(while循环)
由于Labview特性是顺序流程,因此,循环内部可以设计为顺序结构。
即使用structure中的flatsequencecase。
整个设计流程分为四步:
(1)EPP初始化:
调用动态链接实现,函数无返回值
(2)启动7109:
调用动态链接实现,函数无返回值
(3)EPP读数检查:
由函数返回值判断EPP读数是否成功,当EPP读数成功时进入下一步否则将“测量”键弹起,停止程序。
前三步执行如图4-10所示:
图4-10循环内结构
(4)运行7109:
用case结构实现量程和测量对象的选择,作为动态链接函数run_7109的输入,然后把run_7109的输出分别接到表盘和数字显示,并作为led_display的输入,进行led显示。
根据7109的返回值判断,当其等于2或者3时,表示超量程,则点亮超量程指示灯,如:
当量程选择为case1如图1-11所示:
注意:
本程序中包含了“显示位数”、“增益”、“indicator_max”三个在前面板被隐藏的控件。
图4-117109运行及结果显示
4.显示
根据采集数据和计算结果,显示在相应的显示窗口。
根据被测信号数值,可验证双积分式AD原理和直流电压测量的关系。
5.调试与测试
1.按图4-12所示连接实验系统
图4-12实验连接图
说明:
跳线s101靠右边,接GND
2.虚拟直流电压表的面板如图4-5所示:
使用说明:
测试对象包括“待测电压”和“电位器(电压)”。
当选择电位器(电压)时,即测量虚拟仪器实验平台左下脚电位器的电压,可用万用表在实验箱的“TEST”点监测。
当选择待测电压时,即可测量外加直流电压(由于虚拟直流电压表的最大量程为±8V,因此建议使用的直流电压小于±8V)。
外加直流电压还可以对虚拟仪器实验箱上的电压源:
+3.3V和+5V进行测量。
表4-5
待测电压
量程
20mV
150mV
500mV
1.5V
3V
实际电压
(万用表读数)
4V
2V
——
800mV
——
——
400mV
——
——
——
200mV
——
——
——
80mV
——
——
——
——
40mV
——
——
——
——
(2)外接不同大小的直流电压信号,用虚拟数字直流电压表对其进行测量,选择不同的量程,对测量结果进行比较和分析,求出相对误差。
记录测量值,并填入表4-6:
表4-6
待测电压
量程
20mV
150mV
500mV
1V
2V
3V
实际电压
(万用表读数)
4V
2V
——
——
800mV
——
——
——
400mV
——
——
——
——
200mV
——
——
——
——
80mV
——
——
——
——
——
40mV
——
——
——
——
——