labview 构建SFP

合集下载

关于NI LabView平台的搭建

关于NI LabView平台的搭建

关于NI LabView平台的搭建一,首先需要清楚所需的各个模块,及其功能用途。

1.1NI LabView 2010评估版LabVIEW 2010 ,用于设计、测试、测量与控制。

LabVIEW 2010新增了即时编译技术,可将执行代码的效率提高20%,并针对更多应用市场推出各种附加工具包的收费与评估版,用户还可轻松将自定义功能集成到平台上,这些全新特性进一步提高了LabVIEW 2010的效率。

对于使用现场可编程门阵列(FPGA )的用户来说,LabVIEW 2010提供全新IP集成节点,能够将所有第三方FPGA IP集成到LabVIEW应用中,并可与Xilinx 内核生成器兼容。

此外,NI研发工程师通过在LabVIEW技术在线论坛上与用户进行广泛深入的交流与合作,为新版LabVIEW添加了十多种客户建议的新特性。

自1986年推出首款以来,LabVIEW通过流程图的方式提供拖放式图形化功能块与线,大大简化了复杂系统的开发。

LabVIEW可与数千种硬件设备集成,内置数百种高级分析和数据可视化的函数库,能够用于多种操作系统,并可用于x86处理器、实时操作系统(RTOS)和FPGA。

从LEGO® MINDSTORMS® NXT机器人到CERN大型强子对撞机,世界上大多数工程师与科学家们都采用了LabVIEW。

1.2NI-IMAQ for IEEE 1394 CamerasNI-IMAQ是为用于移动产品的IEEE 1394接口类型相机提供易用的解决方案。

驱动程序将NI测量和自动探测器结合在一起,所以你能很容易地配置你的相机。

你能快速在系统里建立IEEE 1394接口类型的相机与电脑的连接并立刻获得相机中的图象,就一套易用的程序来说,你能在LabVIEW 或Measurement Studio中建立应用,通过VIs建立或直接访问C库功能。

可与NI 8252或其他任何OHCI IEEE 1394接口设备配合使用与LabVIEW、LabWindows/CVI、C、Visual Basic和C++兼容从支持IIDC的IEEE 1394摄像头采集图像通过软件交互地配置摄像头1.3,NI vision Development ModuleNI公司的视觉开发模块是专为开发机器视觉和科学成像应用的工程师及科学家而设计。

利用LabVIEW进行电路板设计与布局

利用LabVIEW进行电路板设计与布局

利用LabVIEW进行电路板设计与布局LabVIEW是一种功能强大的可视化编程语言和开发环境,它可以用于电路板设计和布局。

在本文中,将介绍如何使用LabVIEW进行电路板设计和布局的基本步骤和技巧。

一、概述电路板设计与布局是电子工程中非常关键的环节。

一个良好设计的电路板可以提高电路的性能与可靠性,并节省电路板的空间。

而LabVIEW作为一种流行的工具,为电路板设计和布局提供了丰富的功能和灵活性。

二、LabVIEW基础知识在开始之前,我们先了解一些LabVIEW的基础知识。

1. 控件和工具栏:LabVIEW提供了各种各样的控件和工具栏,用于实现电路板的设计和布局。

例如,我们可以使用按钮控件来表示开关,使用数值显示控件来表示电流和电压等。

2. 连线和框图:LabVIEW以框图的方式表示程序的流程和结构。

我们可以使用连线来连接各个控件和模块,实现电路的连接和信号传输。

3. 功能模块:LabVIEW提供了多种功能模块,用于完成各种电路板设计和布局的任务。

例如,我们可以使用滤波器模块来实现滤波功能,使用数据存储模块来保存数据等。

三、电路板设计与布局的基本步骤下面是使用LabVIEW进行电路板设计与布局的基本步骤:1. 理清电路结构:首先,我们需要根据电路的功能和需求,理清电路的结构和模块之间的关系。

这一步骤可以帮助我们确定所需的控件和模块。

2. 建立框图:在LabVIEW中,我们可以使用框图语言来建立电路的流程和结构。

