当前位置:首页 > LabVIEW
  • 使用LabVIEW设计和开发用于分离稀有细胞的自动化系统

    "DEPArray系统使用NI公司的硬件和软件来管理高精密机械、微流体、现成可用的电子和自定义工具,以及视觉和图像处理。" – S. Gianni, SILICON BIOSYSTEMS    图1. 通过介电笼捕获细胞 The Challenge: 设计、开发并制造一种能够检测和分离循环肿瘤细胞(CTCs)或母血中的胎儿细胞的工具,前者的目的是研究肿瘤学中的个体化治疗,后者是为了实现无创性产前诊断。 The Solution: 开发一种名为“芯片实验室”的专利技术,该技术利用活性硅衬底的微电子特性,可制造微型生物实验室,借助NI嵌入式控制器对悬浮细胞分别单独操作。  

    时间:2011-06-10 关键词: LabVIEW iOS 于分离

  • 使用图形化的开发环境——LabView开发嵌入式系统

    传统设计模式所应对的挑战 嵌入式系统正在渗入现代社会的各个方面,广泛地应用于航空航天、通信设备、消费电子、工业控制、汽车、船舶等领域,据统计,在美国平均每个中产阶级家庭要使用40~50个嵌入式系统。巨大的市场需求推动了嵌入式系统向更高的技术水平发展。设计师们一方面采用性能更强大的嵌入式处理器如32位、64位RISC芯片取代传统的8位、16位微处理器;另一方面嵌入式系统也由单处理器单操作系统的传统结构向混合型Multi-core系统发展,通过采用多个处理器和OS提高系统并行度来提高系统运行效能,并且设计师们往往同时采用MPU、DSP和FPGA等多种可编程器件来增强处理能力,满足应用功能的升级。 嵌入式系统复杂性的不断增加给设计师们带来了很大的挑战,代码长度呈指数级增加,根据十年前的估计,嵌入式系统的平均代码量为10万行,到2001年实际已经超过了100万,而现在估计为500万。第三方独立市场预测机构EMF在对900多名嵌入式系统开发人员进行调研后指出,超过50%的嵌入式设计比预期时间晚上市,而平均延迟高达4个月;在已发布的产品中,有近30%的设计未达到预期的功能和指标。由此可见,随着嵌入式系统复杂性的不断增加,软件工程的重要性毋庸置疑,而大部分的嵌入式系统开发人员都缺乏这方面的专业训练。与此同时,随着嵌入式系统的广泛应用,越来越多领域的专家比如机器人设计师、控制工程师、测试工程师需要使用嵌入式技术来构建他们的系统,他们既缺乏嵌入式系统的专业知识,也不一定经过软件工程的专业训练。因此,无论是嵌入式系统本身的发展,还是开发人员的专业限制,都需要一种新的设计模式和解决问题的途径来应对目前的挑战。 嵌入式系统开发工具的发展趋势 随着嵌入式系统的快速发展和复杂性的不断增加,基于文本的编程方式所面临的挑战愈发严峻,这种编程模式在将来不可能彻底解决问题。加州大学伯克利分校嵌入式研究专家EdwardLee博士指出,现有的嵌入式系统的开发手段如基于文本编程和面向对象的工具都难以用来构建嵌入式实时系统,因为面向对象很难直观地表达时间和平行性(parallelism),而时间和平行性或并行(concurrency)在现在的嵌入式系统中是必不可少的。面向角色(actor-oriented)的图形化方法是更适合嵌入式软件设计的工具。 应对嵌入式系统所面临的挑战,工程师们已经有了一些解决的方向,比如采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性、简化应用程序设计、保障软件质量和缩短开发周期。但是现有的嵌入式系统开发工具非常多,全世界嵌入式处理器的品种总量已经超过1000种,流行体系结构有30多个系列,在其上运行的操作系统环境也非常多样化,包括VxWorks、QNX、Linux、Nuclears、WinCE等等。不仅各种操作系统有各自的开发工具,在同一系统下开发的不同阶段也有不同的开发工具。如在用户的目标板开发初期,需要硬件仿真器来调试硬件系统和基本的驱动程序,在调试应用程序阶段可以使用交互式的开发环境进行软件调试,在测试阶段需要一些专门的测试工具软件进行功能和性能的测试等等。最合理的解决方案是向基于平台的工具转移,它能够更好地表达整个系统,减少与特定硬件以及操作系统的相关性,使更多的软件设计和算法容易理解并被重复使用;而从基于文本的工具向图形化工具的转移则可以直观地表达系统,图形化系统设计(GraphicalSystemDesign)的理念就是源于这两大趋势。通过简化嵌入式编程的复杂性,降低了对工程师在嵌入式设计流程中各个步骤的要求;同时提供了从设计、原型到部署,从软件调试、功能测试到生产检测的统一环境,使得工程师们可以更快速地进行重复设计。 在嵌入式系统中实现图形化已经成为大势所趋,现在市场上的工具都在向图形化的方向转变,但往往仅限于基于嵌入式操作系统的图形界面开发;而且由于它们是针对特定硬件或操作系统的工具,与硬件和操作系统平台有很大的相关性,这不足以彻底解决行业将要面临的挑战的。现在市场需要的是一种完全的图形化编程语言,提供足够的灵活性和功能,以满足更广泛应用的需求。因此,图形化系统设计的关键因素是图形化编程。 对于时间和平行性的支持 20年来,科学家和工程师一直在使用LabVIEW为他们的设计实验室、验证实验室和生产现场构建自动化数据采集和仪器控制解决方案,并在这些应用领域成为业界的事实标准。其核心在于,LabVIEW图形化编程语言使没有太多软件背景的技术专家能够快速搭建高级自动化测量和控制系统。和传统的文本编程相比,LabVIEW天生是一种并行结构的编程语言,而时间和并行性在现在的嵌入式系统中是必不可少的。比如,LabVIEW在已有的定时循环结构上新加了硬件定时功能,它是一种表示时间和并行的语义,可以设置操作系统优先级、延时、循环速率等等,如图1所示。如果我们将图1所示的两个并行任务的执行目标扩展到嵌入式对象,比如FPGA或微处理器,就可以发现通过编程环境的一致性和可升级性,LabVIEW能够容易地实现和管理嵌入式系统的并行性。回想在文章前面所提到的向多处理器转移的趋势,现在我们可以憧憬使用可扩展的直观图形化编程来开发应用,并将处理过程分配到不同的处理器上。 图1LabView对两个并行任务的编程 支持多种算法设计 谈到嵌入式系统设计,人们所指的其实包括两部分工作:算法设计和固件设计。对于嵌入式系统设计来说,另一个关键要求是软件平台必须能够兼顾实时嵌入式设计中常见的多种算法设计,即计算模型。这些计算模型符合系统设计师们筹划系统时的方式,从而降低从“系统要求”转换到“软件设计”的复杂性。近年来LabVIEW已经包含了多种计算模型以更好地满足不同专业背景的嵌入式系统开发者的需求。LabVIEW现在可以通过连续时间仿真、状态图、图形化数据流模型和基于文本的数学语言mathscript等多种方式来表达各种算法,同时它提供了很多交互式的工具用来帮助数字滤波器、控制模型、通信系统的设计以及数字信号处理算法的开发,从而在这些顶层应用中进一步简化设计师的工作。[!--empirenews.page--] 快速构建原型—沟通虚拟世界与物理世界的桥梁 如前所述,很多设计比预期时间晚上市,并且有一些在投入市场以后发现未达到预定的功能和指标,因此必须采取一定的措施来加快设计流程、提高设计质量。一种解决方案就是更早地将真实世界的信号和硬件引入到设计流程之中,进行更好的系统原型化,从而在早期就发现并修正潜在的问题。 但是在任何设计和开发流程中,基于软件设计和仿真工具的虚拟世界与电子或机械测量的物理世界之间有一个很大的鸿沟,而LabVIEW平台最明显的价值就是在虚拟和物理世界的鸿沟上建一座桥梁。物理测量是与设计和仿真完全不同的挑战,要求与广泛的测量和控制硬件紧密集成,并以优化的性能处理大量的通道数或超高速吞吐量。LabVIEW平台经过不断演进,在物理测量领域具有很高的性能和灵活性。更重要的是,LabVIEW平台是开放的,设计人员可以将测量数据与仿真结果相映射,甚至互换仿真和物理数据,以用于设计中的行为建模或者以仿真激励驱动物理测试,从而更有效快速地进行系统原型构建。 嵌入式系统开发人员如果要定制硬件用于最终的发布,很难同时并行地开发软件和硬件。而如果直到系统集成测试的时候才引入I/O用真实世界的信号检验设计,一旦发现存在问题,那就意味着很难在预期时间完成设计任务了。大多数设计师当前用评估板来进行系统的原型化,但是,原型板往往只具备少量的模拟和数字I/O通道,也很少支持视觉、运动或同步的功能。此外,设计师经常因为需要传感器或特殊I/O的支持而花费大量时间来开发定制的原型板,而这些仅仅是为了设计概念的验证。使用灵活的、商业化的原型平台可以大大简化这个过程,消除其中硬件验证和板级设计的大量工作。对于大多数系统,原型化平台必须包括最终发布系统的同样部件,比如用于执行算法的实时处理器、用于高速处理的可编程逻辑器件,或者将实时处理器接口到其他部件。因此,如果这个商业化的系统不能满足所有的要求,那么这个平台必须是可扩展的,并且支持自定义。NI提供了各种硬件平台与LabVIEW集成,完成从设计、原型到部署的全过程。例如使用LabVIEW和NI可重复配置I/O(RIO)设备或NICompactRIO平台,可以快速而便捷地创建嵌入式系统的原型。 例如BostonEngineering公司要开发一种牵力控制机用于数码照片打印系统。其中,彩色墨盒通过驱动马达馈送到打印头,由卷带电机和推进电机来控制牵力。切割机底盘的振动、每次打印的照片数目和每个电机的速度变化都会影响到底层的牵力。控制系统通过两个电机的位置来保证卷带和推进的牵力处于设定范围之内,否则就会有色差。设计的牵力控制硬件需要两个脉宽调制输出来控制电机,两个编码器将转速反馈给电机,两个模拟输入通道连接霍尔传感器用来测量位置,两根数字线用于信令。传统的原型板无法满足这些要求,需要使用可以自定义I/O的原型平台,因此他们使用CompactRIO平台来进行原型化工作。他们在嵌入式控制器中运行管理程序,在FPGA中运行电机控制算法,这种资源配置使得原型化构建和最终系统发布在编程模式上是非常相似的。为了在FPGA中运行控制算法,他们将ZPK(zero-pole-gain)模型转化为LabVIEW数字滤波器设计工具包中提供的一种滤波器,由于这个工具包支持LabVIEWFPGA代码的自动生成和优化,所以原先的ZPK模型就可以直接转化成能够在FPGA上运行的代码。另外,他们还使用这个工具包对原先的浮点算法进行了定点转换,以节约FPGA资源,并对量化后的模型进行测试、验证、修正从而得到预期的结果。通过这种原型化方式,他们节约了大量的开发时间。 发布到任何32位处理器 LabVIEW包括一个广泛的工具集,该工具集构成了一个用于设计、控制和测试的图形化开发平台。新的NILabVIEW嵌入式开发模块是LabVIEW图形化编程环境的一款全新附加模块,是一个开放的框架,它可以集成任意的第三方工具链,将生成的C代码与LabVIEW运行库函数和板卡支持程序包,编译成为针对某一目标并能在之上运行的二进制代码。通过LabVIEW嵌入式开发模块和工具链,可以发布到运行任何操作系统的任何的32位处理器。该模块包含了近千个内建的库函数,涵盖了高等算法、文件I/O、逻辑和信号处理各个方面。原先无法利用到嵌入式编程的工程师们都可以进入32位微处理器的领域之中,通过LabVIEW中附加的状态图、控制图表、信号处理库函数等这一完整的工具来设计他们的应用,解决各种问题。此外,通过LabVIEW嵌入式方式,工程师和科学家可以使用一种叫做内联C节点(InlineCNode)的新特性,整合现有的嵌入式代码,来保持LabVIEW的开放架构。另外,在LabVIEW嵌入式项目环境中,还可以直接添加用C或者汇编开发的源代码,或者库文件,帮助开发人员充分利用以前的工作成果。 图2内联C节点 LabVIEW嵌入式环境的调试功能非常强大。除了用于快速调试的图形化用户接口显示件、探针、断点和函数单点调试之外,LabVIEW嵌入式开发模块为代码调试提供了另外两种无缝的接口。在嵌入式目标平台上,工程师可以使用“仪器调试”通过TCP/IP、RS232或CAN进行调试。使用内建的片上调试接口,工程师可在不影响程序性能基础上通过工业标准协议如JTAG、BDI和Nexus等进行调试。 减少与特定硬件以及操作系统的相关性 基于平台的工具,需要能够表达整个系统,而减少与特定硬件以及操作系统的相关性。在传统的开发模式中,嵌入式目标本身要求程序员在编写代码之前对目标有深入的了解。程序需要知道板卡上各种关于内存映射和寄存器的信息,才能在板卡上执行他们的代码。另外,大部分代码是专为某一特定目标编写的。这样,在一块板卡上使用不同的微处理器或是不同的外围设备,可能就需要重新编写大部分已有的代码,或是完全从头开始。这意味着最终产品的扩展性方面是有缺陷的。使用LabVIEW嵌入式开发模块,工程师和科学家们不需要了解最终的目标就可以进行代码开发,因为软件生成的是LabVIEW应用的ANSIC代码,而不是针对某个特定目标的二进制代码。如图3所示,灰色区域的部分对于开发员来说是透明的,他们在开发过程中不需要了解目标硬件上内存映射和寄存器的情况。同时,LabVIEW嵌入式方式是一个开放的框架,它可以整合任意的第三方工具链,将生成的C代码、LabVIEW运行库函数和板卡支持程序包(BSP)编译成为针对某一目标并能在这个目标上运行的二进制代码。BSP是一种作为C代码与板上外围硬件接口的底层代码。因此,如果板卡需要升级,工程师可以简单地将不同的BSP链接到LabVIEW中,在现有的图形化代码上作一小部分改动就可以完成。[!--empirenews.page--] 图3LabView嵌入式模块的开发流程 与目标无关的代码开发意味着工程师和科学家不再需要等待硬件确定之后再开始设计算法。这样并行的工作和效率的提升,使开发周期和产品上市时间大大缩短。最后,所生成的LabVIEW代码不是针对某个特定平台的,所以您很容易升级到新的硬件。 结语 LabVIEW为嵌入式系统开发提供了一个跨越多种、多代产品的连贯性的平台,使设计人员能够多年重复并改进其设计,而不必替换其整个工具集或者重新学习不同的设计方法,从而使设计的速度和质量得到提高。同时,其图形化的编程模式使得更多的工程师和科学家可以使用他们的专业知识开发嵌入式应用,而不需要再依赖嵌入式方面的专家。使用统一的环境进行设计、原型到部署,LabVIEW为嵌入式系统开发提供了前所未有的革新方式。

    时间:2012-05-12 关键词: WinCE LabVIEW

  • 基于LabVIEW8.6和S3C2440的手持数字波形表的界面设计

    将LabVIEW设计的虚拟仪器程序移植到运行 WindowsCE的便携式手持设备上。可以极大地提高嵌入式系统软件开发效率。具体提出一种有效解决数据波形交替显示的界面设计,阐述了如何使用 LabVIEW的触摸屏toueh panel模块开发的数字波形表用于Windows CE 5.0设备的测试项目的案例。 1 开发平台简介 1.1 基础平台 本文设计的数字波形表采用高性能、低功耗、高集成度的S3C2440A微处理器。触摸屏配合采用S3C2440A的高速处理器驱动,具有更好的视频显示效果。 1.2 软件平台 LabVIEW是美国国家仪器公司推出的一种虚拟仪器开发平台。LabVIEW包含有很多的模块,touch panel模块是其中之一,它将LabVIEW的图形化的开发环境扩展到了触摸屏设备上,建立了用于运行Windows CE的触摸屏设备的人机界面应用程序。 2 应用程序开发流程 2.1 界面设计方法的选择 手持设备屏幕空间有限,要在一个屏幕上同时显示多个测量数据和波形。可通过以下几种方式实现:     1)整体风格界面设计 设计思路是将所有的数据和波形显示放置在同一界面下,如图l所示。但由于手持设备屏幕较小,同时显示多个参数会使得界面过于拥挤,控件占有的面积过小,而不易操作。 2)弹出菜单式风格界面设计 设计思路是在主程序面板上设计两个子功能按钮分别显示数据和波形,按下相应按钮就弹出相应功能的子程序面板。子VI调用界面设计的优点在于结构清楚。但本设计功能较简单,使用子VI调用方法,反而增加了编程的复杂性。 3)选项卡风格界面设计 设计思路是将数据与波形显示分别放置在不同的选项卡中。此方法将多个控件分布放置在不同的界面中,与整体风格界面设计相比,单个界面更加简洁,控件较少易于操作。本文设计采用此方法,使用控件Tab Control为手持数字波形表提供一种有效的界面设计。 2.2 数字波形表前面板设计 本文设计的数字波形表能测量被测信号的直流值、平均值、峰值和有效值,并显示在虚拟仪器面板上。在前面板设计中,选择 Modern>> Containers>>Tab Control,在属性对话框中,选择“在后面添加选项卡”,根据设计的要求,定义4个选项卡。选择 Modern>>Graph>>XY Gr-aph显示波形;选择Modern>>Numeric>>Numeric Indicator示数据。数字波形表的界面如图2所示。     2.3 数字波形表流程图设计 选择functions>>programming>>waveform>>analog waveform>>wave measurement>>Basic DC/RMS。Basic DC/RMS.vi计算输入波形或波形数组的直流值DC和均方根值RMS。引脚DC value测量直流分量,RMS value测量有效值。 用公式     计算平均值。 选择functions>>mathematic>>numeric>>绝对值.vi,使输入信号u(t)返回绝对值,在mathematics>>probability and Statistics选择均值趋势.vi,引脚AV测量平均值。 交流电压中的最大值即为峰值。通过数据比较求出最大值,在programming>>waveform>>analog waveform选择波形最大最小值.vi,引脚Y最大测量峰值。连线成功后,数字波形表流程如图3所示。 2.4 利用touch panel模块建立应用项目 开发的流程是用LabVIEW的touch panel模块建立应用项目,通过Microsoft ActiveSync将生成的可执行文件下载到WinCE5.0嵌入式系统的手持设备上运行。其开发流程如图4所示。 通过touch panel模块将LabVIEW8.6在PC上设计的虚拟数字波形表程序移植到运行Windows CE的便携式手持设备上,数字波形表如图5所示。     3 测试结果 表l给出仿真信号测试结果和理论结果。 4 结束语 使用LabVIEW编程比传统的软件开发方法效率高,利用touch panel模块能快速开发触摸屏项目,适用于开发手持设备应用程序。智能手持仪器本身具有便携性、移动性、智能化等特点,通过它可以随时随地访问获得各种信息,因此这类设备应用广泛。手持数字波形表具有体积小、成本低、稳定可靠等优点。

    时间:2012-09-12 关键词: WinCE LabVIEW s3c2440 8.6

  • LabVIEW的GPIB的总线标准接口功能

    GPIB系统中设备与总线的交互作用定义为接口功能。GPIB标准共定义了10种接口功能,包括5种基本接口功能和5种辅助接口功能。 基本接口功能是GPIB接口总线功能要素的核心,用于管理和控制消息在数据线上双向、异步、准确无误地传递。5种基本接口功能分别为:源方和受方握手功能(SH和AH)、讲者和听者接口功能(T和L)、控者接口功能(C)。 SH功能保证消息在数据线上正确传递;AH功能保证正确地接收远地消息;T功能把消息经数据线发送到其他设各;L功能从数据线上接收与自己相关的消息;C接口功能的目标是控制GPIB系统中设备间数据的传递。 辅助接口功能在设备与总线之间实现特殊的交互作用。5种辅助接口功能分别为:服务请求接口功能(SR)、远程/本地控制接口功能(RL)、并行查询接口功能(PP)、器件清除功能(DC)、器件触发功能(DT)。 SR功能向控者提出服务请求,请求控者中断当前的工作来对该设备进行服务;RL功能在两种输入操作控制信息之中选择其一,即向器件表明应使用来自本地的操作控制信`患,或者应使用来自远程的控制消息;PP功能响应控者发出的并行查询;DC功能响应负责控者发出的DCL(Device Clear,设备清除)信号或SDC(Selected Device Clear,清除选定设备)信号,而使设备恢复到初始状态;DT功能响应负责控者发出的GET(Group Execute Trigger,组执行触发)信号,而触发启动某种设备功能操作。 这10种接口功能包括了GPIB总线提供的所有接口功能,每个设备的接口不必使用全部10种功能,可以根据需要选用其中的若干种功能。

    时间:2017-12-19 关键词: LabVIEW 接口电路 gpib 总线标准接口

  • 基于LabVIEW和ARM嵌入式数据采集与远程传输控制系统

        基于嵌入式网络的远程数据采集系统具有不受地理环境、气候、时间的影响,小型便携,使用灵活方便,交互操作性好,传输速率高,可靠性高,功耗低和移动性好等优点。目前常用的嵌入式CPU中,ARM由于性价比在同类产品中比较突出,目前用得越来越多,尤其是结合开源的嵌入式Linux操作系统以后,更是得到越来越多设计者的青睐。LabVIW作为一种功能强大,简单易用和设计灵活的图形化编程语言,已经广泛地被工业界、学术界和研究实验室所接受,越来越多地应用在虚拟仪器、测试测量、数据分析、信号处理以及远程控制中。本设计中,远程数据采集系统采用基于ARM和嵌入式Linux的方案来实现。采用高性能的ARM嵌入式微处理器Samsung S3C2440作为系统的核心,结合数据采集、下变频、存储模块,实现了数据高速实时采集。同时,利用处理器外部配备的以太网控制器CS8900完成与主机上运行的LabVIEW服务器通信,实现数据的传输与系统的远程控制。1 系统整体结构    采用SamsungS3C2440作为前端数据采集系统的核心控制器件。系统的整体设计任务分为信号采集与下变频、数据存储与传输、信号显示与处理分析等。整体设计方案构架见图1。信号采集部分采用ADI公司的AD9244完成,AD9244是一款14 bit,40/65 MSPS的高性能ADC。为了满足AD9244差分输入的要求,在信号的输入端配合了AD8138低失真单端转差分ADC驱动芯片。信号采集完成后,送至ADC6620正交数字下变频器(Digital Down Conversion,DDC)处理,经过抽取和滤波后的I,Q两路正交信号在其输出的数据有效以及I/Q指示信号的配合下,由FPGA产生静态随机存取存储器(static Random Access Memory,SRAM)存储时序并存储至64 K×16 bit的SRAM中。    在FPGA中主要完成SRAM读写时序产生、SRAM读写地址生成、数据通道选择等工作,FPGA中的逻辑在一个16 bit的控制字寄存器的控制下有序地工作。当SRAM中存储一定量的数据后产生中断信号,提示ARM将数据取走。为了提高系统的速度,ARM采用直接数据存储(Direct Memory Address,DMA)方式读取数据。之后运行在ARM上的客户端程序将数据通过网络发送给远程主机。远程主机上的LabVIEW服务器程序对收到的数据进行显示、频谱分析、存储回放等处理,同时远程主机的控制信号以及为下变频器ADC6620设计的滤波器文件也可以通过网络发送给客户端,实现远程控制。2 现场数据采集系统的硬件设计2.1 ADC设计    外部模拟信号从SMA(Sub Miniature-A)接口输入,隔离直流后进入AD8138 ADC驱动芯片,AD8138将单路输入信号变成两路差分信号,送至AD9244转换。AD9244中几个重要引脚的含义及接法:    a)CML(Common Mode Reference):串联一个0.1μF的电容后接地。    b)DCS(Duty Cycle Stabilizer):接+5 V电源时表示转换时钟为50%占空比,接地表示转换时钟的上升沿与下降沿均由外界控制。本设计中DCS接+5 V电源。    c)SENSE(Internal Reference Control):接地时将输入信号峰峰值的范围限制为1 V,接VREF时将输入信号峰峰值的范围限制为2 V。本设计中SENSE接VREF。    d)DFS(Data Format Select):接+5 V电源时输出数据格式为补码,接地时为直接二进制码输出。由于ADC6620将其输入数据解释成补码,本设计中DFS接+5 V电源。[!--empirenews.page--]2.2 ADC6620设计    AD6620的任务是将高速数据流变成当前可实时处理的中低速数据流。在本设计中,AD6620数据输入端代表指数含义的3位(EXP0~EXP2)接地,且工作在单输入通道模式下(A/B=3.3 V),以模式0接收来自于ARM的配置信息(MODE=GND),采用并行方式输出数据(PAR/SER=3.3 V)。2.3 其它设计    本设计所采用的ARM开发板是由广州友善之臂公司所生产的QQ2440V3,其上有一个44针的系统总线接口,它与FPGA连接起来完成数据与控制信息的传输。FPGA与SRAM的设计比较简单,这里不再赘述。3 数据采集系统的软件设计    为完成系统任务,需要实现几个方面的软件设计:    a)正交数字下变频器AD6620滤波器以及控制寄存器设计。    b)在FPGA上实现系统控制、SRAM读写地址生成、数据通道选择等功能的Verilog HDL程序。    c)ARM上基于嵌入式Linux操作系统的数据采集硬件驱动程序。    d)ARM上客户端应用程序。    e)远程主机上基于LabVIEW的服务器以及显示、频谱分析、存储与回放程序。3.1 AD6620滤波器及控制寄存器设计    AD公司专门针对AD6620芯片推出了滤波器设计软件fltrdsn以及监视控制软件AD6620,但该软件是基于计算机并口与AD6620芯片连接的,不适应设计中远程数据传输与控制、多客户端的任务要求。可以利用该软件将设计成功的滤波器以及配置文件保存下来,利用LabVIEW的文件处理功能自动将信息提取出来,通过网络远程配置AD6620。3.2 FPGA逻辑设计    FPGA内部逻辑电路结构见图2。考虑到后续设计的需要,FPGA内部使用ARM地址总线的低3位来选择当前操作的模块,具体的地址与内部模块对应关系见表1。    图2中各模块功能进一步说明如下:     a)Input_db_part:双向数据总线分离。配合由Control_register送来的控制信号,在Conf_6620有效时将数据总线上的数据送至Config_6620模块,完成AD6620配置,在Fetch_sram信号有效时将读SRAM得到的数据传送至ARM数据总线。 [!--empirenews.page--]    b)Control_register:控制寄存器。内部模块有序工作的核心,具体的控制定义见表2。    c)Config_6620:配置AD6620。此模块在Conf 6620位有效时接收由ARM传来的AD6620配置信息,完成DDC滤波器和控制寄存器配置。它除了本身使用ARM地址总线的3位ARM ADD[3:1]作为FPGA内部模块选择之外,还用了ARM ADD[6:4]作为AD6620的外部接口寄存器地址。Rdy in信号用于指示写入操作成功,ARM检测到此信号有效后,进行下一次的写操作。     d)PII:锁相环。Cyclone EP1C6Q240中有2个锁相环模块,设计中使用了其中的一个将20 MHz的时钟倍频至50 MHz,供AD9244,AD6620以及FPGA内部使用。    e)Ad_to_sram:AD6620输出数据写入SRAM时序产生模块。AD6620工作在单通道模式时典型输出时序见图。    此模块主要完成的功能有:用2个数据锁存器在DV与IQ信号的控制下锁存I路和Q路数据,产生写SRAM所需的地址。由于AD6620抽取率较高的缘故,输出数据率一般较低,在模块中使用了状态机在2次有效数据期间产生写SRAM的时序。此外,当写地址到达设定值时,模块产生写溢出中断,提示ARM改变控制寄存器内容,读取数据。    a)Read_add_gen:读地址产生。在Fetch_sram位的控制下,产生读SRAM时的地址,当读地址到达设定值时,产生读溢出中断,提示ARM改变控制寄存器内容,进行下一步操作。    b)Control_logic:控制逻辑。模块在Start_daq有效时选择由Ad_to_sram模块产生的写SRAM的地址、数据与控制总线与SRAM相接,而在Fetch_sram有效时选择读SRAM的地址、数据与控制总线与SRAM相接。与DMA读取有关的请求与响应信号也在此模块中处理。3.3 嵌入式Linux驱动程序设计    驱动程序是硬件与应用程序的接口。针对设计任务与硬件特点,在驱动程序中设计了以下函数:    a) AD6620_read:申请DMA缓存,睡眠等待写溢出中断到来,DMA传输完成后,将数据从内核空间传送至用户空间,释放DMA缓存。    b) AD6620_ioctl:核心是一个switch选择结构,根据应用程序中用户命令,完成初始化DMA,写控制寄存器或者配置AD6620的工作。    c)AD6620 open:主要完成DMA通道参数设置,初始化IO端口和信号量。    d) AD6620 release:完成与AD6620_open相反的工作,主要是一些清理和释放申请资源的工作。    函数编写好后,通过下面的file_operations结构体联系起来:        e) AD6620 init:初始化函数,完成驱动程序注册、中断与中断处理函数注册、创建设备文件节点等。其中的驱动程序注册的核心就是上面的file_operations结构体。    驱动程序编写好后,用户就可以在应用程序中调用这些函数,实现通过一组标准化的调用来操作底层硬件。3.4 客户端应用程序    客户端应用程序为了保证数据与控制信息的可靠传输,采用的是基于TCP协议的Socket网络编程。本次设计客户端运行在ARM上,采用的是Linux下的C编程;而服务器端运行在远程主机上,利用LabVIEW的图形化语言实现。具体客户端的通信与控制流程图见图4。可以看出。客户端是依赖于读取由远程主机发送的控制字符来完成实时控制,实现与服务器端的交互操作的。因此,无论是客户端还是服务器端,在每一次发送数据与控制信息时,都会发送一个控制字符,接收端就是依靠识别此字符来完成相应的操作。表3中给出了控制字符与所执行操作之间的对应关系。3.5 LabVIEW服务器程序设计    服务器端的完整程序见图5。服务器在指定的端口上侦听,等待远程客户端的连接。程序的核心是两个循环框,上面的循环框完成发送数据和控制信息的任务,主要包括传送AD6620滤波器设计与控制寄存器配置文件、实时改变AD6620可动态配置寄存器内容、开始数据采集以及停止系统控制等模块。 [!--empirenews.page--]     数据与控制信息内容放在LabVIEW事件框图中,当用户单击前面板上的控制按钮时,相应的信息被发送,这样就避免了系统无休止地查询,节约了系统资源。下面的循环框完成读SRAM数据接收、分离IQ信号、频谱分析与显示等,当用户使得存储文件路径不为空时,可以将此时数据显示控件上的数据保存下来;而当回放文件路径不为空时,用户可以回放之前保存的历史数据。频谱显示控件有线性与对数显示两种格式,它受前面板上的一个系统复选框的控制。4 设计结果验证    采用了3组实验来验证设计的正确性。实验条件:现场数据采集系统IP地址192.168.1.230,远程主机IP地址192.168.1.1,二者位于同一个局域网内。系统工作主频50 MHz,AD6620滤波器为低通滤波器,通带截止频率10 kHz,阻带截止频率15 kHz,通带内衰减0 dB,阻带衰减-60 dB,三级滤波器的抽取系数分别为10,25,2。    第1组实验的输入信号为单频信号,频率1.005 MHz,幅度250 mV,AD6620中NCO频率字设定为1 MHz。实验恢复的I路信号及其频谱分析见图6(a)。从实验结果来看,系统采集数据频率准确,较好地恢复了信号。第2组实验的输入信号为调幅信号,载波频率1 MHz,幅度250 mV,单音调制信号频率为3 kHz,调制深度30%。AD6620中NCO频率字设定为1 MHz。实验恢复的信号与频谱分析见图6(b)。这时从频谱图上可以清晰地看出差频之后,在零频周围300 Hz处有1根清晰的谱线。第3组实验的输入信号为单频信号,频率1.018 MHz,幅度250 mV,AD6620中NCO频率字设定为1 MHz。实验恢复的I路信号与频谱分析见图6(c)。此时由于信号处于滤波器通带之外,衰减很大,不能恢复信号。I路信号显示图中类似于“毛刺”的信号是由于电路底噪声在AD6620中运算所产生。综合3组实验的结果,本次设计较好地完成了设计任务。5 结论    数据采集与网络远程传输系统是一个高集成,特别讲究软硬件间相互配合的综合系统,强调的是协调、稳定、高速、精准地完成各项数据采样工作。本设计中,在合理设计硬件的基础上,分别对FPGA,ARM以及远程主机上的服务器程序精心设计,解决了以往系统在大量数据采集、传输、储存、读写和处理时的速度以及灵活性问题。利用LabVIEW功能强大、简单易用,设计灵活的图形化编程语言,很容易地实现了对远程数据采集终端的配置与控制。

    时间:2009-12-06 关键词: ARM LabVIEW 程传输 设计教程

  • 采用LabVIEW 8.2的多用虚拟电压表原理及设计

    概述:为了满足不同测量的要求传统的电压表分别做成独立的仪表,包括峰值电压表、平均值电压表和有效值电压表。在此,提出采用虚拟仪器同时实现三种示值电压表的方案;介绍了虚拟仪器软件平台LabVIEW的特点。对虚拟数字电压表的设计和实现进行了详细描述,包括基于LabVIEW 8.2的虚拟信号发生器的实现过程,它能产生正弦、方波、三角波及由输入数学公式确定的复杂自编辑波形。最后,对设计的虚拟电压表运行结果进行分析,验证了虚拟电压表设计方法的正确性。    虚拟仪器是随着计算机技术、电子测量技术和通信技术发展起来的一种新型仪器。它充分利用计算机系统强大的数据处理和显示能力,利用软件完成数据的采集、控制、数据分析和处理以及测试结果的显示等,通过软、硬件的配合,实现传统仪器的各种功能,真正实现了“软件即仪器”的概念,用户可以方便地对仪器进行维护和扩展。    电压是电路中常用的电信号,通过电压测量,利用基本公式可以导出其他的参数。因此,电压测量是其他许多电参数和非电参数量的基础。测量电压相当普及的一种测量仪表就是电压表,但常用的是模拟电压表。模拟电压表根据检波方式的不同。分为峰值电压表、均值电压表和平均值电压表,它们都各自做成独立的仪表。这样,使用模拟电压表进行交流电压测量时,必须根据测量要求选择仪表。另外,多数电压表的表头是按正弦交流有效值刻度的,而测量非正弦波时,必须经过换算才能得到正确的测量结果,从而给实际工作带来不便。    采用虚拟电压表,可将表征交流电压特征的峰值、平均值和有效值集中显示在一块面板上,测量时可根据波形在面板上选择仪表,用户仅通过面板指示值就能对测量结果进行分析比较,大大简化了测量步骤。1 虚拟电压表的设计思路    LabVIEw 8.2版本的工程技术比以往任何一个版本都丰富.它采用了中文界面,各个控件的功能一目了然。利用它全新的用户界面对象和功能,能开发出专业化、可完全自定义的前面板。LabVIEW 8.2对数学、信号处理和分析也进行了重大的补充和完善,信号处理分析和数学具有更为全面和强大的库,其中包括500多个函数。所以在LabVIEW 8.2版本下能够更方便地实现虚拟电压表的设计。    虚拟电压表是基于计算机和标准总线技术的模块化系统,通常它由控制模块、仪器模块和软件组成,由软件编程来实现仪器的功能。在虚拟仪器中,计算机显示器是惟一的交互界面,物理的开关、按键、旋钮以及数码管等显示器件均由与实物外观相似的图形控件来代替,操作人员只要通过鼠标或键盘操作虚拟仪器面板上的旋钮、开关、按键等设置各种参数,就能根据自己的需要定义仪器的功能。在虚拟电压表的设计中,考虑到仪器主要用于教学和实验,使用对象是学生,因此将引言中提到的三种检波方式的仪器合为一体,既简化了面板操作,又便于直接对比。    该电压表主要用于电路分析和模拟电子技术等实验课的教学和测量仪器,能够使学习者了解和掌握电压的测量和电压表对各种波形的不同响应。因此,虚拟电压表应具备电源开关控制、波形选择,以及显示峰值、有效值和平均值三种结果,且输入信号的大小可调节等功能。虚拟电压表由硬件设备与接口、设备驱动软件和虚拟仪器面板组成。其中,硬件设备与接口包括仪器接口设备和计算机,设备驱动软件是直接控制各种硬件接口的驱动程序,虚拟仪器通过底层设备驱动软件与真实的仪器系统进行通信,并以虚拟仪器面板的形式在计算机屏幕上显示与真实仪器面板操作相对应的各种控件。在此,用软件虚拟了一个信号发生器。该信号发生器可产生正弦波、方波和三角波,还可以输入公式,产生任意波形。根据需要,可调节面板上的控件来改变信号的频率和幅度等可调参数,然后检测电压表的运行情况。因此,在LabVIEW图形语言环境下设计的虚拟电压表主要分为两个部分:第一部分是虚拟电压表前面板的设计;第二部分是虚拟电压表流程图的设汁。2 前面板的设计    前面板模拟真实电压表的前面板,用于设置输入数值和观察输出量。由于虚拟面板直接面向用户,是虚拟电压表控制软件的核心。设计这部分时,主要考虑界面美观、操作简洁,用户能通过面板上的各种按钮、开关等控件来控制虚拟电压表进行测量工作。根据传统电压表面板控件的功能,利用LabVIEW中的控制模板,分别在设计面板上放入模拟实际电压表控件的数据输入控件、显示器、数据输出控件、开关、选择器,显示器用于显示输入的信号波形;数据输入控件主要用于输入被测信号的信号频率、采样频率、采样数、振幅和相位;数据输出控件则用于输出被测信号经过处理后得到的峰值、平均值和有效值及标准频率的有效显示。打开LabVIEW前面板的编辑窗口,点击鼠标右键,显示控制模板,选择图形一波形图,作为电压表的显示器。在显示器模板上点击鼠标右键,对其进行属性设置,例如根据示波器的频率与幅度值的变化,利用工具模板中的文字工具,对示波器横(时间)、纵(幅度)坐标的刻度进行重新设置。用Graph控件设计的示波器是完全同步的,且波形稳定。    选择控件→数值→数值输入控件/数值显示控件,作为电压表参数设置中输入和测试结果的数据显示。    选择控件→下拉列表与枚举→菜单下拉列表,放置对输入波形选择开关,在下拉列表中单击鼠标右键,选择“编辑项”对其进行编辑。    “电源开关”控件选择经典→经典布尔→方形按钮,当按下开关时,虚拟电压表开始运行,同时电源开关的指示灯亮。同样,当弹起开关时,虚拟电压表停止运行。前面板如图1所示。3 流程图的设计    每一个前面板都对应一个流程图程序。前面板的设计完成后,可对流程图程序进行设计。打开LabVIEW设计环境中的窗口→显示程序框图,进入流程图编辑窗口,与前面板各控件对应的端口图标自动出现在流程图编辑窗口中。利用LabVIEW中的功能模块,根据虚拟示波器前面板各控件的作用和联系,虚拟示波器运作后数据流的控制,分别在流程图设计面板中放置各个功能模块,合理摆放后,在用连线工具依次连接,以实现虚拟示波器的功能。数据流的编辑主要是对端口图标的连接。用连线工具进行连线时,如果端口闪烁,说明相连的数据类型匹配,否则不能连接。3.1 虚拟信号发生器的实现    由于虚拟电压表主要用于演示,所以为了方便,可直接利用LabVIEW软件产生仿真信号。在该设计中,设置了正弦波、方波和三角波以及由公式确定的任意波形。在程序设计框图中,使用一个Case(选择)语句对四种波形进行选择。Case语句中,每一个数字(0,1,2,3,4)都代表一种波形,与前面板控件中5种状态相对应。至于Case语句的制作,只需将4个图标中的一个,例如正弦波发生程序,用Case框起来,然后在上面的空白处写上相应的数字,例如1;然后点击箭头,可以设置第二个图标,如果要添加一个Case的话,可以点击鼠标右键,直接添加,编辑相应的基本信号发生器VI中相应的节点即可。在添加公式波时,要把基本信号发生器VI换成公式波形VI,0代表默认状态,表示无任何波形输入。本文给出了Case结构的一个分支,公式波形的流程图如图2所示。该子Ⅵ可使用指定时间函数的公式字符串生成一个函数波形,它要求公式的自变量必须是t,它所支持的运算符和常用的函数详见参考文献。[!--empirenews.page--]    另外,在模拟状态下,信号频率以赫兹或者每秒周期数为单位。但是在数字系统中,通常使用数字频率,它是信号频率与采样频率的比值,被称为标准频率。所以,在框图程序中,应当在信号频率与采样频率之间加载一个除法器。 在波形发生程序按照规定的参数产生波形后,如果将波形直接输入波形显示控件,那将是错误的。因为波形显示控件,并不像数据显示控件那样只需要一个或一组数据,因此波形能否按规定显示出来,取决于输入的几组不同且具有决定性的数据,例如周期、相位等。在该设计中,将z轴起始坐标、周期、波形捆绑成一个数组,同时输入到波形显示控件中。3.2 数据处理部分    数据处理部分的作用,就是将产生出的信号通过不同形式的检波、计算,得出规定的不同的结果。在该设计中同时显示交流有效值、峰值和平均值。对于一个纯粹的交流电压,正半周期信号与负半周期信号对称,U的平均值等于零,所以一般不直接测量平均值。在设计时,按函数→数值→绝对值取交流电压的绝对值,然后求平均值,取全波平均值。交流电压中的最大值,即为峰值。可以通过比较数据求出最大值,这需要使用波形最大、最小子虚拟仪器来处理框图。有效值显示:在函数→信号处理→波形测量中选择基本平均直流均方根。其框图符号如图3所示。     图3中,DC value为测量的直流分量;RMS为value测量有效值;reset用于重启过去记录的时间信号、平均测量的参数;averaging type是测量中的平均类型,在单个模块VI中,可依据输入记录长度自动设置平均时间;Window是在DC/RMS计算之前,用于记录时间的窗;erroe in是在该VI运行之前描述错误环境,默认值为no error。如果错误已经发生,该VI在errorout端返回错误代码,子VI在无错误时才正常运行。3.3 开关部分    用一个while条件语句设计整个框图程序,当模拟电压开关为“1”时,虚拟电压表工作,条件语句中的程序开始运行;当模拟开关为“0”即关时,条件语句中的程序停止运行,虚拟电压表不工作。设计好的流程图如图4所示。4 结 语    经过实际使用,虚拟电压表所有的控制键和功能正常,符合使用要求。需要指出的是,在设计该虚拟电压表时,签于教学使用的目的,仅从功能上考虑,并未对虚拟电压表的技术指标进行深入研究。事实上,峰值是取样值的最大值,而取样点不可能取得太多,否则运行速度太慢,因此显示的峰值与理论值是有差别的,在设计时应注意合理选择参数。    在LabVIEW图形化语言环境下设计的虚拟仪器简单快捷,用户完全可根据测试功能的需要,调用不同功能的软件模块,以组建自己的仪器。这对测量者,尤其是高等院校的实验室是非常方便的。可在同一台计算机中,根据不同的教学层次,设计不同档次的仪器为教学服务。如何针对不同的教学目的,分别对硬件驱动程序部分、虚拟面板部分、信号的后期处理部分进行部分或完整的设计,信号的后期处理程序可以设计成一个独立的功能模块,能够对采样信号进行非实时的在现和离线分析,既满足了学生的要求,又避免了设备的重复购置。

    时间:2010-03-26 关键词: LabVIEW 8.2 设计教程 理及设

  • LabVIEW在暖通空调数据采集控制系统中的应用

    摘要: 暖通空调(HVAC)系统中建立一套对各种水阀、风阀、变风量箱、电加热器、加湿器以及其他 控制元件进行准确测量及时控制的数据采集控制系统。使用NI公司的LabVIEW Developer Suite,把HVAC系统中各种不同设备统一起来,进行集中采集控制。建立一套基于PC的HVAC数据采集控制系统。 关键词:abVIEW  数据采集 自动控制 暖通空调系统  PID控制 The Application of LabVIEW in the field of HVAC DAQ and Control System By Chen Qian,Weng Wengbing Build a suit of HVAC DAQ and Control System which could take precise data acquisition and control water valve, air valve, VAV box, electrical heater, humidifier and other control elements. Using National Instrument’s product LabVIEW Developer Suite, unite all different devices in HVAC system to take central control. Build a suit of HVAC DAQ and Control System based on PCs. Keywords:abVIEW  Data Acquisition Auto Control HVAC System  PID Control 引言 LabVIEW大量应用在自动控制领域,对于HVAC系统中采用LabVIEW作为上位端软件还不多见,但随着LabVIEW 7 Express的发布,LabVIEW已经开始逐渐渗透到各个领域。在笔者所在专业HVAC自动控制领域使用LabVIEW后发现,其功能十分强大,节省系统开发时间,非常适合工程开发人员使用。笔者结合近来开发的一套HVAC系统,对LabVIEW在HVAC数据采集控制系统的应用做个介绍。 1 系统总体结构 HVAC中有大量数据需要采集,通过对数据的采集,来对各项系统参数进行调整。本系统主要由水系统、风系统、控制系统组成。 ● 水系统包括:水冷式冷水机组,冷却塔,膨胀水箱,冷冻水泵,冷却水泵,三通调节阀、流量计等附件。 ● 风系统包括:组合式空调箱、送风管道、回风管道、排风管道、VAVBOX以及阀门和其他控制元件。空调箱包括新回风混合段、过滤器、表冷器、电加热器、送风风机、蒸汽加湿器等。风机变频控制。新回风管上分别装有电动调节阀,可调节新回风比例,表冷器前后分别装有温湿度测点,空调箱内还装有喷嘴,用于空气流量的测量。 ● 控制系统包括:各处的压力传感器、温度传感器、控制元件、执行器、数据采集仪、计算机、触摸屏等,可进行建筑环境与设备自动检测与数据处理。 实验系统房间共有两间:Room1和Room2。Room1主要用于建立低温环境实验室,因此单独配备了一套直接蒸发式水冷机组。每个房间内均有一个负荷发生器Ld,用于产生模拟负荷,并且有温湿度测点。在Room1中,布置一组送回风口,顶送下侧回;Room2中布置两组送回风口,分别为顶送、侧回。每个送、回风口上都装有手动调节阀,可开关或进行调节。房间内布置一个压差传感器,可控制房间内的正压。在两个房间的送风管道上分别装有一个压力无关型VAVBOX。 通过对图1系统原理图,大家对系统能有个直观的认识。 2 数据采集控制系统 系统分为两部分:数据采集和系统控制。数据采集部分有各种不同数据采集设备。控制部分由PLC(可编程控制器)来完成。LabVIEW能很方便的对计算机串口进行操作,因此LabVIEW可方便的建立计算机串口与PLC串口之间的通信,便捷的获得PLC中的数据,在计算机中进行PID神经模糊等复杂运算,从而得到需要的数字控制信号,对需要控制的设备进行控制,增强系统的通用性。并可开发出更加丰富的功能。从图2中可以看出整个数据采集系统中用到的软硬件部分及它们间的关系。 图2 采集控制关系图 [!--empirenews.page--]通过数据采集系统可得数据有:表冷器水流量,VAVBOX1、2风量反馈,送风湿度,新风温湿度,低温室壁挂式温湿度计温湿度,变频压缩机节流前后压力,喷嘴压差,表冷器前后干湿球温度,蒸发机组压缩机吸排气温度,变频冷水机组压缩机吸排气温度,冷水机组压缩机吸排气温度,表冷器进出水温度,热水箱进水温度,冷却塔进水温度,变频冷水机组冷却进出水温度,变频冷水机组进水温度,冷水机组冷却水进出水温度,冷水机组进出水温度。可见需要设置大量的不同得传感器。 使用的末端传感器有:PT100铂电阻温度传感器,铂电阻使用四线制可以提高测量精度,避免沿途数据线电阻对测量的影响。EE10室内温湿度变送器,产生4~20mA的标准电流信号,为了便于数据采集仪测量和避免信号的失真,在其中加入250Ω的精密电阻,将电流信号转换为标准的1~5V的电压信号。压力传感器、风阀开度控制器、湿度等信号均是标准的1~5V的标准信号,或者经过转换成为1~5V的标准信号,便于数据采集仪进行处理。这些信号均为线性或近似线性,可以通过增益和偏移(M×B)把标准信号转换为我们熟悉的温度湿度压力值工程量。例如:采集到的信号为3V,此时的1V对应于0℃,5V对应于100℃,则可以通过: Y=MX+B 算出M=25,B=-25,再把3代入,可得Y=50℃。此部分只需通过使用LabVIEW的Database Toolset工具包和全局变量数据的交换,很容易实现信号的转换。  数据采集仪:传感器、变送器产生的标准信号直接进入数据采集仪。数据采集仪采用的是Agilent 34970A数据采集仪(附三块HP 34901A 20通道衔铁继电器多路转换器)。它可以直接测量热电偶、电阻温度测试器、热敏电阻、直流电压、直流电流、交流电流等。电源电流、电压、功率和频率通过PF9833三相PWM专用测试仪来测量。通过使用NI-VISA协议,可对串口读写操作,很方便的完成了数据的交换,见图3。 图3 LabVIEW中NI-VISA串口读写 控制系统PLC与PC的通信也同样使用了NI-VISA协议进行通信。通过把命令请求写入(Write)串口,设备对命令分析识别,把命令请求的数据通过RS-232接口返回到计算机,再通过对串口读操作(Read),从而获得设备采集的数据。对于不同设备有不通的命令。Agilent 34970A使用的是SCPI(Standard Commands for Programmable Instruments)可编程仪器标准命令集。PF9833则使用了另外的命令集。不同设备不管使用什么协议,通过NI-VISA都可和容易建立设备与计算机间的通信。对于PLC,需要编写设备端程序。要求程序实现获得命令后,对命令进行分析识别,把相应数据送出。 信号控制使用西门子SIMATICS7-300 PLC,部分对控制有影响的采集信号进入PLC,进行PID分析运算,产生控制信号,对风阀、风机、水泵、加热器等进行控制。PLC带有的RS-232通讯接口,直接与计算机建立通信。PC获得进入PLC的各种信号,也可在计算机中进行更为复杂的运算,产生数字控制信号返回PLC,再由PLC对各种需要控制的设备进行控制。 本系统可通过触摸屏对整个系统发出控制指令,触摸屏的每个开关都对应于PLC各个开关触点,相当于PLC的键盘,可对整个系统的各种参数进行调整。例如可以对风阀的开关,风机、水泵、电加热器的启停,各个PID控制设备P、I、D(比例、积分、微分)三个参数的设置进行相应的操作,系统流程图可清晰的从中反映出来。 由于使用了大量的串口来进行数据的通信,需添置一块多串口卡,用于连接多个串口设备。 3 LabVIEW程序 通过LabVIEW图形化设计很容易设计出漂亮美观的用户界面。见下图4所示。在使用Agilent 34970A数据采集仪时可对温度、电压、电流等各种参数进行测量,在进行采集时涉及到参数需要更改的情况,我们 使用了NI的数据库连接工具包(Database Connectivity Toolset),直接在一个已经编辑好的数据库(Hpsetting.mdb)里编辑所改变采集通道的参数,然后在运行程序时选择是否需要下载新的设置到数据采集仪,使数据采集仪相应设置改变,以采集到正确的数据。设置参数有通道号、通道描述、输入类型、范围、周期、延迟、触发、铂电阻阻值以及标定等。只要是使用Agilent 34970A数据采集仪采集数据,程序就不需要进行大的修改,节省了开发成本和时间,提高程序的通用性。 控制上使用了NI PID工具包,可对需要进行控制的部件进行PID控制,利用该工具包可以节省我们大量开发时间。LabVIEW一个很大的特点就是提供了大量的可用控件,控件提供输入输出,通过线连接输入数据,就可很方便的从输出口得到需要的控制命令。 4 实验 LabVIEW和众多系统中各种传感器配合,在系统调试中发挥了很大的作用。所需数据通过一台普通装有LabVIEW的计算机就能显示出来。调试中的数据用LabVIEW来进行分析显示,观察系统是否达到了预定的要求。 在系统中使用了LabVIEW软件,在硬件上不需要做太多的更改。各项所需测量控制参数在系统调试阶段已经设置好,后面就只需在软件界面和各项参数组合上做工作。   在冷水机组数据采集控制实验中,界面如图4,开启空调系统,通过数据采集设备获得当前温湿度信号。获得数据经过PID运算,输出控制信号,最终通过对PID参数的调节(更改界面中的PID参数,经过PC对PLC的控制,达到控制设备的目的)使得温湿度参数最终稳定在设定值附近,达到了实验控制的目的。最后可以通过NI的报告生成工具包(Report generation toolset)把实验中保存的数据以报表的形式打印出来。 硬件亦不需做大的调整,主要集中在软件的编画(LabVIEW为图形化语言)上。因为缩短软件的开发时间,使得整个数据采集控制系统的开发时间也大大缩短。 5 结论 LabVIEW在系统开发上有很大的优势。从系统建设时间来看,用LabVIEW来进行软件编程和同一系统的PLC编程相比,所花的时间更少、程序界面设计更容易更美观。用PLC来编程,并使之通过可视的界面显现出来(我们这里使用了MCGS嵌入式图形界面),是两个系统都需要进行设计的工作。而LabVIEW把两者都集于一体,通过简单的PC,就能对LabVIEW进行编程设计,最终在很短的时间内开发出我们需要的界面和功能,直至最终的产品。使用LabVIEW不仅在时间上优势明显,在系统的再开发上也有极大的优势。如果系统需要开发一个新的功能项目,在系统中加入某一传感器测量元件进行信号测量,然后再在LabVIEW中设计界面分析显示,很快就能达到想要结果。对于笔者所做的这一需要不断改进的系统,LabVIEW无疑是最好的选择。

    时间:2010-06-07 关键词: LabVIEW 设计教程 空调数

  • 基于LabVIEW的FIR数字滤波器设计

    介绍一种基于LabVIEW快速有效地设计常规FIR数字滤波器的方法,并给出了设计实例。因可以随时对比设计要求调整参数,故有利于滤波器设计的最优化。   关键词:FIR数字滤波器;LabVIEW;程序设计 Shanghai 200093, China)   一个截止频率为ωc(rad/s)的理想数字低通滤波      由式(1)和(2)可以看出,这个滤波器在物理上是不可实现的,因为冲激响应具有无限性和因果性。为了产生有限长度的冲激响应函数,我们取样响应为h(n),长度为N,其系数函数为H(z):   ?   用h(n)表示截取hd(n)后冲激响应,即h(n)=hd(n)W(n),式子中W(n)为窗函数,长度为N。当τ=(N-1)/2时,截取的一段h(n)对(N-1)/2对称,可保证所设计的滤波器具有线性相位。   一般来说,FIR数字滤波器输出y(n)的Z变换形式Y(z)与输入x(n)的Z变换形式之间的关系如下:      实现结构如图1所示。   从上面的Z变换和结构图可以很容易得出FIR滤波器的差分方程表示形式。对式(4)进行反Z变换,可得:    ?   LabVIEW 7.1版本中,有两个子模板涉及信号处理,分别是Analyze子模板和Mathematics子模板。进入Functions模板Analyze中的Signal Processing子模板,见图2。        VI对于其参数在帮助中都有详细的说明,并且还有相关的例子。 2.2前面板的设计   结合滤波器的形成原理,把滤波器类型分为低通,高通,带通和带阻,由于低通和高通只需要求截止频率,而带通和带阻需要上下截止频率,故把这四个类型分开设计。显示幅值,相位和相关系数。如果设计的滤波器符合要求,可以把这个相关系数存盘,以便写成滤波器的形式。具体的前面板程序见图5。   ?   本例中,首先在Filter Type中选择Bandpass(带通滤波器);接着在Window选项中选取Hamming;在Order项中输入31;在采样频率中输入1000;由于采用窗函数法设计,只需给出通带下限截止频率fl和通带上限截止频率fh,输入fl=100Hz,fh=200Hz。然后回车,即 可得到所设计的FIR滤波器,看到所设计滤波器的幅频响应、相频响应、滤波器系数,各种 特征如图7所示。点击save,选择保存的路径保存文件(后缀为text,也可以默认设置)。

    时间:2011-01-07 关键词: LabVIEW fir 设计教程

  • 基于DSP+LabVIEW的特高压验电器设计方案

        随着电力工业的发展和电网负荷需求的提高,我国正在大力发展特高压、长距离输电技术。高电压导致强电场、电气设备绝缘中的某些薄弱部分在强电场的作用下发生局部放电,同时当架空输电线路表面的电场强度超过空气分子的游离强度(一般在20~30 kV/cm),气体会发生电离,出现电晕放电。因此,为了保障电网线路的稳定运行和停电检修时的安全。采用先进的检测技术对输电线路的状态进行检测具有重要意义。   目前国内外500 kV电压等级及其以下的验电技术已较为成熟,但随着电压等级的提高,目前采用长杆上套装电容型验电器的验电方法已难以满足特高压输电系统发展的要求;同时利用红外成像仪、紫外成像仪、超声波探测仪等检测方法存在成本高、操作复杂、灵敏度低,并对早期的放电危险难以预报,不能定量表示放电程度等缺点。而特高压系统的绝缘要求更高,一般对地距离较远,尤其特高压输电线路塔架高、跨距大、检测地点有时受到地理位置限制。检测距离可能大于80 m,故需要一种灵敏度高、检测距离远、成本低、易于掌握的特高压放电检测方法,根据紫外脉冲法在电气检测领域的研究经验。采用基于紫外脉冲法的放电检测技术。   通过极高灵敏度的日盲型紫外探头,对高压输电线路的放电紫外光进行连续的在线检测,通过计数紫外脉冲数,并结合检测得到的环境参数,从而监测高压输电线路状态。   1 系统总体设计及工作原理   基于紫外检测法的智能型特高压验电器系统的总体结构如图1所示。该系统采用DSP作为现场智能型特高压验电器的核心,其外围由硬件电路组成,用于采集高压输电线路电晕放电信号,并将从紫外传感器采集到的信号通过现场总线CAN传送至上位机,上位机管理系统软件由L-abVIEW开发,主要完成特高压验电器检测参数的显示和信号分析处理功能。 图1 系统的总体结构   2 传感器的选型   紫外线的波长范围是10~400 nm,太阳光中也含紫外线。波长大于280 nm的部分被称为UV-C,几乎全部被大气中的臭氧吸收,因此通过大气传输的98%是315~400 nm的UV-A,2%是280~315 nm的UV-B,低于280 nm的波长区间称为太阳盲区。高压输电线路放电产生的紫外线大部分波长在280~400 nm之内,也有小部分波长在230~280 nm之内,探测这部分波长的紫外线,可作为判断放电的依据。   采用特定的紫外传感器,利用太阳盲区,使仪器工作在波长185~260 nm,而对其他频谱不敏感,去除可见光源的干扰。紫外传感器光谱响应特性的上限取决于阴极材料表面的功函数,必须大于4.1eV,一般用W、Mo、Ni等做阴极材料;下限取决于管壳材料透紫波长,透紫玻璃的极限波长是185 nm,适合应用。[!--empirenews.page--]   经过比较分析,选用HAMAMATSU公司的日盲型紫外传感器R2868,如图2所示。其技术指标为光谱响应为185~260nm,放电起始电压为280 VDC,工作电压为325±25 VDC,工作电流小于30 mA,灵敏度为5 000 cps,背影噪声小于10 cpm,该传感器的工作波段采用太阳盲区中的185~260 nm波段,该波段不受太阳辐射的干扰,其灵敏度达5 000 cps,可有效检测到电晕放电的紫外脉冲。 图2 日盲型紫外传感器R2868实物图   3 系统硬件设计   本系统采用高性能的数字信号处理器TMS320F2812作为核心处理单元,扩展外围功能电路,如图3所示,主要包括:紫外传感器及其驱动电路、温湿度采集电路、时钟电路、指示电路、存储器扩展电路、JTAG接口电路和CAN通信接口电路等。 图3 硬件系统结构图[!--empirenews.page--]   3.1 紫外传感器驱动电路   特高压验电器的核心器件是紫外传感器,其工作电源可采用干电池或者太阳能电池,驱动电路如图4所示,为了获得325±25 VDC,前端必须进行DC/AC/DC转换。逆变器U1输入电压为+3.3 V,驱动电路通过桥式整流对逆变器U1输出的交流电压进行整流,再通过C26、R3和R4组成的RC滤波电路进行滤波,调整R3和R4的值,将传感器的工作电压调到325V左右。紫外线入射时,紫外传感器放电,电流由充电电容C27提供,并在电阻R7上产生瞬时电流,输出一个脉冲电压,引入电容C28可将输出的脉冲电压变得平滑稳定;停止放电后,电源向电容C27逐渐充电,阳极电位增加。达到放电起始电压后,如再有紫外光照射到传感器上则再次放电。驱动电路包括信号处理模块,消除了由自然激励光源引起的背景放电信号。 图4 紫外传感器驱动电路   3.2 温湿度采集电路   高压输电线路的电晕放电是一个复杂的过程,利用紫外检测法必须考虑到周围环境的影响。具体表现为:空气污染越严重,空气密度越小,湿度越大,电晕放电越强。这里采用数字式温湿度传感器SHT71,在检测高压输电线路电晕放电的同时,将温度和湿度作为考虑因素,可以更好地检测其放电情况。   3.3 时钟电路   DSP工作是以时钟为基准,如果时钟质量不高,那么系统的可靠性、稳定性就很难保证。在TMS320F2812上,有基于PLL时钟模块,为器件及各种外设提供时钟信号。锁相环有4位倍频设置位,可以为处理器提供各种速度的时钟信号。时钟模块提供2种操作模式:   1)晶体工作模式,该模式允许通过外部晶体为芯片提供时钟基准;2)外部时钟源工作模式,此模式下内部的振荡器将旁路。芯片设备的时钟由外部时钟源从XTAL1/CLKIN引脚上输入。在这种情况下,XTAL1/CLKIN引脚将与外部晶体振荡电路相连。   本系统用20 MHz外部晶体给DSP提供时钟,并使用TMS320F2812片上PLL电路。PLL倍频系数由PLL控制寄存器PLLCR的低4位控制,可由软件动态地修改。   3. 4 指示电路   为了便于选择检测时间和控制背景光等的亮暗,设置了选择、确认,继续和背景灯控制3个按键。在现代显示器件发展中,液晶显示器件以其功耗低、体积小、色调柔和、可与CMOS电路直接匹配和易于实现大规模集成化生产等一系列优点而应用广泛。这里采用了内藏T6963C控制驱动器图形液晶显示模块MGL(S)-12864T实现特定的汉字显示。   3.5 存储器扩展电路   为方便调试和使用方便,设计扩展一个外部数据存储器,采用ISSI公司的ISLV6416。该器件是一片64 Kx16 b的高速静态RAM,采用3.3 V电源供电。这里3.3 V电压信号由电源转换器TPS75733转换实现,该芯片可将+5 V电压转换成+3.3 V,供DSP工作。 [!--empirenews.page--]   4 系统软件设计   4.1 下位机软件设计   下位机软件采用C语言与汇编语言混合编写。系统主程序流程如图5所示。系统上电后先进行各个模块的初始化,然后开中断等待中断事件。当高压输电线路存在电晕放电时,DSP通过捕获单元开始采集电晕放电脉冲数目,然后执行数据处理,最后将数据送液晶实时显示并通过现场总线CAN上传给上位机做进一步处理。 图5 系统主程序流程   4.2 上位机管理系统软件设计   上位机管理系统软件的总体设计方案如图6所示。该系统包含一个主界面,在主界面中主要实现对高压输电线路电晕放电紫外脉冲检测参数和信号波形的显示,并对信号波形采用小波分析的方法进行分析处理。 图6 上位机总体设计方案   5 结论   针对特高压输电线路电晕放电检测问题,采用DSP研制了一种基于紫外检测法的智能型特高压验电器系统,经软硬件联调,实验表明,该系统达到预期要求,具有界面友好、操作方便、多功能和抗干扰较强等特点。电晕放电检测的难点在于如何排除输电线路上的各种干扰,采用小波分析等信号处理的方法提取干扰信号下的电晕放电脉冲信号是下一步的主要研究工作。  

    时间:2011-03-15 关键词: 方案 DSP LabVIEW 设计教程 高压验

  • 使用LabVIEW控制探索频道望远镜

    "我们使用LabVIEW实现了快速原型开发和与外部应用程序库以及内建调试工具的快速整合。" – Philip Taylor, Observatory Sciences Ltd The Challenge:     为大型光学望远镜设计并实现控制软件,并与网络分布式控制系统集成。 The Solution:     使用NI LabVIEW软件创建控制望远镜固定控制硬件的系统。 Author(s):     Philip Taylor - Observatory Sciences Ltd Lowell天文台和Observatory Sciences Ltd.正在与探索通信合作,开发孔径4.2米的探索频道望远镜(DCT),它将会成为美国的第五大望远镜。它是许多现代天体物理学的强大工具,涵盖太阳系研究到天体、银河系和外银河系天文学的基础工作。 我们使用LabVIEW用于大型物理控制应用,并且将它作为DCT控制系统的主要软件开发工具,使用LabVIEW共享变量在分布式子系统之间通信。我们使用NI CompactRIO系统用于望远镜镜像智能控制和圆顶控制。此外,我们在环境控制系统中使用NI Compact FieldPoint控制器。 我们选择使用LabVIEW实现望远镜控制系统是因为它是一个集成开发环境,能够方便地将因特网设施与远程数据提供商集成,同时在过去类似的项目中,它也展现了快速原型开发功能,并带来了生产力提升。 我们正在为多个望远镜制造控制系统,它们具有一些共同的特性,也包含一些每个望远镜所特有的特性和子系统。我们基于LabVIEW设计了灵活的软件架构支持大规模分布式系统的开发。这提供了一组通用特性,可以大大降低每个望远镜定制软件开发所需的时间。 通用软件用于在不同的望远镜之间重用,并且可以在运行于Linux和Windows操作系统上的LabVIEW之间移植。我们使用LabVIEW开发了用于控制大型分布式控制系统的应用程序,并且创建了通用软件体系结构,并在多个用于控制专业光学望远镜的大型软件应用中进行了部署。DCT是我们使用这个体系结构完成的第一个系统。我们使用LabVIEW实现了快速原型开发和与外部应用程序库以及内建调试工具的快速整合。  

    时间:2011-04-26 关键词: LabVIEW 设计教程

  • 基于LabVIEW平台的寒地日光温室群远程监控系统设计

    "通过使用NI产品,我们极大地缩短了系统开发周期和实验的验证时间。" – Fulu Wang, Northeast Agriculture University The Challenge:     以NI LabVIEW为软件核心,集成PCI6221,NI WSN,第三方OMRON PLC 控制器等硬件,共同构建寒地日光温室群远程无线监控系统。 The Solution:     通过使用具有良好人机界面和易于编程的LabVIEW,结合基于ZigBee协议的NI-WSN,实现对温室环境参数的无线测量,传送,显示和存储。使用DSC工具包,通过OPC server易于对温室控制器OMRON PLC 的读写,实现对执行机构快速准确的控制。使用WEB server实现监控系统的远程监控。 Author(s):     Fulu Wang - Northeast Agriculture University 地处寒地地区(高于北纬43°的地区)的吉林省和黑龙江省是我国的农业大省,目前随着日光温室的迅速发展,该地区从国外引进并自行设计了大量日光温室。经过调研走访,由于高寒地区冬季恶劣的气候条件,且温室均以加温温室为主,在实际运行中存在着能耗大,自动运行故障率高,维修成本高,使温室控制主要靠人工经验手动管理,这是限制温室作物高产、优质、高效生产的主要障碍。 本文基于LabVIEW软件平台构建上位机监控系统,结合基于ZigBee技术的无线传感器,实现寒地日光温室环境信息的无线采集,显示,存储。通过LabVIEW DSC Module 中的OPC SEVER,易于实现对PLC的读写,从而实时对现场设备进行监控,并通过WEB SEVER实现远程监控。 监控系统设计     系统整体设计方案如图1所示。无线传感器网络由布置在温室中的环境温、湿度传感器,土壤湿度传感器及二氧化碳和光照传感器组成,各传感器将非电量转化成随环境参数改变的电量,以无线的方式传送至以太网关接收端,再通过以太网接口传至上位机。上位机运行基于LabVIEW实现的监控界面,实现环境参数的实时显示,数据库存储,打印输出,参数设置,报警,历史数据查询等功能。下位机控制器选用PLC,梯形图编程简单,在寒地温室复杂的环境条件下,控制器可靠性高。    图1 系统整体方案框图 监控系统硬件实现     无线传感器网络选用NI WSN-3202 。NI WSN-3202测量节点作为一款无线设备,提供4路±10 V模拟输入通道和4路双向数字通道。18针螺栓端子连接器可直接与传感器连接;设备提供的12 V、20 mA电源输出可以直接为需要外部电源的传感器供电。直接使用4节1.5V、AA碱性电池为该测量节点供电,4节电池的电量可持续工作3年。采集节点在2.4 GHz频段上以无线方式将数据传输至WSN以太网关;WSN以太网关进而通过以太网连接至其他网络设备。WSN-3202可配置为网状路由器(mesh router),以拓展网络距离并且将更多节点连接至网关。最多8个终端节点(在星形拓扑中)或最多36个测量节点(在网状拓扑中)可连接单一WSN网关,支持最远300米户外视距。 温度传感器选用SHT75,湿度传感器选用SHT75。主要性能指标是:温度测量范围-40℃~+123.8℃;精度±0.3℃(在25℃时);响应时间<8s;功耗20Μw(平均值);湿度测量范围:0-100%RH;精度±1.8RH;重复性精度:±0.1%RH;数字量输出。土壤湿度传感器选用5TE。光照度传感器选用TBQ-6。主要性能指标是:测量范围0-20万Lux;光谱范围400-700nm;测量误差<2%;电源电压12/24VDC;输出可选4-20 mA 、0-20mV。CO2传感器选用CGS-3100。主要性能指标是:测量范围0-2000ppm;测量精度±30ppm±5%(0-50℃);响应时间<30s;电源9-18VDC;消耗电流平均50 mA;数字量输出。 数据采集卡使用NI公司M系列数据采集(DAQ) PCI-6221 卡。PCI-6221是一款低廉的M系列数据采集卡,在计算机上使用。它可以采集模拟信号、数字信号,拥有定时器的功能,同时还具有模拟输出的功能,该数据该数据采集卡具有高性能的数据采集与控制功能。我们主要使用的是该采集卡的模拟输入、数字量输入的功能。用于位置固定的传感器(如室外气象站监测)的有线测量以及设备状态的监测。与无线传感器网络共同构建完整集成的有线和无线测量。PCI-6221数据采集卡具有16个模拟输入通道,2个模拟输出通道以及24个数字I/O。 下位机控制器选用OMRON PLC CPM2AH 60CDR A,该控制器可靠性高,性价比高,编程简单,设计周期短。通过计算I/O,本系统一共需要29路输入,13路输出。 监控系统软件设计     系统的软件设计主要包括上位机软件设计,和下位机梯形图编程,本文主要介绍上位机软件设计。上位机监控界面采样NI LabVIEW 软件编程。为了便于操作人员及时掌握现场情况,设计了简单、自然友好的监视控制界面。软件系统如图2所示,其中包括用户管理模块、数据采集模块、参数设置模块、控制输出模块、数据处理与查询模块等。    图2 软件系统结构图  数据实时显示界面如图3所示,可以实时显示温室环境各个参数的信息,并通过设定上下限,实现声光报警的管理。   图3实时数据显示界面  机器状态显示与控制模块如图4所示,通过选择手动和自动运行,使用这种虚拟仪器的方式,实现各种现场设备的远程控制。[!--empirenews.page--]   图4 机器运行状态显示与控制  利用LabVIEW用户免费开放的数据库访问工具包LabSQL,通过Mircosoft ADO 控件和LabSQL语言实现数据库的访问。系统把监控的实时数据温度、湿度、光照度、二氧化碳浓度及各执行器的状态存入Access数据库,操作人员可在数据查询界面通过日期查询。前面板及程序图如图5、图6所示。   图5历史数据查询   图6数据查询程序框图 上位机软件与PLC通信实现     NI LabVIEW软件可以通过多种方式与任何可编程逻辑控制器(PLC)进行通信。用于过程控制的OLE(OPC)定义了在控制设备和人机界面(HMI)之间进行实时对象数据通信的标准。OPC服务器适用于几乎所有PLC和可编程自动化控制器(PAC)。通过LabVIEW程序访问PLC数据,可以在解决方案中加入强大的分析和控制功能。 本方案采用基于串口的传统PLC OMRON CPM2AH。首先通过欧姆龙PLC编程软件CX-Programmer,完成梯形图程序的编写,通过RS232串口线将PLC与上位机相连,上电运行,见梯形图程序写入PLC。接下来进行NI OPC服务器的设置。选择开始》程序》National Instruments》NI OPCServers》NI OPCServers,启动NI OPC服务器。如图7所示。在device区单击鼠标右键创建channel,设备驱动选择omron host link,逐步选择下一步,完成设置。在刚刚创建的通道PLC上单击右键,选择创建设备,输入设备名称CPM2AH,如图8所示。这时在右侧框,如图左键单击,添加tag,输入tag名和地址,配置PLC地址。如图9所示。至此OPC服务器的设置基本完成。   图7 NI OPC SERVER 对话框   图8 新建通道选择设备驱动   图9 添加tag 名称及对应PLC地址  LabVIEW的DataSocket中隐含一个NI 的OPC Client,可通过OPC Client与OMRON的OPC Sever 进行通信,实现数据的交互。下面介绍如何在LabVIEW中利用OPC 建立与PLC的数据连接。在LabVIEW的前面板上生成需进行通信的控件,该控件的数据类型应与OPC中的数据类型一致。在该控件上单击右键,弹出快捷菜单,选择“属性/数据绑定/数据绑定选择/datasocket”设置相应的访问类型和路径,这样将程序中的前面板控件连接到PLC相应的地址,实现对下位机的读写。运行LabVIEW程序,改变前面板控件的值,在OPC Scout中可观察到PLC对应地址上数据的变化;同样该地址对应的LabVIEW中的变量的值也会改变。至此,基于OPC的PC与PLC实时通信就实现了。 远程监控实现     通过开启LabVIEW的Web服务器,可以在网页上发布LabVIEW程序,使本地或远程的客户端计算机可以实时浏览或控制Web服务器中的远程面板,实现生产环境的远程控制。 使用LabVIEW的Web发布工具:Tools/Options,在弹出的对话框中完成与Web服务器有关的设置和LabVIEW程序的发布。如图10所示,分别设置Web服务器:配置;Web服务器:可见VI;Web服务器:浏览器访问。通过Tools/Web Publishing Tools对话框,可以将Web内存中的程序,以网页的形式发布,在客户端进行浏览。 根据客户端安装软件的不同,客户端对远程面板有不同的访问方式。如在Web上浏览程序前面板;在Web上浏览HTML文件;通过网页浏览器在网页中操作远程面板;在LabVIEW中监控远程前面板;利用LabVNC实现远程面板发布。 本文选择使用网页浏览器在网页中操作远程面板。需要注意的是客户端计算机需要安装免费的LabVIEW Run-Time Engine,安装占空间约90M大小。 在LAN内,远程面板的地址格式是:http:// pcname: port / viname.htm;在Internet上,远程面板地址格式为http://ipaddress:port/viname.htm。 当远程面板出现在浏览器上时,可右键单击鼠标,在弹出的菜单中,可以请求vi控制权,如图11所示。当多个客户端同时监控服务器端时,可以多个同时监视,但只能有一个客户端有控制权,其他的需等待释放后获得控制权。 在Web服务器上,通过Tools / Remote Panel Connection Manager,可以对所链接的客户端计算机的连接信息与状态进行查看和控制。   图10 Web 服务器配置图   图11 远程监控界面 结论     利用NI公司先进的软硬件技术平台,在极短的时间内开发出了一套系统可靠,运行稳定的寒地日光温室控制系统。借助NI WSN系统,灵活创建完整集成的有线和无线测量解决方案,并通过LabVIEW开发环境访问各类NI平台。同时实现了与LabVIEW软件开发平台的无缝连接。选定NI公司的产品,无论是在开发的周期还是实验的验证都得到了很好的缩短。LabVIEW的开发便捷性在UI界面与系统的开发过程中得到了充分的发挥。通过LabVIEW程序访问PLC数据,可以在解决方案中加入强大的分析和控制功能。

    时间:2011-04-26 关键词: LabVIEW 程监控 设计教程 温室群

  • LabVIEW与单片机串口在数据采集系统中的应用

    1.LabVIEW分析 LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显着区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。 LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试。采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。 它主要的方便就是,一个硬件的情况下,可以通过改变软件,就可以实现不同的仪器仪表的功能,非常方便,是相当于软件即硬件!现在的图形化主要是上层的系统,国内现在已经开发出图形化的单片机编程系统(支持32位的嵌入式系统,并且可以扩展的),不断完善中(大家可以搜索 CPUVIEW 会有更详细信息;)。 1.1VISA简介 VISI俗称虚拟仪器软件规范,是所有标准I/O函数库及其相关规范的总称,用于完成计算机与仪器之间的连接,实现对仪器的控制。VISI本身并不具备编程能力,是通过调用底层驱动程序来实现对仪器的编程,其层次如图1所示。VISA是采用VPP标准的I/O接口软件,其软件结构包含三部分,如图2所示。 VISA的I/O控制特点 ①适用于各种仪器类型(如VXI仪器、GPIB仪器、RS-232串行仪器、消息基器件、寄存器器件、存储器器件等仪器); ②适用于各种硬件接口类型;适用于单、多处理器结构或分布式网络结构; ③适用于多种网络机制。 VISA的I/O软件库的源程序是唯一的,与操作系统及编程语言无关,只是提供了标准形式的API文件作为系统的输出。 1.2VISA库中的串口通讯函数 主要的串口通讯函数调用路径为:Functions?Instrument I/O?VISA?VISA Advanced?Interface Specific?Serial。 ①VISA Configure Serial Port节点(图3所示) 该节点主要用于串口的初始化。主要参数如下: VISA resource name:VISA资源名称,本文指串口号。baud rate:波特率,默认为9600。 data bits:一帧信息中的位数,LabVIEW中允许5~8位数据,默认值为8位。 stop bits:一帧信息中的停止位的位数,可为1位、1位半或2位。 Parity:奇偶校验设置。可为无校验、奇校验或偶校验。 flow control:该参数数据类型为簇,用于串行通讯中的握手方式。 ②VISA Read节点(图4所示)? 该节点为串口读子VI,为本文中的主要节点,将串口中的数据读出,然后利用LabVIEW的强大数据处理功能对其进行分析处理。主要参数意义如下: VISA resource name:VISA资源名称,本文指串口号。baud rate:波特率,默认为9600。 byte count:用于设置所要读的字符数。由于LabVIEW的串行通讯子VI只允许对字符串的读写,因此本文中在进行数据处理时,必须要实现字符串与数字之间的正确转换。其次,若要读入当前串口中的所有字符,则要执行“VISA Bytes at Serial Port”子VI,用以确定将要读入的确切的字节数,然后将其输出作为VISA Read节点的输入即可。 ③VISA Close节点(图5所示)? 该节点用于将打开的VISA资源关闭。只有一个主要参数: VISA resource name:VISA资源名称,本文指串口号。baud rate:波特率,默认为9600。 本文所用LabVIEW串口通讯程序的波特率为9600,8位数据位,无奇偶校验,1位停止位,硬件握手、禁止软。 2单片机设计 2.1硬件 MCS-51单片机有一个全双工串行口其功能非常强大。 该串行口有4种工作方式,由片内的定时器/计数器产生,接收、发送均可触发中断系统,使用十分方便,波特率还可用软件设置。 有2个物理上独立的接收、发送缓冲器SBUF,对外也有两条独立的收、发信号线RXD(P3.0)和TXD(P3.1)。 本文采用RS232串行接口标准,在电气特性上,RS?232采用负逻辑,要求高低两信号间有较大的幅度,标准为:逻辑“1”在-5V~-15V之间,逻辑“0”在+5V~+15V之间,通常采用-10V左右为逻辑1,+10V左右为逻辑0。由于MCS-51系统的信号输入输出为TTL电平,逻辑1为3.8V左右,逻辑0为0.4V左右,因此,必须外接电路实现TTL电平到RS?232电平的转换。本文特别采用MAX232E实现此转换。 采用TLC0831芯片进行数据的采集。TLC0831芯片为8位逐次逼近电压型A/D转换器,不需寻址,支持单信道输入串口输出,极性设置固定。其主要特点为:8位分辨率;5V的电源提供0~5V的可调基准电压;输入输出可与TTL和MOS兼容。若要提高信号的采样频率,只需选择转换速度较快的A/D芯片即可。硬件部分原理图如图6。 2.2软件 下面给出单片机软件部分的主要程序。波特率设置为9600,用定时器1产生波特率,串口工作在方式1,无奇偶校验。定时器0设定采样的时间间隔。TLC0831为A/D转换器数据采样子程序,SEND为单片机发送子程序。   3结论 虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。目前使用较多的是 IEEE 488 或 GPIB协议,未来的仪器也应当是网络化的。 LabVIEW是一种图形化的编程语言的开发环境,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW [2]集成了与满足 GPIB、VXI、RS-232 和 RS-485 协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/IP、ActiveX 等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。 由单片机进行前端数据采集,在通过串口与LabVIEW的数据通讯,巧妙的利用LabVIEW强大的信号分析处理功能,开发了一套投资少、操作简便的数据采集与信息分析系统(其虚拟面板如图7所示)。从系统运行良好,可以看出本实验很成功,可以投入市场。  

    时间:2011-12-25 关键词: LabVIEW 设计教程

  • 基于LabVIEW的暖通空调数据采集控制系统设计

    摘要: 暖通空调(HVAC)系统中建立一套对各种水阀、风阀、变风量箱、电加热器、加湿器以及其他 控制元件进行准确测量及时控制的数据采集控制系统。使用NI公司的LabVIEW Developer Suite,把HVAC系统中各种不同设备统一起来,进行集中采集控制。建立一套基于PC的HVAC数据采集控制系统。 关键词:abVIEW  数据采集 自动控制 暖通空调系统  PID控制 The Application of LabVIEW in the field of HVAC DAQ and Control System By Chen Qian,Weng Wengbing Build a suit of HVAC DAQ and Control System which could take precise data acquisition and control water valve, air valve, VAV box, electrical heater, humidifier and other control elements. Using National Instrument’s product LabVIEW Developer Suite, unite all different devices in HVAC system to take central control. Build a suit of HVAC DAQ and Control System based on PCs. Keywords:abVIEW  Data Acquisition Auto Control HVAC System  PID Control 引言 LabVIEW大量应用在自动控制领域,对于HVAC系统中采用LabVIEW作为上位端软件还不多见,但随着LabVIEW 7 Express的发布,LabVIEW已经开始逐渐渗透到各个领域。在笔者所在专业HVAC自动控制领域使用LabVIEW后发现,其功能十分强大,节省系统开发时间,非常适合工程开发人员使用。笔者结合近来开发的一套HVAC系统,对LabVIEW在HVAC数据采集控制系统的应用做个介绍。 1 系统总体结构 HVAC中有大量数据需要采集,通过对数据的采集,来对各项系统参数进行调整。本系统主要由水系统、风系统、控制系统组成。 ● 水系统包括:水冷式冷水机组,冷却塔,膨胀水箱,冷冻水泵,冷却水泵,三通调节阀、流量计等附件。 ● 风系统包括:组合式空调箱、送风管道、回风管道、排风管道、VAVBOX以及阀门和其他控制元件。空调箱包括新回风混合段、过滤器、表冷器、电加热器、送风风机、蒸汽加湿器等。风机变频控制。新回风管上分别装有电动调节阀,可调节新回风比例,表冷器前后分别装有温湿度测点,空调箱内还装有喷嘴,用于空气流量的测量。 ● 控制系统包括:各处的压力传感器、温度传感器、控制元件、执行器、数据采集仪、计算机、触摸屏等,可进行建筑环境与设备自动检测与数据处理。 实验系统房间共有两间:Room1和Room2。Room1主要用于建立低温环境实验室,因此单独配备了一套直接蒸发式水冷机组。每个房间内均有一个负荷发生器Ld,用于产生模拟负荷,并且有温湿度测点。在Room1中,布置一组送回风口,顶送下侧回;Room2中布置两组送回风口,分别为顶送、侧回。每个送、回风口上都装有手动调节阀,可开关或进行调节。房间内布置一个压差传感器,可控制房间内的正压。在两个房间的送风管道上分别装有一个压力无关型VAVBOX。 通过对图1系统原理图,大家对系统能有个直观的认识。 2 数据采集控制系统 系统分为两部分:数据采集和系统控制。数据采集部分有各种不同数据采集设备。控制部分由PLC(可编程控制器)来完成。LabVIEW能很方便的对计算机串口进行操作,因此LabVIEW可方便的建立计算机串口与PLC串口之间的通信,便捷的获得PLC中的数据,在计算机中进行PID神经模糊等复杂运算,从而得到需要的数字控制信号,对需要控制的设备进行控制,增强系统的通用性。并可开发出更加丰富的功能。从图2中可以看出整个数据采集系统中用到的软硬件部分及它们间的关系。 图2 采集控制关系图 [!--empirenews.page--] 通过数据采集系统可得数据有:表冷器水流量,VAVBOX1、2风量反馈,送风湿度,新风温湿度,低温室壁挂式温湿度计温湿度,变频压缩机节流前后压力,喷嘴压差,表冷器前后干湿球温度,蒸发机组压缩机吸排气温度,变频冷水机组压缩机吸排气温度,冷水机组压缩机吸排气温度,表冷器进出水温度,热水箱进水温度,冷却塔进水温度,变频冷水机组冷却进出水温度,变频冷水机组进水温度,冷水机组冷却水进出水温度,冷水机组进出水温度。可见需要设置大量的不同得传感器。 使用的末端传感器有:PT100铂电阻温度传感器,铂电阻使用四线制可以提高测量精度,避免沿途数据线电阻对测量的影响。EE10室内温湿度变送器,产生4~20mA的标准电流信号,为了便于数据采集仪测量和避免信号的失真,在其中加入250Ω的精密电阻,将电流信号转换为标准的1~5V的电压信号。压力传感器、风阀开度控制器、湿度等信号均是标准的1~5V的标准信号,或者经过转换成为1~5V的标准信号,便于数据采集仪进行处理。这些信号均为线性或近似线性,可以通过增益和偏移(M×B)把标准信号转换为我们熟悉的温度湿度压力值工程量。例如:采集到的信号为3V,此时的1V对应于0℃,5V对应于100℃,则可以通过: Y=MX+B 算出M=25,B=-25,再把3代入,可得Y=50℃。此部分只需通过使用LabVIEW的Database Toolset工具包和全局变量数据的交换,很容易实现信号的转换。  数据采集仪:传感器、变送器产生的标准信号直接进入数据采集仪。数据采集仪采用的是Agilent 34970A数据采集仪(附三块HP 34901A 20通道衔铁继电器多路转换器)。它可以直接测量热电偶、电阻温度测试器、热敏电阻、直流电压、直流电流、交流电流等。电源电流、电压、功率和频率通过PF9833三相PWM专用测试仪来测量。通过使用NI-VISA协议,可对串口读写操作,很方便的完成了数据的交换,见图3。 图3 LabVIEW中NI-VISA串口读写 控制系统PLC与PC的通信也同样使用了NI-VISA协议进行通信。通过把命令请求写入(Write)串口,设备对命令分析识别,把命令请求的数据通过RS-232接口返回到计算机,再通过对串口读操作(Read),从而获得设备采集的数据。对于不同设备有不通的命令。Agilent 34970A使用的是SCPI(Standard Commands for Programmable Instruments)可编程仪器标准命令集。PF9833则使用了另外的命令集。不同设备不管使用什么协议,通过NI-VISA都可和容易建立设备与计算机间的通信。对于PLC,需要编写设备端程序。要求程序实现获得命令后,对命令进行分析识别,把相应数据送出。 信号控制使用西门子SIMATICS7-300 PLC,部分对控制有影响的采集信号进入PLC,进行PID分析运算,产生控制信号,对风阀、风机、水泵、加热器等进行控制。PLC带有的RS-232通讯接口,直接与计算机建立通信。PC获得进入PLC的各种信号,也可在计算机中进行更为复杂的运算,产生数字控制信号返回PLC,再由PLC对各种需要控制的设备进行控制。 本系统可通过触摸屏对整个系统发出控制指令,触摸屏的每个开关都对应于PLC各个开关触点,相当于PLC的键盘,可对整个系统的各种参数进行调整。例如可以对风阀的开关,风机、水泵、电加热器的启停,各个PID控制设备P、I、D(比例、积分、微分)三个参数的设置进行相应的操作,系统流程图可清晰的从中反映出来。 由于使用了大量的串口来进行数据的通信,需添置一块多串口卡,用于连接多个串口设备。 3 LabVIEW程序 通过LabVIEW图形化设计很容易设计出漂亮美观的用户界面。见下图4所示。在使用Agilent 34970A数据采集仪时可对温度、电压、电流等各种参数进行测量,在进行采集时涉及到参数需要更改的情况,我们 使用了NI的数据库连接工具包(Database Connectivity Toolset),直接在一个已经编辑好的数据库(Hpsetting.mdb)里编辑所改变采集通道的参数,然后在运行程序时选择是否需要下载新的设置到数据采集仪,使数据采集仪相应设置改变,以采集到正确的数据。设置参数有通道号、通道描述、输入类型、范围、周期、延迟、触发、铂电阻阻值以及标定等。只要是使用Agilent 34970A数据采集仪采集数据,程序就不需要进行大的修改,节省了开发成本和时间,提高程序的通用性。 控制上使用了NI PID工具包,可对需要进行控制的部件进行PID控制,利用该工具包可以节省我们大量开发时间。LabVIEW一个很大的特点就是提供了大量的可用控件,控件提供输入输出,通过线连接输入数据,就可很方便的从输出口得到需要的控制命令。 4 实验 LabVIEW和众多系统中各种传感器配合,在系统调试中发挥了很大的作用。所需数据通过一台普通装有LabVIEW的计算机就能显示出来。调试中的数据用LabVIEW来进行分析显示,观察系统是否达到了预定的要求。 在系统中使用了LabVIEW软件,在硬件上不需要做太多的更改。各项所需测量控制参数在系统调试阶段已经设置好,后面就只需在软件界面和各项参数组合上做工作。   在冷水机组数据采集控制实验中,界面如图4,开启空调系统,通过数据采集设备获得当前温湿度信号。获得数据经过PID运算,输出控制信号,最终通过对PID参数的调节(更改界面中的PID参数,经过PC对PLC的控制,达到控制设备的目的)使得温湿度参数最终稳定在设定值附近,达到了实验控制的目的。最后可以通过NI的报告生成工具包(Report generation toolset)把实验中保存的数据以报表的形式打印出来。 硬件亦不需做大的调整,主要集中在软件的编画(LabVIEW为图形化语言)上。因为缩短软件的开发时间,使得整个数据采集控制系统的开发时间也大大缩短。 5 结论 LabVIEW在系统开发上有很大的优势。从系统建设时间来看,用LabVIEW来进行软件编程和同一系统的PLC编程相比,所花的时间更少、程序界面设计更容易更美观。用PLC来编程,并使之通过可视的界面显现出来(我们这里使用了MCGS嵌入式图形界面),是两个系统都需要进行设计的工作。而LabVIEW把两者都集于一体,通过简单的PC,就能对LabVIEW进行编程设计,最终在很短的时间内开发出我们需要的界面和功能,直至最终的产品。使用LabVIEW不仅在时间上优势明显,在系统的再开发上也有极大的优势。如果系统需要开发一个新的功能项目,在系统中加入某一传感器测量元件进行信号测量,然后再在LabVIEW中设计界面分析显示,很快就能达到想要结果。对于笔者所做的这一需要不断改进的系统,LabVIEW无疑是最好的选择。

    时间:2012-03-07 关键词: LabVIEW 设计教程 空调数

  • LabVIEW嵌入式心音身份识别系统方案

    心音身份识别是指一种利用人体心音信号进行身份识别的技术,心音是心脏及心血管系统机械运动状况的反映,包含了心脏各个部分本身及相互之间作用的生理和病理信息。因此,心音信号在不同的人身上有着完全不同的特征并且具有极高的稳定性,可以用作生物识别技术的识别特征。心音信号除了很难伪装,伪造及篡改外还具有容易获取的优势,因此人体心音信号可以为一种新型生物识别方法。 本文开发了一种基于LabVIEW的嵌入式心音身份识别系统,该系统使用方便灵活,能够实现对用户身份的注册、辨识和确认。 1、心音信号身份识别原理 心音信号用于个人身份识别主要包括两步:特征提取和模式匹配,特征提取是从心音信号中提取到唯一的表现被测者身份的有效且稳定可靠的特征,模式匹配是对训练和鉴别时的特征模式做相似性匹配,本文采用基于梅尔频率倒谱系数(MelFrequencyCepstrumCoefficient,MFCC)特征提取和矢量量化(VectorQuantization,VQ)模型匹配的识别算法设计心音身份识别系统。 MFCC主要运用于说话人识别,它将频谱转化为基于频率的非线性频谱,然后再转换到倒频谱上。 对MFCC做适当的改进,即可适用于心音的身份识别。根据心音信号的频域特性,Mel滤波器组截止频率选择为500Hz;由于心音信号具有准周期性,没有语音信号那么强的非平稳性,所以信号的帧长选择为256ms而非语音信号的20ms;MFCC系数选择为32阶,并且心音信号的高阶MFCC系数所含信息更多,加上一阶差分的系数可使信号动态特性强。VQ是由标量量化推广和发展而来的。标量量化是用若干个离散的数字值来表示每一个幅度具有连续取值的离散时域信号,矢量量化则是将若干个幅度连续取值的时域采样信号分成一组,即构成矢量,然后用若干离散的数字值来表示各种矢量,在模式识别的研究中,需要完成对每一个所要识别的矢量进行分类的任务。基于VQ的心音身份识别模型,相对于其它的识别模型(如高斯混合模型)来说,计算简单,具有实时性。 2、系统实现 2.1硬件系统实现 本系统硬件由上位机和下位机组成,整体结构如图2所示。上下位机之间通过HC-06蓝牙模组进行通信,HC-06蓝牙模组采用CSRBC04蓝牙技术,内置蓝牙天线,发射功率为Class2,灵敏度可达-80dBm。 下位机以dsPIC数字信号处理器为核心来控制心音信号的采集、放大以及ADC,而后通过HC-06蓝牙模组(从)将心音信号发送到上位机,下位机主要包括模拟电路和数字电路两部分。模拟电路包括心音传感器,30Hz高通、500Hz低通Butterworth滤波器和增益可调节音频放大器。心音传感器由听诊器探头、驻极体话筒和导管组成;Butterworth滤波器都为4阶,选用Sallen-Key结构,该结构可于进行独立的增益设定。增益可调节音频放大器选用LM4811,其CLOCK和UP/DN脚与dsPIC的RG6、RG7脚相连,实现对心音信号放大的控制。数字电路主要是dsPIC主控芯片和HC-06蓝牙模组,选用dsPIC33FJ128MC506作为主控芯片,系统时钟设为40MHz,采样频率设为2kHz,波特率设为11.5kbps;模拟信号经其12位ADC转换为数字信号后由UART传输至HC-06蓝牙模组(从)发送。 上位机是以工控主板为核心的终端,对心音信号进行显示、分析、存储和识别。包括HC-06蓝牙模块(主)、TTL-RS232电平转换电路、工控主板以及液晶触摸显示屏,HC-06蓝牙模块(主)接收传输的心音信号通过电平转换电路将TTL电平变为RS232电平;工控主板通过RS232接口连接蓝牙模组(主)完成心音信号的接收工作;液晶触摸显示屏则作为人机交互设备,通过LVDS总线和USB总线与工控主板相连,LVDS总线传输视频信号,USB总线传输触摸信号。 2.2软件系统实现 选用自行设计的WindowsEmbeddedStandard操作系统,由于它是组件化的XP系统,不需要设计文件系统和开发驱动程序,大大缩短了开发周期和开发难度。独特的增强型写过滤器技术将选定的磁盘I/O重新路由到内存或其它的存储媒体,从而让操作系统认为您的只读存储器是可写的;可定制开机画面和自定义壳作为系统启动的运行Shell,防止人为恶意修改系统配置或是误操作而破坏系统,保证平台稳定和数据安全。 3、心音身份识别软件开发 本文使用LabVIEW虚拟仪器开发基于MFCC特征提取和VQ模式匹配算法的心音身份识别软件,软件设计过程中需要用到NI公司的DatabaseConnectivityToolkit工具包,DatabaseConnectivityToolkit提供完整的SQL功能,使用MicrosoftADO技术与大多数常用数据库连接,实现与本地或远程数据库的交互式操作。心音身份识别软件实现3个功能:用户注册、用户辨识和用户确认,每个功能都有独立的功能界面,利用Subpanel实现动态载入界面。 用户注册分为两步:第一步为基本信息的输入存储,包括用户名、年龄、性别等;第二步为采集心音信号,提取其MFCC特征参数,利用LBG算法生成一个最佳码本存储在本地的数据库中。用户辨识是1:N的模式,采集待识别的用户的心音信号,提取MFCC特征参数,与本地数据库中已经存在的所有用户码本进行比较,根据最小平均量化失真度准则,选择最优码本进行匹配。用户确认则是1∶1的模式,首先用户输入已注册的用户名,而后采集待识别的用户的心音信号,提取MFCC特征参数,与用户指定身份的码本进行比较,如果其平均量化失真度小于既定的阈值,则确认其身份。 今后将研究基于自适应增强技术的心音去噪方案,提高识别算法的鲁棒性;虽然在本次小容量模板实验情况下EER为6.67%,但在大容量模板情况下,为保证EER仍然是一个比较小的值,用户确认模式下的阈值选取将是下一步研究的重点。 4、结束语 本文在MFCC特征提取和VQ模式匹配识别原理的基础上,基于LabVIEW开发了一种嵌入式心音身份识别系统,具有用户注册、用户辨识和用户确认功能。在小容量心音模板下具有较高CRR和较低EER,充分证明了嵌入式心音身份识别技术的可行性,这将为当前社会所面临的各种身份鉴定和信息安全问题提供一种准确率高、防伪能力强的生物识别新设备。

    时间:2012-04-17 关键词: 方案 LabVIEW 设计教程

  • 使用图形化的开发环境——LabView开发嵌入式系统

    传统设计模式所应对的挑战 嵌入式系统正在渗入现代社会的各个方面,广泛地应用于航空航天、通信设备、消费电子、工业控制、汽车、船舶等领域,据统计,在美国平均每个中产阶级家庭要使用40~50个嵌入式系统。巨大的市场需求推动了嵌入式系统向更高的技术水平发展。设计师们一方面采用性能更强大的嵌入式处理器如32位、64位RISC芯片取代传统的8位、16位微处理器;另一方面嵌入式系统也由单处理器单操作系统的传统结构向混合型Multi-core系统发展,通过采用多个处理器和OS提高系统并行度来提高系统运行效能,并且设计师们往往同时采用MPU、DSP和FPGA等多种可编程器件来增强处理能力,满足应用功能的升级。 嵌入式系统复杂性的不断增加给设计师们带来了很大的挑战,代码长度呈指数级增加,根据十年前的估计,嵌入式系统的平均代码量为10万行,到2001年实际已经超过了100万,而现在估计为500万。第三方独立市场预测机构EMF在对900多名嵌入式系统开发人员进行调研后指出,超过50%的嵌入式设计比预期时间晚上市,而平均延迟高达4个月;在已发布的产品中,有近30%的设计未达到预期的功能和指标。由此可见,随着嵌入式系统复杂性的不断增加,软件工程的重要性毋庸置疑,而大部分的嵌入式系统开发人员都缺乏这方面的专业训练。与此同时,随着嵌入式系统的广泛应用,越来越多领域的专家比如机器人设计师、控制工程师、测试工程师需要使用嵌入式技术来构建他们的系统,他们既缺乏嵌入式系统的专业知识,也不一定经过软件工程的专业训练。因此,无论是嵌入式系统本身的发展,还是开发人员的专业限制,都需要一种新的设计模式和解决问题的途径来应对目前的挑战。 嵌入式系统开发工具的发展趋势 随着嵌入式系统的快速发展和复杂性的不断增加,基于文本的编程方式所面临的挑战愈发严峻,这种编程模式在将来不可能彻底解决问题。加州大学伯克利分校嵌入式研究专家EdwardLee博士指出,现有的嵌入式系统的开发手段如基于文本编程和面向对象的工具都难以用来构建嵌入式实时系统,因为面向对象很难直观地表达时间和平行性(parallelism),而时间和平行性或并行(concurrency)在现在的嵌入式系统中是必不可少的。面向角色(actor-oriented)的图形化方法是更适合嵌入式软件设计的工具。 应对嵌入式系统所面临的挑战,工程师们已经有了一些解决的方向,比如采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性、简化应用程序设计、保障软件质量和缩短开发周期。但是现有的嵌入式系统开发工具非常多,全世界嵌入式处理器的品种总量已经超过1000种,流行体系结构有30多个系列,在其上运行的操作系统环境也非常多样化,包括VxWorks、QNX、Linux、Nuclears、WinCE等等。不仅各种操作系统有各自的开发工具,在同一系统下开发的不同阶段也有不同的开发工具。如在用户的目标板开发初期,需要硬件仿真器来调试硬件系统和基本的驱动程序,在调试应用程序阶段可以使用交互式的开发环境进行软件调试,在测试阶段需要一些专门的测试工具软件进行功能和性能的测试等等。最合理的解决方案是向基于平台的工具转移,它能够更好地表达整个系统,减少与特定硬件以及操作系统的相关性,使更多的软件设计和算法容易理解并被重复使用;而从基于文本的工具向图形化工具的转移则可以直观地表达系统,图形化系统设计(GraphicalSystemDesign)的理念就是源于这两大趋势。通过简化嵌入式编程的复杂性,降低了对工程师在嵌入式设计流程中各个步骤的要求;同时提供了从设计、原型到部署,从软件调试、功能测试到生产检测的统一环境,使得工程师们可以更快速地进行重复设计。 在嵌入式系统中实现图形化已经成为大势所趋,现在市场上的工具都在向图形化的方向转变,但往往仅限于基于嵌入式操作系统的图形界面开发;而且由于它们是针对特定硬件或操作系统的工具,与硬件和操作系统平台有很大的相关性,这不足以彻底解决行业将要面临的挑战的。现在市场需要的是一种完全的图形化编程语言,提供足够的灵活性和功能,以满足更广泛应用的需求。因此,图形化系统设计的关键因素是图形化编程。 对于时间和平行性的支持 20年来,科学家和工程师一直在使用LabVIEW为他们的设计实验室、验证实验室和生产现场构建自动化数据采集和仪器控制解决方案,并在这些应用领域成为业界的事实标准。其核心在于,LabVIEW图形化编程语言使没有太多软件背景的技术专家能够快速搭建高级自动化测量和控制系统。和传统的文本编程相比,LabVIEW天生是一种并行结构的编程语言,而时间和并行性在现在的嵌入式系统中是必不可少的。比如,LabVIEW在已有的定时循环结构上新加了硬件定时功能,它是一种表示时间和并行的语义,可以设置操作系统优先级、延时、循环速率等等,如图1所示。如果我们将图1所示的两个并行任务的执行目标扩展到嵌入式对象,比如FPGA或微处理器,就可以发现通过编程环境的一致性和可升级性,LabVIEW能够容易地实现和管理嵌入式系统的并行性。回想在文章前面所提到的向多处理器转移的趋势,现在我们可以憧憬使用可扩展的直观图形化编程来开发应用,并将处理过程分配到不同的处理器上。 图1LabView对两个并行任务的编程 支持多种算法设计 谈到嵌入式系统设计,人们所指的其实包括两部分工作:算法设计和固件设计。对于嵌入式系统设计来说,另一个关键要求是软件平台必须能够兼顾实时嵌入式设计中常见的多种算法设计,即计算模型。这些计算模型符合系统设计师们筹划系统时的方式,从而降低从“系统要求”转换到“软件设计”的复杂性。近年来LabVIEW已经包含了多种计算模型以更好地满足不同专业背景的嵌入式系统开发者的需求。LabVIEW现在可以通过连续时间仿真、状态图、图形化数据流模型和基于文本的数学语言mathscript等多种方式来表达各种算法,同时它提供了很多交互式的工具用来帮助数字滤波器、控制模型、通信系统的设计以及数字信号处理算法的开发,从而在这些顶层应用中进一步简化设计师的工作。[!--empirenews.page--] 快速构建原型—沟通虚拟世界与物理世界的桥梁 如前所述,很多设计比预期时间晚上市,并且有一些在投入市场以后发现未达到预定的功能和指标,因此必须采取一定的措施来加快设计流程、提高设计质量。一种解决方案就是更早地将真实世界的信号和硬件引入到设计流程之中,进行更好的系统原型化,从而在早期就发现并修正潜在的问题。 但是在任何设计和开发流程中,基于软件设计和仿真工具的虚拟世界与电子或机械测量的物理世界之间有一个很大的鸿沟,而LabVIEW平台最明显的价值就是在虚拟和物理世界的鸿沟上建一座桥梁。物理测量是与设计和仿真完全不同的挑战,要求与广泛的测量和控制硬件紧密集成,并以优化的性能处理大量的通道数或超高速吞吐量。LabVIEW平台经过不断演进,在物理测量领域具有很高的性能和灵活性。更重要的是,LabVIEW平台是开放的,设计人员可以将测量数据与仿真结果相映射,甚至互换仿真和物理数据,以用于设计中的行为建模或者以仿真激励驱动物理测试,从而更有效快速地进行系统原型构建。 嵌入式系统开发人员如果要定制硬件用于最终的发布,很难同时并行地开发软件和硬件。而如果直到系统集成测试的时候才引入I/O用真实世界的信号检验设计,一旦发现存在问题,那就意味着很难在预期时间完成设计任务了。大多数设计师当前用评估板来进行系统的原型化,但是,原型板往往只具备少量的模拟和数字I/O通道,也很少支持视觉、运动或同步的功能。此外,设计师经常因为需要传感器或特殊I/O的支持而花费大量时间来开发定制的原型板,而这些仅仅是为了设计概念的验证。使用灵活的、商业化的原型平台可以大大简化这个过程,消除其中硬件验证和板级设计的大量工作。对于大多数系统,原型化平台必须包括最终发布系统的同样部件,比如用于执行算法的实时处理器、用于高速处理的可编程逻辑器件,或者将实时处理器接口到其他部件。因此,如果这个商业化的系统不能满足所有的要求,那么这个平台必须是可扩展的,并且支持自定义。NI提供了各种硬件平台与LabVIEW集成,完成从设计、原型到部署的全过程。例如使用LabVIEW和NI可重复配置I/O(RIO)设备或NICompactRIO平台,可以快速而便捷地创建嵌入式系统的原型。 例如BostonEngineering公司要开发一种牵力控制机用于数码照片打印系统。其中,彩色墨盒通过驱动马达馈送到打印头,由卷带电机和推进电机来控制牵力。切割机底盘的振动、每次打印的照片数目和每个电机的速度变化都会影响到底层的牵力。控制系统通过两个电机的位置来保证卷带和推进的牵力处于设定范围之内,否则就会有色差。设计的牵力控制硬件需要两个脉宽调制输出来控制电机,两个编码器将转速反馈给电机,两个模拟输入通道连接霍尔传感器用来测量位置,两根数字线用于信令。传统的原型板无法满足这些要求,需要使用可以自定义I/O的原型平台,因此他们使用CompactRIO平台来进行原型化工作。他们在嵌入式控制器中运行管理程序,在FPGA中运行电机控制算法,这种资源配置使得原型化构建和最终系统发布在编程模式上是非常相似的。为了在FPGA中运行控制算法,他们将ZPK(zero-pole-gain)模型转化为LabVIEW数字滤波器设计工具包中提供的一种滤波器,由于这个工具包支持LabVIEWFPGA代码的自动生成和优化,所以原先的ZPK模型就可以直接转化成能够在FPGA上运行的代码。另外,他们还使用这个工具包对原先的浮点算法进行了定点转换,以节约FPGA资源,并对量化后的模型进行测试、验证、修正从而得到预期的结果。通过这种原型化方式,他们节约了大量的开发时间。 发布到任何32位处理器 LabVIEW包括一个广泛的工具集,该工具集构成了一个用于设计、控制和测试的图形化开发平台。新的NILabVIEW嵌入式开发模块是LabVIEW图形化编程环境的一款全新附加模块,是一个开放的框架,它可以集成任意的第三方工具链,将生成的C代码与LabVIEW运行库函数和板卡支持程序包,编译成为针对某一目标并能在之上运行的二进制代码。通过LabVIEW嵌入式开发模块和工具链,可以发布到运行任何操作系统的任何的32位处理器。该模块包含了近千个内建的库函数,涵盖了高等算法、文件I/O、逻辑和信号处理各个方面。原先无法利用到嵌入式编程的工程师们都可以进入32位微处理器的领域之中,通过LabVIEW中附加的状态图、控制图表、信号处理库函数等这一完整的工具来设计他们的应用,解决各种问题。此外,通过LabVIEW嵌入式方式,工程师和科学家可以使用一种叫做内联C节点(InlineCNode)的新特性,整合现有的嵌入式代码,来保持LabVIEW的开放架构。另外,在LabVIEW嵌入式项目环境中,还可以直接添加用C或者汇编开发的源代码,或者库文件,帮助开发人员充分利用以前的工作成果。 图2内联C节点 LabVIEW嵌入式环境的调试功能非常强大。除了用于快速调试的图形化用户接口显示件、探针、断点和函数单点调试之外,LabVIEW嵌入式开发模块为代码调试提供了另外两种无缝的接口。在嵌入式目标平台上,工程师可以使用“仪器调试”通过TCP/IP、RS232或CAN进行调试。使用内建的片上调试接口,工程师可在不影响程序性能基础上通过工业标准协议如JTAG、BDI和Nexus等进行调试。 减少与特定硬件以及操作系统的相关性 基于平台的工具,需要能够表达整个系统,而减少与特定硬件以及操作系统的相关性。在传统的开发模式中,嵌入式目标本身要求程序员在编写代码之前对目标有深入的了解。程序需要知道板卡上各种关于内存映射和寄存器的信息,才能在板卡上执行他们的代码。另外,大部分代码是专为某一特定目标编写的。这样,在一块板卡上使用不同的微处理器或是不同的外围设备,可能就需要重新编写大部分已有的代码,或是完全从头开始。这意味着最终产品的扩展性方面是有缺陷的。使用LabVIEW嵌入式开发模块,工程师和科学家们不需要了解最终的目标就可以进行代码开发,因为软件生成的是LabVIEW应用的ANSIC代码,而不是针对某个特定目标的二进制代码。如图3所示,灰色区域的部分对于开发员来说是透明的,他们在开发过程中不需要了解目标硬件上内存映射和寄存器的情况。同时,LabVIEW嵌入式方式是一个开放的框架,它可以整合任意的第三方工具链,将生成的C代码、LabVIEW运行库函数和板卡支持程序包(BSP)编译成为针对某一目标并能在这个目标上运行的二进制代码。BSP是一种作为C代码与板上外围硬件接口的底层代码。因此,如果板卡需要升级,工程师可以简单地将不同的BSP链接到LabVIEW中,在现有的图形化代码上作一小部分改动就可以完成。[!--empirenews.page--] 图3LabView嵌入式模块的开发流程 与目标无关的代码开发意味着工程师和科学家不再需要等待硬件确定之后再开始设计算法。这样并行的工作和效率的提升,使开发周期和产品上市时间大大缩短。最后,所生成的LabVIEW代码不是针对某个特定平台的,所以您很容易升级到新的硬件。 结语 LabVIEW为嵌入式系统开发提供了一个跨越多种、多代产品的连贯性的平台,使设计人员能够多年重复并改进其设计,而不必替换其整个工具集或者重新学习不同的设计方法,从而使设计的速度和质量得到提高。同时,其图形化的编程模式使得更多的工程师和科学家可以使用他们的专业知识开发嵌入式应用,而不需要再依赖嵌入式方面的专家。使用统一的环境进行设计、原型到部署,LabVIEW为嵌入式系统开发提供了前所未有的革新方式。

    时间:2012-05-12 关键词: LabVIEW 设计教程

  • LabView嵌入式开发模块五大技术要点

    无论使用什么设计语言,不良的编程技术都会给一个应用的性能带来负面影响,对一个嵌入式应用尤其如此。尽管对于绝大部分应用来说,高效率的编程技术是重要的,但对于嵌入式应用所工作的资源极度缺乏的环境,则要求对性能和存储器管理给予特别的关注。   本文的讨论将围绕着新的LabView嵌入式开发模块进行,这种新工具为嵌入式应用开发人员提供了图形化系统设计手段。该工具允许用户直观地设计算法 并进行交互式调试。下面是一些有助于编程师更有效使用LabView开发嵌入式应用的技巧。这些技巧中的许多也适用于其它高级工具。   动态分配存储器技术   动态存储器分配是一项编程师应尽可能避免的复杂操作。例如,如果动态分配出现在将数据存储到数组内的一个循环内,那么它尤其有害。避免在一个循环内动态分配存储器的常用方法是在该循环开始执行前,为每个数组预分配所需的存储空间。   移位寄存器与隧道技术   LabView的移位寄存器与隧道使数据进/出循环。工程师还利用移位寄存器在一个循环的每次执行之间传递数据。当数据用一个输入隧道传进一个循环 时,LabView必须拷贝该数据并将该拷贝数据送出来进行下线修改。为了确保原始数据对该循环的下次迭代执行时保持不变,这样做是必需的。工程师也可以 通过用一个移位寄存器把数据传进该循环的方法来避免拷贝。这样就消除了不必要的拷贝,从而加快了运行速度。   循环中的大常数技术   如果在循环内部放置一个常数,会使循环的每次执行都拷贝这个数据,从而加大执行时间和存储器使用率。工程师可以避免这个情况,做法是把该常数移出该循环,或者用本地变量把数据传递到循环中。   数据类型强制转换技术   LabView开发环境只要有可能就自动地处理数据类型的冲突,其做法是把较小的数据类型转换成较大的数据类型。例如,如果在一个整数和一个浮点数之 间发生一个类型冲突,那么LabView就把该整数转换成一个浮点数,随后再执行运算操作。这个转换的代价是昂贵的,而且在许多情况下是不必要的。在大多 数情况下,工程师可以通过为每个变量选取正确的数据类型来避免强制转换。但是,如果该数据必须被强制转换,则应在将其送去进行操作运算或函数计算前就完成 转换,这样效率将会更高些。   簇技术的应用   当把异构数据捆绑到易管理的数据包中时,簇是有用的,比如说C语言结构(C Structs)。然而,此时除了要考虑的全部数据外,数据内容的相关信息也必须和这些数据一起传递。因此,有的时候,尤其是在把数据传到subVI时, 相对于一个捆绑的簇而言,未捆绑的数据元素可以增加用户应用的运行速度。   尽管类似LabView这样的高级编程语言有助于工程师更快地部署其应用,但注意可提高代码性能的细节是很重要的。通过注意这些细节,有助于工程师快速开发一个高效率的应用。

    时间:2012-07-09 关键词: LabVIEW 设计教程

  • 基于LabVIEW平台和GPIB接口的测试系统开发及应用

    计算机技术和大规模集成电路技术的发展,促进了数字化仪器、智能化仪器的快速发展。与此同时,工程上也越来越希望将常用仪器设备与计算机连接起来组成一个由计算机控制的智能系统。而工程中常用仪器设备种类繁多、功能各异、独立性强,一个系统往往需要多台不同类型的仪器协同工作,应用一般串、并行接口难以满足要求。为此,人们从60年代就开始着手研究能够将一系列仪器设备和计算机连成整体的接口系统。GPIB正是这样的接口,它作为桥梁,把各种可编程仪器与计算机紧密地联系起来,从此电子测量由独立的、传统的单台仪器向组成大规模自动测试系统的方向发展。GPIB的用途十分广泛,现已广泛用于计算机与计算机之间的通讯,以及对扫描仪、图像记录仪、数字存储示波器、频谱仪等仪器的控制中。 1 系统组成及特点 典型的GPIB测量系统由PC机、GPIB接口卡和若干台(最多14台)GPIB仪器通过标准GPIB电缆连接而成,如图1所示。系统具有以下四个显著特点:     (1)GPIB接口编程方便,减轻了软件设计负担,可使用高级语言编程; (2)提高了仪器设备的性能指标。利用计算机对带有GPIB接口的仪器实现操作和控制,可实现各种自动标准、多次测量平均等要求,从而提高了测量精度; (3)便于将多台带有GPIB接口的仪器组合起来,形成较大的自动测试系统,高效灵活地完成各种不同的测试任务,而且组建和拆散灵活,使用方便; (4)便于扩展传统仪器的功能。由于仪器与计算机相联,因此可在计算机的控制下对测试数据进行更加灵活、方便的传输、处理、综合、利用和显示,使原来仪器采用硬件逻辑很难解决或无法解决的问题迎刃而解。 基于上述研究,利用GPIB接口卡和带有GPIB接口的存储示波器组成了测试系统,如图2所示。 2 系统组态及功能 2.1 GPIB接口性能     GPIB是一个数字化24脚(扁型接口插座)并行总线,其中16根线为TTL电平信号线,包括8根双向数据线、5根控制线、3根握手线,另8根为地线和屏蔽线。GPIB使用8位并行、字节串行、异步通迅方式,所有字节通过总线顺序传送。 2.2系统连接方式 图3所示为GPIB总线与两个独立设备之间的连接图。系统采用NIAT-GPIB/INT接口卡,它是NI公司配备的符合VISA标准的GPIB接口,在LabVIEW平台上,利用NI提供的GPIB接口驱动程序和TDS420存储示波器的驱动程序即可对系统进行组态与编程控制。系统中每个设备(包括接口卡),须有一个0到30之间的GPIB地址。GPIB接口卡设置为地址0,仪器的GPIB地址从1到30。GPIB由一个控者(PC机)控制总线,在总线上传送仪器命令和数据,控者寻址一个讲者,一个或多个听者,数据串在总线上从讲者向听者传送。LabVIEW的GPIB软件包自动处理寻址和其他的总线管理功能。     2.3 系统应用软件结构 测试系统应用软件分为三类:与GPIB设备通讯的子VI;信号采集与处理子VI;处理各层界面和实现多媒体技术的子VI。 在LabVIEW平台上的GPIB编程有两种方式,即传统的GPIB方式和针对即插即用协议的VISA方式。本系统采用VISA方式编程。VISA是虚拟仪器软件结构体系的简称,它是在LabVIEW工作平台上控制VXI、GPIB、RS-232以及其他种类仪器的单接口程序库。采用了VISA标准,就可以不考虑时间及仪器I/O选择项,驱动软件可以相互兼容使用。大多数VISA功能模块使用了VISA session参数,VISA session是每次程序操作过程的唯一逻辑标识符。它标识了与之通讯的设备名称以及进行I/0操作必需的配置信息。 PC机通过AT-GPIB/INT接口卡与TDS420存储示波器通讯的框图程序如图4所示。PC机通过GPIB接口卡给TDS420以命令,而TDS420又通过它把控者(PC机)要求的数据反馈给控者。通讯子VI包括VISA Open(打开通讯过程)、VISA Write(把数据串写入指定设备)、VISA Read(从指定设备中读入数据)、VISA Close(关闭由VISA session指定设备的通讯过程,释放系统资源)等功能模块,使用VISA功能模块向指定设备(泰克TDS420数字存储示波器GPIB接口)读写数据以实现通讯。 信号采集与处理及各层界面设计均在LabVIEW平台上,利用其各种强有力的功能模块可以快速灵活地实现各种功能。     2.4 测试系统功能 测试系统的具体功能如下: (1)系统可直接读取TDS420示波器的时域测量数据。TDS420示波器可进行十七项时域指标测量,主要包括信号周期、频率、峰—峰值、幅值、均值、有效值、时延、正负脉冲宽度等等;     (2)实时数据采集。 本系统可同时对两路随机噪声信号进行实时数据采集,并可根据信号频率设置采样频率和采样点数; (3)利用LabVIEW的Advanced Analysis软件库进行信号的动态分析与处理。本系统利用其互相关分析模块实现对两路随机信号的互相关分析, 从而找到时延τ,并确定固体表面速度:V=d/τ; (4)在软面板上输出显示信号的时域波形、互相关函数波形及信号的频谱,同时实时给出固体表面速度V的测试结果。 测试系统运行界面如图5所示。图中通道1、2所示时域波形为经GPIB接口卡通讯的实测随机相关信号波形;经互相关处理后的互相关函数波形如图所示;图中渡越时间测试值为TDS420存储示波器实测两时域信号的延时值(单位:ms)并回送给控者(PC机);计算值则为在LabVIEW平台上经信号分析计算后所得的两时域信号间的延时值(单位:ms)。[!--empirenews.page--] 基于LabVIEW平台的测试系统有两个显著特点:(1)采用NIAT-GPIB/INT接口卡实现对TDS420示波器的控制,从而完成实时测试;(2)采用VISA标准编程。作为通用I/0标准,VISA具有与仪器硬件接口无关的特性,VISA资源管理层是应用与仪器之间的桥梁,所有对仪器的操作都需要它来管理,从而保证测试系统有条不紊地运作,控制器对仪器的访问都通过指针实现,这种面向对象的技术使独立的系统很容易扩展成分布式系统,以适应各种测试领域的要求。

    时间:2012-10-16 关键词: LabVIEW gpib 设计教程

  • 基于LabVIEW的SFP光模块测试平台的设计与实现

    基于LabVIEW的SFP光模块测试平台的设计与实现

    摘 要: 介绍了一种利用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.

    时间:2019-03-12 关键词: 测试 模块 LabVIEW 平台 设计教程

  • LabVIEW嵌入式技术应用于ADI Blackfin处理器

      ADI公司和NI公司联合宣布推出用于ADI Blackfin处理器的LabVIEW嵌入式模块 的试用版本。这一产品的推出使得设计工程师能轻松地获得一个无缝的、图形化数据流开发示例,直接部署到ADI Blackfin处理器。有了这一直观的软件工具,更多工程师可以利用嵌入式技术提高工作效率,并缩短设计至应用所需的时间。       “对于与NI的合作,ADI感到非常愉快。通过将LabVIEW 图形化开发环境和我们最先进的Blackfin处理器以及其他开发工具集成起来,极大地提高了嵌入式设计者的工作效率。”ADI公司集合平台暨服务组总经理Jerry McGuire先生表示“全新LabVIEW嵌入式技术所提供的开发环境是行业最顶尖的技术,用于ADI Blackfin处理器的LabVIEW嵌入式模块为域工程师带来了简化的嵌入式编程方式,并为传统设计工程师带来了高层的图形化工具——帮助企业缩短产品上市时间。”      此次推出的试用版本基于LabVIEW嵌入式技术,并包含Blackfin专属的、hand-optimized分析和信号处理功能、集成的I/O(例如视频和音频DAC、ADC和CODEC),以及on-chip调试功能。工程师们可以使用直观的图形化数据流开发示例设计他们的应用系统,并将C代码集成到他们的LabVIEW图例,获得更多的功能。全新LabVIEW软件通过无缝地集成ADI VisualDSP++开发和调试环境(可实时、直观地进行调试,直接部署至Blackfin处理器),缩短应用所需时间。用于ADI Blackfin处理器的LabVIEW嵌入式模块的试用版本还能轻松地连接到NI测试测量硬件,在开发过程的初段部署外部仿真和测试算法。       “从前,工程师们依赖一小部分专家通过低层的、基于文本的编程语言(例如汇编或C语言)为他们的嵌入式应用编程。”NI研发高级副总裁Tim Dehne先生表示“有了用于ADI Blackfin处理器的LabVIEW嵌入式模块试用版本,NI和ADI将携手帮助更多的工程师和科学家们开发嵌入式应用。采用ADI Blackfin处理器以及高效的LabVIEW软件,更多的嵌入式设计理念和项目将变为现实。”      LabVIEW嵌入式技术加强了图形化LabVIEW平台,更好地应用于快速仿真、设计、原型、实施及验证嵌入式应用。作为一个设计工具,LabVIEW通过强大的、高级的图形化编程语言,极大地加快了原型开发和设计实施的速度。工程师和科学家们现在可以在Blackfin或者NI CompactRIO嵌入式控制系统上使用LabVIEW进行仿真和快速原型,然后再部署到他们自定义的目标硬件。      通过这一全新的LabVIEW模块,更多工程师和科学家们可以使用ADI Blackfin处理器——此处理器是第一款专为满足嵌入式音频、视频和通讯应用的计算要求和动力限制而设计的16/32位嵌入式处理器。ADI Blackfin处理器结合了一个带有16位双倍累计(MAC)信号处理功能的32位RISC-like指令组,和在通用微处理器中简单易用的属性。动态动力管理通过同步调整运行频率和电压,使得很多需要电池运行的应用获得了动力上的突破。得益于代码的可兼容性,所有Blackfin处理器都能提供设计上的便携性能。      ADI和NI计划年底推出正式的用于ADI Blackfin处理器的LabVIEW嵌入式模块。工程师们可以访问www.ni.com/info,输入Blackfin,了解更多试用版信息。也可以访问www.analog.com/blackfinlabview,了解更多Blackfin处理器信息。

    时间:2005-08-22 关键词: adi LabVIEW blackfin 嵌入式技术

  • NI发布LabVIEW8.5控制设计与和仿真模块

    最新版软件为模式控制添加PID和模型预测控制功能 新闻发布-2008年4月-美国国家仪器有限公司(简称NI)宣布推出其NI LabVIEW8.5控制设与仿真模块。作为LabVIEW图形化系统设计平台的扩展,该模块可以帮助工程师和科学家们分析开环模型的状况,设计闭环控制器,仿真系统以及创建实时操作。该模块最新版本引入了全新的设计功能,如解析比例积分微分(PID)以提高系统的闭环的稳定性和对于多变量系统的模型预测控制。LabVIEW控制设计与仿真模块还带有18个全新的“.m”文件函数来扩展对LabVIEW MathScript的支持,以简化诸如建模、定义模型如何连接和分析系统的稳定性等任务。 “LabVIEW控制设计与仿真模块使得开发对开式船只(split hopper vessel)的动力定位的时间大大减少,” SEAPLACE(西班牙马德里的一家远洋海上工程公司)控制工程师Miguel Taboada说,“该模块可以轻松模拟不同的控制算法,并且不需要使用任何硬件就能进行代码测试。当在仿真中获得满意的结果,还能够再使用模块创建的图形代码,将它发布到实体硬件并进行调试。所有这一切仅需一天就能完成。”LabVIEW控制设计与仿真模块提供了最新的省时特性,即解析PID。就经验来看,工程师和科学家们必须通过实验不断调整控制器,以找出合适的PID控制器增益值。解析式PID,为工程师提供了自动寻找特定系统模型的一系列PID的增益值的功能,以避免设计时发生意料之外的结果,提高系统的稳定性。 最新版本的模块还包含了模型预测控制(MPC)功能,这一算法被广泛使用在复杂过程控制的工业应用中,以控制多输入多输出(MIMO)系统。工程师可以使用模型预测控制(MPC)功能构建控制器,在输出的设定点(SetPoint)实际发生变动之前调整控制行动。这种预测模型行为的能力与传统的反馈相结合能够进行控制器的微调,以尽可能地获得最优控制。 “模型预测控制是业界非常有效的一项技术,但是对对文本编程不熟悉的工程师而言却不以上手,”Michael Grimble(ISC有限公司技术总监兼苏格兰格拉斯哥Strathclyde大学工业控制中心工业系统教授)说,“在LabVIEW控制设计与仿真模块中加入模型预测控制(MPC)功能之后,NI以一个简单的实施操作界面,提供了非常直观的工具。工程师们可以更轻松地进行诸如汽车和航空航天领域中的过程控制或者机械控制应用,而学术界也能在开发高级控制时更方便地预测模型行为控” LabVIEW控制设计与仿真模块能够方便地和NI软件集成,如LabVIEW状图模块,可用于基于事件的控制设计和仿真;和LabVIEW实时模块,用于快速控制原型设计和硬件在环应用以及系统发布。工程师和科学家们更可以将之与NI LabVIEW系统辨识工具包 以及NI I/O设备结合,来开发可靠的基于测量的控制器。 查找更多LabVIEW控制设计和仿真模块信息,请访问www.ni.com/embeddedcontrol 关于NI 美国国家仪器有限公司(National Instruments,简称NI)致力于为测试测量、自动化和嵌入式应用领域的工程师和科学家们带来革命性的理念,从“虚拟仪器技术”提升到“图形化系统设计”,帮助他们实现更高效和优化的设计、原型到发布。NI为遍布全球各地的25000家不同的客户提供现成即用的软件(如NI LabVIEW图形化开发平台),和高性价比的模块化硬件。NI总部设在美国德克萨斯州的奥斯汀,在近40个国家和地区设有分支机构,共拥有4500多名员工。在过去连续9年里,NI被《财富》杂志评选为“全美最适合工作的100家公司之一”。想了解更多关于NI的信息,请访问ni.com/china,或致电800-820-3622。

    时间:2008-05-05 关键词: ni发布 LabVIEW 控制设计 8.5

首页  上一页  1 2 3 4 5 6 7 8 9 10 下一页 尾页
发布文章

技术子站

更多

项目外包

更多

推荐博客