当前位置:首页 >> 信息与通信 >>

基于LabVIEW的多通道数据采集系统的设计


江苏科技大学 硕士学位论文 基于LabVIEW的多通道数据采集系统的设计 姓名:许剑 申请学位级别:硕士 专业:信号与信息处理 指导教师:王建华 20080101

大摘要

基于 LabVIEW 的多通道数据 采集系统的设计
大摘要
随着电子工业测量技术与电子测量仪器技术的高速发展,新的测试理论、测 试方法、测试领域以及新的仪器结构不断出现,它们在许多方面己经冲破了传统 仪器的概念,电子测量仪器的功能和作用发生了质的变化,在这种背景下,虚拟 仪器技术应运而生。虚拟仪器,是借助于计算机的软硬件平台,建立起基于 PC 机的测试与控制系统。虚拟仪器是当前测控领域的技术热点,它代表了未来仪器 技术的发展方向。它最大特点是“按需构造,随做随用” ,用户可以随心所欲地 根据自己的需求设计自己的仪器系统,仅仅通过修改软件就能改变仪器功能,以 满足多种多样的应用需求。 “软件就是仪器”反映了虚拟仪器技术的本质特征。 美国国家仪器公司(简称 NI)公司的软件产品——LabVIEW,是虚拟仪器语言中 最有代表性的, LabVIEW 是一个革命性的图形编程开发环境, 它以 G 语言为基础, 用户进行数据采集、控制、数据分析和数据表示。基于 LabVIEW 的数据采集系统 是下一代自动测试系统的发展方向。 本系统主要分为两部分,第一部分为数据采集硬件设计,第二部分为数据管 理及分析。功能主要包括:数据采集、实时显示、信号分析以及数据存储等,软 件采用了 NI 公司的 LabVIEW8.0 开发。 第一部分数据采集硬件的设计中,采用 DSP 作为采集卡的 CPU,具有指令执 行速度快、总线带宽高、可以完成数据的高速实时处理等优点。最重要的是 DSP 对于算法的处理有独到的优势,可以在 DSP 固件中加入一些典型的算法编程,就 能够极大的增强系统的信号处理能力。利用 USB 接口实现了采集卡与 PC 机的通 信,通用串行总线具有高传输速率、即插即用和易于扩展等优点,将 USB 与 DSP 相结合是进行数据采集、处理与传输的理想解决方案。整个外围逻辑时序部分用 CPLD 控制。 第二部分数据管理与分析, 作者利用 LabVIEW 编写了基于 Windows XP 的上位机应用程序以及上位机与采集卡之间的通信程序;利用 LabSQL 工具包建 立了 ACCESS 数据库,实现对采集到的数据的存储,并可以查询历史数据。同时 系统可以生成报表以及可以对所需要的数据进行打印, 并可以对得到的数据进行 一些必要的分析,如加窗函数,逐点分析。本文采用虚拟仪器软件架构(VISA) 实现了 LabVIEW 与 USB 之间的通信, 采用这种方式可以避开了以前开发 USB 驱动 程序的复杂性, 大大缩短了开发周期; 在报表生成方面, 利用可移植文档格式(PDF)

1

大摘要

文档来对重要的数据进行保存, 因为 PDF 文档是世界上安全可靠地分发和交换电 子文档及电子表单的实际标准, 这在对一些重要数据的保存方面就显得相当地必 要。 最后,将整个数据采集系统应用在无源互调测试控制系统中,作为无源互调 测试控制系统的数字控制及显示部分,取得了较好的效果。

关键词:虚拟仪器实验室,数据采集,数字信号处理器,通用串行总线。

2

摘要





随着电子工业测量技术与电子测量仪器技术的高速发展,新的测试理论、测试方 法、测试领域以及新的仪器结构不断出现,它们在许多方面己经冲破了传统仪器的概 念,电子测量仪器的功能和作用发生了质的变化,在这种背景下,虚拟仪器技术应运 而生。虚拟仪器,是借助于计算机的软硬件平台,建立起基于 PC 机的测试与控制系 统。美国国家仪器公司(简称 NI)公司的软件产品——LabVIEW,是虚拟仪器语言中 最有代表性的,基于 LabVIEW 的数据采集系统是下一代自动测试系统的发展方向。 本系统主要分为两部分,第一部分为数据采集硬件设计,第二部分为数据管理及 分析。功能主要包括:数据采集、实时显示、信号分析以及数据存储等,软件采用了 NI 公司的 LabVIEW8.0 开发。 第一部分数据采集硬件的设计中,采用 DSP 作为采集卡的 CPU,利用 USB 接口 实现了采集卡与 PC 机的通信,整个外围逻辑时序部分用 CPLD 控制。第二部分数据 管理与分析, 作者通过建立 ACCESS 数据库来对采集到的数据存储, 并可以生成报表, 同时可以对得到的数据进行一些必要的分析,如加窗函数,逐点分析。本文采用虚拟 仪器软件架构(VISA)实现了 LabVIEW 与 USB 之间的通信, 采用这种方式可以避开了 以前开发 USB 驱动程序的复杂性,大大缩短了开发周期;在报表生成方面,利用可移 植文档格式(PDF)文档来对重要的数据进行保存,因为 PDF 文档是世界上安全可靠地 分发和交换电子文档及电子表单的实际标准,这在对一些重要数据的保存方面就显得 相当地必要。 最后,将整个数据采集系统应用在无源互调测试控制系统中,作为无源互调测试 控制系统的数字控制及显示部分,取得了较好的效果。

关键词:虚拟仪器实验室,数据采集,数字信号处理器,通用串行总线。

I

Abstract

Research on Multi-channel Data Acquisition System Design Based on LabVIEW
Abstract
With the rapid development of electronics industry measurement technology and electronic measuring instruments technology, new test theories, new methods, new fields and new structures of instrument appear continuously. The function and role of electronic measuring instruments have undergone a qualitative change. In many aspects, electronic measuring instruments have broken the traditional concept of instruments. Under this background, the virtual instrument technique emerges. Virtual instrument is to establish a testing & control system based on computer software and hardware platform. Virtual Instrument is the current hot field of Measurement and Control. It represents the future direction of development of equipment Technology. One can use it according to their needs and design their own instrument system. Software only can be changed by modifying equipment features to meet a wide variety of application needs. "Software is the equipment" reflects the essential characteristics of virtual instrument technology. LabVIEW is the most representative in virtual instrument language. LabVIEW is a revolutionary graphical programming development environment; it is based on G language to realize data acquisition, control, data analysis and data said. The software strategy of VI is the developing trend of the next generation of automatic test system. This system consists of two parts, part one is data acquisition hardware design, and part two is data management and analysis. Main function include: data acquisition, real-time display, signal analysis, as well as data storage, it is developed base on LabVIEW8.0. The first part of the data acquisition hardware design, using a DSP as the CPU of acquisition card,it has some advantages, such as fast instruction execution, high bus bandwidth, and high speed real-time data processing. We can amplify the capacity of the signal processing through joining some typical algorithm programming in DSP software. The use of USB realized communication between acquisition card and PC. USB have high transmission rate and easy plug-and-play advantages of expansion. Combining USB and DSP is an effective solution to data acquisition as well as
3

Abstract

processing and transmitting. The entire part of the external timing is controlled by CPLD. The second part, author through the creation of the ACCESS database to realize the data storage, and can generate statements, as well as can do some necessary analysis, such as the window function, point by point analysis. In this paper, using Virtual Instrument Software Architecture (VISA) achieved communications between LabVIEW and USB; this approach can avoid the complexity of developing the USB driver, and also can greatly reduce the development cycle. In the statements generated, used Portable Document Format (PDF) files to save important data, because the PDF file is the world's safe and reliable actual standards of distributing and exchanging electronic documents and electronic forms. It is quite necessary in some important aspects of the preservation of data. Finally, the entire data acquisition system used in passive intermodulation test control system as a part of digital control and display, and achieved a good results.

Key Words: LabVIEW, Data Acquisition, DSP, USB.

4

Abstract

Abstract
With the rapid development of electronics industry measurement technology and electronic measuring instruments technology, new test theories, new methods, new fields and new structures of instrument appear continuously. The function and role of electronic measuring instruments have undergone a qualitative change. In many aspects, electronic measuring instruments have broken the traditional concept of instruments. Under this background, the virtual instrument technique emerges. Virtual instrument is to establish a testing & control system based on computer software and hardware platform. LabVIEW is the most representative in virtual instrument language. The software strategy of VI is the developing trend of the next generation of automatic test system. This system consists of two parts, part one is data acquisition hardware design, and part two is data management and analysis. Main function include: data acquisition, real-time display, signal analysis, as well as data storage, it is developed base on LabVIEW8.0. The first part of the data acquisition hardware design, using a DSP as the CPU of acquisition card, the use of USB realized communication between acquisition card and PC, the entire part of the external timing is controlled by CPLD. The second part, author through the creation of the ACCESS database to realize the data storage, and can generate statements, as well as can do some necessary analysis, such as the window function, point by point analysis. In this paper, using Virtual Instrument Software Architecture (VISA) achieved communications between LabVIEW and USB; this approach can avoid the complexity of developing the USB driver, and also can greatly reduce the development cycle. In the statements generated, used Portable Document Format (PDF) files to save important data, because the PDF file is the world's safe and reliable actual standards of distributing and exchanging electronic documents and electronic forms. It is quite necessary in some important aspects of the preservation of data. Finally, the entire data acquisition system used in passive intermodulation test control system as a part of digital control and display, and achieved a good results.

Key Words: LabVIEW, Data Acquisition, DSP, USB.

II

论 文 独 创 性 声 明

本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已 经发表或撰写过的研究成果,也不包含为获得江苏科技大学或其它教育机构的学位或 证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作 了明确的说明并表示谢意。

学位论文作者签名:



期:

学 位 论 文 使 用 授 权 声 明

江苏科技大学有权保存本人所送交的学位论文的复印件和电子文稿,可以将学位 论文的全部或部分上网公布,有权向国家有关部门或机构送交并授权其保存、上网公 布本学位论文的复印件或电子文稿。本人电子文稿的内容和纸质论文的内容一致。除 在保密期内的保密论文外,允许论文被查阅和借阅。

研究生签名: 日 期:

导师签名: 日 期

第一章 绪论

第一章 绪论
1.1 论文研究的背景和意义
当今信息技术的三大支柱技术是信息获取技术、通信技术和计算机技术。其中, 信息获取技术是信息技术的基础和前提,而数据采集技术是信息获取的主要手段和方 法,由此可见数据采集技术是信息技术的重要组成部分之一。数据采集是以传感器技 术、测试技术、电子技术和计算机技术等技术为基础的一门综合应用技术。 随着计算机技术的发展,数字设备正逐渐取代模拟设备,在生产过程控制和科学 研究等广泛的领域中,计算机测控技术正发挥着越来越重要的作用。然而,外部世界 的大部分信息是连续变化的物理量,如温度、压力、位移、速度等。要将这些信息送 入计算机进行处理,必须先将这些连续变化的物理量离散化,并进行量化编码,从而 变成数字量,这个过程就是数据采集。计算机的发展赋予数据采集新的意义,被测对 象的各物理量经信号调理、采样、量化、编码、传输等步骤,最后送到控制器进行数 据处理或存储,此控制器一般均由计算机来承担,计算机成了数据采集系统的核心, 它对整个系统进行控制,并对采集的数据进行加工处理。这种用于数据采集的成套设 备即称为数据采集系统。 数据采集技术是信息科学的一个重要分支,它研究信息数据的采集,存储,处理 及控制等工作,它与传感器技术,信号处理技术,计算机技术一起构成了现代检测技 术的基础。随着科学技术的发展和数据采集技术的广泛应用,对数据采集许多技术指 标,如采样率,分辨率,存储深度,数字信号处理速度,抗干扰能力等方面提出了越 来越高的要求[1]。 计算机技术的发展和普及提升了数据采集系统的技术水平。在生产过程中,应用 这一系统可对生产现场的工艺参数进行采集、监视和记录,为提高产品质量、降低成 本提供信息和手段。在科学研究中,应用数据采集系统可获得大量的动态信息,是研 究瞬间物理过程的有力工具。总之,不论在哪个应用领域中,数据的采集与处理越及 时,工作效率就越高,取得的经济效益就越大。 数据采集系统的任务,具体地来说,就是采集传感器输出的模拟信号并转换成计 算机能识别的数字信号,然后送入计算机进行相应的计算和处理,得到所需的数据。 与此同时,将计算得到的数据进行显示和打印,以便实现对某些物理量的监视,其中 一部分数据还将被生产过程的计算机控制系统用来控制某些物理量。数据采集系统性 能的好坏,主要取决于它的精度和速度。在保证精度的条件下,应有尽可能高的采样 速度,以满足实时采集、实时处理和实时控制对速度的要求。 由于微电子技术、计算机技术、软件技术、网络技术的高度发展及其在电子工业
1

第一章 绪论

测量技术与仪器上的应用,新的测试理论、测试方法、测试领域以及新的仪器结构不 断出现,它们在许多方面己经冲破了传统仪器的概念,同时电子测量仪器的功能和作 用发生了质的变化,在这种背景下,20 世纪 80 年代 National Instruments Company(简 称 NI 公司)提出了虚拟仪器的概念,90 年代初在我国兴起对虚拟仪器的开发和应用, 现已进入航空、航天、通信、医疗、电力、石油勘探、铁路等行业,并得到了广泛应 用,未来市场潜力巨大。 虚拟仪器(VI-Virtual Instruments)是一种基于计算机的自动化测试仪器系统, 采用计算机开放体系结构取代传统的单机测量仪器,充分利用计算机独具的运算、存 储、调用、显示及文件管理等智能功能,把传统仪器的专业化功能软件化,使之与计 算机结合起来融为一体,并对各种各样的数据进行计算机处理、显示和存储。 虚拟仪器以透明方式将计算机资源和仪器硬件的测控能力相结合,实现仪器的功 能运作。 应用程序将可选硬件和可重复使用源码库函数等软件结合实现模块间的通信, 定时与触发,源码库函数为用户构造自己的虚拟仪器系统提供基本的软件模块。虚拟 仪器的更新速度快,可维护性好,用户可定制其结构和功能。由于它的核心是软件程 序,在一定开发环境下,用户可以对现有的虚拟仪器程序作二次开发、修改,增加原 有仪器的功能。与开发电子仪器相比,开发周期可大大缩短。 NI 推出的虚拟仪器开发平台软件 Lab Windows/CVI 和 LabVIEW,是一个划时代 的图形化编程系统,应用于数据采集与控制、数据分析,以及数据表达等方面,它提 供了一种全新的程序编写方法,即使用称之为 VI 的软件对象进行图形化的组合操作。 能够以其直观简便的编程方式、众多的源码级设备驱动程序、多种多样的分析和表达 功能支持,为用户快捷地构筑自己在实际生产中所需要的仪器系统创造便利条件。 LabVIEW 是带有可扩展函数库和子程序库的通用程序设计系统。它提供了用于 GPIB 设备控制、VXI 总线控制、串行口设备控制、以及数据分析、显示和存储的应用 程序模块。LabVIEW 可方便的调用 Windows 动态链接库和用户自定义的动态链接库 中的函数;LabVIEW 还提供了 CIN (Code Interface Node)节点,使得用户可以使用由 C 或 VC++语言编译的程序模块, 使得 LabVIEW 成为一个开放的开发平台。 LabVIEW 还直接支持动态数据交换 (DDE) 、 结构化查询语言 (SQL) 、 TCP 和 UDP 网络协议等。 LabVIEW 开发软件的主要优势:图形化编程、内置测量和控制函数、多种开发工 具、范围广泛的计算对象[2~3]。 在工业自动化领域, 对控制和诊断信号的检测和有用信息的获取的要求越来越高, 不仅体现在测量速度和范围上,更体现在测量精度和可操作性、网络化控制上,因此 随着虚拟仪器技术的不断发展,对虚拟仪器技术和图形化编程语言 LabVIEW 的不断 开发,将极大的提高测试系统和控制系统的自动化性能[4]。

2

第一章 绪论

1.2 与论文相关技术背景介绍
1.2.1 虚拟仪器技术 在个人计算机技术出现之前,工程技术人员使用传统仪器进行数据采集和处理, 或者依赖某些高端传统仪器自身所具有的功能,或者使用手工进行数据处理。个人电 脑技术出现之后, 人们开始考虑使用电脑来处理传统仪器所得到的数据。 由此 20 世纪 70 年代发展了 GPIB 技术,也就是 IEEE 488 及后来的 IEEE 488.2 标准。而受 GPIB 总 线带宽的限制,无法实现数据向计算机的实时传输,所以大量的数据处理工作仍然依 靠自身所带有的功能。20 世纪 80 年代随着计算机技术的进一步发展,个人电脑可以 带有多个扩展槽,就出现了插在计算机里的数据采集卡。它可以进行一些简单的数据 采集,数据的后处理由计算机软件完成,这就是虚拟仪器的雏形。受当时技术发展的 制约, 人们在工作中仍然要较多地依赖于传统仪器去完成复杂的测量任务。 20 世纪 90 年代计算机总线速度进一步加快,PCI 总线的数据传输速度达到了 132Mbytes/s。1996 年底美国 National Instruments 公司在 PCI 数据总线的基础上提出了第一代 PXI 系统的 技术规范。现在 PXI 技术联盟已经有接近 60 家成员公司为这一平台开发产品。PXI 系统是由模块化的仪器根据需要组合成的系统,模块仪器可以是采集卡、示波器、数 字万用表、信号源、开关,甚至射频信号分析仪。数据的分析可以由运行在 PXI 控制 器上的软件(LabVIEW,CVI 等)来完成[5]。 目前在这一领域内,使用较为广泛的计算机语言是美国 NI 公司的 LabVIEW 软件 是一种基于图形开发、调试和运行程序的集成化环境,是第一个借助于虚拟(软)面板 用户界面和方框图建立虚拟仪器的图形程序设计系统。它广泛地被工业界、学术界和 研究实验室所接受,被视为一个标准的数据采集仪器和仪器控制软件。 LabVIEW 是业界领先的工业标准图形化编程工具,主要用于开发测试、测量与控 制系统。它是专门为工程师和科学家而设计的直观图形化编程语言。它将软件和各种 不同的测量仪器硬件及计算机集成在一起,建立虚拟仪器系统,以形成用户自定义的 解决方案。经过 20 年的演变和改进,在基于 PC 的测量自动化系统领域,LabVIEW 确 立了其主导地位,并成为业界的事实标准,同时也给传统教学研究带来巨大的变化。 LabVIEW8.5 已经面世,它现在包含了多核处理器状态图模块,在之前的版本中,先 后嵌入了 PDA、FPGA、DSP 和嵌入式等模块。在国外,虚拟仪器技术已经是很多大 院校独立开设的一门课程,相信在未来几年内虚拟仪器技术也必将广泛流行在国内各 大院校的理工科院系。 虚拟仪器经过 20 多年的发展, 而今正沿着总线与驱动程序标准化、 软硬件模块化、 编程图形化和硬件模块的即插即用方向发展,以开放式模块化仪器标准为基础的虚拟 仪器标准正越来越完善。虚拟仪器技术的发展与计算机技术的发展是同步的,由于计
3

第一章 绪论

