基于ARM虚拟仪器软件系统——毕业论文.doc

上传人:滴答 文档编号:1271580 上传时间:2019-01-25 格式:DOC 页数:67 大小:4.83MB
下载 相关 举报
基于ARM虚拟仪器软件系统——毕业论文.doc_第1页
第1页 / 共67页
基于ARM虚拟仪器软件系统——毕业论文.doc_第2页
第2页 / 共67页
基于ARM虚拟仪器软件系统——毕业论文.doc_第3页
第3页 / 共67页
基于ARM虚拟仪器软件系统——毕业论文.doc_第4页
第4页 / 共67页
基于ARM虚拟仪器软件系统——毕业论文.doc_第5页
第5页 / 共67页
点击查看更多>>
资源描述

1、摘要 I 摘要 虚拟仪器是随着计算机技术 、 现代检测技术发展起来的新型智能仪器。它提出 软件取代硬件的思想, 利用 计算机软件 配合数据采集模块来替代 传统仪器仪表,代表了测试仪器的最新发展方向。 然而随着移动计算和可穿戴技术的发展 , 传统PC 平台已经不能满足用户对于仪器小型化和便携式的需求。不过近年来 ARM 架构的处理器凭借低功耗、低成本、高性能的优势广泛使用在嵌入式系统和移动智能终端,使得基于 ARM 平台的虚拟仪器系统方案成为构建未来仪器系统的新思路。 在 PC 平台上有 NI公司提供的 VISA库和 LabVIEW 软件开发套件等软件供用户进 行开发,但在 ARM 平台下没有相

2、应的支持。 本文针对这一现状, 在 Linux 系统下 利用 Python脚本语言实现一个基于 ARM 移动计算平台的虚拟仪器 系统 软件,并结合支持 USBTMC 协议的数据采集卡实现移动平台下的虚拟示波器。 主要研究工作包括以下三个方面: 1. USBTMC 驱动开发 : 本文针对 不同 仪器的不同接口设计了驱动层软件,可支持的接口类型有 USB、 Ethernet 以及 Serial,并重点实现了 USBTMC 类接口驱动程序。其中利用 PyUSB 扩展包实现 Python 程序对底层 USB 接口的操作与控制,在此基础之上结合 USBTMC 协议原理实现该类接口设备的驱动程序,包括设备

3、初始化、查找打开以及块数据 的 读写操作等 , 为 VISA 会话资源提供底层支持。 2. 基于 Python 的 VISA 库 的 实现: 介于 NI-VISA 库在 ARM 架构下不能工作,本文结合 PyVISA 项目,在 Linux 操作系统下实现纯 Python 的 VISA 库,为虚拟仪器顶层软件实现提供接口函数。具体包括资源管理类方法、资源模板方法和会话资源类方法等软件接口 , 其中会话资源类中重点实现了 USBInstrSession 类资源 ,最终实现虚拟仪器软件和数据采集卡之间建立消息通道 。 3. 虚拟示波器软件 的 设计与实现 : 本文利用自行设计的 VISA 库 设计并

4、实现虚拟示波器的五类功能模块包括设备管理模块、文件管理模块、功能设置模块、采集显示模块和参数测量模块。同时运用 Python 的 GUI 图形扩展包设计实现 了功能齐全、结构清晰的 虚拟示波器的界面,包括波形显示 区、垂直通道设置区、水平通道设置区、触发通道设置区和参数显示区等。 关键词: 虚拟仪器, 示波器, ARM, VISA, Python, LinuxABSTRACT II ABSTRACT Virtual instrument is a new type of intelligent instrument with the development of computer techno

5、logy 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 instru

6、ment. 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

7、 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 de

8、velopment 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 ac

9、hieve 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 U

10、SB, 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 devi

11、ce 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, thi

12、s 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, wherei

13、n 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

14、 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 Graphic

15、al 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 目

16、录 第一章 绪论 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

17、的分析 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 表现层软件

18、的实现 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)是 随着计算机技术、现代测量技术发展起来的新型智能仪器 ,是测试测量仪器中的一个重要分

19、支。它提出 软件取代硬件的思想, 由计算机硬件资源、模块化仪器硬件和用于数据分 析、过程通讯及图形用户界面显示的软件组成测控系统,是一种由计算机操纵的模块化仪器系统 1。 随着计算机硬件、软件以及总线技术的不断发展进步,计算机技术在测试测量领域的广泛应用,虚拟仪器也在不 断走向成熟和产业化,成为极具潜力的新一类测试仪器 2。 相比于传统测试仪器,虚拟仪器拥有众多优势,能够根据 用户 需求灵活经济地更改仪器功能模块,重新定制软件,更好地适应当今科学技术发展对于测量仪器和测试技术提出的 不断 完善和扩展功能的需求 3。 如今,人们不仅对于仪器设备的功能和性能有一定的要求,对其小型化和便携式的需求也

