GPIB概述
什么是GPIB?
通用接口总线是一个标准化的接口,允许您连接和控制来自不同供应商的多个设备。GPIB也被称为HP-IB或IEEE®指定ieee - 488。随着时间的推移,GPIB功能不断发展,并在几个规范中进行了描述:
IEEE 488.1-1975规范定义了接口的电气和机械特性及其基本功能特性。
IEEE-488.2-1987规范建立在IEEE 488.1规范的基础上,定义了可接受的最小配置、基本仪器命令集和通用数据格式。
可编程仪器标准命令(SCPI)规范建立在IEEE 488.2规范中给出的命令的基础上,定义了一个可以被GPIB或其他接口使用的标准仪器命令集。
对于许多GPIB应用程序,您可以在不详细了解GPIB如何工作的情况下与您的仪器通信。通信是通过VISA-GPIB对象建立的,您使用该对象创建visadev
.
如果您的应用程序很简单,或者您已经熟悉了GPIB规范,那么您可以从开始使用GPIB接口.如果您想要在与仪器通信时可能采取的所有步骤的高级描述,请参阅创建仪器对象.
一些GPIB功能对于所有GPIB设备都是必需的,而其他GPIB功能是可选的。此外,许多设备只支持SCPI命令集的一个子集,或者使用万博1manbetx不同的特定于供应商的命令集。有关其GPIB功能及其命令集的完整列表,请参阅设备文档。
重要的GPIB特性
以下部分将描述重要的GPIB特性。有关GPIB功能的详细信息,请参阅参考书目.
总线和连接器
GPIB总线是一根带有两个24针连接器的电缆,允许您将多个设备相互连接。总线和连接器具有以下特性和限制:
您最多可以将15个设备连接到总线上。
连接设备可以采用星型、线性或多种连接方式。
为了达到最大的数据传输速率,电缆长度不应超过20米,平均每台设备不应超过2米。您可以通过使用总线扩展器来消除这些限制。
通用接口总线设备
每个GPIB设备必须是说话的人,一个侦听器,或控制器.控制器通常是安装在计算机中的一个板。说者和听者通常是示波器、函数生成器、万用表等仪器。大多数现代乐器既是说者又是听者。
话务员-话务员通过接口传输数据,当被控制器指定为话务员时。一个GPIB系统一次只能包含一个对话者。
监听器——当控制器指定监听地址时,监听器通过接口接收数据。一个GPIB系统在给定时间内最多可以包含14个监听器。通常,控制器是一个对话器,而GPIB上的一个或多个仪器是侦听器。
控制器——控制器指定哪些设备是Talkers或listener。一个GPIB系统可以包含多个控制器。其中一个被指定为系统控制器。但是,在给定的时间内只能有一个Controller是活动的。当前的活动控制器为CIC (controller - in - charge)。CIC可以将控制权传递给一个空闲的控制器,但是只有系统控制器可以使自己成为CIC。
当控制器不发送消息时,话务员可以发送消息。通常情况下,CIC是监听器,而另一个设备被启用为通话器。
每个控制器由唯一的板索引号标识。每个对话者/监听者都由一个唯一的主地址(0 ~ 30)和一个可选的从地址(0或96 ~ 126)来标识。
通用接口总线的数据
两种类型的数据可以通过GPIB传输,仪表数据而且接口信息:
仪器数据-仪器数据由特定于供应商的命令组成,这些命令配置您的仪器,返回测量结果,等等。有关您的工具支持的命令的完整列表,请参阅其文档。万博1manbetx
接口消息——接口消息由GPIB标准定义,由清除GPIB总线、寻址设备、返回自检结果等命令组成。
数据传输由并行发送的一个字节(8位)组成。接口上的数据传输速率限制为每秒1mb。然而,这个数据速率在实际应用中通常无法实现,并且受到总线上最慢设备的限制。
通用接口总线线路
GPIB由24条线路组成,由连接到总线的所有仪器共享。16条线用于信号,而8条线用于地面。信号线分为以下几组:
8条数据线
5条接口管理线路
三种握手方式
信号线使用TTL电平的低真(负)逻辑约定。这个约定意味着当一行是TTL低电平时它是低电平(true或断言),当一行是TTL高电平时它是高电平(false或未断言)。GPIB连接器的引脚分配方案如下图和表所示。
GPIB引脚和信号分配
销 |
标签 |
信号的名字 |
销 |
标签 |
信号的名字 |
---|---|---|---|---|---|
1 |
DIO1 |
数据传输 |
13 |
DIO5 |
数据传输 |
2 |
DIO2 |
数据传输 |
14 |
DIO6 |
数据传输 |
3. |
DIO3 |
数据传输 |
15 |
DIO7 |
数据传输 |
4 |
DIO4 |
数据传输 |
16 |
DIO8 |
数据传输 |
5 |
情绪过分投入 |
结束或识别 |
17 |
任 |
远程支持 |
6 |
DAV |
数据有效 |
18 |
接地 |
DAV地面 |
7 |
NRFD |
尚未准备好数据 |
19 |
接地 |
NRFD地面 |
8 |
NDAC |
不接受数据 |
20. |
接地 |
NDAC地面 |
9 |
国际金融公司 |
界面清晰 |
21 |
接地 |
国际金融公司地面 |
10 |
SRQ |
服务请求 |
22 |
接地 |
SRQ地面 |
11 |
ATN |
注意 |
23 |
接地 |
ATN地面 |
12 |
盾 |
机壳接地 |
24 |
接地 |
信号地 |
数据行
从DIO1到DIO8的8条数据线用于每次传输一个字节的数据。DIO1是最不重要的位,而DIO8是最重要的位。传输的数据可以是仪器命令,也可以是GPIB接口命令。
数据格式是特定于供应商的,可以是基于文本的(ASCII)或二进制。GPIB接口命令由IEEE 488标准定义。
接口管理线路
接口管理线控制通过GPIB接口的数据流。
接口管理线路
行 |
描述 |
---|---|
ATN |
控制器用于通知GPIB上的所有设备正在发送字节。如果ATN行高,则将字节解释为instrument命令。如果ATN行低,则字节被解释为接口消息。 |
国际金融公司 |
控制器用于初始化总线。如果IFC线路低,则说话者和侦听者没有寻址,系统控制器成为控制器- in - charge。 |
任 |
控制器用于将仪器置于远程或本地程序模式。如果REN值很低,则所有监听器都处于远程模式,并且不能从前面板更改它们的设置。如果REN值高,则所有侦听器都被置于本地模式。 |
SRQ |
会话者用于从控制器异步请求服务。如果SRQ低,则一个或多个talker需要服务(例如,接收到无效命令等错误)。您发出一个连续投票,以确定哪个谈话者请求服务。问卷会自动将SRQ设置为高值。 |
情绪过分投入 |
如果ATN行高,则EOI行用于标识字节流(如仪器命令)的结束。如果ATN线较低,控制器将使用EOI线执行并行轮询(工具箱不支持)。万博1manbetx |
握手线
三个握手线DAV、NRFD和NDAC用于通过数据线将字节从会话器传输到一个或多个已寻址的侦听器。
在数据传输之前,三条线路都必须处于正常状态。主动式通话器控制DAV线路,监听器控制NRFD和NDAC线路。握手过程允许无错误的数据传输。
握手线
行 |
描述 |
---|---|
DAV |
由会话者使用,表示侦听者可以读取一个字节。 |
NRFD |
指示侦听器是否准备好接收字节。 |
NDAC |
指示侦听器是否接受了字节。 |
握手的步骤如下:
最初,通话者将DAV线保持在高位,表示没有数据可用,而监听者将NRFD线保持在高位,NDAC线保持在低位,分别表示它们已经准备好接收数据和没有数据被接受。
当Talker将数据放在总线上时,它将DAV线设置为低,这表明数据是有效的。
监听器将NRFD线设置为低,这表明它们还没有准备好接受新数据。
监听器将NDAC行设置为高值,这表明数据被接受。
当所有侦听器都表示已接受该数据时,会话者将DAV设置为高值,表示该数据不再有效。下一个字节的数据现在可以传输了。
监听器将NRFD线保持在高位,表示它们已经准备好再次接收数据,而NDAC线保持在低位,表示没有数据被接受。
请注意
如果握手过程中ATN线过高,则该信息被视为仪器命令等数据。如果ATN线低,则认为该信息是一条GPIB接口消息。
握手步骤如下图所示。
状态和事件报告
GPIB提供了一个报告状态和事件信息的系统。有了这个系统,您可以发现您的仪器是否有数据要返回,是否发生了命令错误,等等。对于许多仪器,报告系统由四个8位寄存器和两个队列(输出和事件)组成。这四个寄存器分为以下两个功能类别:
状态寄存器-状态字节寄存器(SBR)和标准事件状态寄存器(SESR)包含仪器状态的信息。
启用寄存器——事件状态启用寄存器(ESER)和服务请求启用寄存器(SRER)决定将哪些类型的事件报告给状态寄存器和事件队列。ESER启用SESR, SRER启用SBR。
状态寄存器、启用寄存器和输出队列如下图所示。
状态字节寄存器
状态字节寄存器(SBR)中的每一位都与特定类型的事件相关联。当事件发生时,仪器将相应的位设置为1。您可以使用服务请求启用寄存器(SRER)启用或禁用SBR位。您可以通过读取启用的SBR位来确定发生了哪些事件。
状态字节寄存器位
位 |
标签 |
描述 |
---|---|---|
0 - 3 |
- - - - - - |
特定于仪器的摘要消息。 |
4 |
微型飞行器 |
消息可用位表示输出队列中是否有数据可用。如果输出队列包含数据,MAV为1。如果输出队列为空,MAV为0。 |
5 |
ESB |
事件状态位表示是否发生了一个或多个启用的事件。如果发生启用的事件,则ESB为1。如果没有启用事件,则ESB为0。使用标准事件状态启用寄存器启用事件。 |
6 |
海量存储系统(MSS)中 |
主摘要状态汇总ESB和MAV位。如果MAV或ESB都为1,则MSS为1。如果MAV和ESB都为0,则MSS为0。该位从 |
中移动 |
“请求服务”位表示仪器向GPIB控制器请求服务。这个位是从串行轮询中获得的。 |
|
7 |
- - - - - - |
特定于仪器的摘要消息。 |
例如,如果您想知道何时发生特定类型的仪器错误,启用SRER的第5位。此外,启用标准事件状态启用寄存器的适当位,以便由SBR的ESB位报告感兴趣的错误事件。
标准事件状态登记册
标准事件状态寄存器(SESR)中的每一位都与仪器的特定状态相关联。当状态发生变化时,仪器将相应的位设置为1。您可以使用标准事件状态启用寄存器(ESER)启用或禁用SESR位。您可以通过读取已启用的SESR位来确定仪器的状态。SESR位有如下描述。
SESR比特
位 |
标签 |
描述 |
---|---|---|
0 |
OPC |
“操作完成”位表示所有命令都已完成。 |
1 |
RQC |
大多数仪器都不使用请求控制位。 |
2 |
QYE |
查询错误位表示仪器试图读取空输出缓冲区,或者输出缓冲区中的数据丢失。 |
3. |
DDE |
Device Dependent Error位表示设备发生错误(如自检错误)。 |
4 |
EXE |
“执行错误”位表示设备执行命令或查询时发生错误。 |
5 |
芝加哥商品交易所 |
“命令错误”位表示命令语法错误。 |
6 |
URQ |
大多数仪器不使用用户请求位。 |
7 |
在其 |
“Power On”位表示设备已上电。 |
例如,如果您想知道何时发生执行错误,可以启用ESER的第4位。此外,启用SRER的第5位,以便由SBR的ESB位报告感兴趣的错误事件。
读写寄存器信息
介绍GPIB常用的状态和事件寄存器信息读写命令。
寄存器的命令
注册 |
操作 |
命令 |
描述 |
---|---|---|---|
SESR |
读 |
|
返回一个十进制值,该值对应于SESR寄存器中设置的所有位的加权和。 |
写 |
N/A |
不能写入SESR寄存器。 |
|
西文 |
读 |
|
属性所启用的所有位的加权和对应的十进制值 |
写 |
|
写一个十进制值,对应于你想在SESR寄存器中启用的所有位的加权和。 |
|
SBR |
读 |
|
返回一个十进制值,该值对应于SBR寄存器中设置的所有位的加权和。该命令返回与串行轮询相同的结果,只是MSS位不清除。 |
写 |
N/A |
不能写入SBR寄存器。 |
|
老 |
读 |
|
属性所启用的所有位的加权和对应的十进制值 |
写 |
|
写一个十进制值,它对应于你想在SBR寄存器中启用的所有位的加权和。 |
例如,要启用SESR的第4位,您可以编写命令* ESE 16
.要启用SESR的第4位和第5位,您需要编写该命令* ESE 48
.要使能SBR的第5位,您可以编写该命令*是32
.
要了解如何在仪器控制会话的上下文中使用这些命令,请参阅执行连续轮询.