您的位置:

c语言gpib接口,gpib接口协议c编程

本文目录一览:

学习LabVIEW需要什么样的基础啊?需要C语言基础吗?

虚拟仪器--软件就是仪器

虚拟仪器, 虚拟示波器, 虚拟仪器技术, 虚拟仪器软件, 虚拟仪器开发, 虚拟仪器组成

一、引言

当前多媒体计算机、信息高速公路和计算机网络是计算机信息科学的三个重要发展方向。它们相互联系、相互促进、共同发展,已经渗透到人们日常工作、生活、学习、娱乐的各个方面,逐步地由办公室、实验室走向家庭。

虚拟现实是多媒体计算机的一个重要应用领域,多媒体技术是虚拟现实的技术基础。虚拟现实(Virtual Reality)是利用多媒体计算机技术生成的一个具有逼真的视觉、听觉、触觉及嗅觉的模拟现实环境。用户可以用人的自然技能对这一虚拟的现实进行交互体验,而用户体验到的结果--该虚拟现实的反应与用户在相应的真实现实中的体验结果相似或完全相同。虚拟现实的概念包括如下三个层次的含义:

1、虚拟现实是利用计算机技术而生成的逼真的实体,人们对该实体具有真实的三维视觉、立体听觉、质感的触觉和嗅觉。

2、人们可以通过自然技能与虚拟现实进行对话,即人的头、眼、四肢等的各种动作在虚拟现实中的反应具有真实感。

3、虚拟现实技术往往要借助一些三维传感设备来完成交互动作,如头盔式立体显示器、数据手套、数据衣服、三维操纵器等。

虚拟现实技术虽然现在还处于初级阶段,但已在科学可视化、CAD、飞行器/汽车/外科手术、虚拟仪器等的操作模拟等方面得到了应用。已经在航空航天、国防军事、生物医学、教育培训、娱乐游戏、旅游等领域显示出广阔的应用前景。

虚拟仪器(Virtual Instrument--VI)是虚拟现实在仪器仪表领域中的一个重要应用,目前已在国际上悄然兴起。虚拟仪器是以多媒体计算机作为基础,使用图形界面编程技术,模拟实际仪器的面板、功能和操作,从而生成完成各种任务的专用仪器。

由于科学技术的高度发展,导致了各种功能强大、越来越复杂的仪器不断涌现,其中很多仪器都以计算机作为基础,出现了仪器计算机化的趋势,其主要表现为:

1、硬件与计算机的接口标准化

2、硬件软件化

3、软件模块化

4、模块控件化

5、系统集成化

6、程序设计图形化

7、科学计算可视化

8、硬件接口软件驱动化

由于计算机软、硬件技术的不断发展,加之实际应用的需要,使人们对虚拟仪器的兴趣越来越浓厚,研制虚拟仪器也成为了现实的可能。研制虚拟仪器主要源于以下目的:

1、节省仪器开发的时间和经费

2、充分利用计算机数据处理和分析的功能

3、统一仪器的用户界面

4、增强仪器的功能和适用范围

5、集成仪器的需要

6、使仪器容易扩展

虚拟仪器主要由以下几部分组成:

1、界面控件库

2、数据输入、输出

3、数据处理方法库

4、数据表示库

5、数据存储与管理

6、任意信号发生

7、图形界面编程环境

界面控件库中包括一些常用仪器的面板部件,如指示器、计量表、发光二极管、按钮、转盘、刻度盘、滑动条等,每个控件都带有可编程的函数与属性。

数据输入与输出是指从外部设备获取数据进入计算机或从计算机输出数据去控制外部设备,需要建立与数据采集板、串并口、以及其他标准化接口(IEEE-488、GPIB、RS-232、RS-422、SCSI、VXI等)通信的驱动软件,从而扩展仪器的适用

范围与应用领域。

