虚拟仪器系统_第1页
虚拟仪器系统_第2页
虚拟仪器系统_第3页
虚拟仪器系统_第4页
虚拟仪器系统_第5页
免费预览已结束,剩余66页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 I 摘要 虚拟仪器是随着计算机技术、现代检测技术发展起来的新型智能仪器。它提 出软件取代硬件的思想,利用计算机软件配合数据采集模块来替代传统仪器仪表, 代表了测试仪器的最新发展方向。然而随着移动计算和可穿戴技术的发展,传统 PC 平台已经不能满足用户对于仪器小型化和便携式的需求。不过近年来 ARM 架 构的处理器凭借低功耗、低成本、高性能的优势广泛使用在嵌入式系统和移动智 能终端,使得基于 ARM 平台的虚拟仪器系统方案成为构建未来仪器系统的新思 路。 在 PC 平台上有 NI 公司提供的 VISA 库和 LabVIEW 软件开发套件等软件供 用户进行开发,但在 ARM 平台下没有相应的支持。本文针对这一现状,在 Linux 系统下利用 Python 脚本语言实现一个基于 ARM 移动计算平台的虚拟仪器系统软 件,并结合支持 USBTMC 协议的数据采集卡实现移动平台下的虚拟示波器。主 要研究工作包括以下三个方面: 1. USBTMC 驱动开发:本文针对不同仪器的不同接口设计了驱动层软件, 可支持的接口类型有 USB、Ethernet 以及 Serial,并重点实现了 USBTMC 类接口 驱动程序。其中利用 PyUSB 扩展包实现 Python 程序对底层 USB 接口的操作与控 制,在此基础之上结合 USBTMC 协议原理实现该类接口设备的驱动程序,包括 设备初始化、查找打开以及块数据的读写操作等,为 VISA 会话资源提供底层支 持。 2. 基于 Python 的 VISA 库的实现:介于 NI-VISA 库在 ARM 架构下不能工 作,本文结合 PyVISA 项目,在 Linux 操作系统下实现纯 Python 的 VISA 库,为 虚拟仪器顶层软件实现提供接口函数。具体包括资源管理类方法、资源模板方法 和会话资源类方法等软件接口,其中会话资源类中重点实现了USBInstrSession类 资源,最终实现虚拟仪器软件和数据采集卡之间建立消息通道。 3. 虚拟示波器软件的设计与实现:本文利用自行设计的 VISA 库设计并实现 虚拟示波器的五类功能模块包括设备管理模块、文件管理模块、功能设置模块、 采集显示模块和参数测量模块。同时运用 Python 的 GUI 图形扩展包设计实现了 功能齐全、结构清晰的虚拟示波器的界面,包括波形显示区、垂直通道设置区、 水平通道设置区、触发通道设置区和参数显示区等。 关键词:关键词:虚拟仪器,示波器,ARM,VISA,Python,Linux ABSTRACT II ABSTRACT Virtual instrument is a new type of intelligent instrument with the development of computer technology and modern measurement technology. It puts forward the idea that the software replaces the hardware, and uses the computer software to cooperate with the data acquisition module to replace the traditional instrument and meter, which represents the latest development direction of the test instrument. With the rapid development of mobile computing and wearable technology, this structure has been unable to meet the needs of users for the miniaturized portable instrument. But in recent years the ARM architecture processor widely used in embedded system and mobile intelligent terminal with the advantages of low power consumption, low cost, high performance. It makes the virtual instrument system based on ARM platform to be a new idea to construct the future instrument system. NI provides NI-VISA library functions which integrated various types of interface drivers, and also a software development kit which allows users to program through graphical software development. But its hard to implement on ARM platform. Faced the present situation, we use Python scripting language to achieve a virtual instrument software system based on ARM mobile computing platform and Linux system, and achieve a virtual oscilloscope software with the data acquisition card which is support USBTMC protocol. This paper mainly includes the following four aspects. 1. Programming of USBTMC class driver: In this paper, we design the driver layer software for different interfaces of the instrument include USB, Ethernet, Serial, and we focus on the implementation of the USBTMC class interface driver. We achieve the operation and control of the USB interface for the python program by using the PyUSB. On this basis, combined with the principle of USBTMC protocol implementation of the class interface device driver, including device initialization, find device, open device and block data read and write operations, to provide the underlying support for the VISA session resources. 2. Implementation of VISA Library Based on Python: Because the NI-VISA library can not work under the ARM architecture, this paper combined with the PyVISA project, achieve a pure Python VISA library to provide interface functions for the virtual instrument top-level software under the Linux operating system. Include resource ABSTRACT III manager, resource template method and session resources software interface, wherein the session resources we focused on the realization of the USBInstrSession class resources. Finally implement the communication between the virtual instrument software and the data acquisition card. 3. Software design and implementation of virtual oscilloscope: This paper designs and realizes five kinds of function modules of virtual oscilloscope based on the VISA library which is designed by ourselves, including equipment management module, file management module, function module, acquisition and display module and parameter measurement module. At the same time, using the python GUI Graphical expansion pack we implement the oscilloscope interface, including waveform display area, a vertical channel setting zone, horizontal channel setup area, triggering channel setting parameter area and display area. Keywords: Virtual Instrument, Digital Oscilloscope, ARM, VISA, Python, Linux 目录 IV 目录 第一章 绪论1 1.1 选题的背景与意义 1 1.2 课题的研究现状 2 1.2.1 虚拟仪器的发展与现状2 1.2.2 ARM 平台的发展和现状3 1.3 本文的研究内容和结构 4 第二章 仪器系统搭建和方案设计6 2.1 虚拟仪器系统的典型结构 6 2.2 仪器系统的需求分析 8 2.2.1 系统硬件需求8 2.2.2 系统软件需求8 2.3 实验系统的搭建及方案设计 10 2.2.1 系统硬件结构的搭建10 2.2.2 系统软件方案的设计12 2.4 本章小结 14 第三章 系统驱动协议层软件开发15 3.1 驱动协议层的分析和设计 15 3.1.1 PyVISA 的分析15 3.1.2 驱动协议层的设计15 3.2 驱动层软件的实现 17 3.2.1 PyUSB 底层库分析18 3.2.2 USBTMC 协议类的实现20 3.3 协议层软件的实现 24 3.3.1 PyVISA 前端实现24 3.3.2 PyVISA 后端库实现28 3.3 本章小结35 第四章 系统应用层软件开发36 4.1 应用层软件的设计 36 4.1.1 功能模块设计36 4.1.2 软件面板设计37 目录 V 4.2 功能层软件的实现 38 4.2.1 数据采集卡 SCPI 命令集38 4.2.2 功能模块 Python 类封装41 4.3 表现层软件的实现 45 4.3.1 仪器软件界面的实现45 4.3.2 仪器软件工作的流程48 4.4 本章小结 50 第五章 系统测试51 5.1 接口通信测试 51 5.2 仪器功能模块测试 53 5.2.1 测试环境搭建53 5.2.2 仪器功能模块测试53 5.3 本章小结 57 第六章 结论与展望58 6.1 工作总结 58 6.2 论文展望 58 致谢59 参考文献60 第一章 绪论 1 第一章 绪论 1.1 选题的背景与意义 虚拟仪器(Virtual Instrument 简称 VI)是随着计算机技术、现代测量技术发展 起来的新型智能仪器,是测试测量仪器中的一个重要分支。它提出软件取代硬件 的思想,由计算机硬件资源、模块化仪器硬件和用于数据分析、过程通讯及图形 用户界面显示的软件组成测控系统,是一种由计算机操纵的模块化仪器系统1。 随着计算机硬件、软件以及总线技术的不断发展进步,计算机技术在测试测量领 域的广泛应用,虚拟仪器也在不断走向成熟和产业化,成为极具潜力的新一类测 试仪器2。相比于传统测试仪器,虚拟仪器拥有众多优势,能够根据用户需求灵 活经济地更改仪器功能模块,重新定制软件,更好地适应当今科学技术发展对于 测量仪器和测试技术提出的不断完善和扩展功能的需求3。如今,人们不仅对于 仪器设备的功能和性能有一定的要求,对其小型化和便携式的需求也十分迫切4。 在这些方面,虚拟仪器系统中的模块化仪器已从传统测试仪器逐渐被体积小、精 度高的数据采集卡等功能化模块替代。但是在计算机硬件平台方面,传统 PC 由 于具有高效的软件开发工具、丰富的总线接口和成熟的驱动程序,长期以来占据 着主导地位。随着移动计算和可穿戴技术的迅猛发展,这样的结构已经不能满足 用户对于仪器设备小型化和便携式的需求,尤其在面对较为恶劣的野外测试环境, 这种形式的测试系统显得更加笨拙和不稳定5。 另一方面,ARM 架构的处理器凭借低功耗、低成本、高性能的优势,已经 广泛应用于各类嵌入式系统和移动智能终端6。目前,ARM 家族占据 32 位处理 器约 90%的比例,应用的领用包括消费电子产品、便携式设备、电脑外设,军事 设备等,其中智能手机处理器占有 95%的市场占有率,平板电脑处理器的市场份 额有 70%7。其中以 Cortex-A 系列的处理器性能最强,可实现高达 2GHz 的处理 频率,从过去单核、双核已经发展为四核、八核,广泛应用于智能手机、平板电 脑、电子书和数字电视等产品领域。操作系统方面,ARM 架构处理器可以支持 除 Windows 以外目前主流的操作系统包括各类 Linux 发行版、Android、IOS 和各 类嵌入式 Linux。此外 ARM 架构的处理器芯片拥有丰富的资源和接口,其中不乏 USB、Serial 和 Ethernet 等通信接口,使得基于消息器件的仪器通信成为可能。因 此基于 ARM 平台的虚拟仪器方案成为构建未来仪器的新思路。 不过目前虚拟仪器软件都是虚拟仪器软件结构(Virtual Instrument Software Architecture,VISA)模型设计而来8。主流的仪器厂商都为其产品提供了 VISA 驱动库,如 NI 公司的 NI-VISA 库,安捷伦公司的 Agilent IO Suite;还提供软件 电子科技大学硕士学位论文 2 开发套件如 LabVIEW 让用户能够通过图形化编程进行应用开发。然而这些驱动 和软件都只支持传统 PC 平台下的 Windows 和 Linux 操作系统,在 ARM 平台上 并没有提供相应的支持。由于目前国内在这方面的研究还处于空白,因此开发一 款 ARM 架构下能正常工作的 VISA 具有十分重要的现实意义。 综上所述,本文提出的基于 ARM 平台的虚拟仪器系统不仅继承了传统虚拟 仪器功能强大、开发灵活等优势,还具备体积小、携带便捷、功耗低和可穿戴等 特点,还可以利用 ARM 平台下的无线网络模块组建网络化仪器,能够适应更加 多变的环境和复杂的场景,够有效解决基于 PC 平台虚拟仪器的局限性。此外, 本课题对于 ARM 平台下 Linux 系统的 VISA 库的研究,对于未来仪器和 ARM 的 结合具有十分重要的意义。可以说基于 ARM 仪器系统的虚拟仪器软件开发是对 新型仪器发展的一次探索,对于移动仪器发展和普及有一定的现实意义和社会价 值。 1.2 课题的研究现状 1.2.1 虚拟仪器的发展与现状 在当今电子产业迅猛发展的时代,电子测量行业发挥出越来越重要的作用。 随着科技不断进步,新型的测量仪器层出不穷,它们采用计算能力超强的微处理 器作为控制核心,硬件和软件相结合,优化了传统的测量仪器,实现了控制智能 化和交互的人性化,虚拟仪器技术孕育而生。目前虚拟仪器有两类,一类基于 PC,它是由 PC、能插入 PC 机箱的插卡或模块和相关测试软件所构成。采用这种 结构能构成基于 PC 的示波器、任意波形发生器、波形分析仪、函数发生器、逻 辑分析仪、电压表和数据采集产品。另一类基于 VXI 或 CPCI/PXI 专用系统,采 用这种结构能构成用于生产测试的高性能专用测试系统、数据采集系统和自动测 试设备(ATE)。本文将从标准总线、软件技术和网络化三个方面概述虚拟仪器 的发展现状9。 1. 虚拟仪器标准总线的发展 虚拟仪器分为四大类,主要是插卡型虚拟仪器、外挂型虚拟仪器、高精度虚 拟仪器和网络化虚拟仪器。其中每种仪器的接口有所不同,插卡型主要是 ISA、PCMCIA 和 PCI 接口,不过随着计算机发展 ISA 已经退出历史舞台,只有 PCI 总线还在广泛使用。外挂型虚拟仪器接口总线由 RS232、USB 以及 IEEE 1394 总线,其中 USB 总线今年来得到广泛使用,无论是 PC 平台还是 ARM 移动 平台都能够经常见到。IEEE 1394 更是因其极高的传输速率具有极大的发展潜力。 GPIB、VXI 和 PXI 总线主要用于高精度集成系统,其中以 PXI 设备成本低、运 第一章 绪论 3 行速度快、体积小、高速率拥有更大的应用前景10。 2. 软件技术的发展 软件技术的发展和有关国际标准的建立,是推动虚拟仪器技术发展的决定性因 素之一。首先是可编程仪器标准命令(Standard Commands for Programmable Instruments,SPCI)的提出,规定了在控制器与仪器之间的交换信息的构造和内 容,提出了一个具有普遍性的通用仪器模型11。然后是虚拟仪器软件结构 (VISA)的提出,建立了与仪器接口无关的标准 I/O 软件,使得用户不用再单独 开发仪器驱动程序,也可以在少量代码修改的情况下方便的实现仪器模块的互换。 3. 网络化的发展 随着计算机技术、电子技术、网络通信技术的进步和不断拓展,21 世纪的仪 器概念将是一个开放的系统概念12。计算机和仪器的界限不再明显,通过计算机 的网络功能,将不同的仪器作为节点接入网络,实现资源共享功能,共同完成测 试任务13-14。 1.2.2 ARM 平台的发展和现状 近年来随着智能手机和平板等移动智能设备迅速扩张,产品功能的丰富和完 善,使得 ARM 处理器的高速发展,传统嵌入式的概念也随之发生变化,ARM 架 构已经成为与 x86 架构、power 架构具有相同竞争力的硬件结构15。 表 1-1 主要 ARM 内核及性能 核芯指令集运行频率 性能/ DMIPS/MHz 特色 ARM9ARMv5100 MHz300 MHz1.1早期产品 ARM11ARMv6300 MHz800 MHz1.25低端产品中使用 Cortex A5ARMv7600 MHz1.5 GHz1.57高能效,低成本 Cortex A7ARMv7800 MHz1.2 GHz1.9新品,高能效,低成本 Cortex A8ARMv7600 MHz1.0 GHz2.0单核主流 Cortex A9ARMv71 GHz2.0 GHz2.5多核优化,支持 14 核 Cortex A15ARMv71 GHz2.5 GHz3.5新品,支持 132 核 从上世纪八十年代到目前为止,ARM 内核家族逐渐壮大,发展为有 ARM1、ARM2、ARM6、ARM7、ARM9、ARM10、ARM11 和 Cortex 以及对应 的修改版或增强版,随着内核版本的增强,其初始频率越高、架构越先进、功能 也越强。以往的 ARM9 和 ARM11 核芯的性能相对较弱,不能适应当前移动设备 电子科技大学硕士学位论文 4 软件系统的需求。目前主流的有 Cortex-A5、A8、A9 和 A15 核芯以及基于上述 架构的 MPCore 多核架构硬件核芯16。ARM 在国际主要的制造设计合作厂商有 德州仪器、高通、英伟达、三星、飞思卡尔、爱立信和迈威等,他们的最新处理 器大多为 40nm 或者 28nm,双核或者四核芯产品。主要 ARM 内核和性能如表 1- 1 所示。 与此同时,随着互联网多媒体应用的发展,不仅要求 ARM 处理器具有高性 能的处理核芯,还需要集成优秀的显示核芯。目前 ARM 显示核芯主要有高通的 Adreno 系列、Imagination 的 PowerVR 系列,NVIDIA 的 GeForce ULV 系列以及 ARM 的 mail 系列。ARM 处理显示核芯对比如表 1-2 所示。 表 1-2 ARM 处理显示核芯对比 品牌产品型号标准支持 三角形 输出/(M/s) 像素填充 /(M/s) AdrenoOpenGL ES1.1/2.041245 Qualcomm AdrenoOpenGL ES1.1/2.088532 PowerVROpenGL ES1.1/2.0631250 Imagination PowerVROpenGL ES1.1/2.0801500 NVIDIAGeForce ULVOpenGL ES1.1/2.0901200 Mali-300OpenGL ES1.1/2.030275 ARM Mali-400 MP4OpenGL ES1.1/2.0301100 与国际上 ARM 芯片发展相比,国内的主要芯片厂商还有一定差距,主要是 由于设计经验不足,对市场的认知度不够高,相关产品在国际市场上竞争力相对 落后。目前 ARM 公司全球合作伙伴总数有 800 多家其中中国芯片公司之有 79 家 17。包括威盛、瑞星微、全志、华为海思和联发科等芯片厂商,设计的业务覆盖 ARM 在各个领域的应用18-19。 自从 2011 年智能手机全球出货量首次超过 PC,移动互联时代 ARM 架构的 计算平台将逐步替代 PC 成为伴随人们日常生活应用的主要电子设备。ARM 处理 器经过快速发展与成熟,成为移动计算平台控制核心的首选。 1.3 本文的研究内容和结构 本文研究目的是基于 ARM 移动计算平台开发一套虚拟仪器软件系统,并结 合支持 USBTMC 协议的数据采集卡实现移动平台下虚拟示波器的功能。仪器软 件系统具体包括驱动协议软件和应用软件两部分。其中驱动协议软件是实现一个 第一章 绪论 5 基于 Python 语言的 VISA 函数库,为应用软件和数据采集卡沟通提供底层支持; 应用软件则提供一套完整的示波器软件测试功能包括软面板和各类操作按钮可以 用于采集显示波形数据,对数据采集卡进行控制等。具体研究内容如下: 1. USBTMC 驱动开发:本文针对仪器的不同接口设计了驱动层软件,可支 持的接口类型有 USB、Ethernet 以及 Serial,并重点实现了 USBTMC 类接口驱动 程序。其中利用 PyUSB 扩展包实现 Python 程序对底层 USB 接口的操作与控制, 在此基础之上结合 USBTMC 协议原理实现该类接口设备的驱动程序,包括设备 初始化、查找打开以及块数据读写操作等,为 VISA 会话资源提供底层支持。 2. 基于 Python 的 VISA 库的实现:介于 NI-VISA 库在 ARM 架构下不能工 作,本文结合 PyVISA 项目,在 Linux 操作系统下实现纯 Python 的 VISA 库,为 虚拟仪器顶层软件实现提供接口函数。具体包括资源管理类方法、资源模板方法 和会话资源类方法等软件接口,其中会话资源类中重点实现了USBInstrSession类 资源,最终实现虚拟仪器软件和数据采集卡之间建立消息通道。 3. 虚拟示波器软件的设计与实现:本文利用自行设计的 VISA 库设计并实现 虚拟示波器的五类功能模块包括设备管理模块、文件管理模块、功能设置模块、 采集显示模块和参数测量模块。同时运用 Python 的 GUI 图形扩展包设计实现了 功能齐全、结构清晰的虚拟示波器的界面,包括波形显示区、垂直通道设置区、 水平通道设置区、触发通道设置区和参数显示区等。 具体章节安排如下: 第二章介绍虚拟仪器典型结构,针对本文设计的仪器系统展开需求分析,并 在此基础搭建起硬件实验平台,采用分层思想提出了软件实现的整体方案。 第三章具体介绍驱动协议层软件的实现过程。包括两个部分,USBTMC 设备 类驱动的实现和基于 PyVISA 架构的纯 Python 语言的 VISA 库的实现过程。 第四章对仪器系统应用层软件开发进行详细介绍,首先实现了虚拟示波器的 基本测量功能模块,然后利用介绍了仪器软面板的设计与实现的过程。 第五章参照软件框架设计要求,提出测试方案。包括对协议层的接口函数和 应用软件的功能组件进行测试与验证,给出测试结果。 第六章对全文工作的总结和展望。 电子科技大学硕士学位论文 6 第二章 仪器系统搭建和方案设计 本课题的任务是基于 ARM 智能计算终端,结合支持 USB 接口的数据采集 卡,完成一套具备基本仪器测量功能的软件系统。本章首先介绍了虚拟仪器系 统的典型结构,然后对本文的设计要求从软硬件两部分展开需求分析。然后介 绍本文的硬件实验平台的搭建过程,并在此基础上结合需求特性提出系统软件 的整体设计方案。 2.1 虚拟仪器系统的典型结构 1. 虚拟仪器硬件典型结构 虚拟仪器系统由硬件和软件两部分构成,硬件平台是虚拟仪器的基础20。 虚拟仪器硬件平台包括通用计算平台和各类仪器模块、数据采集卡以及各类仪 器总线接口21。典型的虚拟仪器系统结构如图 2-1 所示: 仪器模块被测设备 USB接口 串行接口 GPIB 总线接口 图 2-1 虚拟仪器典型硬件结构 (1) 仪器模块 这部分主要由各类测试仪器以及数据采集卡构成,按照功能划分常用的测 试仪器有示波器、数字万用表、函数发生器,针对不同的需求,可以选择相应 功能的仪器作为系统中的仪器模块用于数据采集和控制的最终实现。 (2) 仪器总线接口 仪器总线接口在虚拟仪器系统中起到了至关重要的作用,它作为连接通用 计算平台和可程控仪器的桥梁,将计算机和各类仪器组织在一起形成自动测试 系统,在硬件上使得二者之间的通信成为可能。在测试测量领域,仪器的总线 技术日渐成熟,标准化的仪器总线由最初的 GPIB(通用接口总线)发展为现在 广泛使用的 USB(通用串行总线) 、VXI、PXI 以及 LXI 等。而在这些多种多样 的总线之中,又以 USB、Serial 和 LAN 为代表的分立仪器总线在便携式移动计 算平台上得到广泛支持与使用,使得仪器系统朝着便携式、穿戴式方向发展成 第二章 仪器系统概述和需求分析 7 为可能。在虚拟仪器开发过程中,开发者可以根据对测量功能、带宽、传输延 迟、性能和易连接性等不同的需求选择适合自己使用的总线连接技术。 (3) 通用计算平台 在虚拟仪器系统中通用计算平台无论是 ARM 通用计算平台和传统 PC 计算 平台都是必不可缺的重要组成部分。首先它是虚拟仪器系统应用软件、通信协 议软件以及总线接口的载体,在此基础上各类仪器才能够“虚拟化” ,才使得应 用程序能通过总线接口控制仪器成为可能;其次它具有较强的处理性能和丰富 的系统资源,为数据处理、数据存储和传输提供有效支持;此外还能为虚拟仪 器提供多样的人机交互方式。 2. 虚拟仪器软件典型结构 虚拟仪器提出软件取代硬件的思想,所以软件是虚拟仪器系统的核心,典 型的虚拟仪器软件结构是基于 VISA 规范搭建的,其结构如图 2-2 所示22。 仪器系统应用程序 VISA库 用户应用程序接口 用户定义资源层 仪器资源层 I/O资源层 资源管理层 仪器低级I/O驱动 图 2-2 虚拟仪器软件结构 (1) 仪器应用程序 仪器应用程序的主要功能是利用 VISA 库接口函数实现仪器的各类测试功 能,提供人机交互界面。通常的开发平台有 Visual C+、Labwindows/CVI、Visual Basic、LabVIEW 等,不过一般都是利用 LabVIEW 图形化编程实现23。 (2) VISA 库 VISA 库主要功能是利用低级 I/O 驱动实现控制仪器的高层 API 供应用程序 调用,能够方便的管理操作仪器资源,实现计算机与仪器之间的命令传输和数 据通信。其内部结构包含以下几个方面:用户应用接口、用户自定义资源层、 仪器资源层、I/O 资源层、资源管理层24-25。 (3) 低级 I/O 驱动 低级 I/O 驱动是操作系统提供的各类物理接口的驱动程序,实现底层接口 通信功能,为 VISA 库提供驱动接口,实现 VISA 协议规范。 电子科技大学硕士学位论文 8 2.2 仪器系统的需求分析 2.2.1 系统硬件需求 本文的主要目的是基于 ARM 移动计算平台上实现一套虚拟仪器软件系统, 最终结合数据采集设备实现一套完整的具有测试测量功能的仪器设备。因此软 件是本文的核心,硬件作为实验平台,除了要符合典型虚拟仪器硬件结构,相 对于基于 PC 平台的虚拟仪器结构还有所不同。首先本文采用的计算平台应该 是基于 ARM 架构的,不仅如此,为了能够运行图形界面的应用软件还需要支 持图形界面的操作系统。此外,为了能够外接数据采集卡和各类仪器设备,还 需提供不同的总线接口。考虑到 ARM 本身接口没有 PC 那么丰富,只需要能提 供基于消息器件通信的总线接口即可。仪器方面,为了满足便携式、可移动的 特性,因此需要体积小,功耗低等基本要求。同时还需要能够支持 SCPI 标准 程控语言和 USBTMC 协议。综上所述,系统硬件实验平台的基本需求如下: 基于 ARM 架构处理器平台 能够支持图形界面的操作系统 拥有 USB、Ethernet、Serial 等接口 数据采集卡体积小、功耗低 支持 USBTMC 协议 能够解析 SCPI 程控命令 2.2.2 系统软件需求 在传统的 PC 平台上虚拟仪器软件一般是基于仪器厂商提供的驱动程序和 VISA 库,利用图形化编程软件工具 LabVIEW 实现的。ARM 平台下由于没有 Windows 系统的良好支持,很多驱动程序和库函数都不能正常使用,应用开发 没有专门的工具,因此开发者需要自行设计。在编程语言方面,Python 语言是 一种面向对象的解析性的 script 语言,具有开发效率高,跨平台等优势,同时 具有丰富的扩展包,能够极大程度上拓展软件的功能26。为了满足软件系统的 开发简单,系统移植性和扩展性好的要求,本文采用 Python 作为开发语言。综 上所述,本文设计的软件系统应满足以下目标: 提供仪器测量基本功能模块的应用软件 提供一款基于 Python 的 VISA 函数库 提供用于 Python 操作底层接口的 I/O 驱动 1. I/O 驱动需求分析 驱动层的设计目标是为 Python 应用软件提供底层驱动,和 VISA 库对接使 得上层软件能够识别不同接口的仪器设备。对于 ARM 支持的消息类接口都应 第二章 仪器系统概述和需求分析 9 实现相应的驱动程序,包括 USB、Ethernet 和 Serial。本文需要实现 USB 接口 设备中的 USBTMC 设备类,使得能够正常通信,包括读写数据等。鉴于软件 的扩展性需要对于其他基于消息器件通信的各类设备接口只是预留出软件接口 以便后期扩展。 2. VISA 库需求分析 通常虚拟仪器软件都是基于 NI 公司提出的虚拟仪器软件结构模型设计而来 的,同时 NI-VISA 也提供了用于计算机与仪器的标准软件接口进行通信的仪器 编程标准 I/O 函数库,从而使得虚拟仪器软件能够通过编程操控仪器,这些库 通常以动态链接库的形式供用户在程序开发中使用。除了 NI 公司,安捷伦也为 开发者提供了自己的 VSIA 函数库,用户可以根据自己需求下载相应版本的 VISA 库安装并使用27。然而,这些主流厂商的 VISA 库也只能运行在特定系统 下,以 NI-VISA 库为例只能在 Windows、Mac OS X 以及 openSUSE、Red HAT 等特定 Linux 发行版下正常使用,更多情况下即便是重新编译 VISA 库,也不 能支持 ARM 移动计算平台。为了解决这一难题,本文提出基于 PyVISA 项目, 开发出由 Python 语言编写的具有跨平台性和可移植性的 VSIA 函数库,作为 ARM 移动计算平台与仪器模块通信的解决方案。具体需求如下: (1)开发一个纯 Python 语言编写的 VISA 库,能够被 PyVISA 加载使用; (2)在 VISA 库中实现资源管理器功能,能够为应用软件提供 VSIA 库管 理和仪器资源管理的基本操作,包括加载指定 VISA 库、获取设备列表、打开 设备、建立回话、读写数据和获取资源属性等; (3)VISA 库中实现各类接口的会话资源类,并且能够根

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论