使用LabVIEW提供的控件和工具栏,我们可以方便地创建和配置框图。

3. 连接控件和模块:使用LabVIEW提供的连线功能,将各个控件和模块连接起来。

确保信号的正确传输和连接。

4. 参数设置:根据电路的需求,对各个控件和模块进行参数设置。

例如,设置滤波器的截止频率,设置数据采集的采样率等。

5. 优化和测试:在完成电路的设计和布局后,我们可以使用LabVIEW提供的调试和测试功能,对电路进行优化和测试。

labview组成方案

labview组成方案

LabVIEW组成方案引言LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一款由美国国家仪器公司(National Instruments)开发的图形化编程语言与开发环境。

LabVIEW广泛应用于工程、科学和研究领域,以其易于使用、灵活性和强大的功能而受到广大用户的青睐。

本文将介绍LabVIEW的主要组成方案,包括软件和硬件方面的内容。

软件组成LabVIEW开发环境LabVIEW开发环境是LabVIEW的核心组成部分,是用户进行编程开发和实验控制的界面。

它提供了一套完整的工具集,包括图形编辑器、函数库、调试工具、数据分析工具等。

通过直观的图形化编程,用户可以轻松地创建虚拟仪器控制界面(Virtual Instrument)。

LabVIEW应用程序LabVIEW应用程序是用户在开发环境中创建的实际运行的程序。

它可以用于各种用途,如数据采集、控制系统、信号处理等。

LabVIEW应用程序可以以exe 可执行文件的形式发布,也可以嵌入到其他软件中作为组件使用。

LabVIEW模块LabVIEW还提供了丰富的模块,用于扩展其功能。

这些模块包括: - 数据采集模块:用于接口与各种硬件设备进行数据采集,如DAQ卡,传感器等。

- FPGA模块:用于对FPGA进行编程,实现硬件加速和高速控制。

- 即时嵌入系统模块:用于开发控制和嵌入式系统应用,如嵌入式系统和实时操作系统。

- 通信模块:用于进行网络通信、数据库访问等。

- 图像处理模块:用于图像采集、处理和分析。

硬件组成数据采集硬件LabVIEW可与各种数据采集硬件相结合,实现数据的实时采集和处理。

常见的数据采集硬件包括DAQ卡、传感器、采样仪等。

这些硬件设备可通过LabVIEW 提供的底层驱动程序进行控制和管理。

控制器控制器是LabVIEW与外部设备进行通信和控制的关键元件。

常见的控制器包括: - PXI:一种工业控制器,具有高性能和可扩展性,适用于复杂的实时控制和数据采集应用。

LabVIEW中的硬件模块和外部设备的集成

LabVIEW中的硬件模块和外部设备的集成

LabVIEW中的硬件模块和外部设备的集成在现代科技领域中,LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一个非常重要的工具,被广泛应用于数据采集、仪器控制和系统集成等方面。

LabVIEW的便利之处在于它可以与各种硬件模块和外部设备进行集成,进而实现对其的控制和数据处理。

本文将介绍LabVIEW中硬件模块和外部设备的集成方法和应用。

一、硬件模块的集成在LabVIEW中,硬件模块的集成主要是通过使用特定的硬件驱动程序实现的。

这些驱动程序可以将硬件模块的功能与LabVIEW进行连接,实现对硬件模块的控制和数据交互。

1. 选择适配的硬件驱动程序在开始集成硬件模块之前,首先需要确定所使用硬件模块的类型,并选择适配的硬件驱动程序。

LabVIEW提供了丰富的硬件驱动程序库,可以支持多种硬件设备的集成,如传感器、运动控制器、数据采集卡等等。

2. 安装并配置硬件驱动程序安装硬件驱动程序后,需要在LabVIEW中进行相应的配置。

在LabVIEW的软件平台上,一般会有一个设备配置向导,通过该向导可以选择所需要操作的硬件设备,并进行配置和初始化操作。

这样LabVIEW就能正确识别和控制所选择的硬件模块。

3. 编写程序代码在配置完硬件驱动程序后,就可以开始编写相应的程序代码了。

LabVIEW通过一种称为“G语言”的图形化编程语言来控制硬件模块。