数据处理方法库中集中了许多数据处理方法,如FFT计算、滤波、建模、参数估计等,并提供这些处理方法的编程接口,只需把这些方法简单的组合即可完成各种复杂的任务。

数据表示是指用一定的方式来显示数据和处理结果,其中包括数字显示、曲线显示、直方图、散点图、二维图形、三维网格图形、三维填充图形、四维图形、图象乃至动态图形或图象等,使得数据表示十分直观,易于理解。

数据存储与管理主要是指提供数据存储的格式、数据查询方法、数据浏览方法等。

信号产生是指根据需要产生任意信号,其中一些标准信号可以用于仪器测试和自检之用。

图形编程环境是指用户可以任意组合控件与方法,将其联接成一个整体,形成专用仪器的工具。利用虚拟仪器用户可以象搭积木一样很快生成所需要的各种仪器。

二、现有虚拟仪器与集成环境举例

1、MATLAB:高性能数值计算和数据分析软件

MATLAB是由美国Mathworks公司研制的高性能数值计算和数据分析软件。它已经成为工程和科学研究的工业标准,它具有独特的用户交互界面、复杂的数值计算、强大的数据分析、灵活的科学图形、快速的计算、方便的扩展等特点,是高产和创造性科学研究的首选软件。

MATLAB的基本功能有:

※ 矩阵运算

※ 矩阵分解

※ 矩阵特征值与特征向量计算

※ 信号卷积

※ 谱估计

※ 复数运算

※ 一维和二维FFT

※ 滤波器设计与滤波

※ 曲线拟合

※ 三次样条拟合

※ 贝赛尔函数

※ 非线性优化

※ 线性方程组求解

※ 微分方程

MATLAB包括的工具箱有:

※ 数字信号处理工具箱

※ 控制系统设计工具箱

※ 系统辨识工具箱

※ 自扩展工具箱

MATLAB包括的绘图函数:

※ 直方图

※ 散点图

※ 曲线图

※ 三维网格图

※ 三维填充图

※ 等值线图

※ 极坐标图形

※ X-Y绘图

※ 图象显示

2、DADiSP:科学家和工程师的数据分析与图形软件

DADiSP软件由美国DSP Development Corporation公司研制,主要作为科学家和工程师用于数据分析和图形显示工具。它包括以下功能:

※ 矩阵运算

※ 特征向量与特征值计算

※ 一维、二维FFT与卷积

※ 二维、三维、四维图形显示

※ 医学图象处理

※ 卫星遥感图象处理

※ 地震信号处理

※ 统计分析与处理

※ 实验设计

※ 假设检验

※ 滤波器设计

※ 声纳雷达信号处理

※ 语音与通信信号处理

※ 振动分析

3、MP100:医学信号采集与处理系统

MP100是由美国BIOPAC System公司研制的医学信号采集与处理系统,它与AcqKnowledge软件一起运行,提供灵活的、易于使用的模块化系统,使您能随心所欲的完成数据采集和分析任务。AcqKnowledge是一个功能强大、十分灵活的软件包,它使用下拉式菜单和对话框,无需学习另外的编程语言,就可以设计出复杂的数据采集、模拟、触发和分析系统。主要包括实时数据记录、分析和滤波,离线数据分析与处理,数据的各种图形表示等功能。该系统可以与虚拟仪器LabVIEW联接,提供可视化图形编程环境。它的主要应用领域有:

※ 运动生理学

※ 肌电信号记录

※ 心信电记录与分析

※ 脑电记录与分析

※ 诱发电位记录与分析

※ 眼震电图和眼球运动分析

※ 神经传导分析

※ 精神生理学

※ 药理学

※ 遥测监护

4、LabVIEW:图形编程虚拟仪器