20、十分迫切 4。在这些方面,虚拟仪器系统中的模块化仪器已从传统测试仪器逐渐被体积小、精度高的数据采集卡等功能化模块替代。但是在计算机硬件平台方面, 传统 PC 由于具有高效的软件开发工具、丰富的总线 接口和成熟的驱动程序,长期以来占据着主导地位。随着移动计算和可穿戴技术的迅猛发展,这样的结构已经不能满足用户对于仪器设备小型化和便携式的需求, 尤其在 面对较为恶劣的野外测试环境,这种形式的测试系统显得更加笨拙和不稳定 5。 另一方面 , ARM 架构的处理器 凭借低功耗、低成本、高性能的优势,已经广泛应用于各类嵌入式系统和移动智能终端 6。目前, ARM 家族占据 32 位处理器约90%的比例,应

21、用的领用包括消费电子产品、便携式设备、电脑外设,军事设备等,其中智能手机处理器占有 95%的市场占有率,平板电脑处理器的市场份额 有70%7。 其中以 Cortex-A 系列的处理器性能最强,可实现高达 2GHz 的处理频率,从过去单核、双核已经发展为四核、八核, 广泛应 用于智能手机、平板电脑、电子书和数字电视等 产品领域 。操作系统方面, ARM 架构处理器可以 支持 除 Windows以外目前主流的操作系统包括各类 Linux 发行版、 Android、 IOS 和各类嵌入式Linux。此外 ARM 架构的处理器芯片拥有丰富的资源和接口,其中不乏 USB、 Serial和 Etherne

22、t 等通信接口,使得基于消息器件的仪器通信成为可能。 因此基于 ARM平台的虚拟仪器方案成为 构建未来仪器的新思路。 不过目前虚拟仪器软件都是虚拟仪器软件结构( Virtual Instrument Software Architecture, VISA)模型设计而来 8。 主流的仪器厂商都为其产品提供了 VISA驱动库,如 NI 公司的 NI-VISA 库,安捷伦公司的 Agilent IO Suite; 还提 供 软件开电子科技大学硕士学位论文 2 发套件如 LabVIEW 让用户能够通过图形化编程进行应用开发。 然而这些驱动和软件都只支持传统 PC 平台下的 Windows 和 Linu

23、x 操作系统 , 在 ARM 平台上并没有提供相应的支持。 由于目前国内在这方面的研究 还处于空白, 因此开发一款 ARM架构下能正常工作的 VISA 具有十分重要的现实意义。 综上所述, 本文提出的 基于 ARM 平台的虚拟仪器 系统 不仅继承了传统虚拟仪器 功能强大 、 开发灵活等 优势,还具备体积小、携带便捷、功耗低和可穿戴等特点 , 还可以利用 ARM 平台下的无线网络模块组建网络化仪器,能够适应更加多变的环境和复杂的场景, 够有效解决基于 PC 平台虚拟仪器 的 局限性 。 此外,本课题对于 ARM 平台下 Linux 系统的 VISA 库的研究,对于未来仪器和 ARM 的结合具有十

24、分重要的意义。可以说 基于 ARM 仪器系统的虚拟仪器软件开发是对新型仪 器发展的一次探索,对于移动仪器发展和普及有一定的现实意义和社会价值。 1.2 课题的 研究现状 1.2.1 虚拟 仪器的发展与现状 在当今电子产业迅猛发展的时代,电子测量行业发挥出越来越重要的作用 。随着科技不断进步, 新型的测量仪器层出不穷, 它们采用计算能力超强的微处理器作为控制核心,硬件和软件相结合,优化了传统的测量仪器,实现了控制智能化和交互的人性化,虚拟仪器技术孕育而生。 目前虚拟仪器有两类 , 一类基于 PC,它是由 PC、能插入 PC 机箱的插卡或模块和相关测试软件所构成。采用这种结构能构成基于 PC 的示

