西华大学实验报告西华大学实验报告(理工类)开课学院及实验室:电气信息学院电气信息专业实验中心 实验时间:2014年 6 月 11 日学 生 姓 名学 号成 绩 学生所在学院年级/专业/班 课 程 名 称 虚拟仪器技术课 程 代 码 6001429 实验项目名称 基于LabVIEW 的虚拟直流电压表设计项 目 代 码 实验代码4指 导 教 师王孝平项 目 学 分一、实验目的:1. 理解双积分A/D 转换器7109及数字电压表的工作原理。
2. 掌握虚拟直流电压表设计的基本方法。
3. 测量数据的误差分析。
二、实验内容:1. 根据实验指导实现直流电压表的设计。
设计要求:测试对象:电位器,外部电压量程:40mV ,80 mV ,200 mV ,400 mV ,800 mV ,2V ,4V ,8V 。
2. 选择电压表不同量程和不同测量对象,进行测量。
三、实验器材:1. 1.SJ-8002B 电子测量实验箱 1台 2.双踪示波器(20MHz 模拟或数字示波器) 1台 3.计算机(具有运行windowsXP 和LabVIEW 软件的能力) 1台 4. 万用表(3 1/2位以上) 1台 5. Q9连接线 1根四、实验原理:1. 双积分A/D 转换器ICL7109.如图4-1为双积分A/D 转换器ICL7109实验电路图。
REFINHINL MODE STATUS CE/LOAD OR POLB9B12B1B8D0D765EH 56H(D3)RD 36H 37HICL 7109.....8V+V-OI OO+5V -5V2.048V 基准电压2622018194028353421222336 3.579MHzRUN/HOLD LBEN HBEN7109+增益选择通道Vx图4-1 双积分式A/D 转换器7109测量电压原理图第 组2.工作原理整个直流电压表设计主要包括四个部分:7109工作原理,A/D转换时序,增益选择电路,通道输入电路。
系统电路图如图4-2所示:图4-2 电路图(1)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 的状态值。
(2) A/D 转换时序ICL7109直接接口方式的定时图如图4-3所示。
数据有效RUN/HOLD STATUS 高位字节低位字节HBEN LBEN CE/LOAD 数据有效图4-3 7109 直接接口方式(3) 增益选择电路待测模拟信号需经过测量放大器进行信号放大,如图4-4所示,通过模拟开关CD4052选择放大器反馈电阻即可进行增益选择,图中共设置了4档增益:×0.5、×1、×2、×5。
图4-4 测量放大电路(4) 通道输入电路待测模拟信号从实验箱的外部接线端7109+和7109-输入。
另外,为了方便实验,实验箱上提供了通过电位器调节的0~±4V 的直流电压。
此外为了进行校准测量,还提供了接地(0V)和参考电压(2.048V)输入通道。
7109的A/D转换关系为:r ADCin N V V 2212⨯=(4-1) 式中, in V —— A/D 转换器输入电压;ADC N —— A/D 转换结果的12bit 数字量; r V —— A/D 转换器外部参考输入电压,调节为r V =2.048V ;由式(4-1)可知,若r V =2.048V ,则ADC N 即为以mv 单位表示了in V ,即)m v (ADC in N V = (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为前面板设计的参考。
“测量”键按下EPP 接口初始化启动7109EPP 读数正确EPP 读数检查运行7109选择测量对象及量程“测量”键弹起程序停止结果显示否是否是超量程显示“溢出”否是图4-5 虚拟直流数字电压表面板启动虚拟仪器labview软件开发环境,建立新的工程文件,打开front Panel设计界面,并存储,由界面文件自动生成相关流程图框架。
本程序中需要用到的前面板控件有:表4-1 前面板控件控件类别序号名称位置注释指示类(1)电压显示表盘数值Numeric>仪表Meter 设置电压表的属性结点,对不同量程进行控制(2)超量程指示灯布尔LEDS>Round LED圆形指示灯溢出时点亮(3)电压数字显示框数值Num Indis>NumericIndicator数值显示控件设置属性结点,对不同显示位数进行控制测量选择类(4)量程选择档数值Num Ctrls>转盘Dial 选择量程(具体见表3-2)(5)测试对象选择档布尔Boolean>HorizontalSwitch选择测试对象,具体见表3-3)程序控制类(6)退出Buttons>OK Button 控制程序退出(7)测量Buttons>Push Button 控制程序开始使用量程选择档对量程控制字gain_cw(10进制)进行选择,得到增益gain(10进制),由于7109的输入电压为4V。
由于7109的输入电压为4V,故每档量程对应的增益与量程之乘积应为4V。
如表4-2所示:表4-2 量程选择档设置量程8V 4V 2V 800mV 400 mV 200 mV 80 mV 40 mVgain_cw 16 17 18 19 33 34 35 49gain 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.dll0:EPP可正常读数;1:EPP不能读数3 int __stdcall run_7109( unsigned charm_what, unsignedchar gain_cw,doublevref, double *rult)运行7109,实现7109的读数及转化m_what:测试对象gain_cw:量程控制字vref:参考电压rult:测量结果在cvidll.dll0:读数有效;2:读数无效,正溢出;3:读数无效,负溢出;4:EPP不能读数4 void __stdcallamp_7109 (unsignedchar gain_cw, double*gain, int *showdot) 根据量程设置增益和显示位数gain_cw:量程控制字gain:量程的增益howdot:该量程的有效位数(V为单位,showdot为小数点后的位数)无5 void __stdcallindicator_7109(unsigned chargain_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动态链接函数见附录动态链接调用举例:int led_display(double display_data):在block panel中点击右键:All functions>Advanced>Call library function node.图4-6 动态链接调用界面双击图图标,将出现如图4-7所示4-7 动态链接调用此时可根据调用函数的路径,参数及名称进行设置进行得到图4-8图4-8 动态链接设置这样就完成了动态链接的调用及设置。