算机技术以及网络技术的飞快发展,所以虚拟仪器一定可以显示出强大的活力。基于 目前虚拟仪器的出色表现,我们有理由相信,虚拟仪器技术将在科学技术的各个领域 可以更大的作为,在科学发展和工业生产方面将发挥更重要的作用。 1.2.2 数字信号处理技术 在许多检测和控制系统中,数据采集模块都是很重要的组成部分,数据采集模块 完成对大量原始的现场数据和信息的采集与预处理, 并通过建立与上位机的实时通信, 向系统提供数据。对于数据采集模块,通常要求其能对多通道进行并处理,具有较高 的实时性并有一定的数据处理能力。 随着现代检测与控制系统复杂性的提高,对数据采集模块也提出了新的要求。在 很多控制系统中,要求数据采集模块能够对多个信号通道进行实时、高速的数据采集 与高精度的数据预处理。传统的数据采集处理模块多以单片机为中央处理器,结合外 围的信号调理电路,A/D 转换电路,以及控制电路来完成数据采集过程。但是单片机 对数据的运算和处理能力有限,难以适应高精度数据采集和处理的要求。 数字信号处理是信息领域的一个重要方向。自 20 世纪 60 年代以来,随着计算机 和信息学科的飞速发展,数字信号处理(Digital Ssignal Processing)技术应运而生并迅 速发展,现已形成一门独立的学科体系。简单地说,数字信号处理是利用计算机或专 用处理设备,以数值计算的方法对信号进行采集、变换、综合、估值与识别等加工处 理,借以达到提取信息和便于应用的目的。数字信号处理系统具有灵活、精确、抗干 扰强、设备尺寸小、造价低、速度快等突出优点,这些都是模拟信号处理系统所无法 比拟的[6]。 几乎所有的工程技术领域都要涉及信号问题。这些信号包括电的、磁的、机械的、 热的、声的、光的及生物医学的等各个方面。如何在较强的背景噪声下提取出真正的 信号或信号的特征并将它们应用于工程实际是信号处理理论要完成的任务。因此可以 说,信号处理几乎涉及所有的工程技术领域。 近 30 年来, 数字信号处理是紧紧围绕着理论、 实现及应用三个方面迅速发展起来 的,它以众多的学科为理论基础,其成果又渗透到多个学科,成为理论与实践并重、 在高新技术领域中占有重要地位的新兴学科。随着计算机和信息产业的飞速发展,特 别是数字信号处理器(DSP)的诞生与快速发展,使各种数字信号处理算法得以实时实 现,这为数字信号处理的研究和应用打开了新局面,提供了低成本的实际工作环境, 造就了一大批新型电子产品,推动了新的理论和应用领域的发展。由于 DSP 具有丰富 的硬件资源、改进的并行结构、高速数据处理能力和强大的指令系统,已经成为世界 半导体产业中紧随微处理器与微控制器之后的又一个热点,在通信、航空、航天、雷 达、工业控制、网络及家用电器等各个领域得到了广泛的应用[7]。
4

第一章 绪论

1.2.3 USB 总线技术 USB(Universal Serial Bus)技术是自 1980 年串口和并口技术出现以来,最重要的 计算机外设互联标准之一,它追求的是外设的通用性。为了把外围设备连接 PC 机上, USB 提供了一种低成本的解决方案,设备连接后由 USB 自动检测,并且由软件自动 配置,完成后即可使用,不需要用户干涉。USB 定义了一种简单的连接器,它可以用 来连接任何一个 USB 设备,多个连接器可以通过 USB 集线器连接。每个 USB 总线支 持 127 个设备的连接,USB 支持三种设备传输速率:1.5Mbps,12Mbps 和 480Mbps 传 输速率。外围设备能够直接通过总线供电,USB 总线提供最大 5V 电压,500mA 的电 流。USB 设备不像 ISA,EISA 设备,它不需要内存和 I/0 地址空间,也不需要中断请 求线路。USB 事务处理包括错误检测机制,该机制用以确保数据无错误发送。若发生 错误,事务可以重来。如果连续 3ms 没有总线活动,USB 就会自动进入挂起状态,处 于此状态时设备消耗电流不超过 500 ? A 。USB 还定义了 4 种不同的传输类型来满足 不同设备的需求。总之,USB 外设具有热插拔、即插即用、易扩展、高性能和价格低 廉等优点[8~9]。

1.3 论文主要研究内容及结构安排
1.3.1 论文研究内容及方法 本论文将进行以下几个方面的工作: (1) 以 LabVIEW 图形化编程软件为开发平台, 构建基于 WindowsXP 的信号采集、 分析模块,对已有和实时采集的数据进行信号分析和处理; (2) 以 TMS320VC5509A 芯片作为前端数据采集硬件系统的 CPU 进行采集数据, 然后将数据送给计算机; (3) 对各个模块及总体功能进行分析,运用 CPLD 进行了多路模拟开关、A/D 模 块、USB 通信模块之间的逻辑控制以及 FIFO 等模块的设计; (4) 利用 USB 接口实现 DSP 与 PC 机之间的数据通信; (5) 利用 LabSQL 建立实验数据管理模块,管理采样数据,完成采样数据信息记 录、查询,以及异常情况报警等工作。 1.3.2 论文结构 本论文是以研究数据采集技术为目的,利用虚拟仪器技术,数字信号处理技术以 及 USB 接口技术实现对多通道信号的采集、分析以及处理等。第一章绪论,介绍了这 个课题的背景;在第二章,详细介绍了虚拟仪器以及 LabVIEW 的作用和应用;接下 来的第三章给出了设计整个系统的方案,综合了开发难度、时间和成本,选择了系统

5

第一章 绪论

的硬件和软件;第四章介绍了系统的硬件设计,其中包括硬件电路设计,也包括一些 固件程序设计和驱动程序设计; 在第五章里面, 详细介绍了整个系统应用程序的编写, 以及如何实现上位机与采集卡之间的数据通信;第六章是全文的总结,并根据作者的 经验,针对需要改进的地方,给出了一些建议。

6

第二章 LabVIEW 概述

第二章 LabVIEW 概述
2.1 虚拟仪器
所谓虚拟仪器就是利用现有的计算机,加上特殊设计的仪器硬件和软件,形成既 有普通仪器的基本功能,又有一般仪器所没有的特殊功能的高档低价的新型仪器。虚 拟仪器是利用 PC 计算机强大的图形环境和在线帮助功能,建立虚拟仪器仪表面板, 完成对仪器的控制、数据分析和显示,因而能大幅度降低仪器的价格,同时用户还可 以根据自己的需要定义仪器的功能,具有很强的灵活性。虚拟仪器可以广泛应用于电 子测量、电力工程、矿产勘探、医疗、振动分析、声学分析、故障诊断及教学科研等 方面,市场潜力非常大,是仪器发展的新趋势[10]。 “虚拟”二字主要包含两方面的含义: 第一、虚拟仪器的面板是虚拟的。 虚拟仪器面板上的各种“控件”与传统仪器面板上的各种“器件”所完成的功能 是相同的。如由各种开关、按键、显示器等实现仪器电源的通、断;被测信号输入通 道、放大倍数等参数设置;测量结果的数值显示、波形显示等。 传统仪器面板上的器件都是实物,而且是用手动和触摸进行操作的,而虚拟仪器 面板控件是外形与实物相像的图标,通、断、放大等对应着相应的软件程序。这些软 件已经设计好了,不必用户设计,只需选用代表该种软件程序的图形控件即可,由计 算机的鼠标来对其进行操作。因此,设计虚拟面板的过程就是在面板设计窗口中摆放 所需的控件,然后编写相应的程序。 第二、虚拟仪器测量功能是由软件编程来实现的。 在以 PC 计算机为核心组成的硬件平台支持下,通过软件编程设计来实现仪器的 测试功能,而且可以通过不同测试功能的软件模块组合来实现多种测试功能,因此有 在硬件平台确定后“软件就是仪器”的说法。它体现了测试技术与计算机深层次的结 合。

2.2 虚拟仪器系统的构成
2.2.1 虚拟仪器系统硬件构成 虚拟仪器的硬件系统一般分为计算机硬件平台和测控功能平台。其中计算机硬件 平台可以是各种类型的计算机。如普通台式计算机、便携式计算机、工作站、嵌入式 计算机等。计算机管理着虚拟仪器的软硬件资源,是虚拟仪器的硬件基础,同时计算 机技术在显示、存储能力、处理性能、网络、总线标准等方面的迅速发展,也促使了 虚拟仪器的快速发展。如下图 2.1 所示,为虚拟仪器系统的硬件构成。
7

第二章 LabVIEW 概述

信号调理电路 GPIB接口仪器 串口仪器

某一类型采集卡 IEEE-488接口卡 串口(232/422/485) 计算机 并 口 虚拟仪器软件

检 测 对 象

并口仪器 VXI仪器 其他计算机硬件板卡 现场总线(Field CANbus)

VXI控制/接口卡

图 2.1 虚拟仪器系统硬件构成

按照测控功能的不同,虚拟仪器大致可分为 GPIB、VXI 和 PXI 三种标准体系结 构,用来进行信号采集、传输、控制。 (1) GPIB(General Purpose Interface Bus)通用接口总线,是计算机和仪器间的标准 通讯协议。典型的 GPIB 测试系统包括一台计算机、一块 GPIB 接口卡和若干台 GPIB 仪器。 (2) VXI(VMEbus eXtension for Instrumentation)及 VME 总线在仪器领域的扩展, 是 1997 年在 VME 总线、Eurocard 标准(机械结构标准)和 IEEE 488 等基础上,由主 要仪器制造商共同制定的开放型仪器总线标准。 (3) PXI(PCI eXtension for Instrumentation)为 PCI 在仪器领域的扩展,是 NI 公司 在 1997 年发布的一种新的开放式、 模块化仪器总线规范。 其核心是 Compact PCI 结构, PXI 是 PCI 内核技术上增加了成熟的技术规范和要求而形成的。 不同的测试任务对测试系统有不同的要求,一种虚拟仪器测试系统不可能涵盖整 个社会对测量的要求,对虚拟仪器测试系统的选择,尤其是对采用何种总线应该有一 个客观的认识。基于 VXI 总线的虚拟仪器测试系统具有良好的性能,可用于自动测试 系统,但由于价格昂贵,主要用于尖端测试领域,特别适合与高速大数据量自动测试 系统,宽频带自动测试系统和军用自动化测量。基于计算机标准总线的 DAQ 数据采 集卡组成的虚拟仪器测试系统,通常适用于一般的教学、实验室常规测试和低频低速 结构,可用在一般要求的自动测试系统。 2.2.2 虚拟仪器系统软件构成 通常情况下,虚拟仪器系统的软件结构主要分为四个层次。
8

第二章 LabVIEW 概述

(1) 测控系统管理层:该层为厂商开发的或者用户开发的测控系统管理层,用户 可以通过该层完成对仪器系统的硬件操作,被检测对象的结果显示、分析、处理等, 是虚拟仪器系统的最高层。 (2) 应用软件开发层:该层将计算机的数据分析和显示能力与仪器驱动层融合在 一起,为用户开发虚拟仪器提供了必须的软件工具与环境。目前,较为流行的虚拟仪 器开发平台大致可以分为两类:一类是使用传统的文本编程语言环境(如 VC++、VB、 Delphi 等)编制虚拟仪器系统软件;另一类是采用图形化编程语言作为虚拟仪器系统 软件开发平台(如 NI 公司的 LabWindows/CVI、LabVIEW,HP 公司的 VEE,Intech 公司的 Dasylab,Capital Equipment 公司的 Test point2.0 等) 。 (3) 仪器驱动层:该层包括仪器供应商以及用户自己根据仪器功能开发的驱动程 序,该层也是虚拟仪器能否正常工作的关键,它是完成对仪器控制的纽带和桥梁。 (4) I/O 接口层:该层将具有不同总线的各种仪器通过标准总线连接起来,同时 I/O 接口层提供了仪器驱动层与仪器之间的通信。 LabVIEW是虚拟仪器概念的首创者,是NI公司推出的一个图形化软件开发环境。 它最大的优势在于测控系统的开发,因为它不仅提供了几乎所有经典的信号处理函数 和大量现代的高级信号分析工具,而且它还十分容易和各种数据采集硬件集成,可以 和多种主流的工业现场总线通信以及与大多数通用标准的实时数据库链接。

2.3 什么是 LabVIEW
LabVIEW(Laboratory Virtual Instrument Engineering WorkBench)是一种用图标代 替文本行创建应用程序的图形化编程语言。传统文本编程语言根据语句和指令的先后 顺序决定程序的执行顺序,而 LabVIEW 则采用数据编程方式,程序框图中节点之间 的数据流向决定了程序的执行顺序。它用图标表示函数,用连线表示数据流向[11]。 LabVIEW 提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便 地创建用户界面。用户界面在 LabVIEW 中被称为前面板。使用图标和连线,可以通 过编程对前面板上的对象进行控制。这就是图形化源代码,又称 G(Graphics)代码。 LabVIEW 的图形化源代码在某种程度上类似于数据流流程图, 因此又被称作程序框图 代码。前面板上的每一个控件对应于程序框图中的一个对象,当数据“流向”该控件 时,控件就会根据自己的特性以一定的方式显示数据,例如开关、数字或图形。 LabVIEW 程序被称为 VI(Virtual Instrument),即虚拟仪器,这是因为它的很多界 面控件与操作都模拟了现实世界中的仪器,例如示波器与万用表等。LabVIEW 的核心 概念就是“软件既是仪器” ,即虚拟仪器的概念。LabVIEW 还包含了大量的工具与函 数用于数据采集、分析、显示与存储等。这些工具都是向导式的工具,用户只需要一 步步按照提示就可以实现与仪器的连接和参数的设置。而程序员也不用去记忆这些大
9

第二章 LabVIEW 概述

量的函数,因为这些函数都以图标与名称的形式存在于一个小小的函数面板上,当需 要用到某个函数时把它从函数面板上拖放到程序框图中就可以了。 2.3.1 LabVIEW 的作用 由于 LabVIEW 可以用来创建通用的应用程序,因此被称为一种通用的编程语言。 但是它在测试、测量和自动化等领域具有更大的优势,因为 LabVIEW 提供了大量的 工具与函数用于数据采集、分析、显示和存储。同时它还提供了大量常用于自动化测 试测量领域的图形控件。这使得用户可以在数分钟内完成一套完整的从仪器连接、数 据采集到分析、显示和存储的自动化测试测量系统。因此它被广泛地应用于汽车、通 信、航空、半导体、电子设计生产、过程控制和生物医学等各个领域,涵盖了从研发、 测试、生产到服务的产品开发所有阶段。 在LabVIEW环境中开发的一个程序叫做Virtual Instrument(简称VI),即虚拟仪器。 使用LabVIEW开发虚拟仪器的最大好处就是提高开发的效率,据统计,使用LabVIEW 开发虚拟仪器比使用基于文本的语言开发效率可以提高4-10倍,程序的执行速度却几 乎不受影响;同时在信号处理等方面的强大功能方面是组态软件不可比的。 LabVIEW 不仅可以用来快速搭建小型自动化测试测量系统, 还可以用来开发大型 的分布式数据采集与控制系统。 2.3.2 LabVIEW 的应用 LabVIEW 在包括航空、通信、汽车、半导体、自动化、生物医学等世界范围的众 多工业领域中得到广泛应用[12]。 (1) 应用于生产检测。LabVIEW 已成为测试测量领域的工业标准化开发工具。 (2) 应用于研究和分析。LabVIEW 开发环境中集成了功能强大的高级分析库,可 满足用户所有的分析要求。对于要求声音、振动、图像处理、联合时频分析、小波和 数字滤波器设计等特殊的分析要求,LabVIEW 可提供专门设计的附加软件。 (3) 应用于过程控制和工业自动化。 LabVIEW 一直被作为图形化程序开发环境应 用于过程控制和工业自动化领域。对于基本的过程监控领域,LabVIEW 同其它诸如 PID 控制工具包、PLC 驱动程序等附加软件一起,可实现高速、多通道的测量和控制。 对于大型复杂工业自动化和控制系统, NI 公司推出了 LabVIEW 数据记录和监控模块, 可用于监控多通道 I/O 与工业控制和网络进行通信,以及提供基于 PC 机的控制。 (4) 应用于机器监控。可应用于要求实时控制、振动分析、视觉和图像分析以及 运动控制及其监控系统。

10

第二章 LabVIEW 概述

2.4 本章小结
本章首先详细介绍了虚拟仪器技术的基本概念以及系统构成,列出了虚拟仪器技 术的特点和优势所在,并针对 LabVIEW 作了详细介绍,以及 LabVIEW 的应用情况。 本章对 LabVIEW 技术的介绍为下面章节对虚拟仪器系统的应用和开发打下了很好的 基础。

11

第三章 数据采集系统总体方案设计

第三章 数据采集系统总体方案设计
3.1 数据采集系统的设计目标
数据采集系统的设计目标,毫无疑问就是对一些目标数据实现采集,并对采集到 的数据进行管理。说具体点,就是以下几点要求: (1) 数据采集的核心处理器,能够对采集到的数据进行处理,并在其基础上扩展 模数转换模块、数据通信模块等; (2) 本设计是多通道数据采集,那么就必须考虑系统的抗干扰能力; (3) 数据通信,本设计不仅是多通道而且还得兼顾速度; (4) 人机界面要求,即系统的操作界面简单实用,方便使用者; (5) 数据管理,要把采集到的数据进行简单的分析、保存、查询,还在需要的时 候把一些特定的数据打印输出。

3.2 数据采集系统的总体方案考虑
3.2.1 系统总体结构考虑 考虑到以上的设计目标,以及本课题所涉及的多通道数据采集的一些技术因素。 其总体结构图如图3.1所示,前端主要包括一些信号传感器、信号调理电路,最终获得 符合采集单元要求的模拟信号;采集部分包括模数转换、数据缓存、数字信号处理以 及通信传输;最后就是上层管理单元,上层管理单元实现对数据的保存,波形显示以 及报表的生成和打印。
多路开关

传感器 传感器 . . . 传感器
USB

. . .

信号 调理

A/D 转换器

数字 信号 处理

显示

计 算 机

打印

逻辑控制
图3.1 数据采集系统框图

保存

3.2.2 采集单元的方案选择 就多通道数据采集而言,主要考虑其精度和实时性的问题,当然采集的数据存储 和数据通信等问题都需要关注。虽然是多通道数据采集,其实对采集速度还是有一定
12

第三章 数据采集系统总体方案设计

要求, 所以处理器至少要保持几百K/S的数据采样率, 而且要对采集到的数据做一些处 理,然后将数据通过USB送到上位机进行管理。考虑到以上的各方面因素,很容易就 考虑到使用以DSP为核心处理器所构建的系统。DSP芯片特别适合于进行数字信号处 理运算,其主要特点是能实时快速地实现各种数字信号处理算法。这都归功于其有很 多适应实时信号数字处理的特点, 比如采用哈佛结构的存储器以及多套地址数据总线、 流水线结构的指令方式以及硬件乘法累加单元等等。系统引入TI公司的DSP芯片 TMS320VC5509A作为数据采集卡的CPU。TMS320VC5509A是TI(Texas Instrument)公 司推出的C5000系列的新一代16位定点DSP内核,性能好,功耗低,是目前TMS320家 族中最省电的芯片之一,它的内核电压在1.5V时时钟频率能够高达144/200MHz,并且 它的片内存储空间可寻址到几百K的空间,另外它内自带USB接口芯片,为USB提供 指令支持。 因此开发基于TMS320VC5509A芯片的DSP采集处理单元以符合系统的要求 就成为一种可能的选择。从DSP所组成的系统以及开发过程的实际情况来看,这种方 案是可行的,它符合系统的要求。从以上可以看出使用DSP来做核心处理器,CPU具 有指令执行速度快、总线带宽高、可以完成数据的高速实时处理等优点。最重要的是 DSP对于算法的树立具有独到的优势,可以在DSP软件中加入一些典型的算法编程, 就能够极大的增强系统的信号处理能力。 选择好数据采集的核心处理器,下面要做的就是在此基础上扩展模数转换、数据 通信模块。根据设计的要求,ADC器件选择了Analog Devices公司的AD9288。 经过 DSP 处理过的数据要传输给上位机进行管理, 那么数据通信模块在整个系统 中的地位也可见一斑。 本文采用 USB 总线来实现数据通信。 利用 USB 实现 DSP 与 PC 机的数据通信,USB 的规范能针对不同的性能价格比要求提供不同的选择,以满足不 同的系统和部件及相应不同的功能。在多通道数据采集中,使用 USB 配合 DSP 这种 模式,可以实现多通道高速数据采集。其主要优点有: (1) 速度快。快速是 USB 技术的突出特点之一。USB1.1 接口提供的传输速度有 低速(1.5Mbps)和全速(12Mbps)两种, 而现在推出的 USB2.0 标准, 速度可达 480Mbps, 比串口速率快 4000 倍,比并口速率快 400 倍[13]。 (2) 连接简单快捷。所有的USB外设利用通用的连接器可简单方便地连入计算机 中,安装过程高度自动化,既不必打开机箱,也不必考虑资源分配,更不用关掉计算 机电源,即可实现热插拔。 (3) 无须外接电源。一些采用普通串口或并口设备比如打印机、扫描仪等都需要 相应的外接电源系统,而USB电源能向低压设备提供5V的电源,因此新的设备就不需 要专门的交流电源,从而降低了这些设备的成本并提高了性价比。 (4) 有不同的带宽和连接距离。USB提供低速、全速和高速三种数据传送速度规 格。 全速传送时, 结点间连接距离为5m,连接使用4芯电缆(电源线2条,信号线2条)。
13

第三章 数据采集系统总体方案设计