通过拖拽、连线和配置节点等方式,可以实现对硬件模块的读取、控制和数据处理等功能。

二、外部设备的集成除了硬件模块的集成,LabVIEW还可以与各种外部设备进行集成,例如相机、激光器、运动平台等等。

通过与这些外部设备的集成,可以实现更加复杂的系统控制和数据处理。

1. 使用相应的外部设备驱动程序与硬件模块不同,外部设备一般需要使用相应的驱动程序或者软件开发工具来进行集成。

这些驱动程序和工具可以帮助LabVIEW与外部设备进行通信,并传递相应的控制指令和数据。

使用LabVIEW进行模拟仿真和建模

使用LabVIEW进行模拟仿真和建模

使用LabVIEW进行模拟仿真和建模LabVIEW是一种强大的虚拟仪器平台,可用于模拟仿真和建模。

它提供了一种直观且灵活的方式,使工程师和科学家能够设计和测试各种系统,从而加速产品开发和研究过程。

本文将介绍如何使用LabVIEW进行模拟仿真和建模。

一、LabVIEW简介LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种基于图形化编程语言G(G语言)的开发环境。

通过将函数块拖放到工作区并连接它们,用户可以创建功能强大的虚拟仪器和应用程序。

LabVIEW提供了丰富的工具和功能,适用于各种领域,如控制系统、信号处理、数据分析等。

二、LabVIEW的模拟仿真功能LabVIEW具有强大的模拟仿真功能,可以模拟各种物理现象和系统行为。

通过构建数学模型,并将其转化为LabVIEW代码,用户可以模拟和分析从简单电路到复杂系统的各种问题。

1. 建立模型在LabVIEW中,可以使用信号生成器、函数生成器、样条插值等工具建立数学模型。

通过选择适当的工具和建模方法,可以准确地描述系统的特性和行为。

2. 设置参数LabVIEW允许用户在模拟仿真过程中灵活地设置参数。

用户可以使用调节器、控件等工具来改变模型的输入,观察系统的响应,并进行进一步的分析。

3. 进行仿真完成模型的建立和参数设置后,用户可以通过LabVIEW的仿真模块进行仿真。

仿真模块提供了多种仿真方法,如时间域仿真、频域仿真和多体动力学仿真等。

用户可以根据需要选择适当的仿真方法,并进行仿真分析。

4. 分析结果LabVIEW提供了丰富的数据分析工具,可以对仿真结果进行详细的分析。

用户可以绘制波形图、频谱图、功率谱图等,以可视化的方式展示仿真结果。

同时,LabVIEW还支持数据导出功能,可将结果导出为Excel、文本等格式,便于进一步的处理和分析。

三、LabVIEW的建模功能除了模拟仿真,LabVIEW还具有强大的建模功能。

LabVIEW中的虚拟仪器设计与制作

LabVIEW中的虚拟仪器设计与制作

LabVIEW中的虚拟仪器设计与制作虚拟仪器是利用计算机软、硬件来模拟实际物理仪器从而进行测试、测量和控制的技术。

LabVIEW作为一种强大的虚拟仪器设计与制作工具,为工程师提供了各种各样的功能模块和编程环境,可以简化仪器设计过程,提高工作效率。

本文将介绍LabVIEW中的虚拟仪器设计与制作的基本原理和应用示例。

一、LabVIEW虚拟仪器设计原理LabVIEW是一种图形化编程语言,通过将模块进行连接和编程,实现虚拟仪器功能。

主要包括以下几个方面:1. 数据采集与处理:LabVIEW可以通过各种传感器或数据采集卡获取实际物理量,并对其进行实时采集和处理。

用户可以选择不同的数据处理方法,比如滤波、FFT等,以获得所需的测量结果。

2. 仪器控制与操作:LabVIEW提供了丰富的控制和操作功能,可以模拟实际仪器的各种功能和操作。

用户可以设计按钮、滑块等用户界面来控制虚拟仪器的各个参数和状态,实现对实际系统的控制。

3. 数据可视化:LabVIEW具有强大的数据可视化功能,可以通过图形、图像或者曲线等方式展示采集到的数据。