LabVIEW是美国National Instrument Corporation公司研制的图形编程虚拟仪器系统。主要包括数据采集、控制、数据分、数据表示等功能,它提供一种新颖的编程方法,即以图形方式组装软件模块,生成专用仪器。LabVIEW由面板、流程方框图、图标/连接器组成,其中面板是用户界面,流程方框图是虚拟仪器源代码,图标/连接器是调用接口(Calling Interface)。流程方框图包括输入/输出(I/O)部件、计算部件和子VI部件,它们用图标和数据流的连线表示;I/O部件直接与数据采集板、GPIB板、或其他外部物理仪器通信;计算部件完成数学或其他运算与操作;子VI部件调用其他虚拟仪器。

5、LabWINDOWS/CVI:C语言编程的虚拟仪器

LabWINDOWS的功能与LabVIEW相似,且由同一家公司研制,不同之处是它可用C语言对虚拟仪器进行编程。

6、LabLinc V:模块化的虚拟仪器系统

LabLinc V由美国COULBOURN INSTRUMENTS公司研制的模块化虚拟仪器系统,它由基本单元、信号采集与处理、控制等模块组成,主要应用于生理学、生物医学和生物力学等领域中的数据采集、实时显示和过程控制等。

7、HyperSignal:可视化信号处理系统设计

HyperSignal由美国Hyperception公司研制的可视化信号处理系统设计软件,它使信号处理系统设计的过程可视化,同时使信号处理结果可视化。

8、Model900:灵活的数据采集与波形产生系统

Model900由美国Applied Signal Technology公司研制,提供高速大容量数据采集、波形产生等功能,使用虚拟仪器环境以节省开发时间和资金。

9、DASP:大容量数据自动采集与处理分析软件

DASP由东方振动和噪声技术研究所研制,主要用于科学实验数据记录与分析,多功能信号采集与分析,自动化数据采集、显示、读数、计算、分析、存储、打印、绘图等。

10、LabDoc:集成仪器软件包

LabDoc由日本康泰克电子技术有限公司研制,它具有多种测量仪器功能,通过图形用户界面和在线帮助,能提供容易操作的仪器画面。可以应用于实验室、生产线检查、教育与培训等领域,主要测试功能有:

※ 数字滤波

※ 脉冲发生

※ 函数发生

※ 波形发生

※ 调谐信号发生

※ FFT分析

※ 频率计

以上我们列举了十种目前比较流行的虚拟仪器和集成环境系统,其中以美国在这方面的工作最为出色,而我国在这方面才刚刚起步,尚未见到完整的虚拟仪器系统。由以上列举的例子可以看出,虚拟仪器具备如下特点:

※ 涉及较深奥的数值计算方法

※ 集成了信号处理与过程控制算法

※ 软、硬件模块互相独立

※ 具备二次开发的集成编程环境

※ 是多学科交叉、渗透的产物

三、虚拟医学信号处理仪器

医学信号范围十分广泛,其中常见的医学信号有心电、脑电、诱发电位、肌电、眼电、胃电、神经脉冲电位、血压、脉搏波、呼吸波、温度等信号,它们特点各

不相同,有各自的频带、幅度范围、干扰来源等,因而使得医学信号处理变得十分复杂。

无论哪种医学信号仪器,几乎都涉及到信号放大、采集、分析、处理、滤波等共同的任务,同时不同的信号又具有各自特殊的处理方法,这些共同性和特异性的有机结合,形成集成环境是虚拟仪器的基础。

由于多参数临床监护和综合诊断的需要,医学信号的采集处理仪器呈现出集成化的趋势,人们从研制单一功能的医学信号仪器转向研制多功能集成化仪器,然而这种集成化并非单功能仪的堆积组合,而是从不同单功能仪器中找出共同点和不同点,形成软、硬件模块,将医学信号处理仪器计算机化,构成医学信号处理仪器开发环境,即虚拟仪器。

虚拟医学信号处理仪器是一个颇具具前景的领域,许多医疗仪器公司都看好这一市场前景,投入大量的人力、物力和财力来从事这方面的研究与开发,前面提到的MP100医学数据采集系统和LabLinc V模块化虚拟仪器就是其中的杰出代表。

