GPIB
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
GPIB接口介面简介
由[美达科技股份有限公司]提供GPIB接口最早是由美商惠普(Hewlett-Packard) 公司所发展出来,作为自己公司内部仪器间的连接接口,那时称之为HPIB (Hewlett-Packard Interface Bus) 。
1975年,美国电机电子工程协会 (IEEE) 依据HPIB为基础,公布了ANSI/IEEE Std 488.1-1975,称为可程序化仪器之IEEE标准数字接口(IEEE Standard Digital Interface for Programmable Instrument,简称IEEE 488-1975) ,它规范了连接器 (Connector) 和电缆线 (Cable)
间的电气特性与机械特性,也定义出总线间数据传输交握(Handshaking) 协定。
1978年IEEE 又对1975
年所订的标准做了第一次的修订,称为IEEE 488-1978。
根据以上所述,可以得知HPIB、GPIB 及IEEE 488
等,指的都是同样的标准─ IEEE 488-1978标准。
IEEE 488-1978只对硬件 (电气、机械特性及总线协议等) 作了详细地规范,在轫体程序上却无明确地定义,例如命令格式的语法、参数型态的定义及结束字符的使用等,使得某些仪器间出现了GPIB兼容性的问题。
有鉴于此,惠普与太克(Tektronix) 等仪器大厂,联合于1987年重新订定IEEE 488,将其分成了硬件上的标准-IEEE 488.1-1987及软件上的标准-IEEE 488.2-1987。
IEEE 488.1-1987即为IEEE 488.1-1978,而IEEE 488.2-1987却为新定的标准规范,命名为IEEE标准码、格式、协议及共同命令(IEEE Standard Code,Formats,Protocols,and Common Commands) ,它定义了控制命令的表头格式,参数的型态,共同命令集及状态回报格式等。
如此,在软件程序设计有了新的标准,即可解决软件兼容性的问题。
1.1 GPIB总线的基本架构
1.1.1 装置连接方式
IEEE 488接口,可将控制器 (计算机) 、量测仪器(装置) 等以并联方式连接在一起,形成一自动量测系统。
连接方式可分成线式(Linear) 串接与星形 (Star) 连接两种方式。
线性串接方式是以一台串联着一台的方式,连接成一测试回路。
而星形连接方式,图中,以一台装置为中心,幅射连接至其它装置。
此种连接方式有个缺点,为受限于连接器重迭之数目,重迭数目最好不要超过三个,以免最下方的装置的连接器承受太大的力量。
1.1.2 IEEE 488.1
电缆线长度的限制GPIB总线为了要达到数据高速传输的目的,在IEEE 488.1里对于电缆线的长度有以下的限制:
(1) 一个系统内,电缆线的总长度不得超过2公尺乘以连接装置的数目,但最大长度不得超过20公尺。
(2) 一个系统内,所能连接装置数目不得超过15个,而且其中至少要有2至3个装置是在开机状态。
1.1.3
IEEE 488 讯号线IEEE 488总线是由16条讯号线与8条地线及隔离线所组成,如图1-1所示,
为IEEE 488
连接器的接脚图,图中详细定义24条总线所在的位置,其中16条讯号线依其功能可区分成三大类:
八条资料线 (Data Line)
五条接口管理线(Management Line)。
三条交握线 (Handshake Line)。
图1-1 IEEE 488 连接器之接脚图
1. 八条数据线IEEE 488.1标准里定义之数据线共有八条,称为DIO1、DIO2...至DIO8,用来传输命令讯息 (接口讯息) 和数据讯息 (装置相关讯息) 之用。
2. 五条管理线IEEE 488总线里共定义有五条管理线,分别分别说明如下。
(1) IFC(Interface Clear)线IFC管理线,为系统控制器重置装置之用。
(2) ATN(Attention)线ATN管理线,用来指示在总线八条数据在线的数据为命令讯息或则是数据讯息。
(3) REN(Remote Enable)线REN管理线,是装置用来切换装置为远程控制(Remote Control) 或是本地控制 (Local Control) 。
所谓远程控制乃是透过GPIB总线所传送过来的装置相关讯息进行控制,而本地控制则是利用装置本身面板按钮开关进行控制。
(4) EOI(End-or-Identify)线 EOI管理线,是装置(发话者) 所传送的数据序列至最后字节时,令EOI线动作(拉至低准位) ,表示数据传输结束。
相对地,收听者在判别其EOI线被拉至低电位时,即停止读取数据。
EOI线可与NL (New Line) 字符及CR (Carriage Return)字符相互结合成结束符号。
(5) SRQ(Service Request)线 SRQ管理线,是装置用来通知值班控制器,其需要控制器的服务。
当SRQ管理线所处的电位为低准位时,表示装置须要服务,此时装置须一直保持低准位,直到其被值班控制器循序轮询完后,才可将SRQ线电位拉高,解除服务要求。
因此,相对地值班控制器就必须随时监测其SRQ信号,以判断是否有装置要求服务中断。
3. 三条交握线IEEE 488.1标准定义了三条交握线,作为装置间的异步数据传输,GPIB 总线使用此三条交握线间的互锁交握技术(Inter Locking Handshake Scheme),来确保装置间所传输或接收的数据不会遗失。
三条交握线定义如下:
(1) DAV(Data Valid):数据有效线
(2) NRFD (Not Ready For Data)线:尚未备妥接收数据线
(3) NDAC(Not Data Accepted):尚未接受数据
1.1.4
装置角色的扮演在IEEE 488总线里,为了确保数据传输的正确性,根据装置控制总线的时机不同,可区分成控制器(Controller) 、发话者(Talker)、收听者 (Listener) 三种角色,分述如下:
1. 控制器一般来说,一个由GPIB接口所组成的测试系统,是由一台计算机与许多不同种类的仪器所组成,此时,计算机即称为控制器。
若在一系统里有多台计算机连接在一起,那么目前具有控制能力的计算机
即称为值班控制器,值班控制器可经由控制权的移转,将控制权转移至空闲 (Idle) 的控制器 (计算机) 里。
一个装置要能称为控制器,需具备以下四点能力:
管理总线之通信连接管道。
响应装置之服务要求中断。
送出 GPIB 命令讯息。
移转/接收总线控制权。
2. 发话者大部份IEEE 488装置都具备有发话者的功能,其所需具备的能力为:
可被控制器设定成具有发话的能力。
.
有能力向GPIB总线传送数据。
任一时刻总线上只能有一装置发话。
3. 收听者大部份的IEEE 488装置都具备有收听者的功能,其所需具备的能力为:
可被控制器设定成具有收听的能力。
具有由GPIB总线接收数据之能力。
任何时刻,总线上最多可允许14个收听者同时接收数据。
1.2 界面机能
IEEE 488.1里所定义的接口机能,是用来产生、处理或接收接口讯息,以使接口讯息能够正确地在装置间传递,而达到通讯的目的。
IEEE 488.1所定义的接口机能共有十种,但并不是所有装置都需要实现这十种机能,完全依照装置需求而定,但是装置若实现其中某一机能时,就必需遵守该接口机能的通讯协议。
每个接口机能又可以进一步分成很多种的副机能 (Subset) ,在IEEE 488.1 里的规格书的附录里有详细地记载。
因此,为了能显示出某一装置所具有的接口机能能力,标准里建议装置在其手册或GPIB连接器附近,标记出如图1-2所示之记号。
在每一接口机能英文缩写字母后面接上数字,用以表示该机能之层次(Level) ,亦即为副机能,此数字若为0表示无该机能。
IEEE 488.1 里所定义的十大接口机能及其副机能为:
图1-2 IEEE 488接口机能范例
1. SH,发送交握接口机能发送交握接口机能主要的作用是使装置具有一能有效地传输多线讯息的能力,其与一个或多个接受交握接口机能间的互锁交握程序能够确保每一多线讯息的异步传输。
2. AH,接受交握接口机能接受交握接口机能主要的作用是使得装置具有一能有效地接收多线讯息的能力,其与一个或多个发送交握接口机能间的互锁交握程序,能够确保每一多线讯息的异步传输。
3. T,发话者接口机能 (包含循序轮询能力) 发话者接口机能主要的作用是使得装置具有一能传送装置相关
数据 (数据讯息,且包含循序轮询时所回传之状态字节缓存器之值) 至总线的能力;此能力只有在装置被控制器设定成发话者才存在。
4. L,收听者接口机能收听者接口机能主要的作用是使装置具有一能接收装置相关数据 (数据讯息,包括状态位) 的能力。
此能力只有在装置被控制器设定成收听者才存在。
5. SR,服务要求接口机能服务要求接口机能主要的作用是提供装置具有一能以异步方式向值班控制器要求服务,并且能以同步方式在循序轮询时将状态字节缓存器的内含值送出。
6. RL,远程与本地接口机能远程与本地接口机能主要的作用是提供装置具有一选择远程与本地两种输入数据模式的能力。
采用本地模式是允许装置可以从面板上设定其操作程序;反之,采用远程工作模式是透过
IEEE 488总线而来的装置相关讯息,来设定其操作程序。
7. PP,并行轮询接口机能并行轮询接口机能主要的作用是使得装置在值班控制器执行并行
轮询时,可以利用PPR (Parallel Poll Response) 讯息响应给控制器,使得控制器能具以分辨出在总线上是谁在要求服务。
并行轮询和循序轮询,虽然都可以用来响应装置的服务要求,但是在程序上还是有些差异,例如:
实行并行轮询时,事先值班控制器需先指定那一条DIO线为该装置之对应线,而循序轮询却不需事先设定。
并行轮询一次可以响应八个装置的状态(八条DIO线) ,而循序轮询,却要依序轮询每一次装置的状态位,以判别其是否要求服务。
8. DC,装置清除接口机能装置清除接口机能主要的作用是提供装置具有被清除 (初始化) 的能力。
9. DT,装置触发接口机能装置触发接口机能主要作用是一个或一群装置具有一被触发而执行其本身制定的基本操作能力。
所谓一群指的是系统里一部份的装置或全部装置。
装置触发接口机能可借着利用接口讯息GET来触发装置,以达同步的作用。
10. C,控制器接口机能控制器接口机能主要的作用是提供装置具有传送装置地址、通用命令和寻址命令至其它装置的能力。
此外,此机能尚具有执行并行轮询的能力,以便能决定是那一个装置要求服务。
1.3 循序轮询与并行轮询
一般正常情况下,整个系统控制流程都是以控制器为主体,由其指派何者为发话者,何者为收听者,从而进行数据的传递。
虽然如此,还是会有很多的突发状况发生,须要立刻通知控制器,以便作实时的处理。
例如打印机的纸张用完了,须要马上通知控制器以停止数据的打印;或则是时间计数器已达到默认值,也须要立即知会控制器做适当的处理。
要能达成上述的要求,装置就必需用“中断"的方式通知控制器,这样控制器才能及时做些响应的措施。
IEEE 488.1硬件规格里定义有一讯号线称为SRQ线。
SRQ线平常的准位为“H"准位,一旦装置有急事要控制器马上处理,就把此SRQ线的准位拉成“L",以中断控制器。
而在控制器的程序设计中就必须要有中断服务子程序,来执行相对应的工作。
中断服务子程序首要的工作就是确认到底是那一种装置产生SRQ中断,确认的方式有两种,第一种方式称为“循序轮询",第二种称之为“并行轮询"。
采取循序轮询时,控制器在接收到SRQ讯号后会将装置的状态字节缓存器 (Status Byte Register) 值传回,控制器检查装置所传回的状态字节缓存器的位六 (RQS位) 的值是否为1,若为1表示此装置要求中断服务,则跳到相对应子程序执行相对应的工作;若不为0则控置器继续呼叫下一个发话者,直到找到发送SRQ信号之装置为止,如此逐一询问,故称呼此方法为循序轮循。
至于并行轮循则是每一装置分配一条DIO线,控制器一次读取8条DIO线值即可得知发话者的状态,从而判断何者须要服务,由于一次可询问八个装置,故称之为并行轮询。
一般来说,并行轮询询问那个装置需要服务,主要是根据ist状态来判别,控制器可以随时实行并行轮询,并不一定要利用SRQ中断才响应,只有循序轮询一定要利用SRQ中断动作才能启始。
1.3.1 循序轮询
循序轮询动作的方式为当一装置需要服务时,会送出SRQ信号(SRQ讯号线为真,低电压准位)
通知控制器,接收到SRQ信号的控制器,会依照顺序逐一轮询各个装置,被呼叫的装置即送出状态字节缓存器之值,控制器接收到此一状态字节数据后,加以检查位6之值,判断值是否为1,若为1表示此装置要求服务。
1.3.2 并行轮循
前述循序轮询方式是控制器按照顺序逐一询问装置是否要求服务,因此,若该要求服务的装置,恰好在最后才被轮询,那么此举势必会延迟到整个系统时效上的需求,此时若改用并行轮询会变得较有效率。
所谓并行轮询是将八条DIO线分配给八个装置,每条DIO线代表着该装置的状态,如此,可借着数据的读取,一次判断八个装置的状态,即可知那一装置要求服务。
此种分配装置是使用那一条DIO线来表示其状态的动作,称之为构建 (Configure) ,并行轮询中构建的方式有两种,一种称之为本地构建 (PP2) ,其构建方式为只要按照装置使用手册的说明将开关设定成所需的状态即可。
而另一种方式称为远程构建 (PP1) ,其构建方式为接受从控制器所下之接口讯息命令 (PPE) 来设定使用之模式。
当整个构建完毕之后,控制器令ATN及EOI在线之电压准位同时变成“L" (即IDY接口讯息) ,以通知全部发话者现在已进入并行轮询状态,发话者在接收到此一讯号后,会将表示自己之状态位状态 (状态位值之决定,于后途述) 送出至预先被分配的DIO在线 (PPR讯息),整个动作如图1-3所示。
接着控制器依据三线交握协议,从总线上读取DIO1~DIO8上之各个发话者所传送来的状态信号,即可得知装置之状态。
图1-3 并行轮询之讯息交换
图1-4所示为并行轮询采用远程构建之程序图,首先,在命令模式下对所欲构建之装置寻址为收听者,而后送出如下命令。
图1-4 并行轮询之远程构建程序图
(1) PPC:并行轮询构建命令,通知装置现已进入并行轮询之远程构建模式,其后需紧接着二次命令,PPE或PPD。
(2) PPE:并行轮询致能命令。
作用为将数据线分配给被选址之装置,其命令之字节合为Y110SPPP 其中,PPP (DIO1至DIO3) 之组合值加一,即为装置被分配的DIO线位置,可分成PPR1至PPR8讯息,如表1-1所示。
,至于S位称为感测位 (Sense Bit) ,在响应并行轮询时,若代表装置之状态的位ist本地讯息(ist的产生在IEEE 488.1中允许装置自行定义,但在IEEE 488.2里却有明确的规范和感测位S之极性一致时令该装置所分配到之DIO线的电压准位为"L",如表1-2所示。
表1-1 PPR讯息
至于感测位的用法,举例来说,假设某一计数器在并行轮询组态时 (PPE接口讯息) 设定其S 位值为0,且为PPR1 (使用DIO线1) ,那么此计数器可以在平常时设其ist值为1,等到其计数器达到默认值时,ist值转变为0,因此17在接受并行轮询时令DIO1线之电压为“L",以通知控制器其计数器值已达默认值了。
表1-2 ist本地讯息
(3) PPD:并行轮询失能命令,作用为取消分配给被选址之装置的数据线,此即为解除远程构建的方法,此外,也可使用通用命令PPU,将所有总线上之具有远程构建能力的装置全部解除。
(4) UNL
:解除远程构建状态。