王 倩, 吴丽丽
(长春工业大学计算机科学与工程学院,吉林长春 130012)
目前,许多测试系统采用GPIB接口实现仪器的互连或通过GPIB接口与计算机通信来实现对仪器的测控,GPIB总线是一种较成熟的总线,往往用来控制速度不快、流量不大的设备。如果应用在相应的场合,把系统集成的经验运用得当,就可以产生智能化的自动测试系统,这样做不仅提高了测试系统的测试精度,而且可用软件取代硬件,实现硬件不具备的一些功能。此外,为了节省成本,一般采用CPLD来实现GPIB控制器的功能。
GPIB是通用总线(General Purpose Instrument Bus)的缩写,从HP公司1965推出的仪器接口系统(HP-IB)发展而来。1987年,ANSI/ IEEE488.2更明确地定义控制仪器通过GPIB通讯的方式,因此,GPIB又称为IEEE488.2。GPIB电缆内部是24芯屏蔽线,两端是连接器。这种设计可以使GPIB设备之间采用线性连接、星型连接或者线性/星型连接。
GPIB总线[1-2]是一个数字化的24脚(扁型接口插座)并行总线。其中16根线为T TL电平信号传输线,包括8根双向数据线(DIO8~DIO1)用于传输数据和命令信息,5根接口管理线(ATN,IFC,REN,EOI,SRQ),3根数据传输控制线(DAV,NRFD,NDAC)对装置之间的信息字节传输进行异步控制,这一过程称为三线内锁定挂钩,可以保证数据线上被发送和接受的信息字节没有传输差错。其余8根为地线和屏蔽线。连接器信号线分配如图1所示。
GPIB使用8位并行、字节串行、异步通讯方式,所有字节通过总线顺序传送。由于GPIB的数据单位是字节(8位),数据一般以ASCII码字符串方式传送。
GPIB系统的基本配置为:总线长度不超过20 m;设备间最大距离不超过4 m,且设备间平均距离不超过2 m;系统中设备个数不能多于15个,且有不少于2/3的设备上电。
图1 GPIB连接器信号线分配
源方和受方之间利用三线挂钩技术[3]以异步方式来进行数据传输,其基本过程如图2所示。
图2 三线挂钩示意图
1)初始状态,讲者置DAV为高电平(DAV= 0);听者置NRFD,NDAC为低电平(NRFD=1,NDAC=1);
2)讲者检测NRFD与NDAC,如均为低电平,讲者开始发送信息至DIO1~DIO8数据总线;
3)当全部听者都已作好接收数据的准备时,NRFD变高电平(NRFD=0);
4)当NRFD为高电平,且DIO上的数据稳定之后,讲者使DAV变低电平(DAV=1),示意听者数据总线上的数据有效;
5)听者响应DAV信号,响应最快的听者将NRFD线拉为低电平,表示听者开始接收数据;
6)全部听者均接收到此数据字节之后,NDAC变为高电平(NDAC=0);
7)讲者检测NDAC信号,若NDAC=0,则使DAV无效(DAV=0),然后撤消数据总线上的数据;
8)听者确认DAV的电平升高后,置NDAC有效(NDAC=1,低电平),恢复初始状态,准备下一个字节的接收。
DAV,NRFD,NDAC三线握手方式是十分可靠的。从源方来看,只有在受方发出“准备好接收数据”之后,才能发出“数据有效”的信息,让受方接收;且只有在受方宣布“数据已收到后”,才能从数据线上撤消前一个消息字节,换上新的消息字节。从受方来看,只有在源方宣布数据有效之后才能从数据线上接收消息。这样可以保证凡是收下的每个消息字节都是有效的,决不会漏掉,也不会多收。
利用GPIB接口把各种设备连接成可程控智能仪器控制系统[4],如图3所示。
图3 智能程控系统连接图
操作人员可以在显控台前直接操控,或由软件根据不同工作模式自动调整设备工作状态,方便快捷。该控制系统的设备有:计算机、GPIB接口控制卡、连接器件和连接电缆。如果计算机内没有GPIB控制卡,也可以通过GPIB-USB来转换,本设计就是通过GPIB-USB的转换来实现计算机控制。由图3可见,计算机同时控制3个设备,并实时观察设备工作状态。
GPIB标准接口共定义了10种接口功能,分别为控者功能(C)、讲者功能(T)、听者功能(L)、源方挂钩功能(SH)、受方挂钩功能(AH)、服务请求功能(SR)、并行查询功能(PP)、远控本控功能(RL)、器件触发功能(DT)、器件清除功能(DC),每一个接口功能由一组或多组互相联系而又相互排斥的状态来定义。在一个时刻、一组互联又互斥的状态中必须有一个,而且也仅有一个状态在起作用。
GPIB接口控制电路如图4所示。
图4 GPIB接口的控制电路
本设计采用EPM570系列的CPLD[5]芯片来实现控制功能,并通过两片收发芯片75ALS160和75ALS161来配合进行数据在CPLD与母线之间的传送。其中75ALS160驱动GPIB数据线,75ALS161驱动GPIB管理线和挂钩线。开发工具采用ALTERA公司的QuartusII。QuartusII是美国Altera公司继MAXplusII后又一个EDA软件工具,它具有原图输入和文本输入两种输入手段,配备有编辑、编译、仿真、综合、芯片编程等功能。
可以把整个系统划分为几个子系统,其中包括和微处理器接口的读写电路,与GPIB母线通信的接口功能,以及内部寄存器。对每个子系统的设计也可以采用向下分解为模块级设计,这样在调试和组件系统时,不仅具有很强的灵活性,而且方便代码的调试以及利于代码的重利用。其中与GPIB母线通信的子系统设计是本设计的重点也是难点。首先,应该根据各个仪器的功能完成接口功能子集的选择,例如,某仪器要有全部的讲功能要选择T5;然后,在QuartusII[6]的开发平台上利用Veriloge硬件描述语言对各个功能子集进行设计描述,主要完成状态机和寄存器的设计。最后,通过下载工具下载到CPLD中进行调试。下面是一个听者接口功能状态图,如图5所示。
图5 L功能状态图
利用VerilogHDL语言来对L功能进行设计,使用的代码为:
SCPI(Standard Commands for Programmable Instruments)是仪器编程命令标准[7-8],在程控测试仪器中得到了广泛应用。其使用只与仪器测试功能及仪器性能、精度相关,而不考虑仪器硬件组成、制造厂家、通信物理连接硬件环境和测试程序编制环境。SCPI定义了通过控制器和仪器通讯时仪器程控码的规则,其语言使用层次化结构,类似于PC机所使用的文件系统。结构层次如图6所示。
图6 SCPI语言结构层次图
“树”命令是以根层次命令(也称“子系统”)开始,每个根层次命令下面有许多层次命令。只有指定完整的路径,才能执行较低层次的个别命令。
例如:
FREQ:STAR 3 MHz;STOP 5 MHz
FREQ:STAR 3 MHz;FREQ:STOP 5 MHz
设置起始频率为3 MHz,停止频率为5 MHz。
又如:
FREQ:STAR 3 MHz;POW:STOP 5 DBM
设置起始频率为3 MHz,同时,由于POW不是当前解析层次的一个接点,将产生一个错误。
本设计通过SCPI指令来叙述各仪器功能,促进了同一种类的各仪器之间以及有相同功能的各仪器之间的一致性,从而大大减少了自动测试系统程序设计开发时间。下面是一个简单的编程示例,将电源用作一个恒定电压源。
或 *RST;VOLT 5V;CURR MAX;OUTP ON
由带有GPIB接口的仪器构成自动测试系统已成为计量测试领域的发展方向。带有GPIB接口的仪器均兼容,只要把测试任务输入适当的测试程序,就可以自动测试。在实际工作中,逐步认识到GPIB接口特点和重要性,文中的目的是运用基于GPIB接口的仪器可用计算机来实现对其操作和控制,从而代替传统的人工操作方式。尤其是利用CPLD来实现GPIB的接口功能,采用SCPI命令控制各个仪器的测试,这样做不仅提高了测试精度,也符合测试技术与计算机技术的同步协调向前发展的趋势。
[1] 刘顺国,贺文旭.基于GPIB总线的虚拟检定系统的设计与实现[J].中国测试技术,2006(5):86-70.
[2] M Shaheen,K Loparp,M Buchner.Remote laboratory experimentation[J].In Proc.American Control Conf.,Philadelphia,PA,1998,6:1314-1318.
[3] 赵伟.网络化测量技术与仪器发展的新趋势[J].电测与仪表,2000(7):7-9.
[4] 刘济玉,邹学平,丁振峰,等.基于GPIB接口的实用自动测试系统[J].仪表技术与传感器,2002(5):27-30.
[5] 宋万杰,罗丰,吴顺君.CPLD技术及其应用[M].西安:西安电子科技大学出版社,1999.
[6] Altera Corporation.QuartusII Version 5.1 Handbook[Z].2005.
[7] 王昆仑,李红.数据结构与算法[M].北京:中国铁道出版社,2007:47-50.
[8] TN T4882 Programmer Reference Manual.National Instrument[Z].1995.