虚拟医学信号处理仪是开发生产各种医学信号仪的工具。对于开发者而言,就可以象搭积木似的很快生成专用仪器,节省大量的开发时间和资金;对于用户而言,可以少花钱,多买仪器。虚拟医学信号处理仪器为集成化多功能仪器的开发奠定了基础,而且可以把最新研究成果尽快的应用到仪器中来。另外,虚拟医学信号处理仪器可以用于对未知信号和信号未知特性的研究,达到快出成果、多出成果的目的。实际上,虚拟医学信号处理仪器也对当前远程医疗、医学电子图书等热门研究领域将起到推波助澜的作用。

四、虚拟仪器相关技术

1、数值计算

在虚拟仪器中,需要提供灵活的数据处理方法,这些方法可根据实际需要由用户通过编程来实现,为了简化编程的复杂程度和节省大量的开发时间,在虚拟仪器中应当尽可能多的提供各种数值计算程序,这些数值计算主要有以下几大方面:

※ 矩阵运算(加、减、乘、逆、转置)

※ 特征值与特征向量计算

※ 矩阵分解

※ 一元、二元插值

※ 数值积分和微分

※ 线性代数方程求解

※ 非线性方程求解

※ 拟合与逼近

※ 特殊函数

※ 回归与统计

2、数字信号处理

在复杂的仪器中,数字信号处理占有重要的地位,因而在虚拟仪器中集成各种数字信号处理方法十分必要,数字信号处理方法可分为几大类:

※ 信号预处理

※ 滤波器设计与滤波

※ 经典谱估计

※ 现代谱估计

※ 相关与卷积

※ 离散变换

※ 数字特征计算

※ 常用信号发生

※ 信号建模

※ 数据压缩

3、计算机图形、图象学

图形和图象是复杂仪器中大量数据的直观表示,例如静态和动态脑电地形图,物体表面温度分布图,电磁场分布图等,它可把原本十分抽象的数据转换成人们易于理解的直观表示;另外,数据及其分析结果人们也习惯于用曲线、直方图、三维图形、等高线图等来表示。所以在虚拟仪器中,建立这些数据的图形、图象表示模块是十分必要的。

4、科学计算可视化

前面提到,复杂大量数据的图形、图象表示在虚拟仪器中十分重要,然而由数据到图形的映射并不是简单的事情,这就是近年来发展起来的科学计算可视化的研究课题。

科学计算可视化的根本目的是把由实验或数值计算获得的大量数据转换成人的视觉可以感受到的计算机图象。利用图象把大量抽象的数据有机的组织到一起,从而形象、生动地展示数据所表示的内容以及它们之间的相互关系,帮助人们直接把握复杂的全局,更好地发现和认识规律,摆脱复杂大量抽象数据的困惑。虚拟仪器中科学计算可视化的引入,将给人们展示出仪器的无限魅力,使仪器具备处理和分析大量复杂数据的能力。

5、面向对象的可视化编程

虚拟仪器是一个集成编程环境,用它人们可以很快地生成自己所需要的复杂仪器。所以虚拟仪器既要可编程又要操作简单,因而人们把面向对象的可视化图形编程技术引入到虚拟仪器中来。在虚拟仪器中集成了许多功能强大的部件,这些部件用直观的计算机图形表示,每个部件都有相应的可控属性、操作和函数,人们只需把这些部件在计算机屏幕上布置好,设置好相应的属性,以及它与其他部件的连接关系,即可生成构成相应功能的仪器。

五、小结