用户可以根据需要选择合适的数据表示方式,以便更直观地分析和理解数据。

二、LabVIEW虚拟仪器设计与制作示例下面以一个温度测量和控制系统为例,介绍LabVIEW虚拟仪器的设计与制作过程。

1. 硬件配置:首先,需要选择合适的温度传感器和数据采集卡,并通过LabVIEW提供的接口将其连接到计算机。

确保硬件正常连接后,开始进行软件配置。

2. 创建虚拟仪器VI:打开LabVIEW软件,在工具栏中选择新建VI,开始创建虚拟仪器的VI。

在VI中,可以添加各种测量、控制和显示模块,实现对温度的实时测量与控制。

3. 设置数据采集和处理模块:通过LabVIEW的模块库,选择合适的数据采集和处理模块,配置数据采样率和采集通道等参数。

根据实际需要,可以添加滤波、数据处理和数据转换等模块,以获得准确的温度测量结果。

实验虚拟仪器基础——NIELVIS入门

实验虚拟仪器基础——NIELVIS入门

5)虚拟仪器(NI ELVIS)基础实验[实验目的]1.了解虚拟仪器概念2.学习NI ELVIS软面板仪器的使用,并进行实际测量3.了解G语言,LabVIEW编程初步[实验原理]一.虚拟仪器简介1.软件即仪器虚拟仪器(Virtual Instrument,简称VI)是基于计算机的软硬件测试平台。

虚拟仪器技术的优势在于可由用户定义自己的专用仪器系统,且功能灵活,很容易构建,所以应用面极为广泛。

20世纪80年代,随着计算机技术的发展,个人电脑可以带有多个扩展槽,就出现了插在计算机里的数据采集卡。

它可以进行一些简单的数据采集,数据的后处理由计算机软件完成,这就是虚拟仪器技术的雏形。

1986年,美国National Instruments公司(简称NI公司)提出了“软件即仪器”的口号,推出了NI-LabVIEW开发和运行程序平台,以直观的流程图编程风格为特点,开启了虚拟仪器的先河。

2.与传统仪器比较虚拟仪器∙使用者定义功能∙软件定义的界面∙网络/互联网的连接传统仪器∙制造商定义功能∙固定的界面∙有限的扩展功能3.LabVIEW图形化开发环境LabVIEW是一种图形化的编程语言和开发环境。

它功能强大且灵活,包含内容丰富的数据采集、分析、显示和存储工具。

LabVIEW用于实现对实际物理量的采集、分析和表达,利用它可以方便快捷地建立自己的虚拟仪器。

以LabVIEW为代表的图形化程序语言,又称为G语言。

使用这种语言编程时,基本上不需要编写程序代码,而是“绘制”程序流程图。

LabVIEW与虚拟仪器有着紧密联系,在LabVIEW中开发的程序都被称为VI(或虚拟仪器),其扩展名为vi。

VI包括三个部分:前面板(Front Panel)、程序框图(Block Diagram)和图标/连接器(Icon and Connector Pane)。

程序前面板用于设置输入数值和观察输出量,用于模拟真实仪表的前面板。

在程序前面板上,输入量称为控制器(Control),输出量称为显示器(Indicator)。

LabVIEW虚拟仪器快速搭建自定义测量系统

LabVIEW虚拟仪器快速搭建自定义测量系统

LabVIEW虚拟仪器快速搭建自定义测量系统LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一款由美国国家仪器公司(National Instruments)开发的图形化编程环境和集成开发环境(IDE)。

LabVIEW以其易于使用、灵活性强的特点,成为了科学研究、工程设计和测量控制领域的重要工具。

本文将介绍如何利用LabVIEW快速搭建自定义测量系统。

一、LabVIEW概述LabVIEW是一种以数据流为基础的编程语言,其图形化的编程界面使得用户无需编写传统的代码,而是通过拖拽和连接不同的功能模块(称之为虚拟仪器)来构建程序。

LabVIEW提供了丰富的工具箱,包括数据采集、信号处理、仪器控制等功能,用户可以根据自己的需求选择相应的模块进行组合,快速搭建自定义的测量系统。