25、波器、任意波形 发生器、波形分析仪、函数发生器、逻辑分析仪、电压表和数据采集产品。另一类基于 VXI 或 CPCI/PXI 专用系统,采用这种结构能构成用于生产测试的高性能专用测试系统、数据采集系统和自动测试设备( ATE)。本文将从 标准总线、软件技术 和网络化三 个方面概述虚拟仪器的发展现状 9。 1. 虚拟仪器标准总线的发展 虚拟仪器分为四大类,主要是插卡型虚拟仪器、外挂型 虚拟仪器、高精度虚拟仪器和网络化虚拟仪器。其中每种仪器的接口有所不同,插卡型主要是 ISA、PCMCIA 和 PCI 接口,不过随着计算机发展 ISA 已经退出历史舞台,只有 PCI 总线还在广泛使用。外挂型虚拟仪器

26、接口总线由 RS232、 USB 以及 IEEE 1394 总线,其中 USB 总线今年来得到广泛使用,无论是 PC 平台还是 ARM 移动平台都能够经常见到。 IEEE 1394 更是因其极高的传输速率具有极大的 发展 潜力。 GPIB、 VXI和 PXI 总线主要用于高精度集成系统, 其中以 PXI 设备成本低、运行速度快、体积小、高速率拥有更大的应用前景 10。 第一 章 绪论 3 2. 软件技术的发展 软件技术的发展和有关国际标准的建立 ,是推动虚拟仪器技术发展的决定性因素 之一。 首先是 可编程仪器标准 命令( Standard Commands for Programmable I

27、nstruments, SPCI) 的 提出 , 规定了在控制器与仪器之间的交换信息的构造和内容,提出了一个具有普遍性的通用仪器模型 11。 然后是虚拟仪器软件结构 ( VISA) 的提出,建立了与仪器接口无关的标准 I/O 软件, 使得 用户 不用再 单独开发仪器驱动程序, 也可以在少量代码修改的情况下方便的实现仪器模块的互换 。 3. 网络化的发展 随着计算机技术 、 电子技术 、 网 络通信技术的进步和不断拓展 , 21 世纪的仪器 概念将是一个开放的系统概念 12。 计算机和仪器的界限不再明显,通过计算机的网络功能,将 不同的仪器作为节点接入网络, 实现资源共享功能,共同完成测试任务

28、13-14。 1.2.2 ARM平台的发展和现状 近年来随着智能手机和平板等移动智能设备 迅速扩张,产品功能的丰富和完善,使得 ARM 处理器的高速发展,传统嵌入式的概念也随之发生变化, ARM 架构已经成为与 x86 架构、 power 架构具有相同竞争力的硬件结构 15。 表 1-1 主要 ARM 内核及性能 核芯 指令集 运行频率 性能 / DMIPS/MHz 特色 ARM9 ARMv5 100 MHz300 MHz 1.1 早期产品 ARM11 ARMv6 300 MHz800 MHz 1.25 低端产品中使用 Cortex A5 ARMv7 600 MHz1.5 GHz 1.57 高

29、能效,低成本 Cortex A7 ARMv7 800 MHz1.2 GHz 1.9 新品,高能效,低成本 Cortex A8 ARMv7 600 MHz1.0 GHz 2.0 单核主流 Cortex A9 ARMv7 1 GHz2.0 GHz 2.5 多核优化,支持 14 核 Cortex A15 ARMv7 1 GHz2.5 GHz 3.5 新品,支持 132 核 从上世纪八十年代到目前为止, ARM 内核家族逐渐壮大,发展为有 ARM1、ARM2、 ARM6、 ARM7、 ARM9、 ARM10、 ARM11 和 Cortex 以 及对应的修改版或增强版,随着内核版本的增强,其初始频率越高

30、、架构越先进、功能也越强。以往的 ARM9 和 ARM11 核芯 的 性能相对较弱,不能适应当前移动设备软件系统的需求。目前主流的有 Cortex-A5、 A8、 A9 和 A15 核芯以及基于上述架构的 MPCore多核架构硬件核芯 16。 ARM 在国际主要的制造设计合作厂商有德州仪器、高通、电子科技大学硕士学位论文 4 英伟达、三星、飞思卡尔、爱立信 和迈威等,他们的最新处理器大多为 40nm或者28nm,双核或者四核芯产品。主要 ARM 内核和性能如表 1-1 所示。 与此同时,随着互联网多媒体应用的发展,不仅要求 ARM 处理器具有高性能的处理核芯,还需要集成优秀的显示核芯。目前 A