该速率与标准的串行端口相比, 大约快100倍, 与标准的并行端口相比, 也快近10倍[8]。 因此,USB能支持高速接口(例如ISDN、PRI等),使用户拥有足够的带宽供新的数 字外设使用。 (5) 支持多设备连接。利用菊花链的形式对端口加以扩展,USB的端口具有很灵 活的扩展性。一个USB端口串接上一个USB Hub就可以扩展为多个USB端口,避免了 PC机上插槽数量对扩充外设的限制,减少PC机I/O接口数量。 (6) 良好的兼容性。 USB接口标准有良好的向下兼容性, 以USB2.0和1.1版本为例, 2.0版本就能很好地兼容以前的USB1.1的产品。系统在自动侦测到1.1版本的接口类型 时,会自动按照以前的12Mbps的速度进行传输,而其他的采用2.0版本的设备,并不会 因为接入了一个1.1标准的设备而减慢它们的速度, 它们还是能以2.0标准所规定的速度 进行传输。 USB协议的实现基于网络的思想, 是一种共享式的总线, 在总线上数据以(packet) 的形式发送。USB的数据传送有4种模式:块传输、中断传输、同步传输和控制传输。 当需要快速传输大批量的准确数据时,一般采用块传输模式;当传输实时性较强的数 据时,采用中断传输模式。 当USB设备插入计算机时,计算机和USB设备之间产生一个枚举过程,当计算机 检测到有设备插入, 自动发出查询请求; USB设备回应这个请求, 送出设备的Vendor ID 和Product ID。计算机根据这两个ID装载相应的设备驱动程序,完成枚举过程。 目前能实现 USB 通信的 USB 器件有两类: 一类是将 USB 接口引擎(SIE)和 MCU 集成在一块芯片中;还有一类是一块芯片单独实现 USB 的 SIE 功能。因此 USB 接口 在硬件构成上有两种方案。一种方案是使用集成了 SIE 的单片机,随着 USB 的日益推 广, 很多公司都推出了具有 USB 通信功能的单片机, 如 Intel 公司的 8x930ax, Cypress 公司的 CY7C68013,AnchorChips 公司的 AN2131 等。这些单片机的处理能力强,构 成 USB 接口的电路简单,调试方便,电磁兼容性能好,因而采用这种方案开发难度相 对较低。另一种方案用通用单片机和专用的 USB 芯片组建接口电路。这种方案开发和 调试难度较大,但是开发费用相对低廉。目前使用较多的此类芯片有 Philips 公司的 PDIUSBDI2,NationalSemiconductor 公司的 USBN9602 等。 由于 USB 协议非常复杂,开发者不可能在底层基础上进行开发。综合考虑开发成 本、开发周期和芯片购买等因素,本系统选用了 Cypress 公司带单片机内核的 EZ-USB 系列的 CY7C68013。这款芯片是 Cypress 公司的第二代产品,它支持高速传输,兼容 USB1.1 版和 USB2.0 版。此芯片集成了相当多的资源,利于硬件扩展,开发各种目标 设备。EZ-USB 的 8051 代码(Firmware)可以固化在 ROM 内;更好的方案是通过 USB 口从主机下载到其内部 RAM,易于修改、调试和更新。之所以能下载代码是因为芯片 一上电完全在硬件上自动完成枚举过程,不需要 Firmware。完成枚举后便可作为一个
14

第三章 数据采集系统总体方案设计

USB 设备与计算机通信, 此时即可下载 Firmware。 下载完成后, 8051 内核脱离 RESET 状态开始执行代码。可以通过 Firmware 对 USB 设备重新配置,这个重新配置的过程 叫再枚举。 EZ-USB FX2 芯片包括 1 个 8051 处理器、1 个串行接口引擎(SIE) 、1 个 USB 收 发器、8.5KB 片上 RAM、4KB FIFO 存储器以及 1 个通用可编程接口(GPIF) 。FX2 是一个全面集成的解决方案,它占用更少的电路板空间,并缩短开发时间。 EZ-USB FX2 拥有 1 个独特的架构,其中包括 1 个智能串行接口引擎(SIE) 。它 执行所有基本的 USB 功能,将嵌入式 MCU 解放出来以用于实现专用的功能,并保证 其持续的高性能的传输速率。FX2 还包括 2 个通用可编程接口(GPIF) ,允许它“无 胶粘接”,即可与任何 ASIC 或 DSP 进行连接,并且它还支持所有通用总线标准,包 括 ATA、UTOPIA、EPP 和 PCMCIA。EZ-USB FX2 完全适用于 USB2.0,并向下兼容 USB1.1[14] 。EZ—USB 的结构如图 3.2 所示。
+5V D+ DGND
USB连接器 收发模块 串口 引擎 (SIE)
字节

USB 界面

程序与数据 RAM

I/O口

字节 地址总线

8051 处理器
数据总线

外挂内 存、FIFO 等

EZ-USB
图 3.2 EZ-USB 的结构图

3.2.3 逻辑控制单元 在 AD 与 DSP 之间,DSP 与 USB 控制芯片 CY7C68013 之间以及 DSP 与接口模 块之间的逻辑时序控制比较多,需要逻辑控制模块来实现。 可编程逻辑器件(PLD)是一种新型逻辑器件,是用来实现定制逻辑功能、用户可 自由配置的数字集成电路(ICs),具有集成度高、运行速度快、可靠性强、易于开发和 方便修改等特点。它的推出给数字系统的设计带来了全新的概念,使数字系统的设计 变得更加方便、高效。随着计算机的普及和 PLD 器件价格的不断下降,使得普通用户 开发和应用 PLD 器件成为现实,PLD 器件已成为当今集成电路发展最快的品种之一。 下面,我们首先分析可编程逻辑器件的特点及原理结构,然后根据系统需要选择具体 的可编程逻辑器件。 目前,世界上的许多公司都开发出了多种可编程逻辑器件。比较典型的是 Altera 公司的 CPLD 器件系列,它们开发较早,占据了较大的 PLD 市场。Altera 公司一直倡 导 SOPC(可编程芯片上系统)技术,因为它可以帮助用户减少产品的上市时间,降低

15

第三章 数据采集系统总体方案设计

系统的设计成本及风险。2002 年,他们推出了 Stratix 器件系列,最多可嵌入 28 个专 用 DSP 模块。 而 Xilinx 也与 IBM 等公司合作推出了名为 Virtex-II Pro 的 FPGA 平台产 品,最多可集成四个 IBM PowerPC 嵌入式微处理器。这两个产品系列在逻辑单元和 RAM 容量上也有大幅提高。两家公司也已进行 90nm 系列产品的批量生产。在本系统 的逻辑控制模块中,主要工作是实现复杂的组合逻辑。而 CPLD 具有时序严格、速度 较快、可编程性好,更适合于实现译码和专门电路的优点[15]。因此,最终选用 Altera 公司的 MAX7000 型 CPLD 来实现数据采集处理系统的逻辑控制模块。 3.2.4 上层管理单元的方案选择 软件开发环境是编程人员进行应用程序开发的工具。我们选择程序开发环境的原 则,是看它是否擅长于完成我们所需要实现的功能,特别要考虑软件今后的更新和维 护问题,具体涉及到诸多因素,例如应用需要、计算机硬件、操作系统以及仪器硬件。 而所选用的软件也必须具有通用性,以便与不同的计算机结构、各式各样的设备配合 使用。 在编制具有视窗界面风格的软件时, 目前用得比较普遍的是两类工具:可视化编程 工具和图形化编程工具。前者包括Visual BASIC,Visual C++,Delphi等开发环境。对 于开发人员来说,这要求他们的编程能力和硬件知识的掌握程度较高,使得软件开发 周期长、成本增加,而且软件的移植和维护、可再用性、可重新配置能力也是相当令 人头疼的问题。 另一类是图形化的编程环境, 用户只需调用系统提供的各种功能图标(目标模块), 通过交互式设置所需参数,然后按实际测试任务编制测试流程图,即可完成测试软件 的编程工作。 其中基于图形的用户接口和软件开发环境是应用软件最流行的发展趋势。 目前市场上代表产品是惠普的VEE(可视化工程环境)和美国国家仪器公司(NI)的 LabVIEW。 图形化编程也可称为图符式的编程语言,已不是传统的基于文本的编程环境,而 是通过创建和连接图符来创建程序,具有形象直观、便于阅读和调试的特点,每个图 符都代表完成某一特定功能的对象,或称之为“函数”,包括显示、开关、发生器、 数学函数、GPIB设备、A/D板等等。各功能模块间通过“线”相连,在此我们称之为 数据通道或“流”,图符和线就是程序代码。图形化编程具有编程效率高、修改灵活、 功能完善、操作与显示界面形象、测试任务控制方便等特点,大大提高了测试领域生 产力,能大大缩短测试系统开发时间。 上层管理单元的方案选择显然与底层信号采集单元的方案选择是密切相关的,最 直接的体现就是在通信接口上,该设计选择了USB接口,因此上层管理单元必须对相 应的通信接口提供支持,这就对上层管理单元提出了硬件和软件的要求。为了尽可能
16

第三章 数据采集系统总体方案设计

的在很短的时间完成上层管理单元的设计,本系统选用了虚拟仪器技术即Virtual Instrument,来完成上层管理单元的设计。 选择LabVIEW开发测试和测量应用程序的一大决定性因数是其开发速度。通常, 使用LabVIEW开发应用系统的速度比使用其他编程语言快4-10倍。这一惊人速度背后 的原因在于LabVIEW易用易学,它所提供的工具使创建测试和测量应用程序变得更为 轻松[16] 。 LabVIEW 的优势主要体现在以下几个方面。 (1) 提供了丰富的图形控件,并采用图形化的编程方法,彻底把工程师们从复杂 枯涩的文本编程中解放出来。 (2) 内建的编译器在用户编写程序的同时就在后台自动完成了编译。因此用户在 编写程序的过程中如果有语法错误,它会被立即显示出来。 (3) 由于采用数据流模型,它实现了自动的多线程,从而能充分利用处理器尤其 是多处理器的处理能力。 (4) 通过 DLL、CIN 节点、ActiveX、.NET 或 MATLAB 脚本节点等技术,可以 轻松实现 LabVIEW 与其他编程语言混合编程。 (5) 通过应用程序生成器可以轻松地发布 EXE、动态链接库或安装包。 (6) LabVIEW 提供了大量驱动与专用工具,几乎能与任何接口的硬件轻松连接。 (7) LabVIEW 内建了 600 多个分析函数,用于数据分析和信号处理。 (8) NI 同时提供了丰富的附加模块,用于扩展 LabVIEW 在不同领域的应用,例 如实时模块、PID 模块、FPGA 模块、数据记录与监控(DSC)模块、机器视觉模块与 触摸屏模块。

3.3 本章小结
本章针对整个数据采集系统的设计目标,给出了各个单元的选择方案。首先介绍 整个系统的整体结构,接着对数据采集单元、逻辑控制单元以及上层管理单元的选择 作了详细阐述。

17

第四章 数据采集系统硬件设计

第四章 数据采集系统硬件设计
4.1 系统整体结构
整个系统以 DSP 为核心设计数据采集系统的硬件, 然后通过 USB 总线把经过 DSP 处理过的数据上传给上位机进行管理,CPLD 作为系统的逻辑控制单元。系统整体结 构框图如图 4.1 所示。
CPLD AD DSP USB
数据管理系 统

图 4.1 系统整体结构框图

4.2 数据采集系统的硬件设计
数据采集系统端的硬件设计组成主要分成三部分:模数转换模块、DSP 模块和 CPLD 模块。其中模数转换模块的主要功能是将输入的模拟信号转换成数字信号,以 供 DSP 进行处理; DSP 模块主要是控制数据采集系统的数据采集并和 PC 机进行通讯; CPLD 模块的主要功能是提供系统所需的各种控制信号以及为 DSP 与 PC 机的通讯提 供接口连接。 4.2.1 模数转换(A/D)电路 为进行数字信号处理,需将测得的模拟信号转换成数字信号,为此需要选择合适 的 A/D 转换器,本系统根据要求选择了 AD 公司的 AD9288 芯片。 AD9288是一种高速, 低功耗, 双通道8位转换精度、 最高采样率为100MSPS的A/D 转换器,用户只需提供3.3V电源和一个编码时钟,每通道模拟输入范围是1Vp-p,许多 应用不需外部基准或驱动元件,编码器输出为TTL/CMOS兼容的8位数字输出,它为改 进系统设计降低成本、提高可靠性和缩短上市时间等方面提供了完整解决方案。主要 特点: 低功耗180mW–450mW; 在105MSPS更新速率,41MHz模拟输入带宽时,ENOB为7.5; +3V单电源; 每信道模拟带宽475MHz; 模拟输入带宽41MHz时信噪比(SINAD)为47dB;
18

第四章 数据采集系统硬件设计

采用48引脚TQFP封装。 AD9288 片内有跟踪/保持电路,低功耗,小尺寸,易应用,每通道单独工作。不 要外部基准和驱动元件。数字输出为 TTL/CMOS 兼容和一个单独输出电源脚支持接 口。编码输出为 TTL/CMOS 兼容和 8 位数字输出。用户选择备用方式、数字数据格式 和数字数据定时图。在备用型式,数字输出驱动高阻抗态[17]。 多通道数据采集系统中,由于不要求进行高速采样,所以采用了共用一个 A/D 转 换器,在本设计中,采用了模拟多路开关来实现这个多通道。通过模拟多路开关可以 分时对各路模拟量进行模/数转换,这样可以简化电路,降低成本。通过模拟多路开关 开轮流切换各路模拟量与 A/D 转换器间的通道,使得在一个特定的时间内,只允许一 路模拟信号输入到 A/D 转换器,从而实现分时转换的目的。如图 4.2 所示为 AD9288 的连接原理图。
AD V33V 10mH VD3V P1 1 2 Header 2H GND R3 R4 GND R5 P3 1 2 Header 2H GND GND AD_EN0 AD_EN1 AD_EN2 AD_EN3 AD_EN[0..3] AD_EN[0..3]
CN CN CN CN DNG DNG DNG DNG DNG DNG DNG DNG SFD DDV DDV DDV DDV

P2 R1 75 25 25 75 R2 20 2 3 10 11 5 6 7 8 9 47 14

AD9288 D7A D6A D5A D4A D3A D2A D1A D0A D0B D1B D2B D3B D4B D5B D6B D7B VD VD VD VD 44 43 42 41 40 39 38 37 24 23 22 21 20 19 18 17 48 31 30 13 AD_DATA7 AD_DATA6 AD_DATA5 AD_DATA4 AD_DATA3 AD_DATA2 AD_DATA1 AD_DATA0 AD_DATA8 AD_DATA9 AD_DATA10 AD_DATA11 AD_DATA12 AD_DATA13 AD_DATA14 AD_DATA15

AD_DATA[0..15] AD_DATA[0..15]

AINA AINA AINB AINB REFINA REFOUT REFINB S1 S2 ENCA ENCB AD9288

C25 0.1uF C26 0.1uF R6 20

C1 0.1uF C2 0.1uF

VD3V

C3 C4 C5 C6 0.1uF 0.1uF 0.1uF 0.1uF V33V GND C9 C10

图 4.2 AD9288 原理图

一般模拟多路开关有 2N 模拟输入端,N 个通道选择端,有 N 个选通信号控制选 择其中一个开关闭合,使对应的模拟输入端与多路开关的输出端接通,让该路模拟信 号通过。 有规律地周期性改变 N 个选通信号, 可以按固定的序列周期性闭合各个开关, 构成一个周期性分组的分时复用输出信号,由后面的 A/D 转换器分时复用对各通道模
[1] 拟信号进行周期性转换 。

63 53 62 52 54 43 23 92 72 61 21 1 4

64 33 82 51

C7

C8

0.1uF 0.1uF 0.1uF 0.1uF GND GND

4.2.2 DSP 模块电路 DSP 芯片是硬件系统的核心,它一方面控制各种信号的采集、处理,另一方面负 责系统与 USB 总线的通信。DSP 模块部分主要包括:小系统,DSP 与各种存储器的 接口电路等。 TMS320VC5509A(以下简称 5509)是高性能,低功耗 16bit 定点 DSP,它是基于 TMS320C55x 系列的 CPU 内核基础上发展起来的。C55x 系列的 DSP 通过增加并行和 降低功耗的消散来获得高性能和低功耗。5509 的指令周期仅为 9.26ns/6.95ns/5ns,时
19

第四章 数据采集系统硬件设计

钟速率可以高达 108/144/200MHz。 CPU 的总线结构包含一个程序总线, 三个数据读总 线和两个写总线,并且提供支持外设和 DMA 的功能。这些总线可以在一个单独的周 期内完成三次数据的读出和两次数据的写入。在并行功能方面,DMA 器可以独立于 CPU 在一个周期内完成两次数据的输送。5509 片上提供双乘法器,每一个乘法器可以 在一个周期内完成一个 17bit×17bit 的运算。40bit 的核心数据/逻辑单元(ALU) ,并且 有辅助的 16bit 的 ALU。 可以通过指令来设置两个 ALU, 从而提高了 DSP 的并行能力 以及功耗控制。在 CPU 的地址单元(AU)和数据单元(DU)中完成这些操作指令的 设置和操作。5509 支持变字节的指令以提高指令效率。32bit 的指令单元(IU)可以 从片内或片外的指令队列中取出指令送入程序单元 (PU) , 然后由 PU 编译指令后交给 AU 和 DU 进行处理。通用输入输出口,LCD 的 I/O,键盘以及媒体外设提供了充裕的 连接管脚。5509 的并行接口以两种方式运行,其一是 HPI 方式,作为从机为其它的微 处理器服务,另一种是异步 EMIF 方式,作为并行媒体界面。 5509 的外设包括一个外部存储器接口 (EMIF) , 既可以接异步存储器, 如 EPROM 和 SRAM,也可以接高速的同步动态存储器(SDRAM) 。外设还包括 USB,实时时钟, 看门狗定时器,I2C 接口,三个全双工的多通道缓冲器端口。5509 中的增强的主机接 口 HPI 是一个 16bit 的并行接口, 用于提供主机处理器访问 5509 内部的 32Kbit 的存储 器。DMA 控制器可以向六个独立的通道提供数据而不需要 CPU 的参与,最高速度可 以达到每一个周期传送两个 16bit 的数据。 两个通用定时器, 高达 8 个的通用 I/O 管脚, 以及数字锁相环。代码编写开发环境 CCS 支持 C 编译器,Visual Linker,Simulator, RTDX,XDS510 仿真器以及赋值指令。支持 C55xDSP 系列的函数库,其中有 50 多个 基础软件内核(比如 FIR 滤波器,IIR 滤波器以及各种数学函数)以及芯片内部和外 部的库函数[18~21] 。 5509 的内核遵循开放式的内核结构,这样就可以允许使用特殊功能的设备以提高 运算的效率。5509 的外设硬件可以达成特定函数的性能表现和程序弹性之间的平衡, 这样可以获得较低的功耗以及在传统意义上难以实现的视频处理器市场中的成本降 低。 外设可以允许 5509 传递超过一半频谱宽度的外设的视频代码以达到外加的函数功 能,比如颜色变化。 5509 的主要应用范围是针对个人用户的便携式产品, 如手机、 基站、 数字播放器、 数码相机、GPS 接收机、语音识别和指纹识别、无线调制解调器等。 (1) TMS320VC5509A 的存储器映射 TMS320VC55x 系统 DSP 统一了对数据/程序空间和 I/O 空间的访问。 数据空间的 地址用来访问通用存储器和存储器映射 CPU 寄存器。CPU 用程序空间地址从存储器 读取指令。I/O 空间可以通过外设进行双向通信。片上的引导程序(Boot Loader)用以 将代码和数据装入片内存储器。存储器的所有 16MB 均可作为程序空间或数据空间来
20

第四章 数据采集系统硬件设计