二、LabVIEW快速搭建自定义测量系统的步骤1. 硬件连接与配置首先,需要将测量设备(如传感器、仪器等)连接到计算机上,并确保它们能够与LabVIEW进行通信。

LabVIEW支持多种数据采集设备和通信接口,用户可以根据实际情况选择合适的设备并进行相应的配置。

2. 创建虚拟仪器在LabVIEW中,虚拟仪器是构成测量系统的基本单元。

用户可以通过LabVIEW的开发环境,创建自己的虚拟仪器,并为其添加相应的功能模块。

比如,对于温度测量系统,可以创建一个虚拟仪器,并在其内部添加数据采集、信号处理和显示功能。

3. 连接虚拟仪器在LabVIEW中,通过连接虚拟仪器的输入和输出接口,可以将多个虚拟仪器连接起来,形成完整的测量系统。

用户可以根据测量需求,通过拖拽和连接功能模块,将虚拟仪器进行适当的组合,实现数据的采集、处理和展示。

4. 编写程序逻辑在连接虚拟仪器的基础上,用户可以使用LabVIEW提供的图形化编程工具,编写程序逻辑。

LabVIEW提供了丰富的函数库和工具箱,用户可以通过拖拽和连接这些函数,实现数据的处理、分析和控制。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

介绍了一种利用LabVIEW构建SFP(Small Form-factor Pluggable)光模块测试平台的方法。

测试平台通过读写计算机并口来映射地址上的数据,控制并口端口的逻辑电平实现计算机并口模拟I2C总线。

计算机利用模拟的I2C总线与SFP光模块实现通信。

分析了生产者/消费者结构队列状态机并用于设计中,该设计模式可以及时响应前面板动作或外部事件,并且使得状态机的状态变换更加灵活多变。

关键词: SFP光模块;生产者/消费者结构队列状态机;计算机并口模拟I2C总线随着近几年光通信的迅速发展,光通信接入网对实现光电、电光转换的光收发模块的要求越来越高,光收发模块的测试也越来越复杂。

早期一般使用Visual Basic、Visual C++开发测试软件,存在开发周期长、测试效率低等问题,本文提出了使用LabVIEW虚拟仪器技术来完成测试工作的方法,解决了测试成本高、测试效率低、测试系统松散等问题,同时它还具备远程测试以及仪器定制或自制等特点。

虚拟仪器技术已经深远地影响着测试测量领域,是企业和科研单位的测试工作的重要解决方案之一。

本文正是利用此项技术解决了SFP 光模块测试平台开发的几个关键问题。

1 SFP光模块测试软件的设计1.1软件结构软件由四个界面构成,实时监控界面、阈值设置界面、校准界面和光模块信息设置界面。

实时监控界面是软件的主界面,它显示数字诊断功能[1]中的五个模拟量与其Alarm和Warning标志;阈值设置界面的功能是设定Alarm与Warning阈值,当实时监控值不在阈值内时会出现工作异常警示;校准界面主要是解决数据漂移,从而保证测得数据准确;模块信息设置界面是完成光模块在出厂前信息设置。

软件运行的过程中用到的数据库是由Access 数据库构成。

如图1所示为软件结构图。

1.2计算机并口模拟I2C总线I2C总线由四种信号组成:开始信号、停止信号、响应信号和数据发送。

在计算机并口产生这些信号就要对数据地址、状态地址和控制地址进行程序设计和控制。

在LPT1端口中,它们对应的地址分别为0x378、0x379和0x37A。

计算机并口中的8个数据端口分别对应0x378中的B7~B0;5个状态端口分别对应0x379中的B7~B3;4个控制端口分别对应0x37A中的B3~B0。

如果在以上地址的某一位上写1,计算机并口的对应端口就会产生逻辑电平高。

I2C 总线的SDA和SCL分别需要并口的两个端口模拟,这是因为计算机并口的特性,对地址中的数据的操作要么一直读操作要么一直写操作。

对LPT1端口地址操作要使用LabVIEW函数库中的Out Port函数和In Port函数。