31、RM 显示核芯主要有高通的Adreno 系列、 Imagination 的 PowerVR 系列, NVIDIA 的 GeForce ULV 系列以及ARM 的 mail系列。 ARM 处理显示核芯对比如表 1-2 所示。 表 1-2 ARM 处理显示核芯对比 品牌 产品型号 标准支持 三角形 输出 /(M/s) 像素填充 /(M/s) Qualcomm Adreno OpenGL ES1.1/2.0 41 245 Adreno OpenGL ES1.1/2.0 88 532 Imagination PowerVR OpenGL ES1.1/2.0 63 1250 PowerVR OpenGL

32、 ES1.1/2.0 80 1500 NVIDIA GeForce ULV OpenGL ES1.1/2.0 90 1200 ARM Mali-300 OpenGL ES1.1/2.0 30 275 Mali-400 MP4 OpenGL ES1.1/2.0 30 1100 与国际上 ARM 芯片发展相比,国内的主要芯片厂商还有一定差距,主要是由于设计经验不足,对市场的认知度不够高,相关产品在国际市场上竞争力相对落后。目前 ARM 公司全球合作伙伴总数有 800 多家其中中国芯片公司之有 79 家 17。包括威盛、瑞星微、全志、华为海思 和 联发科 等芯片厂商,设计的业务覆盖 ARM在各个领域

33、的应用 18-19。 自从 2011 年智能手机全球出货量首次超过 PC,移动互联时代 ARM 架构的计算平台将逐步替代 PC 成为伴随人们日常生活应用的主要电子设备。 ARM 处理器经过快速发展与成熟,成为移动计算平台控制核心的首 选。 1.3 本文的研究内容和结构 本文研究目的 是 基于 ARM 移动计算平台开发一套虚拟仪器软件系统 , 并 结合支持 USBTMC 协议的数据采集卡实现移动平台下 虚拟示波器的功能 。 仪器软件系统 具体包括驱动协议软件和应用软件 两部分。其中 驱动协议软件是实现一个基于Python 语言的 VISA 函数库,为应用软件和数据采集卡沟通提供底层支持;应用软件

34、则提供一套完整的示波器软件测试功能包括软面板和各类操作按钮可以用于采集显示波形数据,对数据采集卡进行控制等。具体研究内容如下: 第一 章 绪论 5 1. USBTMC 驱动开发:本文针对仪器的不同接口设计了驱动 层软件,可支持的接口类型有 USB、 Ethernet 以及 Serial,并重点实现了 USBTMC 类接口驱动程序。其中利用 PyUSB 扩展包实现 Python 程序对底层 USB 接口的操作与控制,在此基础之上结合 USBTMC 协议原理实现该类接口设备的驱动程序,包括设备初始化、查找打开以及块数据读写操作等,为 VISA 会话资源提供底层支持。 2. 基于 Python 的

35、VISA 库 的 实现:介于 NI-VISA 库在 ARM 架构下不能工作,本文结合 PyVISA 项目,在 Linux 操作系统下实现纯 Python 的 VISA 库,为虚拟仪器顶层软件实现提供 接口函数。具体包括资源管理类方法、资源模板方法和会话资源类方法等软件接口,其中会话资源类中重点实现了 USBInstrSession 类资源,最终实现虚拟仪器软件和数据采集卡之间建立消息通道 。 3. 虚拟示波器软件 的 设计与实现:本文利用自行设计的 VISA 库设计并实现虚拟示波器的五类功能模块包括设备管理模块、文件管理模块、功能设置模块、采集显示模块和参数测量模块。同时运用 Python 的

36、 GUI 图形扩展包设计实现了功能齐全、结构清晰的虚拟示波器的界面,包括波形显示区、垂直通道设置区、水平通道设置区、触发通道设置区和参数显示 区等。 具体章节安排如下: 第二章 介绍虚拟仪器 典型结构,针对本文设计的仪器系统展开需求分析,并在此基础搭建起硬件实验平台,采用分层思想提出了软件实现的整体方案。 第三章 具体介绍驱动协议层软件的实现过程 。 包括两个部分, USBTMC 设备类驱动的实现和基于 PyVISA 架构的纯 Python 语言的 VISA 库的实现过程。 第四章 对仪器系统应用层软件开发进行详细介绍,首先实现了虚拟示波器的基本测量功能模块,然后利用介绍了仪器软面板的设计与实现的过程。 第五 章参照 软件框架设计要求,提出测试方案。 包括 对协议层 的 接口函数和应用 软件的功能组件进行测试与验证,给出测试结果。 第六章对全文工作的总结和展望。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。