通俗易懂、浅显地解释GPIB通信的概要及术语,解释编程所需要的基础知识。
Contents
什么是GPIB?
GPIB(General Purpose Interface Bus)是作为计算机与计量仪器的接口开发的,主要用于连接计算机与计量仪器。美国Hewlett Packard公司的内部规格“HP-IB”获得IEEE (Institute of Electrical and Electronic Engineers: 美国电气和电子工程师协会)的认可,并成为国际标准规格。现在,很多计量仪器标准配置GPIB接口,在使用计算机与计量仪器的计测系统上得到广泛应用。
GPIB的规格
GPIB的规格有“IEEE488”和“IEEE488.2”两种,其中后者是上位协议,属于现在的主流。IEEE488.2在IEEE488规定的传输方法之上,增加了字符数据和数值表示的语法、各设备共通使用的指令(Command)、查询(Query)等规定,支持IEEE488.2的设备不仅可以遵照IEEE488.2的标准通信,而且在IEEE488规定的范围内也能通信。

GPIB的特点
-
采用总线结构的接口,利用驮载封装方式的连接器,设备间的连接和构成容易。此外,即使连接的设备增加,也可只用计算机的一个接口。
-
通过握手通信,能够进行可靠性高的数据传输。
-
作为计量仪器行业的标准总线,很多计量仪器配置有GPIB接口,学习一个的步骤,就能够控制各种各样的计量仪器。
-
4.即使是通信速度不同的设备,也能连接(但是,整个系统适应通信速度就是最慢的设备的速度)。
驮载封装结构的连接器
连接GPIB通信设备与计算机的优点
目前,仍有很多计量仪器配置GPIB接口,之所以能够在计量仪器行业确立标准总线的地位,是因为在与计算机的连接上具有以下的诸多优点。
在1台计算机上连接多台计量仪器,各设备通过程序进行自动计测,用计算机收集计测得到的数据,进行分析、表示处理、数据保存,这是一般的使用方法。
使用GPIB通信设备与计算机的系统示例
问题点、想改善之处
由于GPIB通信的制约(整个系统的线缆总长),必须在望远镜附近进行操作和观测,非常不便;研究人员之间想实时共享信息等,有很多要求。
在“计测和控制设备开发”、“网络设备开发”上拥有丰富经验的Contec能够改善此类问题点。
连接数量
规格规定包括控制器(计算机)在内,一个系统内能够连接的设备数量为15台,超过这个数字的设备不能连接到一个系统上。
连接方式
菊花链、星形(放射状)及其组合等,能够进行自由度高的连接。但是,禁止环路连接。
菊花链连接
星形连接
注意:禁止环路连接。
线缆长度
各装置间的线缆长度为4m以下,在一个系统中,可用于装置相互连接的线缆最大长度为“2m×装置个数”或者20m,以二者中短的为准
- 例1:总共有2台设备时(控制器1台+GPIB通信设备1台)
- 2m×(装置个数=2台)< 20m,因此,一个系统总的线缆最大长度为4m。
- 例2:总共有3台设备时(控制器1台+GPIB通信设备2台)
- 2m×(装置个数=3台)< 20m,因此,一个系统总的线缆最大长度为6m。
- 例3:总共有15台设备时(控制器1台+GPIB通信设备14台)
- 2m×(装置个数=15台)>20m,因此,一个系统总的线缆最大长度为20m。
数据传输速度
使用8根数据线,以最大1MB/秒的速度,一次传输1个字节的数据。然而,很多计测仪器的通信速度慢,而且连接在同一总线上的设备的通信速度就是通信速度最慢的设备的速度。
通话端与收听端
在连接在总线上的设备中,将接受数据的设备表示为听话人(Listener),将发送数据的设备表示为讲话人(Talker)。由控制器指定讲话人和听话人。将管理整个系统的装置叫做控制器,通常由计算机(个人计算机)担任。
主端与从端
所谓主端,如同其名称所表达的那样,就是主人(Master),在进行GPIB通信上具有决定权(发送指令等),相对主端,从端就是仆从(Slave),需要遵照主端的指示(接收指令等)运作。在系统构成上,需要主端1台,而需要从端1台以上,而且在控制计量仪器时,计算机是控制器,因此就是主端。
设备地址
连接到GPIB系统上的各装置在同一系统内具有唯一(固有)的地址,通过该地址识别各装置(将分配给自身的地址叫做我的地址)。如果将设备比作电话,设备地址就相当于电话号码,可向该编号的设备发送数据,或从其接收数据,进行通信。在同一通信系统内,可在“0~30之间”自由设定设备地址,但不得与其他设备的地址重复。
握手通信
所谓握手,就是发送端向接收端发送“正在发送数据”的信号,接收端接收该信号,从信号线上读入数据。并向发送端返回“已接收数据”的信号,这种通信方式一边由双方共同确认数据的收发,一边传输数据。由此,GPIB实现了可靠性高的数据收发。
控制器的作用
为了防止数据冲突,限定某一时刻只有1台GPIB总线上的设备能够发送数据。实现这一点的就是控制器。控制器主要进行以下动作。也就是说,要是用程序来表现这些,可以说就能够构建以计算机为控制器的GPIB系统。
-
指定讲话人。
-
指定与讲话人配对的听话人(也可指定多个装置)。
-
可将系统复位到初始状态。
-
进行各设备的远程控制。
-
承担相应各设备的服务请求的职责。
-
可向各设备发送指令(Command)。
GPIB的信号线
由8根数据线、3根握手线、5根管理总线组成,规格对连接器、信号配置的规定如下。尤其是编写GPIB程序上所需的管理总线,需要透彻理解其职责。
GPIB的连接器芯配置图
管理总线(5根)
用于高效控制连接在总线上的装置,管理信息流动。在控制GPIB的设备上承担重要的职责。
- ATN(Attention)
- 在数据模式和指令模式中使用数据线,其中数据模式用于在装置间传输数据,指令模式用于从控制器向各装置发送指令。指示当前的数据线状态的是ATN线。ATN线的管理由控制器进行。当ATN线变成低电平后,各装置必须从控制器接收指令。如果ATN线是低电平,就是指令模式;如果ATN线是高电平,就是数据模式(收发测量数据等)。
- IFC(Interface Clear)
- 为初始化所有设备的接口功能,由控制器发送。各装置接收该信号,将接口功能置于初始状态。但是,缓冲器的内容等各设备固有的部分(设备功能)不会被初始化(设备功能部分的初始化通过设备清除指令或者设备固有的指令进行)。以100μsec以上的脉冲信号发送IFC信号。
- SRQ(Service Request)
- 接受控制的各装置为向控制器发送处理结束、异常发生的通知,使用该信号。当某一装置进入请求服务的状态时,该装置将SRQ线置于低电平。如果控制器获悉SRQ线处于低电平,进行轮询(舆论调查)处理,调查哪一设备请求了什么样的服务。
- REN(Remote Enable)
- 用于控制设备的远程/本地状态。只有具有控制器功能的装置才能使用。
- EOI(End or Identify)
- 在进行通信时,彼此需要同时结束通信(发送结束/接收结束)。进行二进制数据通信时,使用“EOI”表示数据的终端。进行字符数据通信时,可以使用“分隔符代码”;而进行二进制数据通信时,需要利用EOI线控制数据的终端。
数据线(8根)
用于发送多路信息或者传输数据。
接地线(8根)
除了数据线以外,其余的信号线全部采用接地线与双绞线结构。GPIB使用的线缆和连接器采用的是屏蔽结构,抗电磁干扰性优越。
握手线(3根)
用于数据线的握手。
- DAV(Data Valid)
- 这是表示正在发送数据的信号线。
- NDAC(No Data Accepted)
- 这是表示接收未完成的信号线。
- NRFD(Not Ready For Data)
- 这是表示接收准备未完成的信号线。
SRQ(服务请求)与轮询
为了用程序控制GPIB设备,接收数据,除了理解管理总线的操作外,理解SRQ(服务请求)与轮询的动作能够编写高效的程序。
SRQ(服务请求)
为了向控制器发送异常发生、发送准备完成的通知等,发出中断请求,为此设置了SRQ功能。如果发出SRQ请求,SRQ线为“真”,向控制器传达连接在总线上的某个设备发出了服务请求。然而,只靠SRQ信号分不清哪一设备发出了请求,于是控制器进行轮询(舆论调查)处理,查清发出了服务请求的设备,并确认内容。
串行查询
这种方法由控制器向认为发出了服务请求的设备,一台一台地依次询问是否发出了SRQ信号。接到串行查询的设备向控制器发送被称为“状态字节”的1个字节的数据。控制器调查各设备的状态字节,把握哪一设备发出了服务请求,提出了什么样的请求。一般多用串行查询。
并行查询
这种方法将8根数据线分别分配给1台设备,一次性调查哪些设备(最多8台设备)发送了SRQ。如果执行并行查询,各设备向分配的线路发送“0”或者“1”,答复是否向控制器发送了服务请求。
状态字节
状态字节(1个字节)与收发数据一样,被输出到数据线上。当设备发出了SRQ时,状态字节的第6位为“真(1)”,没有发出SRQ的设备为“假(0)”。状态字节的其余位可以表达各设备固有的含义。例如,可将发出SRQ的原因(计测结束、异常发生等)通知控制器。在被控制器轮询后,状态字节的第6位为恢复为“0”。
接口功能
GPIB的规格将对象设备的功能分割为接口功能和设备功能,规格只规定了接口功能。但是,连接在GPIB上的设备不必安装所有功能。
- 设备功能
- 这是设备固有的部分,不属于GPIB规格。设备固有的指令、设备的操作方法、测量量程的设定方法等。
- 接口功能
- 这是GPIB的规格规定的功能。GPIB通信设备只从各功能中安装必要的功能。
具备GPIB的装置的结构
信息与指令
GPIB准备有规格规定的各种各样的信息、指令。使用这些控制GPIB通信设备。
多路接口信息
这是为使GPIB连接的设备动作而准备的、规格规定的信息(指令)。这是只有控制器才能使用的信息(指令),使用数据线(8根)发出多路接口信息。有地址指令、通用指令。
设备信息
这是只有1根信号线才具有意义的信息。当线路为“真”时表示命令开始,为“假”时表示命令结束。
单线信息
这是只有1根信号线才具有意义的信息。当线路为“真”时表示命令开始,为“假”时表示命令结束。
- ATN (Attention)
- IFC (Interface Clear)
- SRQ (Service Request)
- REN (Remote Enable)
- EOI (End or Identify)
地址指令
这是只对特定设备使用、由GPIB规格规定的指令(Command)。
- GTL (Go To Local)
- 将对方设备置于本地状态。
- SDC (Selected Device Clear)
- 将设备复位到初始状态。
- PPC (Parallel Poll Configure)
- 设定并行查询功能的响应位。
- GET (Group Execute Trigger)
- 为设备设置触发(计测开始等)。
- TCT (Take Control)
- 可将对方设备指名为活动控制器。
通用指令
这是对连接的所有设备使用、由GPIB规格规定的指令(Command)。
- LLO (Local Lock-Out)
- 禁止对方设备的本地功能。
- DCL (Device Clear)
- 将总线上的所有设备置于初始状态。
- PPU (Parallel Poll Unconfigure)
- 取消并行查询功能的响应位。
- SPE (Serial Poll Enable)
- 将对方设备置于串行查询模式。
- SPD (Serial Poll Disable)
- 解除对方设备的串行查询模式。
- UNL (UNLISTEN)
- 全部解除当前的听话人指定。
- UNT (UNTALK)
- 全部解除当前的讲话人指定。
IEEE488.2共通指令
这是符合IEEE488.2标准的设备可共通使用的指令(Command)。可高效地控制GPIB通信设备。
准备有“*RST”、“*CLS”、“*TRG”、“*IDN?”等的指令、查询(Query)。