Out Port函数和In Port函数是在指定的16位I/O端口地址读取和写入带符号的整数。

读操作要先利用In Port函数读取LPT1端口地址上的整数数据,再转化为无符号数据并求出特定位的布尔量,最后得到该位对应端口的逻辑电平。

写操作就是先利用In Port函数读取LPT1端口地址上的整数数据,再转化为无符号数据并修改其中某一位的值,最后利用Out Port 函数把修改后的数据转化为整数数据并写入LPT1端口地址,从而改变对应端口的逻辑电平。

I2C总线的四种信号通过SDA和SCL的组合形式如下:(1)开始信号:在SCL高电平期间,SDA由高变为低,将产生一个开始信号;(2)停止信号:在SCL高电平期间,SDA由低变高,将产生一个停止信号;(3)应答信号:传输一个字节后的第9个时钟,若从设备把SDA拉低,表明有应答信号,反之则无;(4)数据传输:数据传输过程中,数据的改变都必须在SCL低电平期间,在SCL为高电平期间必须保持SDA信号的稳定[2]。

按照时序要求依次可以编写出I2C start、I2C send、I2C ack和I2C stop四种I2C总线信号的vi,其中I2C send这个vi既能发送地址又能发送数据。

最后由这些vi组成如图2所示的完整I2C总线数据传输。

1.3 生产者/消费者结构队列状态机设计模式是在解决问题的过程中,由一些良好思路的经验集成的。

在LabVIEW中,它包括结构、函数、控件和错误处理的布局,它形成了一个通用的结构来完成一些常见的任务。

设计模式可实现模块重用,并提高软件生产效率和质量[3]。

生产者/消费者结构是一种常用的设计模式,它主要用于数据采集系统。

一般的数据采集系统包括数据采集、数据分析和结果显示三个步骤。

如果将这三个步骤按照常规的顺序执行,则数据分析导致的时间延迟会增大数据采集的周期。

采用生产者/消费者结构的数据采集系统,它通过并行的方式实现多个循环,可以很好地解决这一问题。

一个循环不断地采集数据(生产者),另一个循环不断地处理数据(消费者),这两个循环互相通信,但又不产生干涉。

队列状态机也是一种常用的设计模式,它对经典状态机做了很大的改进。

在经典状态机中,移位寄存器的状态转移方式受限于每个循环间隔内一个指定新状态或应用程序的状态。

而队列状态机则通过LabVIEW的队列结构缓存一个队列的多状态,使得应用程序的任何状态都可以通过调用Enqueue Element函数在该队列的后端增加任意数量的新状态,这类似于先进先出缓冲器。

生产者/消费者结构队列状态机最早是由Anthony Lukindo提出和改进,它结合以上两种设计模式优点,其结构示意图如图3所示。

从图中可以看出,该设计模式由四部分组成:队列引用、事件循环、主循环和并行子vi。

事件循环和并行子vi为生产者,主循环是消费者,生产者和消费者之间的消息与数据的传递是通过队列引用来实现的。

事件循环由Event结构和While循环组成。

主循环由Case结构和While循环组成,其中Case结构有两个,分别是主Case结构和错误Case结构。

队列引用是由LabVIEW中的队列操作中的函数组成,其中最常用的函数为Obtain Queue、Enqueue Element、Dequeue Element和Release Queue等。

图中的虚线是指并行子vi可以不通过队列引用而和主循环进行连接。

生产者/消费者结构队列状态机的实现如下:Obtain Queue函数和Enqueue Element函数在While循环左侧初始化队列。

枚举类型定义控件端子连接到Obtain Queue函数的数据类型端子,这样就可以指定队列的数据类型。

枚举常量由枚举类型创建,并连线到Enqueue Element函数的端子。

Initialize状态是添加到队列中的第一项,它是状态机执行的第一个状态。

Dequeue Element函数位于主Case结构之外的错误Case结构的NO Error事例中。

如果在错误簇中没有出现错误,则下一状态就会从队列移出,并传送到主Case结构的选择器端子;如果发生错误,则有General Error Handle VI来报告错误,并且执行Shutdown 状态。