虚拟仪器是当前国内外刚刚起步的研究领域,许多高技术公司和研究所都看好这一市场应用前景,纷纷投入大量的人力、物力和财力,加紧开发与研究。虚拟仪器是多媒体计算机的一个重要应用领域,是多学科交叉、渗透的产物,其中浓缩了许多高、精、尖的科学技术。虚拟仪器不是仪器却高于仪器,它大大缩短了新型仪器的开发周期,节省了仪器开发的费用,它不仅是开发仪器的工具,而且也是进行科学研究的有力手段。虚拟仪器是仪器计算机化的产物,是集成化仪器的基础,是仪器行业的一场革命,它的研制与开发具有深远的意义。

gpib编程 什么语言好

1.最简单的方法:

public static String reverse1(String str)

{

   return new StringBuffer(str).reverse().toString();

}

2.最常用的方法:

public static String reverse3(String s)

 { 

   char[] array = s.toCharArray(); 

  String reverse = "";  //注意这是空,不是null

   for (int i = array.length - 1; i = 0; i--) 

   reverse += array[i]; 

   return reverse; 

  } 

3.常用方法的变形:

 public static String reverse2(String s)

  int length = s.length(); 

   String reverse = "";  //注意这是空,不是null

   for (int i = 0; i  length; i++) 

    reverse = s.charAt(i) + reverse;//在前面连接,  而非常见的后面

   return reverse; 

  } 

4.C语言中常用的方法:

 public static String reverse5(String orig)

  char[] s = orig.toCharArray(); 

  int n = s.length - 1; 

  int halfLength = n / 2; 

  for (int i = 0; i = halfLength; i++) { 

    char temp = s[i]; 

   s[i] = s[n - i]; 

   s[n - i] = temp; 

   } 

   return new String(s);  //知道  char数组和String相互转化

  }

哪位高手帮我修改一下VC控制GPIB程序错误

vc语言中的main函数只能用void来处理,你把 int main()改为void main() c和c++对主函数也就是main函数的要求是一样的 那是不是你弄错了?

请用8255实现gpib接口的硬件电路设计.此外,还有更方便,快捷的接口设计方法吗

硬件电路的设计分为硬件和固件两部分。硬件要实现PC机与USB芯片的通信以及USB与GPIB接口逻辑之间的通信;同样,固件也要满足USB接口和GPIB逻辑协议。设计思路就是USB接口与PC机实现通信,并且提供给GPIB的信号线,最终建立两者之间的通信,硬件总体框图如图1所示。

USB主芯片选取了Cypress公司CY7C68013控制芯片,芯片结构如图2所示。CY7C68013集成了以下特性:USB2.0收发器、SIE(串行接口引擎)和增强型8051微处理器;8051程序从内部RAM开始运行;4个可编程BULK/INTERRUPT/ISOCH-RONOUS端点;8位 16位外部数据接口;通用可编程接口(GPIF);3.3V电源系统;矢量USB中断;独立的数据缓冲区供SETUP和DATA包控制传输;集成I2C控制器,频率可达100或400 kHz;4个FIFO,可与ASIC和DSP等无缝连接;专门的FIF0和GPIF自动矢量中断。

美国NI公司推出的TMS9914控制芯片是一款高性能CMOS的GPIB接口专用芯片,满足IEEE488协议的要求;工作在TMS9914模式下,能够将GPIB母线上的信号按照GPIB协议进行解码和译码转换为用户可用的格式,同时将用户发过来控制GPIB的信号进行处理,按照协议要求发送到GPIB母线上;内部有16个寄存器,分成两组,一组是只写寄存器,有8个;另一组是只读寄存器,有8个。TMS9914内部各个寄存器的状态决定或标志着芯片及GPIB的工作状态。在GPIB接口设计中,只有通过编程对寄存器进行正确编排,才能实现对GPIB的各种操作。

怎样利用C++语言编程通过GPIB接口去控制CMU200

UsedDelegate函数的a希望可以调用如下:

private static void UsedDelegate(int i, Actionint a)

{

a(i, b,c); //不知道这样可不可以,如果调用fun2的时候,有一个参数由局部变量i传入,其他参数由main函数传入

}