访问。当 CPU 使用程序空间从存储器读程序代码时,它使用 24-bit 地址(按 byte)。当 程序访问数据空间时,则用 23-bit 地址(按 16-bit 字)。这两种情况下,地址总线都传 输 24-bit 值;但在访问数据空间时,最低 bit 必须是 0。数据空间分成 128 个主数据页 (0-127),每页有 64K 个地址。指向某个数据页的指令,包含一个 7-bit 的主数据页值 和一个 16-bit 的偏移值。在数据页 0 上,最前面的 96 个地址(000000h-00005Fh)保留 给存储器映射寄存器(MMRS)。在程序空间里,有一个相应的 192 个地址的存储器块 (000000h-0000BFh)[22~24]。 (2) DSP 小系统 DSP 小系统是指既没有输入通道,也没有输出通道,同时也不与其他系统进行通 信的 DSP 系统。在概念上并没有 DSP 小系统的概念,这里定义 DSP 小系统只是为了 阐述方便而已[25] 。DSP 独立小系统的设计是 DSP 硬件设计中的最基本,也是最重要 的一步,因为: 它是实用 DSP 系统设计的基础。在实际应用中,DSP 系统可能非常复杂,但 它们都是在 DSP 小系统的基础上发展起来的; DSP 小系统是与 DSP 芯片结合最紧密的部分。DSP 小系统的设计与 DSP 芯 片的结构息息相关; 在一些简单的应用场合,DSP 小系统就是一个实用的 DSP 系统。 ① DSP 的复位 上电时,DSP 处理器的状态是不确定的,无法进行数字信号处理运算,因此,需 要一个非屏蔽的外部复位信号,将处理器置入一个已知的状态。 5509 的复位方式有 3 种,即上电复位、手动复位和软件复位。前两种是通过硬件 电路来实现复位,后一种则通过软件变成来实现。对于硬件复位电路而言,DSP 要求 在复位信号从低到高之前,时钟必须已经稳定工作了若干时间,同时对复位信号的低 电平宽度也有要求,为了使系统被复位信号正确地初始化,复位信号的脉冲宽度必须 至少 10 个 H1 周期以上。上电之后,系统的振荡器达到稳定工作状态需要 20ms,甚 至更长时间。一般上电复位时,在复位引脚上置一个 100ms~200ms 的低电平脉冲是 比较合适的。需要注意的是复位信号上不应该有毛刺出现。在这个系统中,使用了手 动复位,如图 4.3 所示。

图 4.3 DSP 复位
21

第四章 数据采集系统硬件设计

② 时钟电路 在 DSP 系统中,时钟电路是处理数字信息的基础,同时它也是电磁辐射的主要来 源,其性能好坏直接影响到系统能否正常运行,所以时钟电路在 DSP 系统设计中占有 至关重要的地位[26]。 5509 时钟发生器是由一个内部振荡器和一个锁相环电路(PLL)组成,其中,锁 相环主要由相位比较器(PC) 、压控振荡器(VCO)和低通滤波器三个部分组成。锁 相环电路具有倍频的功能,其输出信号的频率是输入信号的频率乘上一个倍数。正是 锁相环电路把外部输入晶振的基准频率变成多种频率提供给不同的具体系统,以满足 它们的需要。 对于 5509, 锁相环电路的倍频系数是可以通过时钟模式寄存器 (CLKMD) 来设置,也可以通过 I/O 管脚(CLKMD1、CLKMD2 和 CLKMD3)跳线来实现。通过 I/O 管脚跳线只能用于复位以后系统时钟的初始值, 如果系统正常工作时的时钟是固定 的,那可以通过此办法来减少软件的工作量。但是,如果系统时钟需要变化的话,那 么就只有通过设置时钟模式寄存器来实现各种频率的切换。 给 DSP 芯片提供时钟一般有两种方法。一种是利用 DSP 芯片的 X1 和 X2/CLKIN 之间连接一个晶体可启动内部振荡器,另一种方法是将外部时钟源直接输入 X2/CLKIN 引脚,X1 悬空。采用封装好的晶体振荡器,这种方法使用方便。本文采用 了第一种方法,如图 4.4 所示。

图 4.4 DSP 时钟电路

③ 电源电路 为了降低芯片的功耗,近来推出的 DSP 芯片大部分采用低电压供电方式,并且采 用内核电压和 I/O 电压分开的方式。5509 内核电压为 1.8V,I/O 电压为 3.3V,由于有 两个电源,需要考虑的一个问题是加电次序。在理想情况下,两个电源同时加电,但 是在一些场合很难做到。那么就应该先对 DVDD 加电,然后对 CVDD 加电。DVDD 应不超过 CVDD2V。电源电路如图 4.5 所示。

22

第四章 数据采集系统硬件设计

P4 1 2 3 MHDR1X3 GND POWER1 R8 220 C12 10uF/6.3V GND DS1 C13 1uF GND GND 3 4 2 7 R7 68.1 P5 IN OUT IN OUT EN RESET SENSE GND TPS7301QD GND R10 169K 5 6 8 1 C11 10uF/6.3V GND V33V

R9 301K

GND GND

P6 C14 10uF/6.3V GND GND 1 6 8 7 2 4 3 IN L ILIM EN SYNC FB FC PG GND PGND TPS62000DGSR GND 9 5 10

L1 10uH C15 47uF/6.3V R11 470K C16 47pF R12 220K V15V

C17 100nF

GND

图 4.5 电源电路

4.2.3 逻辑控制模块(CPLD) (1) DSP 与 AD9288 的连接 为了提高DSP的工作效率,避免数据的丢失和方便控制,用FIFO作为两者之间的 接口可以产生很好的效果。通过5509的外部存储器接口(EMIF)可以实现FIFO与5509 的接口。这个外部存储器接口能广泛适用于各种外部存储器的灵活接口。 在大多数情况下,当把一个 5509 处理器和外部 FIFO 存储器进行连接时,FIFO 只在一个方向使用。就是说,要么 5509 往 FIFO 只写数据,让其它设备从 FIFO 读数 据,要么 5509 从 FIFO 只读数据,由其它设备往 FIFO 写数据。在本文中 DSP 只通过 中断方式从 FIFO 读数据。如图 4.6 为 DSP 读异步 FIFO 数据传送接口图
EMIF
*CE *AOE *AWE *ARE INT0 INT1 INT2 D[7:0] 异步FIFO *R *FF *W
[27]



逻辑 单元

*HF D[7:0] Q[7:0] *EF

图4.6 读异步FIFO数据传送接口图

对于异步 FIFO 来说,数据的读和写都不是边沿触发的。写数据是通过在全满标 志为非时, 使写使能信号为低电平来开始的。 数据实际上在写使能信号的上升沿写入。 读数据是通过在全空为非时,使读使能信号为低电平来开始的。在本文中 DSP 是通过
23

第四章 数据采集系统硬件设计

中断方式读取 FIFO 的数据,FIFO 半满时发送一个信号给逻辑单元(CPLD),逻辑单 元会给 DSP 一个中断信号,通知 DSP 读取数据。 (2) DSP 与 CY7C68013 的连接 在该数据采集系统中, 考虑到是为 DSP 系统设计 USB 接口。 我选择了 CY7C68013, 它是一款包含了微处理器的 USB 控制芯片, 硬件接口难度相比不包含微处理器的芯片 要大,但这样的好处就是编写芯片的固件程序要简单[28]。所以,在 DSP 与 USB 之间, 使用 CPLD 逻辑控制单元。 CY7C68013 是 CYPRESS 的一款 EZ-USB FX2 芯片。 EZ-USB FX2 芯片有 SlaveFIFO 和可编程接口 GPIF 两种接口方式。 在本系统中 FX2 工作在 SlaveFIFO 模式。 这种方式下外部控制器可像普通 FIFO 一样对 FX2 的多层缓冲 FIFO 进行读写,FX2 可以和 CPLD 直接通信而无需 8051 固件的参与。FX2 引脚与 CPLD 的信号连接如图 4.7 所示。
FIFOADR[1:0] FD[15:0] PKTEND SLWR SLRD

DSP

CPLD

SLOE FLAGD/SLCS# FLAGC FLAGB FLAGA IFCLK

USB

图 4.7 FX2 引脚与 CPLD 的信号连接框图

在由 CPLD 输出的控制信号中, SLOE 表示输出使能; SLRD 表示 slave 读; SLWR 表示 slave 写; PKTEND 表示包结束, CPLD 可通过 PKTEND 管脚向 USB 发送一个 IN 数据包而不用考虑包的长度;FIFOADR[1:0]用于选择和 FD 相连的端点缓冲区,其值 为 00 时选择端点 EP2,为 01 时选择端点 EP4,为 10 时选择端点 EP6,为 11 时选择 端点 EP8。 FLAGB、FLAGC 是 FIFO 标志管脚,用于映射 FIFO 的当前状态,FLAGB 表示 EP2 FIFO PFULL(512full);FLAGC 表示 EP8FIFO EMPTY。IFCLK 是 24MHZ 的外 部时钟。这些标志及时钟信号在固件部分初始化函数中设置。FD 是 16 位双向数据总 线,用于在 FX2 和 CPLD 之间传输数据。DSP 与 CPLD 之间进行只有数据传输以及中 断信号的处理。 CPLD 模块主要实现 USB 增强型 8051 内核与 DSP 的数据缓冲以及 8051 同步串口与 DSP 缓冲串口的转换。
24

第四章 数据采集系统硬件设计

4.3 数据采集系统的抗干扰设计
在多通道数据采集系统中,系统的抗干扰能力是衡量系统好坏的一个很重要的因 素,在采集过程中各种干扰弥漫在工作现场。由于内部或外部干扰的影响,在被测信 号上会叠加上干扰信号。通常,把这种干扰信号称为噪声,所谓干扰就是内部或外部 噪声对有用信号的不良作用。 噪声对被测信号存在着严重的干扰,当被测信号很微弱时,就会被噪声淹没掉, 导致很大的数据采集误差。为了能精确地采集数据,需要消除和抑制系统中的噪声。 所以, 在分析和设计数据采集系统时, 必须考虑到可能存在的各种干扰对系统的影响。 在本设计中,我主要从以下几个方面尽可能的减少干扰: (1) 模拟信号输入通道的抗干扰 模拟信号输入通道是数据采集硬件和微型计算机、传感器之间进行信息交换的渠 道。对这一信息渠道侵入的干扰主要是因公共地线引起。其次是当传输线路较长时, 还会受到静电和电磁波噪声的干扰。 这些干扰将严重影响采样信号的准确性和可靠性, 因此,必须予以消除或抑制。措施如下: ① 采用隔离技术隔离干扰。 所谓隔离干扰, 就是从电路上把干扰源和敏感电路部 分隔离开来,使它们之间不存在电的联系,或者削弱它们之间电的联系。隔离 技术从原理上可分为光电隔离和电磁隔离。 ② 采用滤波器滤除干扰。 滤波是一种只允许某一频带信号通过的抑制干扰措施之 一,特别适用于抑制经导线传导耦合到电路中的噪声干扰。 (2) A/D 转换器的抗干扰 ① AD9288的供电电源必须稳定性好,由于电源的高频分量容易产生辐射,所以 在靠近AD9288电源引脚的地方应放置0.1uF的去耦电容。为了防止高速的数字 输出变化将开关电流耦合进模拟电源,AD9288的数字电源和模拟电源应该分 开供电,如果采用单一电源也应在进入电路板处分离开来,并分别加以去耦。 模拟电源应该在3V士15%的范围内, 数字电源应为3.3V, 同时尽可能地靠近电 源放置0.1uF—0.01uF的陶瓷电容来进行高频滤波, 并联放置l0uF的钽电容滤除 低频噪声。 ② 模拟输入通道应尽可能的短, 同时模拟输入电压与基准电压都应远离数字信号 通路, 这样可以避免由于数字信号的高速变化而耦合到模拟通路。 数字通路也 要尽可能的短, 也应注意线路长度匹配以避免发生反射。 如果必要可以在通路 中串入小电阻(如100欧左右),为了很好地接收AD9288的数字输出信号,应尽 量减小容性负载。 ③ 采用多层 PCB 板。大面积地线与大面积电源线对 A/D 转换器都是有利的。模
25

第四章 数据采集系统硬件设计

拟地与数字地分离,最后就近接于平面地。芯片插座会增大分步电容,在电路 装配中应尽量不使用插座[17]。 (3) 印制电路板及电路的抗干扰[29] 印刷电路板是数据采集系统中器件、信号线、电源线的高度集合体,印刷电路板 设计的好坏,对抗干扰能力影响很大。故印刷电路板的设计决不单纯是器件、线路的 简单布局安排,还必须采取如下抗干扰措施: ① 合理布置印刷电路板上的器件; ② 合理分配印刷电路板插脚; ③ 电源线、地线的走向应尽量与数据传输的方向一致,尽量加大其宽度; ④ 电路板的接地应遵循一点接地原则、 不同性质接地线的连接原则和接地线应尽 量加粗的原则; ⑤ 去耦电容器的配置,在容易产生干扰的信号管脚,使用去耦电容; (4) 电源部分抗干扰 系统中采用高纹波系数的电源,这样就可以减少抖动,得到精准的电压信号,采 用电源模块单独供电。在电网地线与数据采集系统的地之间采用隔离变压器,使电网 地线的干扰不能进入系统,从而保证数据采集系统可靠地工作。

4.4 数据采集硬件部分程序设计
系统的程序编写主要包括 DSP 初始化程序、 A/D 初始化程序、 与 PC 机通信程序、 DSP 预处理程序等。DSP 的固件程序是放在外扩 EEPROM 中,系统上电后,程序自 动加载到 DSP 中执行。 4.4.1 DSP 程序设计 (1) 程序框架图及运行过程 DSP 程序流程图如图 4.8 所示,程序开始时首先调用各初始化函数,初始化函数 完成的功能主要是对使用到的内部寄存器、中断等进行初始化设置。初始化工作完成 后开始等待中断信号的到来,如果是中断 0 申请信号,则读取 FIFO 中的数据,然后 进行数据处理,处理结束后向 USB 控制器发送中断信号,通知 USB 控制器读取数据; 如果是中断 1 信号,则读取计算机通过 USB 控制器发送过来的控制字,分析控制字, 并调用相应的响应函数,完成对整个硬件系统的控制。

26

第四章 数据采集系统硬件设计

开始

初始化

等待中断

判断 中断
中断0 读取FIFO中的数据 存入DSP指定地址

中断1 重新等待 中断

分析上位机 的命令
根据上位机命令 调用不同的函数

DSP 数据处理
N

数据是 否传送

重新等待 中断

Y 向USB控制器发送 中断并传输数据

图 4.8 DSP 程序流程图

(2) 芯片初始化 DSP 芯片的初始化是设定 DSP 芯片工作状态的重要步骤,只有正确进行 DSP 芯 片的初始化,才能保证芯片的正确运行。在调试软件的过程中,如果发现程序运行不 正确,应首先查看芯片各寄存器的初始化状态设置是否正确,然后在调试用户程序, 否则就会降低调试效率。 ① 寄存器初始化 DSP 芯片加电复位之后处于预先设定的状态,无论是状态寄存器还是控制寄存器 都有一个确定的数值。DSP 芯片复位之后,需要对芯片的堆栈指针(SP)、存储器映射 的外设控制寄存器、状态寄存器及模式控制寄存器等进行初始化以适应不同应用的需 求。 ② 矢量表初始化 中断矢量表是每个 DSP 系统必须用到的,对中断矢量表进行初始化是 DSP 初始 化的一个重要组成部分。正确设置中断矢量表包括: 根据 DSP 芯片对各中断矢量的设置位置编写一个字程序(如 vectors.asm); 设置 PMST 控制寄存器; 链接时将矢量表重定位到 IPTR 指定的地址。
27

第四章 数据采集系统硬件设计

(3) 中断的保护和恢复 中断是由硬件或软件驱动的信号,使 DSP 将当前的程序挂起,执行另一个称为中 断服务子程序(ISR)的任务。5509 支持 32 个 ISR。 中断程序的状态保护和恢复只要根据中断程序中寄存器的使用情况进行保护和恢 复即可。 但是在保护两个状态寄存器 ST0 和 ST1 时, 必须特别注意恢复时的先后顺序。 (4) DSP 数据预处理 ① 自适应滤波 自适应滤波是仅需对当前观察的数据作处理的滤波算法。它能自动调节本身冲激 响应的特性,或者说自动调节数字滤波器的系数,以适应信号变化的特性,从而达到 最佳滤波。由于自适应滤波不需要关于输入信号的先验知识,计算量小,特别适用于 实时处理,近年来得到广泛应用,如用于脑电图和心电图测量、噪声抵消、扩频通信 及数字电话等。 ② 自适应滤波原理 自适应滤波器主要由两部分组成:系数可调的数字滤波器和用来调节或修正滤波 器系数的自适应算法。自适应滤波器原理框图如图4.9所示。
z(n)=s(n)+d(n) x(n) 数字滤波器 y(n) + e(n)

自适应算法

图4.9 自适应滤波器原理框图

图中,自适应滤波器有两个输入端:一个输入端的信号 z (n) 含有所要提取的信号

s (n) ,被淹没在噪声 d (n) 中, s (n) 、 d (n) 两者不相关, z (n) = s (n) + d (n) ;另一输入
端信号为 x(n) ,它是 z (n) 的一种度量,并以某种方式与噪声 d (n) 有关。被数字滤波器 所处理得到噪声 d (n) 的估计值 y (n) ,这样就可以从 z (n) 中减去 y (n) ,得到所要提取的 信号 s (n) 的估计值 e(n) ,表示为: e(n) = z (n) ? y (n) = s (n) + d (n) ? y (n) ;显然,自适应 滤波器就是一个噪声抵消器。如果得到对淹没信号的噪声的最佳估计,就能得到所要 提取信号的最佳估计。为了得到噪声的最佳估计 y (n) ,可以经过适当的自适应算法, 例如用LMS(最小均方)算法来反馈调整数字滤波器的系数,使得 e(n) 中的噪声最小。

e(n) 有两种作用:一是得到信号 s (n) 的最佳估计;二是用于调整滤波器系数的误差信
号。 自适应滤波器中,数字滤波器的滤波系数是可调的,多数采用FIR型数字滤波器, 设其单位数字滤波器自适应算法脉冲响应为 h(0) , h(1) ,…, h( N ? 1) ,那么它在时刻
n 的输出便可写成如下的卷积形式
28

第四章 数据采集系统硬件设计

y ( n) = ∑ h( k ) x ( n ? k )
k =0

N ?1

(4-1)

为方便起见,上式中的各 h(k ) 亦被称为权值。根据要求,输出 y (n) 和目标信号 d (n) 之 间应满足最小均方误差条件,即 E[e 2 (n)] = E{[d (n) ? y (n)]2 } 有最小值,其中e(n)表示误差。令 ?E[e 2 (n)] = 0 0 ≤ k ≤ N ?1 ?h(k ) 并把式(4-2)代入,便可得正交条件: E[e(n) x(n ? k )] = 0 , 0 ≤ k ≤ N ? 1 如果令 ? h(0) ? ? x ( n) ? ? ? ? ? h(1) ? , x(n) = ? x(n ? 1) ? h=? ?M ? ?M ? ? ? ? ? ? h( N ? 1) ? ? x(n ? N ? 1) ? 那么式(4-1)便可被写成 y (n) = xT (n)h = hT x(n) 而由式(4-4)给出的正交条件则变为 E{[d (n) ? y (n)]x(n)} = 0 把式(4-5)代入上式后,有 E[d (n) x(n)] = E[ x(n) xT (n)]h 如果令 r = E[d (n) x(n)] , φxx = E[ x(n) xT (n)] ,那么最佳权向量

(4-2)

(4-3) (4-4)

(4-5)

(4-6)

h* = φxx ?1r
③ LMS自适应算法

(4-7)

由于在应用中必须要知道所求信号和观测信号之间的相关矢量 r 。 在一般情况下, 它很难从观测信号中估计出来,因此在应用上受到一定限制。为此,Widrow提出一种 非常巧妙的方法,即最小均方误差(LMS)自适应算法。

LMS自适应算法的思路是这样的:假设给出了和原始信号相关的参考信号 d (n) ,
那么首先对FIR滤波器的权任意设定一组初始值; 然后根据滤波器的输出值与参考信号 之间的误差 e(n) 对权值进行调节,使下一次的输出误差能有所减少;这样重复下去, 直到权收敛到最佳值。 那么如何根据误差 e(n) 来调节滤波器的权值,使其收敛到最佳值呢?首先考察当 权向量 h 取一组任意值时由式(4-2)所给出的均方误差特性。利用式(4-6)和(4-7),该均 方误差 ξ 可写为 h 的函数,即 ξ = E[e2 [n]] = E{[d (n) ? hT x(n)]2 }

= E[d 2 (n)] ? 2 E[d (n) xT (n)]h + hT E[ x(n) xT (n)]h = E[d (n)] ? 2r h + h φxx h
2 T T

(4-8)

29

第四章 数据采集系统硬件设计

上式表明均方误差 ξ 是滤波器权向量的二次函数,因此它在 N + 1 维空间中形成一 超抛物面。该超抛物面为下凸形,其最小值在权向量空间的投影即为最佳权向量 h* 。 在利用估计误差对权值调节过程中,权向量的值随时间变化而改变。设在第 n 和
n + 1 时刻向量 h(n) 和 h(n + 1) 之间存在关系: h(n + 1) = h(n) +Vh