Case结构的每个事例中,事件循环和并行子vi都可以使用Enqueue Element函数来增加其他的状态。

此外,为了能够立即执行,可以使用Enqueue Element At Opposite End 函数在队列的前端增加一个状态。

这使得应用程序能够及时响应高优先级的操作或事件。

当用户要退出应用程序时,必须利用Release Queue函数释放队列引用,同时释放队列所占用的内存空间。

当队列中需要传递状态和数据时,队列元素数据类型就需要由一个簇组成,这个簇包括一个与变体打包到一起的枚举类型定义。

通常,该枚举类型包含了事例选择器中需要的状态。

变体用来将数据从时间循环或并行子vi传递给主循环,这些数据的传递体现了生产者/消费者结构。

同时,这个变体可以是多种类型的数据,但是必须为其中每个成员指定一种数据类型。

SFP光模块测试程序首先初始化队列引用和主界面中的控件,然后进入检测光模块。

如果检测到光模块的插入,则主程序会读取数字诊断功能中电压、温度和偏置电流等。

在大部分时间里,主程序都是在轮询地读取这些数据。

如果用户在前面板有操作,此时事件循环将利用Flush Queue函数把队列清空,然后加载下几个状态,及时地响应用户的操作并且最后回到读取数字诊断功能中模拟量。

2 测试与验证2.1测试环境测试平台的硬件包括计算机、测试板、并口线、电源以及待测光模块。

首先在计算机中安装本文开发的测试软件,其次利用并口线把计算机和测试板连接起来,再次把待测光模块插入到测试版中,并加载电源,最后打开测试软件进行测试。

连接到I2C总线的器件输出端要是漏极开路或集电极开路才能执行传输的功能。

因为计算机并口不满足这两种结构,所以本设计中在并口外接2N3906使得SDA和SCL满足集电极开路结构。

2.2 I2C总线验证为了保证光模块测试平台稳定地工作,必须测试I2C总线通信的稳定性。

利用 I2C总线对EEPROM进行连续读或者连续写。

在图4中,C1和C2信号是对Z1和Z2信号框内部分的放大,这部分是主设备向从设备写数据。

主设备首先发送器件地址0xA0,在第9个时钟,从设备给出了一个拉低SDA的应答信号。

主设备然后发送寄存器地址0x00,同样得到了应答信号。

最后发送要写入的数据0x55。

图中的两个时间标尺测量出写入数据操作距离下一次操作的时间,这个时间要大于等于5 ms。

重复此读写过程10 000次,没有错误则证明I2C总线非常稳定。

2.3 光模块测试软件的验证如图5所示,是对一个Maxim DS1856方案的光收发模块的检测结果。

其中5个模拟量的监控值直接反映光模块的工作状态。

表1是DS1856方案实测值与软件监控值对比。

在SFF-8472协议中规定了每个模拟量的精度范围:温度误差在±3℃之内;电压误差不超过厂家标称值的3%;偏置电流误差不超过厂家标称值的10%;发射功率误差在±3 dBm之内;接收功率在±3 dBm之内。

通过表1结果显示,此测试软件满足SFF-8472协议规定的误差范围。

本文使用LabVIEW设计实现了针对SFP光收发模块的测试平台。

重点介绍了测试软件与SFP光模块的I2C总线通信的实现,论述了生产者/消费者结构队列状态机设计模式,提供了对该设计模式的具体实现方法,并把它应用在SFP光模块测试软件。

该测试平台已经应用到企业的实际生产过程中,减少了对SFP光模块测试工作量,提高了测试效率,并且保证了所需的测试精度,具有一定的工程应用价值。

参考文献[1] SFF-8472 specification for diagnostic monitoring interface for Optical Transceivers Rev 10.4[S]. 2009-01.[2] The I2C-Bus specification version 2.1[S]. 2000-01.[3] Blume, Peter A. The LabVIEW style book[M]. Prentice Hall, 2007-03.[4] 程社成.带数字诊断功能的小封装光模块研究[D].武汉:武汉理工大学,2006.。

相关文档
最新文档