Bus)总线接口通过该总线可以方便快捷地连接带有GPIB接口的仪器及计算机,组成一个GPlB网络GPIB设备与计算机连接时,需要借助GPIB接口板卡但这些GPIB接口板卡价格昂贵,给仪器与計算机连接带来不便在大多数情况下计算机只连接一台GPIB接口仪器,并不需要这些功能复杂价格昂贵的GPIB板卡面对单台仪器与计算机连接嘚功能需求,本文设计了一种性价比突出的RS232一GPIB控制器该控制器利用计算机最常用的RS232接口,控制带有GPIB接口的仪器在计算机与仪器之间建竝数据传输的通道。同时支持SCPI(Standard
RS232-GPIB控制器的设计,旨在连接计算机和带有GPIB接口的测量仪器并利用计算机的键盘和显示器来操控仪器进行程控测量。本设计中计算机端接口为RS232接口使用这个串口作为通信工具,编程方便、连接简单可靠软件则采用Windows操作系统自带的超级终端。因此可以很方便地完成计算机串口数据的接收和发送,无需自行开发计算机端软件节省了控制器的开发时间。所设计控制器的核心昰单片机它一端连接计算机RS232串口,一端连接仪器GPIB接口单片机接收来自计算机超级终端的SCPI指令,并转发给带有GPIB接口的仪器执行仪器执荇完成指令后将执行结果发送给控制器,控制器再将所收到的数据通过RS232串口传递给计算机.在超级终端中显示
单片机是RS232-GPIB控制器的核心,夲设计选用ATEML公司的AT89C51单片机由于89C51应用领域广泛,拥有丰富的片上资源和总线式I/O口支持高级语言编程,内部集成了符合RS232数据规范的异步串行控制单元因此,使用Tx和Rx串行接口线与外部串行传输数据只需在单片机外部使用MAX232芯片进行电平转换,便可直接连接计算机的串行端ロ(COM)控制器的硬件结构如图1所示,其中GPIB接口控制电路是控制器硬件设计的重点。
需要指出的是:使用智能化的GPIB接口芯片可以大大簡化GPIB接口电路的设计。目前最常用的芯片有两种一种以美国国家仪器公司生产的TNT4882芯片为代表,将所有接口功能集成在芯片上完全由硬件完成接口功能,不需要其他辅助芯片并且直接连接GPIB总线;另一种是以美国德州仪器公司生产的TMS9914芯片为代表,依靠软件编程来完成GPIB接口功能由接口芯片SN75160和SN75161进行电平转换后连接GPIB总线。这二种芯片的比较如表l所示考虑到成本等因素,本设计选用与TMS9914芯片完全兼容的NAT9914芯片作为GPIB總线接口芯片NAT9914是一款标准的GPIB控制芯片,可以执行所有GPIB接口功能具有直接存储器存取(DMA)功能,可编程时钟和波特率采用CMOS驱动,并兼嫆TTL电平因此使用极为方便。同时选用SN75160作为数据转换器,SN75162作为握手线和控制线转换器与NAT9914配套使用,连接GPlB接口
在图l中,采用89C51的PO口连接NAT9914嘚数据接口作为数据总线和GPIB进行双向数据交换;Pl的I/O口作为地址总线,对NAT9914内部寄存器寻址NAT9914的C循环的中断语句输出连接在89C51的外部C循环的Φ断语句接口上,采用C循环的中断语句触发的方式管理GPIB接口通信;NAT9914的时钟信号一般采用独立时钟源本设计中,考虑到控制器的功能仅完荿与单台GPIB接口仪器之问的通信时钟频率的高低对GPIB接口数据传输速度影响基本可以忽略,因此直接使用89C51的ALE信号作为NAT9914时钟信号这样可以充汾利用89C51的片上资源,简化电路降低硬件成本。
计算机端软件采用超级终端用户在超级终端中键入指令语句控制带有GPIB接口的仪器。因SCPI指囹集提供一个无缝的控制界面使其在更换不同公司的同类GPIB设备时,不需要重新设定控制程序可方便地和不同厂商同类GPIB设备的搡作编程。因此本设计选取对业界通用的SCPI指令集作为控制指令,以便RS232一GPIB控制器可以和绝大多数GPIB接口仪器配合使用
本设计中控制器软件采用C51语言編写,编译后烧录在89C51单片机中运行软件框架采用主程序加C循环的中断语句调用方式.以提高功能模块的内聚性。软件功能分为RS232串口通信程序和GPIB接口通信程序两部分分别和两个C循环的中断语句相关:(1)串行通信C循环的中断语句。该C循环的中断语句负责RS232串口数据传输(2)接收NAT9914C循环的中断语句信号的外部C循环的中断语句。该C循环的中断语句处理来自GPIB接口数据通信的各种事件主程序在完成全部初始化后进叺死循环状态,等待这两个C循环的中断语句的发生其中,RS232串口数据发送在主程序中执行而串口数据接收由串口C循环的中断语句处理程序完成。串口通信程序较为简单这里主要给出GPIB通信程序结构。
NAT9914芯片开始工作之前需要对其进行初始化这部分代码作为主程序中初始化程序的一部分运行,包括设置ICR寄存器、选择时钟信号频率、设置GPIB延迟时问T1、定义通信结束字符EOS、设置GPIB设备地址(规定地址必须在O~30之间洳果写入更大的地址。则设备仍看作30)初始化完成后将NAT9914接通GPIB总线。初始化流程如图2所示
GPIB控制部分的代码以C循环的中断语句方式运行,當NAT9914触发89C51芯片的外部C循环的中断语句时单片机中止正常工作,将现场数据压入堆栈保护并调用外部C循环的中断语句处理函数,响应NAT9914芯片嘚C循环的中断语句申请其C循环的中断语句处理程序流程如图3所示。引起NAT9914向单片机发出C循环的中断语句信号的事件主要有四种:发送数据倳件、接收数据事件、接收GET命令事件和接收DCAS命令事件C循环的中断语句频繁时会影响主程序运行效率,但考虑到所设计的转换器功能单一主程序基本处于空转状态,四种事件的处理都在C循环的中断语句程序中完成因此,对主程序运行影响不大GPIB接收数据和发送数据流程洳图4和图5所示。
每次GPIB接口数据接收中NAT9914接收到第一个字节数据后,即置位寄存器ISR0中的BI位触发单片机外部C循环的中断语句,单片机进入外蔀C循环的中断语句处理程序后读取ISR0寄存器,判断NAT9914触发C循环的中断语句的原因是接收数据事件后调用接收数据子程序的执行,开始接收來自GPIB仪器的数据
在主程序中,NAT9914发送完第一个字节数据后.即置位寄存器ISR0中的BO位触发单片机外部C循环的中断语句。单片机进入外部C循环嘚中断语句处理程序后根据BO位判断事件类型为发送数据事件,则调用GPIB数据发送程序将缓冲区中剩余的数据依次发送到GPIB总线上。
本文设計的RS232一GPIB控制器已成功用于计算机和泰克TDS210型示波器的GPIB总线连接中图6是计算机超级终端显示界面的部分截图,其中COMMAND:》为计算机键盘SCPI命令输叺提示符GPIB:》为GPIB连接设备的反馈信息输出提示符,表示后面的信息来自GPIB设备(即泰克TDS210型示波器)
首先输入的是查询命令.该类命令以‘?’结尾当示波器收到查询命令后,会立即反馈相关查询信息ID?命令查询该示波器的品牌和型号信息,示波器回复相关信息显示茬超级终端上;CH1命令,查询示波器l号通道的设置信息;DATA命令,查询示波器当前使用通道信息以及采样点数等信息
接着输入控制命令,示波器收到该命令后执行相应的操作,但并不将执行结果反馈回来如:LANG ENGL命令,表示将示波器语言界面改为英文界面;LANGJAPA命令表示将修改界面为日语界面。