(4-9)

其中 Vh 表示对 h(n) 的修正值。那么当 Vh 充分小时,利用多变量函数的Taylor展开公式 可知对应于第 n 和 n + 1 时刻均方误差值 ξ (n) 和 ξ (n + 1) 有下述关系 ξ (n + 1) = ξ (n) +VhT ? n 这里

(4-10) (4-11)

?n = {

?ξ ?ξ }T |h = h ( n ) K ?h(0) ?h(n ? 1)

如果令 Vh = ? ?? n 并代入式(4-10)可得

(4-12) ?ξ 2 ?ξ ] +L + [ ]2 }|h = h ( n ) ?h(0) ?h( N ? 1)

ξ (n + 1) = ξ (n) ? ?{[

这样通过选择适当小的正常数因子 ? 的值,便可以使均方误差 ξ (n + 1) ≤ ξ (n) 成立。把 式(4-12)代入式(4-9)有

h(n + 1) = h(n) ? ?? n

(4-13)

由于上式中的 ?? n 表示沿误差曲面梯度下降的方向,因此权向量修正的过程,也是使 误差沿着超抛物面最陡梯度不断向最小值逼近的过程,故该算法被称为“最陡梯度下 降法”。 最陡梯度下降法在使用时的不方便之处,就是在每次对权向量的值进行修正时, 必须要求出梯度向量 ? n 的值,这在实际使用中一般是难以做到的。为对此加以简化, 可以采用下述的近似算法。由式(4-11)和(4-8)可知 ?ξ ?ξ ?E[e 2 (n)] ?E[e 2 (n)] T ?n ={ }T |h = h ( n ) = { L L } |h = h ( n ) ?h(0) ?h( N ? 1) ?h(0) ?h( N ? 1)
= 2 E{e(n)[

?e(n) ?e(n) L ]}T |h = h ( n ) ?h(0) ?h( N ? 1) (4-14)

由于当 h = h(n) 时的输入向量为 x(n) ,故 e(n) = d (n) ? hT (n) x(n) 。把该式代入上式可得

? n = ?2 E[e(n) x(n)]
在实际计算中,由式(4-14)给出的梯度值可用下面的近似值所代替,即 ? = ?2e(n) x(n) ?
n

因此式(4-13)可被重新写成:h(n + 1) = h(n) + 2? e(n) x(n)

(4-15)

该式给出了一种非常简单的权向量的递推算法, 即 Widrow-Hoff LMS 自适应算法。 由于这种自适应滤波方法可以根据信号的变化自动调节权向量以获得最佳输出,因此
30

第四章 数据采集系统硬件设计

它对非平稳信号的滤波也是实用的。

4.4.2 USB 程序设计
(1) CY7C68013 的传输原理简介 如图 4.10 所示,USB 执行 OUT 传输,将 EP2 端点设成 512 字节双重 FIFO 缓冲 ,就可以继续发送数据。当 FIFO 写“满” 模式。SIE 端只要有 1 个 FIFO 为“半满” 时,FX2 自动将其转换到外部接口端,使得外部 MCU 可以读取发送端点 FIFO 中的数 据;并将 USB 接口队列中下一个为“空”的 FIFO 转移到 USB 接口上,供其继续发送 数据
[30]

。外部接口端与此类似,只要有一个 FIFO 为满状态,就可以继续从这个满状

态的 FIFO 中读取数据。当前操作的 FIFO 被读空时,FX2 自动将其转换到 USB 接口 端,等待另一个 FIFO 的满状态,并将外部接口队列中下一个为满的 FIFO 转移到外部 接口上,供其继续读取数据
[31]


512*8 空

USB接口 (SIE)

512*8 半满 512*8 满

512*8 半满

外部接口

图 4.10 FX2 数据传输原理图

在接收过程中, 信号线上的数据流均以包的形式进行传输(如令牌包、 数据包和握 手包),利用 SIE 可对这些包的 PID 进行解码,并可对接收的数据进行 CRC 检查,然 后把数据送到处理器中,最后返回一个握手包。如果发现有错,它会自动停止响应而 不发出握手包,同时通知主机重新发送出错的数据包。例如我们采用的块传输方式, 它的数据流中必须包含 ACK 和 NAK 握手包。 如果 SIE 向主机发送 NAK 握手信号包, 则表明设备正忙,暂时不能接收新数据,只有设备接收数据成功后 SIE 才会向主机发 送 ACK 握手信号包。

USB 有四种传输类型:控制传输、中断传输、同步传输及块传输。控制传输用于
支持在客户软件和设备功能之间的关于配置、命令、状态类型的通讯流;中断传输适 用于那些请求传输的频率不高,但是必须在指定时间内完成的场合;同步传输指在发 送方和接收方以恒定的传输速率传输数据,常用于对传输实时性要求比较高的设备, 速度最快,适合于音频、图像等有损传输场合;块传输方式传输带宽比同步方式的小, 一般用于传输大量数据且实时要求不高的设备, 这种传输方式适于在 Windows 操作系 统下开发,所以我们实际采用块传输方式[32]。

USB2.0接口控制器主要完成对接口芯片CY7C68013的读写控制,并且能够产生后

31

第四章 数据采集系统硬件设计

端的输入允许信号,对USB接口芯片的控制采用异步操作的方式,该控制器主要分为 三部分:USB接口读控制模块、USB接口写控制模块和输入/输出控制模块。本控制器 的设计需要与固件程序保持一致,接口芯片工作在Slave FIFO模式下。其工作原理框 图如图4.11所示。
FLAGC_Empty SLRD SLOE R_FIFOADR [1:0] FD_IN[15: 0]

USB接口异步 读控制模块

USB_RDF START AVERAGE [8:0]

CY7C68013A SLAVE FIFO 模式

FIFOADR [1:0] FD[15:0]

输入/输出控 制模块
FD_OUT[1 5:0] W_FIFOADR [1:0]

CPLD

CPLD 中其它 计算模块

FLAGB_Full SLWR

USB接口异步 写控制模块

CPLD_DV CPLD_DA TA[15:0]

图 4.11 Slave FIFO 工作模式原理框图

下面详细讨论 Slave FIFO 工作模式下的异步读写操作。 ① Slave FIFO 异步写操作应用写控制模块的主要功能就是将 CPLD 准备好的数 据传送到主控计算机上。传送开始时,需要判断端点 FIFO 的 FLAGB_Full 标 志,如果没有满,则可以往里写入数据,否则等待。当 CPLD 上数据准备好的 时候,即 CPLD_DataReady 有效时,转入下一个状态,并将 FADDR[1:0]置为 有效,此时选中需要写入数据的端点 FIFO 中,然后判断该端点是否已满,未 满则将数据放置在数据总线上,再将 SLWR、PKTEND 置为有效,维持 50ns 之后,释放 SLWR、PKTEND、FIFOADR[1:0]以及数据线,最后判断是不是 需要写入更多的数据,如果需要,则跳转到 State2,否则,此次写操作完成。 ② Slave FIFO 异步读操作应用读控制模块的主要功能就是将主控计算机的控制 命令及数据传送到 CPLD 主控制器上。该模块需要不断检测端点 FIFO 的空标 志,如果处在非空状态,则立即启动该模块,将 USB 接口芯片中的数据读出 到内部存储器中,并且启动后面的流水线操作。当检测到端点 FIFO 的

FLAGC_Empty 标志无效时, 则将 FADDR[1:0]置为有效, 然后将 SLOE、 SLRD
置为有效,当总线上的数据稳定时,将数据存储在内部的寄存器中,并给出

USB_DataReady 信号,通知后续电路可以将主控计算机传送下来的数据存储
到内部存储器中,并启动解码工作。最后释放 SLOE、SLRD、FADDR[1:0],
32

第四章 数据采集系统硬件设计

再判断端点 FIFO 的空标志,如果有效则表示此时没有控制命令需要传送,该 次操作完成,否则重复上述操作直到端点 FIFO 的 FLAGC_Empty 有效为止。 ③ 输入 / 输出切换模块 输入 / 输出切换模块在整个控制器中非常重要,因为

CPLD 和 USB 接口芯片之间的数据总线是双向的总线,并且有的控制信号也
是共用的,所以读写操作只能有一个处在工作状态,否则将造成双驱动问题, 这不但不能得到正确的数据还可能会损坏芯片。输入/输出切换模块的功能就 是根据当前的读写状态来控制信号源, 保证在一个时刻只有一个信号源在驱动 总线。对于端点选择控制线 FIFOADR[1:0],因为默认状态时,该信号线总是 为低,因此只要将读写的信号线 W_FIFOADR[1:0]和 R_FIFOADR[1:0]进行 “或”操作即可。 (2) USB 固件程序和驱动程序设计 ① USB 协议 USB 系统组成 典型的 USB 系统由主控制器、集线器、设备三个成员构成。其最简系统如图 4.12 所示,其中 CPU 可以是 PC 机、DSP。

CPU
USB HOST USB DEVICE

CPU

图 4.12 USB 最简系统

USB 数据传输类型 USB 传输类型包括批量传输、等时传输、中断传输和控制传输。端点 0 只能配置
为控制传输类型的管道,其它端点传输类型选择则比较灵活,控制传输可靠性是最高 的,但速度最慢,等时传输速度快和满足实时性,但可靠性低,批量传输或中断传输 类型比较适合数据采集的应用。 USB 数据请求格式 在 USB 通讯协议中,主机具有绝对主动权利,设备只能是“听命令行事” ,所以 通过一定的命令格式(设备请求)来完成通讯。USB 设备请求包括标准请求、厂商请求 和设备类请求。 设备的枚举是标准请求命令来完成的; 厂商请求就是用户定义的请求; 设备类请求是特定的 USB 设备类发出的请求。设备请求必须遵循一定的格式,包括请 求类型、设备请求、值、索引和长度[33]。 USB 数据流格式

USB 内部是一个软件提取模式,象“流水(Pipe)”一样处理各类请求,其数据是
打包后在 USB 总线上传输的。USB 传输的数据包由被称为 Packet Ids(PID)的特定代
33

第四章 数据采集系统硬件设计

码进行区分。PID 表示正在传送数据包的类型。 图 4.13 说明了一个 USB 传输。包①是一个由 OUT 令牌表示的 OUT PID。OUT 令牌表示主机发送的数据将要通过总线进行传送。包②由数据组成,由 DATA1 PID 表示。包③是一个由外设发送的握手信息包。外设使用 ACK(确认) PID 标志向主机报 告外设已正确地接受数据。接下来又发送了一个 OUT 令牌④,开始进行第二次传输。 紧随其后的是数据包⑤,这一次使用的是 DATA0 PID 标志。最后,设备通过传送握 手信息包⑥中的 ACK PID 表示接收成功。当传送数据时,主机或设备发出交替的

DATA0,DATA1 标志,以防止握手信号本身出错所引起的混乱[34]。
O U T A D D R E N D P C R C 5 D A T A 1

正确 数据
数据包


C R C 1 6

A C K

O U T

A D D R

E N D P

C R C 5

D A T A 0

正确 数据
数据包


C R C 1 6

A C K

令牌包


令牌包


令牌包


令牌包


图 4.13 USB 包说明

SETUP 令牌只针对控制传输。它是数据包的前 8 个字节。通过这几个字节外设对
主机的设备请求进行解码。

SOF 令牌每毫秒发送一次,代表一个 USB 帧的开始。
三个握手 PID 信号:

ACK 表示“成功” ,即数据无误接收; NAK 表示“忙,重发” ; STALL 表示有意外事件发生错误。
② 固件程序设计 所有基于微控制器及其外围电路的功能设备的正常工作都离不开固件的参与,固 件的工作就是辅助硬件,或者说是控制硬件来完成预期的设备功能。没有固件的参与 和控制,硬件设备只是芯片的简单堆砌,无法完成预计的功能。USB 设备也不例外, 尽管有些 USB 的控制芯片已经相当智能化了,但是也不可能包揽所有的事情。我们必 须编写固件程序来辅助硬件完成 USB 通信任务。

Cypress 公司的 EZ—USB FX2 提供给用户一个固件函数库和固件框架,两者均是
基于 KEIL C51 进行开发的。固件函数库提供了一系列的函数来加速 USB 固件程序的 开发,使用时只需要在程序中包含 EZUSB.H 和 EZREGS.h 两个头文件,并在项目中 链接 EZUSB.LIB,就可以直接使用固件库中的各个函数了。Cypress 公司提供的固件 构架实现了与 USB 兼容的外围设备所需的基本功能。经过链接最小的描述符表文件, 就可以无须编写任何固件程序, 进而构建出完全兼容的设备固件构架设备, 如下图 4.14 所示。
34

第四章 数据采集系统硬件设计

电源打开后重置

初始设置状态变量

调用TD_Init()

初始设置状态变量

是否收到 setup包? 是 调用TD_Poll()



延迟1s并重新设备列举

是否收到 setup包?



分析并实现设备请求

USB总线 是否设置闲 置标志? 否 否



调用 TD_Suspend() 否



中止微 处理器

调用 TD_Resume()

图 4.14 固件构架流程图

在使用固件框架来进行特定的固件开发时, 固件框架已经帮我们实现立刻初始化、 重列举、电源管理等功能。对用户而言,只需要在固件架构的预留位置处添加代码, 就可以完成特定的功能。 在 TD-Init( )函数中添加功能代码, 完成初始化以及端点配置等工作, 在 TD-Poll( ) 函数中添加其它代码可完成各种辅助功能。

Cypress 公司为 EZ-USB 系列 FX2 芯片提供了用 Keil C51 开发的固件库和固件框
架。固件库中,fx2.h 定义了一些常量、数据结构、宏、通用函数;fx2regs.h 中包括位 屏蔽定义及寄存器的定义;EZUSB.LIB 包含库函数的二进制代码;USBJMPTB.OBJ 包含 USB 中断的中断矢量和跳转表;另外固件库还包括一些函数和全局变量。 固件框架实现了初始化芯片、 处理 USB 标准设备请求及挂起状态下的电源管理等 功能。 专用固件文件包括 FW.C、 PERIPH.C、 DSC.A51、 EZUSB.LIB、 USBJMPTB.OBJ, 其中 DSCR.A51 是描述符;FW.C 是固件的原始程序代码,主要实现设备初始化和重 新列举和响应设备请求;PERIPH.C 是用户子函数钩子的相关定义,包括任务分配、 设备请求和 USB 总线中断处理。 固件设计的主要工作是根据自定义设备修改 PERIPH.C。因为 SLAVE FIFO 工作 在自动模式下,因此不需要在用户功能函数 TD_Poll 中添加代码,主要是在 TD_Init 函数中设置芯片的工作方式,部分代码如下:
35

第四章 数据采集系统硬件设计

Void TD_Init(void) { …… IFCONFIG=0x43; IFCFG[1:0]=11,FX2 EP1INCFG=0x20; SYNCDELAY; EP2CFG=0xA2; EP6CFG=0Xe2; //512 字节,双缓存 EP4CFG=0x60; EP8CFG=0x60; EP2FIFOPFH=0x0; EP2FIFOPFL=0x3D; //缓存数据小于等于 //0x3d 时 EP2PF 有效 PINFLAGSAB=0xA4; //FLAGA-EP2PF //FLAGB-EP6EF PINFLAGSCD=0xC8; //FLAGC-EP2EF //FLAGD-EP2FF PORTACFG|=0x80; //设置 PA7 为 FLAGD EP2FIFOCFG=0x11; //自动输出,16 位传输 EP6FIFOCFG=0x0D; //自动输入,数据不经过 8051,直接从 FIFO 送到 SIE //打包后发往 USB 口,再送到 PC 机 …… }
固件存储在 PC 上,当设备与主机连接时,固件通过软配置从主机装载到 EZ-USB

//芯片工作方式定义 //工作在 SLAVE FIFO 模式 //禁止端点 EP1 输入 //对一部分特定的寄存器进行 //端点 EP2 有效,输出//块传输,512 字节,双缓存 //端点 EP6 有效,输入,

EP1OUTCFG=0x20; //禁止端点 EP1 输出

//设置前都要进行同步时延,下面省略

//块传输方式(由于采集系统对数据的完整性要求高),

//禁用端点 EP4 //禁用端点 EP8

FX2 片内 RAM 执行。设备配置、有效端点、工作方式、设备功能等都可以通过改变
固件进行再配置。 ③ 驱动程序设计 该系统需要两个驱动程序,即通用驱动和下载固件驱动。通用驱动用于完成与外
36

第四章 数据采集系统硬件设计

设和用户程序的通信及控制; 而下载固件驱动程序则负责在连接 USB 总线后把特定的 固件程序下载到 FX2 的 RAM 中,使 FX2 的 CPU 重启,同时断开与 USB 总线的连接 以完成对外设的重新设置,这样既可使主机能够根据新的设置来安装通用驱动程序, 又可重新枚举外设为一个新的 USB 设备。通用驱动程序一般不需要重新编写,可以使 用 Cypress 公司已经编好的驱动程序 ezusb.sys。 由于 Windows 系列操作系统出于保证系统安全性、稳定性和可移植性的要求,对 应用程序访问硬件资源进行了限制,因此需要编制设备驱动程序实现 PC 程序对 USB 设备的访问。有多种驱动程序开发工具可供选择,如 DDK.,Vtools 和 Windriver 等。 由于 Windriver 开发的驱动程序可以支持 Windows9X/NT、XP,同时又具有快速、在 用户态开发等特点,因此设计中使用 WinDriver 来开发驱动程序。利用 WinDriver 的

Wizard 分析待编驱动程序的工作卡,产生驱动程序的框架代码,加入用户定制的功能
代码;将性能要求苛刻部分插入到核心态;在用户态下执行和调试代码。WinDriver 的结构图如下图 4.15 所示:
用户应用程序APP.EXE 用户驱动程序代码 WinDriver UseMode Library (Windri)

用户态

核心态 核心态插入(sys.vxd ) 性能要求 苛刻部分
WinDriver Kernel PlugIn (ptional in 9x,NT,XP)

WinDriver -Kernael (VXD,SYS,DLL,0)

用户硬件

图 4.15 WinDriver 结构图

驱动程序要完成的基本功能包括设备初始化、对端口的读写操作、中断设置、响 应和调用。驱动程序在初始化过程中,利用产品识别号(PID)、厂商识别号(VID)搜索

USB 卡,确认其存在。然后利用总线号、器件号和功能号寻址设备的 USB 配置空间,
获得该硬件的参数。对于设备驱动程序来说,最重要的是获得基地址寄存器。不能认 为 USB 设备资源总是设计该设备时设置的初值,因为系统会根据硬件情况为 USB 设 备分配新的资源。

USB 设备启动流程如下: USB 设备接入 USB 口,发出连接 USB 命令;
主机发出读设备描述符两次; 主机根据设备描述符——厂商 ID、产品 ID,启动相应设备驱动程序;
37

第四章 数据采集系统硬件设计

设备驱动程序初始化 USB 设备。

4.5 本章小结
本章详细介绍了整个数据采集系统的硬件部分的设计。首先给出了硬件部分的总 体结构,然后对其中各个部分进行介绍,包括 A/D 转换,DSP 模块和 CPLD 逻辑控制 模块,并针对系统的干扰给出了一些解决办法;接下来阐述了 DSP 和 USB 部分的软 件设计, 对 DSP 模块部分的介绍包括整个程序流程以及对信号的预处理, USB 通信模 块部分的介绍包括了 USB 控制芯片 CY7C68013 的固件程序和传统驱动程序的编写。

38

第五章 数据采集系统 LabVIEW 设计

第五章 数据采集系统 LabVIEW 设计
5.1 总体结构
本系统 LabVIEW 软件具体结构如图 5.1 所示。 (1) 数据测量管理层模块 数据测量管理层是一个带有易用操作界面、用于管理和执行某一测试任务的管理 环境。它包括生成记录和报告、数据库访问、数据通信以及对结果数据的分析处理等。
数据分析、处理

数据存储

数据采集管理

数据显示 管理层

虚拟仪器
虚拟仪器模块

仪器驱动
仪器驱动

DAQ驱动
接口驱动

数据采集硬件
图 5.1 软件结构

采集部分硬件

(2) 虚拟仪器层模块 纵观不同测试系统的组成模块可以发现,针对某一产品而开发的功能测试模块是 一个有其特殊性的软件组件,但其大多数的基本元素,如数据采集与仪器控制、结果 表达、仪器的界面(如按钮、实时绘图曲线)等功能对所有的测试系统来说又都是通用 的。正因为如此,可以建立通用、与设备无关的功能模块库。当设计好了这样的模块 库后,供用户即调即用。用户只需在开发平台上以图形方式(称作对象)调出相应的仪 器功能模块和数据处理模块,进行连接组合,即可构成一个具体的仪器对象,节省了 用户大量的开发时间。
39

第五章 数据采集系统 LabVIEW 设计

(3) 仪器驱动层 仪器驱动软件是测试系统中最重要的组成部分之一,是真正对仪器硬件执行通讯 与控制的软件层。在过去,这部分都是由测试开发人员编写,对每一个仪器硬件编制 特殊的驱动代码,使一个测试系统的开发周期变得很长。今天,仪器驱动程序都是按 模块化,与设备无关的方式向用户释放,供使用者迅速将仪器接入自己的测试系统。 而且,由于仪器驱动程序是以源代码的方式提供给用户,用户可以很容易地优化和增 强这些驱动程序,使之满足他们的特殊要求。另外,标准化的驱动程序还可以在不同 的系统和配置中重复使用,节省了大量的开发费用。 (4) 接口驱动

I/O 接口软件是测试系统软件的基础, 用于处理计算机与仪器硬件间连接的低层通
讯协议。当今优秀的虚拟仪器测试软件都应建立在一个标准化 I/O 接口软件的通讯内 核之上;为用户提供一个一致的、跨计算机平台的应用编程接口(API),使用户能够灵 活地使用计算机平台和仪器硬件。I/O 接口驱动和硬件、计算机操作系统密切相关。现 在个人计算机普遍使用的是 Windows 操作系统,而 Windows 为保证其系统的稳定性, 不允许应用程序直接对 I/O 端口操作,必须编写符合 Windows 标准的 I/O 端口驱动程 序。仪器驱动层是按仪器功能分类的函数库,它完成 I/O 接口层与虚拟仪器功能层的 连接,是实现高层软件与硬件无关的重要保证。虚拟仪器功能层可以实现虚拟仪器前 面板设计以及部分仪器功能, 还可以将应用程序与其它基于 Windows 的系统集成起来, 允许用户添加不同的测试功能; 结合软件定时采样、 硬件中断与 Windows 多线程、 DMA 数据传输,可实现不同速率采集、数据处理、数据显示等功能[36]。

5.2 PC 机软件的实现
在整个系统框图中,采用了顺序结构。首先完成各个子 VI 的程序设计,将其做成 单个的模块, 当然每个模块都是由更小的模块组成的, 这样不仅增强了程序的可读性, 降低编程复杂性,而且可以方便维护,使程序框图更加清晰,同时可以避免大量的重 复编程。如图 5.2 和 5.3 为系统的主界面。

40

第五章 数据采集系统 LabVIEW 设计

图 5.2 系统主界面—工程模式

下图 5.3 所示为系统的产品模式界面。

图 5.3 系统界面—生产模式

41

第五章 数据采集系统 LabVIEW 设计

5.3 LabVIEW 与 USB 的接口通信设计
USB(Universal Serial Bus)接口是近年来应用在 PC 领域的新型接口技术。它基于
单一的总线接口技术来满足多种应用领域的需求;它的即插即用、支持热插拔、易于 扩展等特性极大地方便了用户的使用,逐渐成为现代数据传输的发展趋势。 5.3.1 调用动态链接库(DLL)驱动数据采集卡 在上一章已经利用 WinDriver 生成了设备驱动程序,简单点说就是用 WinDriver 向导自动生成驱动程序框,然后在 Visual C++工作平台下修改驱动程序。

DLL 是封装驱动程序的一个最简单方法。 一个驱动程序经常被多个应用程序使用,
让驱动程序位于一个与应用程序分离的文件中,方便两者的更新,把驱动程序封装为

DLL 正好满足这种要求。把 Windows 驱动程序封装为 DLL 的最重要的原因是驱动程
序生成操作系统调用的确定类型,而应用程序却不能。利用 VC++6.0 创建一个 DLL 工程,把由 WinDriver 向导生成的函数库及其头文件包含到 DLL 项目中定义好导出变 量和导出函数,实现驱动程序功能函数的封装。导出变量作为驱动程序与上层应用程 序通信的渠道,而导出函数完成驱动程序与上层应用程序通信的具体过程[37]。 然后 LabVIEW 通过使用里面的 Call Library Function 函数节点调用封装好的动态 链接库文件,实现与数据采集硬件的通信。整个调用 DLL 实现非 NI 数据采集卡的方 法在我发表的论文里有详细说明,这里就不再赘述。

5.3.2 VISA 简介
从上面可以看出,传统的开发 USB 应用系统的步骤是,先用 Windows DDK(设备 驱动程序开发包)或第三方开发工具(如 DriverStudio)、Windriver 等开发 USB 驱动程 序,然后用 Visual C++编写 DLL(动态连接库),最后再调用 DLL 来开发应用程序。显 然,这对 Windows 编程不熟悉的人来说有一定的难度,何况 USB 驱动程序的开发难 度很大。 本文介绍一种简单、 快速开发 USB 接口应用系统的方法。 它直接在 LabVIEW 环境下通过 NI—VISA 开发能驱动用户 USB 系统的应用程序,完全避开了以前开发

USB 驱动程序的复杂性,大大缩短了开发周期[38]。
在 1993 年, NI 联合许多在技术领域处于领先地位的大公司 ( 其中包括 HP 、

Tektronix、GenRad 和 Racal)成立了 VXIplug&play 系统联盟。其目标是确保众多厂商
的 VXI 仪器具有协同工作的能力以及降低包含了多厂商仪器的完整测试系统的开发时 间。 虚 拟 仪 器 软 件 架 构 (Virtual Instrument Software Architecture , VISA) 是

VXIplug&play 系统联盟最重要的成果之一。 它的目的是通过减少系统的建立时间来提
高效率。随着仪器类型的不断增加和测试系统复杂化的提高,人们不希望为每一种硬
42

第五章 数据采集系统 LabVIEW 设计

件接口都要编写不同的程序,因此 I/O 接口无关性对于 I/O 控制软件来说变得至关重 要。 当用户编写完一套仪器控制程序后, 总是希望该程序在各种硬件接口上都能工作, 尤其是对于使用 VXI 仪器的用户。VISA 的出现使用户的这种希望成为可能,通过调 用相同的 VISA 库函数并配置不同的设备参数,就可以编写控制各种 I/O 接口仪器的 通用程序[11]。

VISA 是一个用来与各种仪器总线进行通讯的高级应用编程接口(API)。它不受平
台、总线和环境的限制。换言之 , 与 GPIB 设备进行通讯的程序,无论是在运行

Windows2000 的机器上用 LabVIEW 开发出来的,还是运行在 MacOS X 的机器上用 C
语言编写的,都可以使用同一个 API。 通过 VISA 用户能与大多数仪器总线连接,包括 GPIB、USB、串口、PXI、VXI 和以太网。而无论底层是何种硬件接口,用户只需要面对统一的编程接口——VISA。

VISA 总线 I/O 软件是一个综合软件包,不受平台、总线和环境的限制。VISA 是虚拟
仪器系统 I/O 接口软件。 基于自底向上结构模型的 VISA 创造了一个统一形式的 I/O 控 制函数集。一方面,对初学者或是简单任务的设计者来说,VISA 提供了简单易用的 控制函数集,在应用形式上相当简单;另一方面,对复杂系统的组建者来说,VISA 提供了非常强大的仪器控制功能与资源管理。

VISA 的另一个显著优点是其平台可移植性。 任何调用 VISA 函数的程序可以很容
易地移植到其他平台上。VISA 定义了它自己的数据类型,这就避免了譬如当移植程 序时由于整数类型大小不一致导致的问题。 当然,有了 VISA 并不是说用户不需要安装特定的仪器驱动程序就可以直接和仪 器通信了。恰恰相反,VISA 就是通过特定的仪器驱动程序和仪器通信的。因此在使 用 VISA 与仪器通信之前必须安装仪器驱动程序,并需要通过 MAX 进行合适的配置。 注意,该仪器驱动程序必须提供 VISA 接口才能使用户 VISA 与该仪器通信。当然用 户也可以通过 NI 提供的 VISA Driver Development Wizard 为自己的仪器编写 VISA 驱 动。 5.3.3 USB RAW 类

USB RAW 模式允许通过对底层的 USB 通讯协议的访问来进行应用开发。 NI-VISA USB RAW 模式支持中断、批量和控制等数据传输模式,而不支持 Isochronous 传输模
式。NI-VISA 提供到目标 USB 设备的传输通道,但是所传输的数据格式取决于不同的 目标设备[39]。 与 USB RAW 类设备进行通讯比较复杂, 因为每个设备可以使用各自的通讯协议。 每种类型的管道都传输不同的信息。此外,任何数量的端点都可以是任何端点类型。

NI-VISA 探测到 USB 仪器时,它会对仪器进行自动扫描,寻找各种类型的最低可用端
43

第五章 数据采集系统 LabVIEW 设计

点。VISA 探测到最低可用端点后,即将该值赋予适当的 VISA 属性。bulk in 端点和

bulk out 端点分别存储在 VI_ATTR_USB_BULK_IN_PIPE 属性和 VI_ATTR_USB_BU LK_OUT_PIPE 属性之中。 interrupt in 端点存放在 VI_ATTR_USB_INTR_IN_PIPE 属性
之中。如果值为-1,则表示 USB 设备不支持这种类型的管道。对于控制型管道,只有 端点 0 才受到支持。 在 LabVIEW 中, 使用“Write VISA Property (写入 VISA 属性) ” 节点。

NI-VISA 有四种通过 USB 管道传输数据的功能。 在能够使用这些功能与设备进行
通讯之前,还需要使用 VISA USB 属性建立通讯协议。以下是对可用功能的描述。使 用 VISA USB Control In 和 VISA USB Control Out 来通过控制型管道传输数据。使用

VISA Read 和 VISA Write 来通过批量型管道传输数据。
根据 USB 协议,任何传输都是由主机(host)开始的,DSP 的前台工作就是等待。 主机 PC 首先要发送令牌包给 USB,68013 接收到令牌包就给 DSP 发中断,DSP 进入 中断服务程序。首先读 68013 的中断寄存器,判断 USB 令牌包的类型,然后执行相应 的操作。

5.3.4 LabVIEW 及其调用 VISA 的条件
当进行 USB 通信时,VISA 提供了两类函数供 LabVIEW 调用,USB INSTR 设备 与 USB RAW 设备。USB INSTR 设备是符合 USBTMC 协议的 USB 设备,可以通过使 用 USB INSTR 类函数控制,通信时无需配置 NI—VISA;而 USB RAW 设备是指除了 明确符合 USBTMC 规格的仪器之外的任何 USB 设备,通信时要配置 NI—VISA[38]。 (1) 配置 NI—VISA 的步骤 ① 使用 Driver Development Wizard(驱动程序开发向导)创建 INF 文档; ② 安装 INF 文档,并安装使用 INF 文档的 USB 设备; ③ 使用 NI—VISA Interactive Control(NI—VISA 互动控制工具)对设备进行测试, 以证实 USB 设备己经正确安装,并获得 USB 设备的各属性值。 (2) 与 NI—VISA 相配合的 LabVIEW 模板中 VI 子节点

Vi0pen,打开并指定 VISA resource name 的设备的连接。 ViProperty,VISA 设备的属性子节点,可以设置端点或传输方式。 ViWrite,向 VISA resource name 指定的设备写入数据。 ViRead,从 VISA resource name 指定的设备读出数据。 ViClose,结束设备读写并关闭与指定设备的连接。
(3) USB RAW 设备读写的操作时序

USB RAW 设备读写的操作时序如图 5.4 所示

44

第五章 数据采集系统 LabVIEW 设计

打 开 V IS A 设 备

设 定 V IS A 设 备 的 属 性 节 点 参 数 (指 点 端 点 和 传 输 方 式 )

读 写 U S B R A W (发 送 命 令 或 字 节 数 )

关 闭 V IS A (释 放 V IS A 设 备 所 占 有 的 资 源 )

图 5.4 USB RAW 设备的操作时序

经过以上步骤之后,选择好对应的资源名就可以在 LabVIEW 中使用打开、关闭、 读和写等操作 USB 设备了。 5.3.5 配置 NI—VISA 的步骤详细介绍 (1) 使用 Driver Development Wizard 创建 INF 文档 为了使用 NI-VISA, 必须先让 Windows 将 NI-VISA 作为设备的缺省驱动程序使用。 在 Windows 环境中,可以通过 INF 文档做到这一点。NI-VISA 中包含的 VISA Driver

Development Wizard(DDW)可以为 USB 设备创建一个 INF 文档[40]。
选择 Start Programs National Instruments VISA VISA Driver Developer Wizard, 打开 DDW。出现如图 5.5 所示的窗口。可以用这个向导为 USB 设备创建一个 INF 文 档。

图 5.5 VISA DDW 硬件总线窗口

点击下一步,出现如图 5.6 所示的 VISA DDW 基本设备信息窗口。

45

第五章 数据采集系统 LabVIEW 设计

图 5.6 VISA DDW 基本设备信息窗口

进行这一步时,需要清楚 USB 仪器的 USB 供应商 ID 和产品 ID。这些数字可以 在安装 USB 设备的时候对其进行确认,并在想要与设备通讯的时候,寻找它的地址。 依据 USB 的规格,两个数字都是 16 位十六进制数字,并应该由设备制造商提供。对 于本文选择的 USB 控制芯片 CY7C68013,供应商 ID 和产品 ID 则分别是 0x04B4 和

0x0081,点击下一步出现如图 5.7 所示的输出文档属性窗口。

图 5.7 VISA DDW 输出文档属性窗口

点击下一步 INF 文档就被建好并保存在您指定的位置了。 安装 INF 文档和 USB 设备步骤: 复制 INF 文档并将其放入 INF 文件夹。在 Windows XP 中,这个文件夹的位 置通常是:“C:\WINDOWS\INF”。
46

第五章 数据采集系统 LabVIEW 设计

右击 C:\WINDOWS\INF 文件夹中的 INF 文件,然后点击 Install。这个过程为 您的设备创建了 PNF 文档。您现在就可以准备安装 USB 设备了。 连接 USB 设备。因为 USB 具有热拔插功能,所以 Windows 能够探测到 USB 设备,设备接上 USB 端口之后,立即会打开“添加新硬件向导”(Add New

Hardware Wizard)。遵照屏幕上有关向导程序的指导行事。如果准备为该设
备选择驱动程序,可以浏览 INF 文件夹,并选择刚才使用 DDW 创建的 INF 文档。 (2) 使用 VISA Interactive Control 测试通讯情况 打开 Measurement & Automation Explorer(MAX)。选择 View Refresh 刷新界面。

USB 设备应该如图 5.8 所示,USB 设备出现在 Devices and Interfaces 栏目下面。现在 USB 设备已经安装和设置完毕,可以使用 NI-VISA 了。

图 5.8 Measurement&Automation Explorer 中显示的 USB 设备

使 用 USB 设备的 VISA 仪器描述符,通过 VISA 与设备进行通讯。打 开

Measurement&Automation Explorer , 以 测 试 与 该 设 备 的 通 讯 情 况 。 选 择 Tools?NI-VISA?VISA Interactive Control,出现如图 5.9 所示窗口.

图 5.9 VISA 交互控制
47

第五章 数据采集系统 LabVIEW 设计

VISA 交互控制(VISAIC)是一个实用程序,可用来轻而易举地与任何 VISA 资
源进行通讯。做好使用 VISA 的配置之后,USB 设备就会被列入 USB 分项之中。双击 设备,打开设备的 VISA 对话框。应出现如图 5.10 所示的窗口。

图 5.10 “VISA 交互控制”打开 VISA 对话框

点击上图中的“View All Settable Attributes” ,出现下面所示的有关 USB 设备的属 性值。其中说明了控制、批量和中断传输的端点号,以及是否支持各种类型的传输。

Timeout Value = 2000 Maximum Queue Length = 50 Termination Character = 0x0A Termination Char Enable = VI_FALSE IO Protocol = 1 Suppress End on Reads = VI_FALSE USB Maximum Interrupt Size = 1 USB Control Pipe = 0x0000 USB Bulk-Out Pipe = 0xFFFF USB Bulk-In Pipe = 0xFFFF USB Interrupt-In Pipe = 0xFFFF USB Alternate Setting = 0 USB Bulk-Out Pipe Status = 0 USB Bulk-In Pipe Status = 0 USB Interrupt-In Pipe Status = 0 USB End Mode for Reads = 5
(3) 利用 VISA 与 USB 设备通信 如图 5.11 所示,选择好对应的 VISA resource name 就可以进行读写操作了。
48

第五章 数据采集系统 LabVIEW 设计

图 5.11 VISA 与 USB 设备通讯

5.3.6 NI—VISA 的 VI 子节点

VISA 打开子节点

图 5.12 VISA 打开子节点

此节点用于打开指定的 VISA 设备。 “VISA 资源名称”是一个 VISA 会话打开的 资源以及它的类。VISA 设备有很多种,在这里用到的是 USB RAW 类设备,所以必须 在输入到此节点的输入控件中进行设置
[41~42]

。设置方法如图 5.13 所示。VISA 打开子

节点中的错误输入和错误输出是用来检测 VI 或 Function 是否正确运行。

图 5.13 设置 USB RAW 类

VISA 关闭子节点

图 5.14 VISA 关闭子节点
49

第五章 数据采集系统 LabVIEW 设计

有 VISA 打开子节点,那肯定就有关闭节点了,这个节点的作用就是它结束设备 读写,关闭由 VISA 会话指定设备的通讯过程,并释放资源。

VISA 写入子节点

图 5.15 VISA 写入子节点

VISA 写入子节点用于向指定的设备写入数据, “写入缓冲区”表示将要写入设备
的数据。 VISA 读取子节点

图 5.16 VISA 读取子节点

VISA 读取子节点可以从指定的 VISA 设备中读取数据, “字节总数”表示读入缓
冲区的字节数, “读取缓冲区”包含了从设备读取的数据。 在利用 NI—VISA 来控制 USB 设备需要注意的是,它只支持三种类型的传输:控 制、批量和中断,不支持同步传输。对一些第三方设备驱动,如果指定了设备驱动, 那么就必须重新设置此设备驱动为 VISA 驱动。

5.4 数据库模块设计
使用 LabVIEW 编写测试测量应用程序时,很多情况下不可避免地需要对数据进 行存储、管理和查询。对于少量数据,可以简单地通过读写文件来实现。但是对于大 量数据或数据之间存在复杂关系时,就需要通过数据库来存储、管理和查询[11]。

LabVIEW 本身并不能直接访问数据库,但是由于 LabVIEW 提供了丰富的外部程
序接口,例如 ActiveX 和.NET,因此在 LabVIEW 中可以通过 ADO(ActiveX Data

Object)、DAO(Data Access Object)或 ADO.NET 等方法与数据库连接。ADO 是使用最
为广泛的技术, 因为 Windows 操作系统已经包含了 ADO 组件, 而且 ADO 通过与 ODBC 连接能访问任何支持 ODBC 的数据库,例如 SQL Server、Oracle、MySQL、FoxPro、

Microsoft Access 等。因此本文介绍的数据库访问将基于 ADO 技术。
令人高兴的是,用户不必从最底层直接使用 ADO 控件,因为已经有人编写了基 于 ADO 技术的 LabVIEW 数据库访问包——LabSQL。而且它是完全免费并开源的。
50

第五章 数据采集系统 LabVIEW 设计

通过 LabSQL,用户可以直接在 LabVIEW 中以调用子 VI 的方式轻松实现对数据库的 访问。此外,NI 也提供了专门用于数据库访问的附加工具包——LabVIEW 数据库连 接工具包(Database Connectivity Toolkit)。它也是基于 ADO 技术的,使用起来也较方 便,但是价格比较昂贵,一般的用户也不使用。本文使用的是 LabSQL。 (1) LabSQL 的安装

LabSQL 是一个完全免费并开源的数据库访问工具, 可以在 http://jeffreytravis.com/
网站上得到。由于它完全就是一个由许多 VI 组成的包,因此可以直接像调用普通 VI 一样调用其中的 VI。为了方便,也可以把它添加到 Functions Palette 的 User Libraries 面板下,从而方便调用。 (2)LabSQL VIs

LabSQL VIs 按照 ADO 对象分成了 3 类,并分别位于不同的文件夹:Command、 Connection 和 Recordset。 Command VIs 的功能是完成一系列基本的 ADO 操作,例如创建或删除一个 Command、对数据库的某一个参数进行读或写等。 Connection VIs 用于管理 LabVIEW 与数据库之间的连接。 Recordset VIs 用于对数据库中的记录进行各种操作,例如创建或删除一条记录,
对记录中的某一个条目进行读写等。 最顶层提供了 3 个 VI,其中最常用的就是 SQL Execute.vi。它将底层的一些 VI 封装起来提供了一个最简单的接口,即直接执行 SQL 语句。通过 SQL 语句可以执行 任何数据库操作。SQL(Structures Query Language,结构化查询语言)是关系型数据库 管理系统的标准语言,因此用它可以访问各种支持 SQL 语言的关系型数据库。SQL 语言非常简单。图 5.17 和 5.18 是使用 LabVIEW 实现保存数据和查询数据库的程序框 图。

图 5.17 保存数据程序框图

图 5.18 查询数据程序框图
51

第五章 数据采集系统 LabVIEW 设计

仅通过执行 SQL 语句基本上可以实现大部分数据库操作。 但是若需要对记录集中 的单条记录进行更灵活的操作,则需要通过 Recordset VIs 实现。如果需要支持存储过 程或视图,则需要借助 Command VIs。 下面是通过 ADO Recordset GetString.vi 逐个获得 SQL 查询语句返回的记录集中的 条目。该 VI 每当返回记录集中的一个条目时,游标就会自动向后移动,当游标移动到 记录集末尾时便会返回 EOF 标志。如图 5.19 所示是逐个获得记录集中的单条记录程 序框图[11]。

图 5.19 逐个获得记录集中的单条记录程序框图

5.5 报表生成方案设计
5.5.1 PDF 格式报表的生成
当今数据库表的应用是相当广泛的,但数据库表只能在数据库管理系统及其应用 系统中使用,数据库表的使用是具有局限性的。而可移植文档格式(PDF)已成为世界 上安全可靠地分发和交换电子文档及电子表单的实际标准。 PDF 是一种通用文件格式, 不管创建源文档时使用的是哪些应用程序和平台,它均可以保留任何源文档的字体、 图像、图形和版面设置。Adobe PDF 文件已经过压缩和完善处理,可由任何人通过免 费 Adobe Reader 软件对其进行共享、查看和打印。作为一种开放型的文件格式规范,

PDF 适用于要开发工具以创建、查看或处理 PDF 文档的任何人[43]。
在这篇文章中,整个数据采集系统不仅提供报警,而且将报警的时间以及通道都 显示在主界面上,还可以将这些报警数据以 PDF 文件保存起来。LabVIEW 本身不自 带生成 PDF 文件的工具包, 作者使用了荷兰 CARYA 公司的 Carya PDF Toolkit V1.0 for

LabVIEW 这个免费的工具包。下图 5.20 为将报警数据生成 PDF 文件的程序框图。

52

第五章 数据采集系统 LabVIEW 设计

图 5.20 将报警数据生成 PDF 文件的程序框图

PDF Toolkit 工具包中包括:Document,Insert,Attach,Set,Get,Tools 这么多 VIs,文章中使用的是免费版,功能有限制,只是为了学习,如果用于其他商业用途那
就必须购买专业版本,这个工具包针对 LabVIEW 不同的版本其版本也相应地有不同, 下载地址为 www.carya.nl。 由于 PDF 文档格式是国际通用的电子文档交换事实标准,被许多国家采用。PDF 文档可以在各种平台下阅读、编辑、发布。所以将数据库表转换为 PDF 文档格式,将 会拓宽数据库的应用范围。

5.5.2 报表打印
(1) 基于ActiveX 技术的报表打印

ActiveX 是由 Microsoft 公司定义的用于 Internet 的一种对象链接与嵌入(OLE)技
术, 它能把两个应用程序组合在一起, 使其像一个应用程序一样工作[2]。 Microsoft Excel 是强大的数据处理软件,同时可以把它当成一个 ActiveX Automation 服务器,把

LabVIEW 当成客户端,去控制 Excel 的属性和执行方法,从而完成生成报表、打印报
表的功能。 解决思路:用 Excel 预先编制好符合标准的报表,把采集到的数据利用 LabVIEW 的程序间通信功能传递到 Excel 上,并且把各项数据分别写入表格中预先规定好的位 置,生成报表,最后 LabVIEW 通过 Excel 属性的设置和方法的调用来实现报表的打印 输出。这种方式中,服务器端等待客户端向它发出命令,然后根据命令执行某个特殊 功能或者对客户端进行数据收发。LabVIEW 采用 ActiveX 方式向 Excel 发送对某单元 格填写数据的请求, Excel 响应请求、 接收测量数据并通过更新报表来实现报表的生成。 或者,LabVIEW 采用 ActiveX 方式向 Excel 发送打印某个工作表的请求、Excel 响应 请求并打印输出报表。其通信模型如图 5.21 所示[44]。

53

第五章 数据采集系统 LabVIEW 设计

用Automation Open 函数 打开一个指向 Automation 的服务器的参考号

用属性接点设置、获得 对象的属性

用插入接点 调用对象的方法

用Close Reference 函数关闭指 向 Automation 的参考号

图 5.21 基于 ActiveX 的通信模型

(2) 基于前面板的打印 基于前面板的打印技术相对比较简单,就是把需要打印的一些数据传递到这个前 面板上,数据传递可以用全局变量来实现,当点击图 5.3 中的打印按钮时,系统就会 响应这个事件,这个过程使用了 LabVIEW 中的事件结构,这时候系统会动态调用一 个前面板。动态调用程序框图如图 5.22 所示。当然用于打印的这个前面板需要设置

VI 打印属性,要选中“每次 VI 执行结束自动打印前面板” ,这样就可以完成前面板的
打印了。

图 5.22 动态调用打印前面板

5.6 事件结构的使用
事件驱动是 Visual Basic,Visual C++等编程语言早已具有的基本功能。使用事件驱 动可以让 LabVIEW 应用程序在没有指定事件发生时处于休息状态,直到前面板窗口 中有一个事件发生时为止。在这段时间内,可以将 CPU 交给其他的应用程序使用,这
54

第五章 数据采集系统 LabVIEW 设计

大大提高了系统资源的利用率。事件结构与框图程序中的其他节点、模块在执行时的 流程规则没有什么不同,当没有任何事件发生时,事件结构就会处于睡眠状态,直到 有一个或多个预先设定的事件发生时,事件结构才会自动苏醒,并根据发生的事件执 行用户预先设定的动作。 事件结构是 LabVIEW 的一个特殊的节点,有一些与其它结构不同的特点,正确 的利用这些特点来编程,可以大大减少程序的复杂程度,并且可以实现很多方便用户 的功能,但使用不当时,可能会引起一些不必要的错误。在使用过程中要注意一些问 题。事件结构一般需要放在 while 循环中使用,事件结构只响应用户交互操作引发的 事件。需要注意的是避免在同一个循环中使用两个事件结构,因为事件结构按事件发 生的顺序来处理事件。当事件结构处理完毕一个事件后,循环继续运行。如果在一个 循环中使用两个事件结构,则只有当两个事件结构都处理完毕各自设定的事件后,循 环才会继续运行。如果两个事件结构没有按正确的顺序处理事件,用户界面可能会挂 起。 其中在编辑事件结构分支的时候, 要特别注意 “锁定前面板直至本事件分支完成” , 如果选中的话,一旦程序响应这个事件,那么前面板的其他按钮都被锁定,一直到这 个事件分支完成。

5.7 LabVIEW 数据分析模块的设计
LabVIEW 作为自动化测试、测量领域的专业软件,其内部集成了 600 多个分析函
数,用于信号生成、频率分析、概率、统计、数学运算、曲线拟合、插值、数字信号 处理等各种数据分析应用。 信号调理是在信号分析前所做的必要处理, 其目的在于尽量减少干扰信号的影响, 提高信号的信噪比,信号调理的好坏直接影响到分析效果。常用的信号调理方法有加 窗、滤波等。

5.7.1 窗函数
窗函数的作用包括截断信号、减少谱泄露和用于分离频率相近的大幅值信号与小 幅值信号。在实际测量中,采样长度是有限的。使用了平滑窗功能可以减弱频谱变形, 可以把从 DAQ 板上来的信号中的频谱遗漏最小化[11]。 下图 5.23 是信号的未加窗频谱与加窗后频谱的比较。

55

第五章 数据采集系统 LabVIEW 设计

图 5.23 信号的未加窗频谱与加窗口频谱的比较

5.7.2 逐点分析
在现代数据获取系统中,实时性能变得越来越重要。而传统的基于缓冲和数组的 分析过程需要先将采集到的数据放在缓冲区或数组中,待数据量达到一定要求时才能 将数据一次性进行分析处理。因此基于数组的分析不能实时的分析采集到的数据。逐 点分析中, 数据分析是针对每个数据的, 对采集到的每一点数据都可以立即进行分析, 而且分析可以是连续进行的。因此通过实时分析,用户可以实时地观察到当前采集数 据的分析结果,从而使用户能够跟踪和处理实时事件。逐点信号分析具有非常广泛的 应用前景。实时的数据采集和分析需要高效稳定的应用程序,逐点分析是高效和稳定 的,对于本文采用 DSP 芯片的数据采集系统是非常适用的。如图 5.24 所示是逐点分 析滤波与传统的基于缓冲和数组分析滤波的比较,可以看出逐点分析滤波(在线分析) 和传统的方法(离线分析)结果是一致的,但是在线分析在数据采集的同时就给出了分 析结果,而且不需要对采集到的数据进行缓存。

56

第五章 数据采集系统 LabVIEW 设计

图 5.24 逐点信号分析和基于数组分析滤波的比较

5.8 本章小结
本章详细介绍了整个数据采集系统的上位机软件程序的实现。包括上位机与数据 采集硬件的通信,对采集到的数据进行管理,报表的生成、打印以及对信号的分析。 详细介绍了利用 LabVIEW—VISA 实现上位机与采集卡的通讯,通过这种方式可以避 开编写大量 USB 驱动,节省开发时间,接着介绍了如何对采集到的数据进行管理,利 用 LabSQL 编写了数据存储、查询等程序,然后介绍如何生成 PDF 格式文档以及如何 使用 ActiveX 和前面板打印数据,最后说明了如何实现上位机数据分析模块。

57

第六章 总结与展望

第六章 总结与展望
6.1 结论
本课题研究的是基于 LabVIEW 语言的多通道数据采集。数据采集技术是当今信 息技术的重要组成部分之一,随着科学技术的不断发展,数据采集电子测量技术在各 个领域得到了越来越广泛的应用,同时也对数据采集技术提出的要求也越来越高。基 于 LabVIEW 的数据采集系统是自动测试系统的发展方向。通过这个课题的研究,认 识到虚拟仪器技术在仪器控制、测量测试领域的地位和作用。同时,随着 USB 接口技 术的普及,以及其自身突出的优点(如即插即用、纠错能力强等) ,USB 接口作为仪 器的接口已成为当今的发展趋势。把 LabVIEW 与 USB 接口有机的结合在一起,可以 说是优势互补,必将对测控技术的发展起着重大作用。 本系统采用 LabVIEW 作为软件开发平台,选择 DSP 芯片作为整个数据采集硬件 系统的 CPU,通过 USB 接口实现系统间的通信,对基于 LabVIEW 的多通道数据采集 系统的总体结构及其实现进行了研究,它主要由三部分组成:硬件部分、通信接口部 分以及上位机软件部分。论文主要工作如下: (1) 硬件部分, 查阅大量的有关数据采集方面的资料基础上, 再结合本系统速度、 精度的需要,采用了数字信号处理器进行了数据采集卡的开发; (2) 通信接口部分, 数据采集卡与上位机之间的通信采用通用串行总线方式, USB 接口因其具有独到的优势,仪器接口使用 USB 已经成为一种趋势。在本系统中尝试使 用 LabVIEW—VISA 实现了对 USB 芯片的控制,效果良好; (3) 上位机软件部分,利用 LabVIEW 编写了数据采集系统的应用软件,包括数 据处理和管理系统, 界面直观, 并可以直接生成 PDF 格式报表, 方便重要数据的保存。

6.2 展望
由于基于 LabVIEW 的多通道数据采集系统还有许多需要完善和改进的地方,作 者结合研究过程中的一些体会,给出如下建议: (1) 本系统是无源互调测试控制系统的数字控制部分和显示部分,系统中的 AD 采样位数(8 位)不够高,所以精度不是很高,只能观察到 3 阶谐波,有待改进; (2) 本系统中的硬件部分采用了 DSP 作为采集卡的 CPU, 在这个系统中并没有充 分发挥它的优势,只进行一些简单的数据预处理,在这里可以考虑采用 FFT 算法,并 配合高精度、高速度的 AD,可以得到更高阶次的谐波; (3) 整个上位机应用程序虽然能实现需要的功能,但是效率不够高,在优化 VI 性能方面有待改进,从使用的效果来看,程序的稳定性需要提高,对内存管理、读写外
58

第六章 总结与展望

部设备以及子 VI 调用等方面进行改进,可以使程序能稳定高效地运行。

59

参考文献

参考文献
[1] 马明建.数据采集与处理技术.第二版.西安:西安交通大学出版社,2005.9. [2] 杨乐平,李海涛,赵勇,杨磊,安学滢.第一版.LabVIEW 高级程序设计.北京:清华大学出 版社,2003.4. [3] 杨乐平.LabVIEW 程序设计与应用[M].北京:电子工业出版社,2001. [4] 刘金星.基于 LabVIEW 和 VXI 总线的信号检测技术研究.[硕士学位论文].镇江:江苏科技 大学,2006. [5] 高向东.虚拟仪器技术综述.中国计量,2004,4-5. [6] 段广云.基于 DSP 的数据采集系统设计.青海大学学报(自然科学版),2005.5. [7] 高菲.基于 DSP 的振动信号分析.[硕士学位论文].武汉:武汉科技大学,2006. [8] 张弘.USB 接口设计.西安:西安电子科技大学出版社,2002. [9] 王成儒,李英伟.USB2.0 原理与工程开发.北京:国防工业出版社,2004. [10] 王红茹.虚拟仪器未来市场趋势分析.商业研究,2004.1. [11] 陈锡辉,张银鸿.LabVIEW8.20 程序设计从入门到精通.第一版.北京:清华大学出版社, 2007.8. [12] Robert H.Bishop.LabVIEW7 实用教程.乔瑞萍,林欣.北京:电子工业出版社,2005. [13] 戴小俊, 杨绪光, 丁铁夫, 郑喜凤. 基于 USB2.0 的告诉数据通信接口设计. 电子器件, 2006.12. [14] EZ-USB FX2 Technical Reference. [15] 王芳. 高速信号采集处理系统及其应用研究 . [硕士学位论文]. 西安: 西北工业大学, 2006. 16] 孙二敬.基于 LabVIEW 的多传感器信息采集平台[硕士论文].北京交通大学.2006.1. [17] 廖军同,鲁新平.模数转换器 AD9288 及其应用.山西电子技术.2006.5. [18] TMS320C55 Chip Support Library API Reference Guide. [19] TMS320VC5509 DSP External Memory Interface (EMIF) Reference Guide. [20] TMS320VC5509A Data Sheet. [21] TMS320VC5509 DSP Analog-to-Digital Converter (ADC) Reference. [22] TMS320VC5509A Fixed-Point Digital Signal Processor Data Sheet. [23] TMS320VC5509 DSP Direct Memory Access (DMA) Controller Reference Guide. [24] TMS320VC5509 DSP Timers Reference Guide. [25] 王念旭.DSP 基础与应用系统设计.北京:北京航空航天大学出版社,2001.8. [26] 程 明,赵 恒,陈 莹.基于 TMS320VC5410 的最小系统设计.现代电子技术,2006.4. [27] 武晓冬, 戴波. 基于 FIFO 的高速 A/D 和 DSP 接口设计. 北京石油化工学院学报. 2006, 6(2). [28] 常丹华, 王军波. 基于 DSP 和 USB 的高速数据采集与处理系统设计. 电子技术应用. 2006.11. [29] 高鹏,安涛,寇怀成.Protel99 入门与提高.第一版.北京:人民邮电出版社,2002.2.
60

参考文献

[30] USB2.0-CY7C68013A-56S 使用说明. [31] EZ-USB FX2LP Datasheet. [32] 高世杰.基于 USB2.0 接口数据通讯校验装置的实现. [硕士学位论文].长春: 中国科学院 研究生院(长春光学精密机械与物理研究所),2006. [33] 王成儒,李英伟.USB2.0 原理与工程开发.北京:国防工业出版社,2004.1. [34] 方尚侠.基于 LabVIEW 和 USB 接口的虚拟晶体管特征图示仪.[硕士学位论文].成都:电 子科技大学,2006. [35] 焦斌亮 .基于 EZ-USB FX2 实现的高速数据采集系统.仪表技术与传感器,2005.7. [36] 吴友宇,秦神祖,杨菊芳,梁红.CAN 总线适配卡驱动程序开发.武汉理工大学学报(信息 与管理工程版),2004.3. [37] 伊淑梅. 基于 LabVIEW 的切削力测量虚拟仪器设计. [硕士学位论文]. 河北:华北电力大学, 2005. [38] 余志荣. 基于 NI-VISA 与 LabVIEW 的 USB 接口应用设计. 单片机与嵌入式系统应用, 2007.1. [39] National Instruments.NI-VISA Programmer Referencemanual.http://digital.ni.com.2006. [40] National Instruments.使用 NI-VISA 控制 USB 设备.http://digital.ni.com.2006. [41] Jamal.Rahman.Graphical object.Oriented programming with LabVIEW Nuclear Instruments and Methods in Physies Research.1999. [42] Whitley,K.N;Blackwell,Aam F.,Visual Programming in the Wile:A Survey of LabVIEW Programmers.Journal of Visual Languages&Computing.2004,12(4) [43] 刘凤玲,王之东.将数据库表转换为 PDF 文档.中国科技信息,2007.5. [44] 郑默思,周晓军.基于 ActiveX 的虚拟仪器报表打印方法. 机电工程,2006.12.

61









本论文是在导师王建华教授的亲切关怀和悉心指导下完成的。两年半以来,导师 在学习上给予了我很多启迪,在生活上给予了我无尽的关心,为论文的写作打下了坚 实的基础。导师渊博的知识、严谨的治学态度、诲人不倦的精神、高尚的品格以及平 易近人的作风使作者终生受益。在此谨向导师王建华教授表示衷心的感谢和崇高的敬 意。 本文的顺利完成,还要感谢张冰教授、朱志宇副教授的指导,感谢他们热心的帮 助和悉心的指点,他们为我的论文写作提供了良好的工作环境并给予了诸多的帮助和 指导。 同时还要感谢邹小芳、王兵、王海亮、眭志方、赵磊等同学在我的论文进行中所 给予的大力帮助。 感谢母校,感谢在研究生就读期间各位老师的关心和教导。 最后,感谢一直关心支持我的家人和朋友们。

62

攻读硕士学位期间发表的学位论文

攻读硕士学位期间发表的学位论文
[1] 在 LabVIEW 中利用 DLL 实现数据采集。微计算机信息,已录用。许剑,邹小芳, 王建华 [2] 便携式高速数据采集处理系统设计。仪表技术与传感器,已录用。邹小芳,许剑

63

附录 A 实物图片

附录 A 实物图片

图 A1 测试现场

图 A2 上位机测量显示与控制界面(产品模式)

64

附录 B 部分硬件原理图和 PCB 图

附录 B 部分硬件原理图和 PCB 图
V33V R13 10K DSP_P4 GND
3 2 1

Header 3 P7 * RTCINX1 RTCINX2 112 111 14 15 13 80 79 86 85 84 82 81 3 2 4 16 17 19 20 21 22 23 25 26 27 77 76 75 74 71 70 69 67 66 65 63 62 61 59 58 57 DSP_RE DSP_OE DSP_WE DSP_RDY DSP_CE DSP_RE DSP_OE DSP_WE DSP_RDY DSP_CE EMU1 EMU0 TMS TCK TRST TDI TDO Y1 24M C19 20pF P8 TMS TDI VCC TDO TCK EMU0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 JTAG_DSP R14 R15 R16 TRST
1 2 601 501 6 141 241 341 9 01 21 101 13 53 23 82 43 83 93 04 24 34 44 64 74 84 05 15 25 45 55

L2 V33V V33V L4 10mH C20 C21 10uF/6.3V 0.1uF GND GND ADVDD V33V C22 0.1uF C23 0.1uF GND V15V C24 0.1uF C27 0.1uF C28 0.1uF GND V33V R17 4.7K VCC SDA 8 V15V L3

10mH C18 20pF
FX 2SDH/MEMKLC 51OIPG/01ADS EWDS SACDS 41OIPG/SARDS 31A 21A 11A 01A 9A 8A 7A 6A 5A 4A 3A 2A 1A 0A 1NIA 0NIA 7OIPG 6OIPG 4OIPG 3OIPG 2OIPG 1OIPG 0OIPG

10mH

8 24 49 56 72 88 98 126 139 5 104 107 109 110

DVDD1 DVDD2 DVDD3 DVDD4 DVDD5 DVDD6 DVDD7 DVDD8 DVDD9/PLL_MODE USBVDD ADVDD AVDD RDVDD RCVDD CVDD1 CVDD2 CVDD3 CVDD4 CVDD5 CVDD6 CVDD7 CVDD8 CVDD9 RVDD1 RVDD2 RVDD3 TIN/TOUT SDA(I2C) SCL(I2C) INT0 INT1 INT2 INT3 INT4

X1 CLKOUT X2/CLKIN EMU1/OFF EMU0 TMS TCK TRST TDI TDO DP(USB) PU(USB) DN(USB)

GND

P9 EMU1 GND 24 1.5K 24 C31 50pF GND C32 50pF GND 5 4 3 2 1 USB

L5 L6

10mH 10mH

P10 1 2 3 6 7 4 E0 E1 E2 SCL WC GND M24C01MN6 GND V33V V33V

R18 4.7K

18 29 41 68 78 83 95 118 132 30 53 87 140

TMS320VC5509A

GPIO8/RE OE WE RDY CE0/GPIO9 CE1/GPIO10 CE2 CE3/GPIO11 BE0 BE1 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

C29 22pF DSP_P3 1 2 3 4 5 Header 5

C30 22pF

DSP_P2 8 7 6 5 4 3 2 1 Header 8

5 DSP_INT[0..2] DSP_INT[0..2] DSP_INT0 DSP_INT1 DSP_INT2 R19 10K R20 10K R21 10K R22 10K

89 90 93 94 96 97 99 91

RESET

DSP_DA7 DSP_DA6 DSP_DA5 DSP_DA4 DSP_DA3 DSP_DA2 DSP_DA1 DSP_DA0

2RKLC/DMC.2CMM 2RD/TAD.2CMM 2RSF/2TAD.2CMM 2XD/KLC.2CMM 2XKLC/0TAD.2CMM 2XSF/3TAD.2CMM

1RKLC/DMC.1CMM 1RD/1TAD.1CMM 1RSF/2TAD.1CMM 1XD/KLC.1CMM 1XKLC/0TAD.1CMM 1XSF/3TAD.1CMM

SSVA SSVDA SSVBSU 8SSVC 7SSVC 6SSVC 5SSVC 4SSVC 3SSVC 2SSVC 1SSVC 801 301 1 831 221 001 37 46 54 33 11

SSVCR SSVDR 311 411

0XD 0XSF 0XKLC 0RD 0RSF 0RKLC

8SSVD 7SSVD 6SSVD 5SSVD 4SSVD 3SSVD 2SSVD 1SSVD 441 511 201 29 06 73 63 7

DSP_DA[0..7]

DSP_DA[0..7]

321 021 121 611 911 711

031 821 921 421 721 521

131 331 431 531 631 731

C33 0.1uF

S1 SW-PB

GND

AGND GND

6 5 4 3 2 1

L7 V33V L8 AGND

10mH ADVDD 10mH C34 ADGND 0.1uF

DSP _P1 Header 6

V33V

图 B1 TMS320VC5509A DSP 芯片原理图
V33V C59 C60 C61 C62 C63 C64 100pF 100pF 100pF 100pF 100pF 100pF P16 PD7/FD15 PD6/FD14 PD5/FD13 PD4/FD12 PD3/FD11 PD2/FD10 PD1/FD9 PD0/FD8 PB7/FD7 PB6/FD6 PB5/FD5 PB4/FD4 PB3/FD3 PB2/FD2 PB1/FD1 PB0/FD0 3 2 1 56 55 54 53 52 32 31 30 29 28 27 26 25 38 37 36 9 8 CY_FD15 CY_FD14 CY_FD13 CY_FD12 CY_FD11 CY_FD10 CY_FD9 CY_FD8 CY_FD7 CY_FD6 CY_FD5 CY_FD4 CY_FD3 CY_FD2 CY_FD1 CY_FD0 CY_CTL2 CY_CTL1 CY_CTL0 CY_RDY1 CY_RDY0 GNDCY_FD[0..15] CY_FD[0..15]

R39 100K

FB1 10mH

C65 C67 22uF 2.2uF V33V GND R40

C66 0.1uF

05 93 43 42 81 41 6

10

GND

P17 5 4 3 2 1 USB_JK GND

GND

10K CY_IFCLK 20 CY_IFCLK CY_CLKOUT 5 CY_CLKOUT 49 51 C68 22pF 11 Y2 24MHz 12 C69 15 22pF 16

AVCC

IFCLK CLKOUT RESET WAKEUP

XTALOUT XTALIN DPLUS DMINUS SCL SDA PA0/INT0 PA1/INT1 PA2/SLOE PA3/WU2 PA4/FIFOADR0 PA5/FIFOADR1 PA6/PKTEND PA7/FLAGD/SLCS

CCV CCV CCV CCV CCV CCV CCV

2 1

CY7C68013

SCL SDA V33V R41 R42 2.2K 2.2K CY_PA0 CY_PA1 CY_PA2 CY_PA3 CY_PA4 CY_PA5 CY_PA6 CY_PA7

22 23 40 41 42 43 44 45 46 47

CY_CTL[0..2]

CY_CTL[0..2]

CTL2/FLAGC CTL1/FLAGB CTL0/FLAGA RDY1/SLWR RDY0/SLRD

CY_RDY[0..1]

CY_RDY[0..1]

DEVRESER DNG DNG DNG DNG DNG DNG DNG DNGA

CY_PA[0..7]

CY_PA[0..7]

图 B2 CY7C68013 USB 控制芯片原理图

12 84 53 33 91 71 7 4 31
R43 GND 10K

65

附录 B 部分硬件原理图和 PCB 图

1

2 2 4 3 2 1 3 2 1 1 3 5 7 9 11 13 1 2 4 6 8 10 12 14 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

3 5 6 7 8

4

5

6

1

2

2 2 2 2 1 2 2

1

2

2

1

1

7

8

2 1 2 1 1 1 1 2 1 1 8

1

1

2

2 9 10

7 2 2 2 1 1 6 2 1 2 1

1

1

1 2

2

2

1

5 1 2

2 6 2 1 4

1

2 1 5 2 3 1 2 1 2

1 2 4 1 2 2 1 3 2 1 1 1 2 2 1 2 1 2

1

24 23 22 21 20 19 18 17 16 15 14 13

2

1 1

2

2

1

1

2

25 26 27 2 28 29 30 31 32 33 34 2 35 36

12 11 10 9 8 7 6 5 4 3 2 1 2 1 2 2 37 38 39 40 41 42 43 44 45 46 47 48 1 2 1

1 1 2

2

1 1 2

2

1 1 1 0 1 2 2

1

1 1

2

2

1

1

2

3

4

5

1

2 1 2

1

2

2

1

2

3 2 2 2 2 1 1 1 1 2 1 4 1 1 1 1 2 2 2 1 2 1 2 1 2 2 1 2 1 2 2 1 1 2 1 2

0

2 6 7 8 9 10 2 1 5 4 3 2 1

1

1

2

2

1

2

1

2

2 0

1 2 1 2 2 2 1 1 1 2 1

2

1

1 1 28 27 26 25 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 2 2 1 55 56 1 1 2 2 1 2 0 1 2 1 1 1 2 2 3 2 4

1

2

1

1

1

2

2

2

1

1 2

4 1 4 1 8

24 23 22 21 2 7 20 19 3 6 18 17

2

3 2 3 4 5

16 15 14 13

2

1

2

2

2

1

12 11 10

1

2

1

1

1

2 2 2 2 2 1 2 2 1

9 8 7 2 1 6 1 1 1 1 2 1 1 2 5 4 3

2

1

5 6 7 8

4 3 2 1 2 1 2 1 2

1

2

1

2

1 2 2 9 7 5 3 1 1 2 1 2 1

3 1 2 1 1 2 2 2 1 2 1 10 8 6 4 2 1 2 1

图 B3 系统 PCB 图

66

基于LabVIEW的多通道数据采集系统的设计
作者: 学位授予单位: 许剑 江苏科技大学

相似文献(10条) 1.期刊论文 兰波.陈春俊.舒丽芬.LAN Bo.CHEN Chun-jun.Shu Li-fen LabVIEW在虚拟仪器远程数据采集系统中的应用 -中国测试技术 2006,32(6)
针对复杂的测试系统的数据采集方法的局限性,提出了一种基于虚拟仪器的远程数据采集系统的软件设计方法,介绍了网络化虚拟仪器及其软件开发平台LabVIEW.运用LabVIEW开 发了用于远程数据采集的虚拟仪器,并阐明了其网络协议、硬件、软件设计原理.利用服务监听机制和datasocket技术,通过局域网开发该虚拟仪器可实现网络测试数据的实时发布与 读取.

2.学位论文 王琪 基于LabVIEW虚拟仪器的单缸汽油发动机数据采集系统研究 2006
随着计算机技术的发展和虚拟仪器技术的广泛采用,内燃机测试技术开始向以微机为核心、虚拟仪器为软件平台的计算机辅助测试的方向发展。本课题是笔者在参加美国密歇根 大学(University of Michigan)与上海交通大学联合培养项目期间,于美国密歇根大学汽车实验中心(AUTO LAB of University of Michigan)的CFR(Cooperative Fuel Research,联合燃油研究)实验室中完成,课题主要针对ME438内燃机原理的课程教学内容,利用实验室现有资源,设计一套完善、准确、易于操纵和显示的发动机数据采集系统 ,通过采集发动机各工况参数数据,来分析发动机压缩比、空燃比、点火提前角等参数对发动机动力和经济性能以及尾气排放的影响。本文的主要研究工作如下: 1.根据数据采集系统的功能要求,利用实验室单缸汽油发动机实验台架和LabJack数据采集器的功能和特点,选取合适的传感器和其调理电路,搭建单缸汽油发动机数据采集系 统实验台架。该数据采集系统拥有14个模拟信号通道,1个内置温度传感器通道,采用16位分辨率,可识别的最小电压为0.009537V。 2.基于LabVIEW软件开发平台,设计虚拟仪器数据采集系统。针对LabJack数据采集器USB2.0接口总线结构,采用DLL动态连接库函数的方式来调用其驱动程序实现数据采集任务 。设计其初始化程序,对低速数据采集系统的14个模拟信号输入通道进行采集通道配置;根据各传感器的标定曲线拟合标定信号的换算公式,设计传感器算法子VI程序;根据功能要 求,设计虚拟仪器面板和数据处理、记录程序。 3.为验证本数据采集系统的采集性能,采用本数据采集系统对温度标定仪器进行数据采集的比较实验,比较其测量数据和温度标定仪器指示数据,用以验证温度传感器以及数 据采集器的精度和准确性。实验结果表明,低温度的信号,如冷却水进口温度和空气进口温度,测量误差较大,在2%左右,但这基本满足本论文对定性了解发动机工况参数的需要 ;而测量高温位置的温度信号如排气温度则更加准确些。 4.在变压缩比和变燃空比的发动机台架实验中,运用本数据采集系统采集常规工况参数。在变压缩比实验中,在变压缩比实验中,本数据采集系统采集到的工况数据与商业公 司高速采集系统得到的示功图分析结果结论一致;在改变燃空比实验中,采用本数据采集系统采集的尾气排放数据,完全符合内燃机过量空气系数对HC和CO排放影响的经验性曲线 ,验证了实验研究结论。这两个成功的发动机台架实验说明,在运用该数据采集系统对发动机台架实验进行数据采集并进行分析的过程中,其采集到的发动机工况数据可以解释发动 机运行情况,其趋势也符合理论分析的结果,验证了该系统在发动机实验台架上的数据采集真实、可靠,采用本数据采集系统配合高速数据采集系统,进行发动机工况的各项数据采 集,测量准确,易于操作,大大减少了以往发动机实验的工作量,可以满足实验用发动机的数据采集任务。

3.期刊论文 林建荣.吴桂初 LabVIEW虚拟仪器与Pasco数据采集系统接口研究 -浙江传媒学院学报2006,13(2)
本文论述了NI公司虚拟仪器软件开发平台LabVIEW 的特点.介绍了非NI公司的设备Pasco数据采集系统采集到的数据在LABVIEW 虚拟仪器中的处理.详细的讨论了组建和设计虚拟 仪器的方法,最后给出虚拟仪器逻辑分析仪测试实验结果.

4.学位论文 高倩 基于虚拟仪器的风洞数据采集系统软件设计 2008
本课题来源于某风洞技术改造项目。提高生产率、降低运营成本是工业生产型风洞生存的重要条件。本课题旨在通过技术改造,提高该风洞的试验能力、试验精度、试验效率和 自动化程度,使其具有先进的技术指标,试验质量和试验效率达到一个新的水平。同时,应用虚拟仪器技术改善系统的可靠性、可扩展性和可维护性。 本设计在充分借鉴前人的研究成果和认真分析用户需求的基础上,在LabWindows/CVI7.1开发环境中,依据结构化、模块化设计思想,应用数据采集技术、风洞测控技术和网络 通信技术完成了静态数据采集主模块、动态数据采集主模块和网络通信子模块等2个主模块、16个子模块的软件研究与开发工作。设计中应用多线程技术解决了数据采集和显示的同 步问题,改善了系统的性能;应用可用性设计方法提高了风洞试验用户界面的可学习性、灵活性和健壮性,界面操作方便、效率高;应用线程池机制设计了高效TCP服务器,提高了 对服务请求的响应速度和网络通信效率;应用Canvas控件设计了高效的打印子模块。设计的软件经调试和验收后,现已交付使用。经性能测试,全部技术指标都达到或超过了验收大 纲的要求。系统技改成本低,改造周期短。经项目试验实测,系统运行稳定、可靠。 本设计投入使用后,该风洞的各项性能都有较大提高,大大增强了市场竞争力,较好地适应了试验研究和产品研制的新要求。

5.会议论文 蔡志远.李洋 基于虚拟仪器的合成回路试验数据采集系统 2007
主要介绍了基于虚拟仪器技术的合成回路试验数据采集系统.介绍了虚拟仪器的基本概念.对系统硬件、软件设计方面进行了探讨.叙述了整个系统的组成,给出了硬件原理框图 .选用高速数据采集卡进行数据采集.软件选用了图形化编程语言LABVIEW进行编程.系统可以实现合成试验信号的实时采集,并可在显示器上以示波器的方式显示.

6.期刊论文 赵华.殷奎喜.袁生 基于labtech的数据采集系统的虚拟仪器软件设计 -电子技术2002,29(5)
文章介绍了一种虚拟仪器的开发平台--labtech,论述了该种虚似仪器利用开发平台--labtech的几种软件开发方法.

7.学位论文 陈清培 基于虚拟仪器的注塑机性能参数测试系统研究 2009
塑料注射成型机(简称注塑机)是一种重要的塑料成型机械,其产品在各个领域都有广泛的应用。注射成型是一个复杂的技术,产品的质量与注塑机的各项性能参数紧密相关。 为提高产品的质量,准确获取和调整各项性能参数是十分必要的。由于需要测量的参数众多,信号干扰大,且压力、温度等过程参数变化迅速,对测量技术的要求非常高。而传统的 测量方式具有测试精度低、测试速度慢、测试操作复杂等缺点。随着计算机技术与测量仪器技术的结合,虚拟仪器技术应运而生。作为传统仪器的革新产品,虚拟仪器是一种基于计 算机的数据采集系统,它通过软件将计算机硬件资源与仪器硬件有机地融为一体。虚拟仪器可以充分利用计算机的运算、存储和显示功能。因而在降低仪器成本的同时,使仪器的灵 活性和数据处理能力大大提高,可以更方便的组建测试系统,更好的满足多种测量要求。 本文作者引进了虚拟仪器的概念,结合模块化的设计思想,设计了一套以计算机为平台,包含信号采集与显示的数据采集系统。本文的任务包括硬件测试平台的设计和多通道数 据采集处理软件的开发。最后,本文对此系统在科研与教学中的部分应用实例进行了介绍,以说明此系统的应用特点。 在硬件测试平台设计中,本文首先分析了注塑机性能参数的测试方法及其信号特点;然后介绍了此自动化测试系统硬件平台的体系结构、数据采集设备和主计算机,并结合课题 的特点,自制了端子排,最后对常见的信号连接系统进行了说明。 在软件测试系统开发中,本文介绍了基于LabVIEW的多通道数据采集系统的开发方法,详细分析参数配置、数据采集处理、数据回放等功能模块设计过程,充分体现此软件的开 发方便,操作灵活,编制效率高的特点,并且显示软件在一台PC机上可实现多种仪器的分析处理功能。

8.会议论文 杜奇.于龙 基于虚拟仪器的机载成像光谱仪数据采集系统的研究 2006
高光谱遥感是当前国内外遥感界的一个研究热点,多年来,国内的一些遥感科研与应用部门如中科院技术物理研究所、中科院遥感应用研究所、安徽光学精密机械研究所等一直在 从事高光谱成像系统和遥感实验研究工作,在成像系统、数据采集、数据处理和应用等方面均取得了重要成果.本文主要介绍由中科院上海技术物理研究所研制的实用型模块化成像光 谱仪Ⅱ型(OMIS-Ⅱ)改进后的数据采集系统.

9.期刊论文 高功名.李文彬.GAO Gong-ming.LI Wen-bin 基于虚拟仪器和无线网络的数据采集系统 -林业机械与木工设备2008,36(3)
介绍一种基于虚拟仪器和无线网络的通用数据采集系统,探讨了数据采集卡设置及系统各功能模块的实现方法.实验表明该数据采集系统采集的数据受环境干扰较小,且滤波、分 析、存储及回放等功能强大.可适用于复杂环境下的多路多信号数据采集和分析,是一种比较理想的实时无线数据采集系统.

10.学位论文 卢玉州 基于虚拟仪器的数据采集系统 2004
虚拟仪器是在通用计算机平台上,用户根据自己的需求来定义和设计测试功能的仪器系统,利用一些基本硬件及软件编程技术组成的各种各样的仪器系统.本课题在虚拟仪器意义 的基础上,利用虚拟仪器技术、USB总线技术、测试技术及一些相关的硬件知识,来研究基于虚拟仪器的数据采集系统.虚拟仪器编程环境是功能强大的工程应用软件,而USB即插即用 ,使用方便,本课题结合各自的优点完成系统的设计,完成了数据采集电路的设计,USB固件程序的编写,虚拟仪器应用程序的编写,主要用到了模拟电路、数字电路、C语言、VC++、汇编 语言、USB、PROTEL、LabVIEW等知识,最终将其应用在局扇通风机性能测试系统中,进行了最后的调试工作,完成了一个基本的虚拟仪器数据采集系统.在本系统的基础上对硬件和软件 进一步扩展,将能组建起具有更加灵活功能的测试仪器平台,可用于对多种信号的监测,满足实际应用的需求.

本文链接:http://d.g.wanfangdata.com.cn/Thesis_D068145.aspx 授权使用:王树亮(wfjsjs),授权号:65da6248-79d4-4d9a-98ca-9e1c0084381d

下载时间:2010年10月27日


相关文章:
-基于Labview的多通道数据采集系统设计
-基于Labview的多通道数据采集系统设计_计算机软件及应用_IT/计算机_专业资料。基于Labview的多通道数据采集系统设计 第一节 系统整体结构 系统的整体组成结构是测量...
基于LabVIEW的多通道数据采集系统
基于LabVIEW的多通道数据采集系统 - 摘 要 虚拟仪器是仪器技术、计算机技术、总线技术、软件技术及其他技术相结合的产物, 它利用计算机强大的数字处理能力实现仪器的...
基于Labview2013的多通道虚拟示波器的设计与实现
基于Labview2013的多通道虚拟示波器的设计与实现_电子...通过 LABVIEW 的程序实现示 波器的数据采集、任意...组建自己的虚拟仪器或测试系统,并对软件进行 编制...
基于LabVIEW的多通道FIR数字滤波器辅助设计
基于LabVIEW的多通道FIR数字滤波器辅助设计_电力/水利_工程科技_专业资料。基于 LabVIEW 的多通道 FIR 数字滤波器辅助设计 摘要:本文介绍一种基于 LabVIEW 的快速有效...
更多相关标签: