个人仪器系统是将必须的测试部件与计算机一起构成的自动测试系统。混合式的个人仪器系统,在微机内部的扩展槽及微机外部的插件箱中都插入了仪器插件卡,通过个人计算机总线相连[1]。
个人仪器系统解决了测试系统中每个独立仪器都具有键盘、显示器、存储器、微处理器、机箱及电源等部件缺点,充分共享计算机的机箱、总线、电源及软件资源,受到人们广泛重视。但传统个人仪器系统中的仪器插件卡由专业厂家生产,具有特定功能、固化的系统软件、固定不变的硬件电子线路和专用的接口器件,系统封闭、扩展性能差。仪器软件化成为解决该问题的有效方法之一。虚拟仪器利用PC机强大的图形环境,建立图形化的虚拟仪器面板,完成对仪器的控制、数据分析与显示,体现“软件即仪器”思想,逐渐成为仪器开发的主流范型,开创了仪器使用者可以成为仪器设计者的时代[2,3]。文章介绍在虚拟仪器LabVIEW8.2平台上,采用美国国家仪器公司(NI公司)的NI-6251数据采集卡与通用计算机系统设计的个人仪器系统,该系统实现了时域典型测量仪器示波器、数据域典型测量仪器逻辑分析仪、频域典型测量仪器频谱分析仪和光辐射域典型测量仪器相对光谱分析仪等仪器的设计,并通过实验,验证了该个人仪器系统设计的可行性。
2. 系统构成
系统构成如图1所示。主要由三大部分构成。一是数据采集卡(DAQ卡),二是通用计算机平台,三是测量或执行模块[4]。DAQ卡是个人仪器系统对外界被测信号的采集设备;驱动程序一般由数据采集卡生产厂家提供,用于计算机对DAQ卡的连接和驱动,安装在通用计算机中;虚拟仪器开发平台是系统设计平台,文章采用NI公司LabVIEW8.2图形化编程平台;测量和执行模块包括必须的传感器、信号处理和执行器件的功率驱动等部分,这是系统中根据使用者要求搭建的单元,如在本系统中为光辐射信号采集配置了光源、斩波器、探测器、单色仪和低噪声微弱信号前置放大器等单元;同时为实现计算机对单色仪波长步进控制,增加了功率驱动电路,以达到步进电机驱动功率要求。系统中大部分信号处理,如滤波、触发、微弱信号提取和系统不确定度评定等模块采用软件实现,且模块为所有仪器共享,可作为子程序调用,有效利用资源,简化仪器设计环节。
图1 基于虚拟仪器个人仪器系统的组成框图
3. 系统设计
软件是个人仪器系统设计的核心,系统设计采用模块化的思想,其中多通道仿真信号产生模块、从DAQ获取信号的模块、模数转换模块、连接并截取波形模块、触发设置模块、通道设置模块等模块是系统子VI,4个仪器都进行调用。相应的用户界面如图2所示。
图2 个人仪器系统主界面
3.1 系统软件顶层模块的设计
系统软件总体模块分三层,顶层为主控模块;第二层的4个模块分别为数字示波器.vi、逻辑分析仪.vi、频谱分析仪.vi和光谱分析仪.vi;第三层模块分别为PreDAQ.vi(DAQ准备模块)、DAQmx Read.vi(DAQ输入模块)、DAQmx Write.vi(DAQ输出模块)、StopDAQ.vi(DAQ停止模块),DAQ的这4个模块由4个仪器共享。程序框图如图3所示。
3.2 DAQ数据采集模块的设计
在LabVIEW 8.2中,DAQ支持单点采集、多点采集、连续采集等3种采集工作模式。单点采集方式每读一个样本,都必须经过“创建虚拟通道”、“读取一个样本”、“清除任务”3个步骤,因而速度慢,且各个样本之间难以精确定时;多点采集一次采集N个样本,这种方式一帧数据内各个样本之间能精确定时,速度也较快,但帧与帧之间仍无法精确定时,且每采集一帧数据也都必须经过“创建虚拟通道”、“设置定时方式”、“启动采集任务”、“读取N个样本”、“停止采集任务”和“清除任务”6个步骤,这在一定程度上影响效率;连续采集方式中PC机连续地从采集卡读入数据,每次读一帧,帧内的样本之间、帧与帧之间均可精确定时,且仅在采集第一帧数据之前执行“创建虚拟通道”、“设置定时方式”、“启动采集任务”3个步骤,采集完最后一帧数据之后执行“停止采集任务”和“清除任务”2个步骤。这种方式相对效率较高[4,5]。文章采用了采集工作模式。
为了使程序结构清晰,将“创建虚拟通道“、“设置定时方式”和“启动采集任务”3个步骤封装在“DAQ准备模块(PreDAQ.vi)中;将“停止采集任务“和“清除任务“两个步骤封装为“DAQ停止模块(StopDAQ.vi)”。
图3 个人仪器系统主程序框图
连续采样模式下,LabVIEW根据预设值在内存中给程序分配一循环缓冲区,在DAQ往其中写入数据的同时,应用程序可从其中读取数据。第一次采集数据时,DAQ从缓冲区的起始端开始存放数据,当缓冲区填满时,DAQ又从起始端重新存放新的数据,同时,旧的数据将被覆盖。显然,若程序读取数据的速率慢于DAQ向缓冲区存放数据的速率,则DAQ将会用新数据覆盖旧数据,部分数据丢失,因此,应用程序从循环缓冲区中读取数据的速率必须大于或等于DAQ往其中存放数据的速率;若程序读取数据的速率快于DAQ向缓冲区存放数据的速率,则LabVIEW会等待数据存放好后才能读取。一般循环缓冲区大小应为采样率的2~10倍[5],系统中缓冲区大小取扫描率的3倍。DAQ卡的输出程序设计与采集程序设计类似。
3.3 数字示波器的设计
数字示波器具有双通道信号输入、触发极性和电平控制、通道控制、直流增益控制、扫描因数控制、垂直灵敏度控制等功能及多种显示模式。基于虚拟仪器技术的数字示波器主程序流程图如图4所示。
图4 数字示波器的主程序框图
传统示波器中要显示波形,Y偏转板加被测信号,X偏转板加周期锯齿波电压,电子束在两个电压同时作用下,在荧光屏上显示被测信号随时间变化的周期波形曲线。
LabVIEW中XYGraph描绘一条曲线采用两个数组,一个数组包含横坐标X的数据,在波形图中显示时间;另一个数组包含纵坐标Y的数据,显示波形幅度,可以指定开始时间、步进时间。用For循环程序结构来产生数组,在边界自动累积数组并对其进行自动索引,启动自动索引,在循环边界出将一个数组元素由外部节点赋给输入通道,数组元素将从第一个元素开始,一次一个进入循环。X数组与Y数组进行捆绑,形成XY的波形数组送入XYGraph显示[6]。
信号采集过程实际上是信号截取的过程,假定示波器接收的信号是周期信号,一帧数据与另一帧数据之间要么可以重合,要么经过左右位移后可部分重合。当符合触发条件的信号出现时,就将触发窗口内的波形数组截取下来,但是显示的波形数组是需要若干帧信号,帧内截取的数组数由触发窗口选定,当多帧数据取出来后,为了显示,还应将他们连接。文章中选择3帧,每帧400数组。
保存数据模块把所有待保存的数据转换为字符串,再把这些字符串连接成一整个字符串,然后将这一整个字符串写入磁盘,保存为文本文件。不同数据之间,以及同一数据的数组行与行之间用End of Line(回车+换行)隔开,数组的范围由紧挨着该数组的上一个数据结尾的End of Line和该数组长度确定,数组中同一行的不同元素间用Tab字符隔开。在需要时,可由“读取数据及设置”模块读取并加载到仪器面板。
数据加载模块利用计算机的存储功能将瞬时波形或不可重复波形单独存储,在合适的时候随时调出并进行分析观察。
3.4 逻辑分析仪的设计
传统逻辑分析仪根据其工作特点不同,分为逻辑状态分析仪和逻辑定时分析仪两大类,一般它们各自做成独立的仪表,主要区别在于显示方式和定时方式不同[7]。利用LabVIEW8.2的图形和数据显示功能,用户可以菜单形式将两种显示方式切换显示,通过面板指示值对测量结果进行分析比较,简化测量步骤。
3.4.1 主程序的设计
主程序包括前台测试和后台程序。前台测试流程图如图5所示。为便于说明,图中仅画出基本部分。
启动后,程序DAQ读入仿真或实际信号,送入模数转换模块进行模数转换,得到0、1序列,当采集的数据帧数大于等于3时,程序调用序列触发模块在倒数第2、第3帧数据中搜索触发字序列。若搜索到的最后一个触发字靠近第二帧数据的末端,搜索窗口的末端有可能越过第二帧的末端而进入第三帧的范围。因此,该模块必须每次接收最近三帧数据,才能保证能截取恰好一帧长度的数据。若此时找到所有触发字,则停止采集,完成4项操作。(1)在最近的3帧数据中截取包含触发字序列的相当于1帧长度的数据显示于前面板;(2)把触发字下标(以当前显示的数据流的首端为下标0点)显示于“触发字下标”控件;(3)把触发字出现时刻(以当前显示的数据流首端为时间0点)显示于“触发字出现时刻”控件;(4)调用光标生成模块生成新的光标在时序图上指示各触发字的位置。若未找到所有触发字,则判断用户是否按下“手动触发”键,若是,则停止采集,退出循环,否则继续循环。
图5 逻辑分析仪的主程序框图
后台任务主要完成通道设置、触发设置、保存数据及设置、读取数据及设置、计算周期及频率等任务。其中通道设置、触发设置、保存数据及设置、读取数据及设置4项任务是根据用户按键决定是否执行的,它们使用统一的流程。
3.4.2 触发程序的设计
触发程序模块设计是逻辑分析仪实际重要单元。与传统逻辑分析仪相似,文章设计了组合触发、手动触发、延迟触发和序列触发方式。以序列触发程序的设计说明触发程序的设计过程。
序列触发事先设定两个或两个以上按一定顺序排列的触发字,然后在数据流中搜索,只有当搜索到所有的触发字,并且所有触发字出现的顺序与预先设定的完全相同,才会产生一次触发事件。触发过程示意图如图6所示。左边的数据是DAQ卡最先采集的数据,右边的数据是新数据。程序从触发位置所对应的数据(而不从第一个数据)开始往右搜索。当找到第一个触发字时,把搜索窗口的触发位置光标位置与该触发字重合,然后继续搜索其余触发字。如果在搜索窗口之内找到所有其余的触发字,则搜索成功,主程序将把搜索窗口内的数据显示在屏幕上;否则,搜索失败。程序将从数据流中原来第一个触发字出现的位置的下一个位置开始搜索新的第一个触发字,找到新的第一个触发字后再把搜索窗口的触发位置与该触发字重合,如此重复进行。
图6 序列触发示意图
3.5 频谱分析仪的设计
对不同类型的信号进行频谱分析时,在理论上和工程上采用不同的分析方法、不同的频谱概念和不同的频谱形式。一般说来,确定性信号存在着傅立叶变换,由它可获得确定的频谱。随机信号只能就某些样本函数的统计特征值作出估算,如均值、方差等。这类信号不存在傅立叶变换,对它们的频谱分析指的是它的功率谱分析[7]。文章利用LabVIEW8.2的幅度和相位谱子VI,设计了幅度谱和相位谱分析仪。首先计算双边幅度谱,然后将双边幅度谱去掉负频率,正频率分量幅度加倍,零频率分量不变,转换为单边幅度谱,输出信号为输入信号单位的均方根。
考虑到信号传输过程中经常会混入高频噪声,噪声的能量甚至会超过信号能量,且线性相频响应、不允许纹波,需要窄的过渡带,所以在设计时增加了Butterworth滤波器。
3.6 光谱分析仪的设计
文章所设计的光谱分析仪主要针对热释电探测器。其测试原理如图7所示。
图7 光谱分析仪测量原理图
计算机虚拟平台包括虚拟锁相放大器和参数测试平台,虚拟锁相放大器将微弱有用信号从噪声中检测、提取出来,送入探测器测试平台。探测器测试平台程序设计框图如图8所示。
图8 探测器测试平台框图
表1 逻辑分析仪3级触发的测试结果
4. 实验结果和结论
在LabVIEW8.2平台上。采用NI-6251及部分硬件设计和实现了一个个人仪器系统,目前该系统包括数字示波器、逻辑分析仪、频谱分析仪和光谱分析仪4种仪器。采用该仪器系统分别对仿真信号和实际信号进行测试,测试部分结果如下。4.1 数字示波器的测试
将示波器面板上输入信号选择开关分别置“仿真”和“实测”位置进行测试。
4.1.1显示模式测试
数字示波器显示模式设置了单通道、双通道、波形叠加和李沙育图,分别对应面板上“A、B、A&B、A+B、A-B、李沙育图”,按下“启动”键,示波器运行,为观察方便,A通道设置为频率为20Hz,幅度为4V正弦波;B通道为频率为40Hz,幅度为2V的方波。
图9分别显示了单通道A、A&B、李沙育图、A+B和A-B波形。其中波形横坐标为时间(s),纵坐标为电压(V)。
4.1.2 通道控制功能测试
分别调节然后调节输入信号的幅度、频率等参数,调节示波器的水平和垂直的增益和偏转,及触发极性、触发电平等各项参数,可获得 “—”“+”极性触发波形、垂直偏转参数不同的波形显示。
4.2 逻辑分析仪的测试
通道数设置为8通道、触发级数为3级、触发字分别设置为TrigWord0=00001010;TrigWord1=00010101;TrigWord2=00100000,按下“启动”键,采用仪器内部的计数器作为数据流,程序运行,一个测试结果如表1所示。其波形图和状态表如图10所示。
测试结果表明,逻辑分析仪具有多级序列触发捕捉数据流能力,能用状态表和时序图显示运行结果。
4.3 频谱分析仪的测试
频谱测试采用了仿真正弦信号源。信号振幅为1V、频率为14 Hz;加入一个均匀白噪声模拟信道传输,噪声幅度为100,白噪声通过一个Butterworth高通滤波器,该滤波器的Low Cutoff Freq设为100 Hz,即滤出频率小于100Hz的低频噪声,生成高频噪声。图11显示了频谱分析仪滤波和分析信号的能力。
图11 逻辑分析仪的时序图和状态表
图18 频谱分析仪分析结果
4.4 光谱分析仪的测试系统采用两种光源,一种是XQ350超高压强电流的弧光放电灯的球形氙灯,辐射出从紫外到近红外线连续光谱;另一种是贺利氏特种光源有限公司的DS225/05J 型氘灯,能够提供200nm~400nm的光谱辐射。探测器采用上海理工大学光学仪器研究所制备的紫外增强型热释电探测器,热释电探测器光敏元面积 =10mm×10mm=100mm2;光阑孔直径为15mm;光阑孔与敏感元距离为1.714cm;噪声等效带宽为1Hz;环境温度为25℃[10]。假设辐射体温度为533K,经过计算得出辐射到探测器的功率P=0.028W;探测出的噪声电压为0.32mV。在上述条件下得到探测器在氙灯和氘灯辐射情况下的相对光谱响应曲线如图12(a)(b)所示。
(a) 氙灯辐射时探测器的响应
(b) 氘灯辐射时探测器的响应
图12 光谱分析仪对热释电探测器测试结果
4.5 结论
测试结果表明,在LabVIEW8.2平台上采用数据采集设备和通用计算机,能实现包含时域典型测量仪器示波器、数据域典型测量仪器逻辑分析仪、频域典型测量仪器频谱分析仪和相对光谱测量系统的个人仪器系统。个人仪器系统信号的获取使用外接数据采集设备,信号和数据处理模块大部分采用模块程序,在多个仪器中可调用,如触发程序,分别在示波器、逻辑分析仪中调用;数据处理程序在4个仪器均调用。程序稳定、易修改、易升级、易二次开发,体现了仪器软件化思想,说明个人仪器设计构想的可行性。
个人仪器系统基于PCI总线,充分利用了PC计算机的机箱、总线、电源及软件资源,因而也受PC计算机机箱环境和计算机总线的限制,存在不足,如电源功率不足、机箱内噪声干扰、插槽数目不多、总线面向计算机而非面向仪器、插卡尺寸较小、散热条件差等。同时,由于采用的数据采集卡采集速率、采集灵敏度及模拟输出通道的限制,个人仪器系统测量范围、测量灵敏度及控制功能还有待于完善。目前可通过外接数据采集设备、功能设备、测试模块等设备解决PC机固有条件限制;通过采用高速、宽频、高精度数据卡解决测量范围及灵敏度限制问题。随着计算机和仪器总线技术的发展,可以预料,以PCI总线、PXI总线和VXI总线为主的模块式仪器或个人仪器,三者将互为补充、共同发展[2,11]。
参考文献
[1]赵新民,王祁编著.智能仪器设计基础[M].哈尔滨:哈尔滨工业大学出版社,2007.2
[2]陈光禹编著.VXI总线测试平台技术[M].成都:电子科技大学出版社,1996.10
[3] 祖先锋,潘孟春,罗飞路等. 基于虚拟仪器的电视测角仪测试系统[J].仪器仪表学报. 2006.27(10):1248-1252
[4] National Instruments Corporation. PCI-6251Specifications [EB/OL]. http://www.ni.com/pdf/manuals/371291h.pdf.
[5]National Instruments Corporation. NI-DAQmx Help[EB/OL].
http://www.ni.com/pdf/manuals/371291h.pdf.
[6] National Instruments Corporation.NI Digital Waveform Generator/Analyzer Help[EB/OL]. http://digital.ni.com/manuals.nsf/websearch.
[7] 丁志中,叶中付.频谱无混叠采样和信号完全可重构采样计[J].数据采集与处理. 2005.20(3):333-337
[8] A national measurement system for radiometry photometry and pyrometry based on absolute detectors[EB/OL]. http://physics.nist.gov/pubs/TN1421/electrical.html.
[9]Xiaoyi Wang.Sensitive digital lock-in amplifier using a personal computer. Review of scientific instruments.Vol.61(7) July 1990: 1999-2005
[10]瑚琦,顾玲娟,侯建伟等.紫外增强型电学定标热释电辐射计ECPR的研制.仪器仪表学报[J]. 2006,27:46-51
[11]魏平,赵克,马红光.仪器与自动测试总线.国外电子测量技术[J]. 2004,3:2-4