基于AT89C51单片机的RS232-GPIB控制器设计

越来越多的测量仪器提供gpib(general purpose intefface bus)总线接口,通过该总线可以方便快捷地连接带有gpib接口的仪器及计算机,组成一个gplb网络。gpib设备与计算机连接时,需要借助gpib接口板卡,但这些gpib接口板卡价格昂贵,给仪器与计算机连接带来不便。在大多数情况下计算机只连接一台gpib接口仪器,并不需要这些功能复杂价格昂贵的gpib板卡。面对单台仪器与计算机连接的功能需求,本文设计了一种性价比突出的rs232一gpib控制器,该控制器利用计算机最常用的rs232接口,控制带有gpib接口的仪器,在计算机与仪器之间建立数据传输的通道。同时,支持scpi(standard commands for prognmnnable instrumentation)指令集,只需在windows操作系统自带的工具软件超级终端中输入scpi指令,便可方便地对仪器进行参数设置和读取测试结果。
rs232-gpib控制器的设计,旨在连接计算机和带有gpib接口的测量仪器,并利用计算机的键盘和显示器来操控仪器进行程控测量。本设计中计算机端接口为rs232接口,使用这个串口作为通信工具,编程方便、连接简单可靠,软件则采用windows操作系统自带的超级终端。因此,可以很方便地完成计算机串口数据的接收和发送,无需自行开发计算机端软件,节省了控制器的开发时间。所设计控制器的核心是单片机,它一端连接计算机rs232串口,一端连接仪器gpib接口,单片机接收来自计算机超级终端的scpi指令,并转发给带有gpib接口的仪器执行。仪器执行完成指令后将执行结果发送给控制器,控制器再将所收到的数据通过rs232串口传递给计算机.在超级终端中显示。
1 硬件设计
单片机是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的中断输出连接在89c51的外部中断接口上,采用中断触发的方式管理gpib接口通信;nat9914的时钟信号一般采用独立时钟源。本设计中,考虑到控制器的功能仅完成与单台gpib接口仪器之问的通信,时钟频率的高低对gpib接口数据传输速度影响基本可以忽略,因此直接使用89c51的ale信号作为nat9914时钟信号,这样可以充分利用89c51的片上资源,简化电路,降低硬件成本。
2 软件设计
计算机端软件采用超级终端,用户在超级终端中键入指令语句控制带有gpib接口的仪器。因scpi指令集提供一个无缝的控制界面,使其在更换不同公司的同类gpib设备时,不需要重新设定控制程序,可方便地和不同厂商同类gpib设备的搡作编程。因此,本设计选取对业界通用的scpi指令集作为控制指令,以便rs232一gpib控制器可以和绝大多数gpib接口仪器配合使用。
本设计中控制器软件采用c51语言编写,编译后烧录在89c51单片机中运行。软件框架采用主程序加中断调用方式.以提高功能模块的内聚性。软件功能分为rs232串口通信程序和gpib接口通信程序两部分,分别和两个中断相关:(1)串行通信中断。该中断负责rs232串口数据传输。(2)接收nat9914中断信号的外部中断。该中断处理来自gpib接口数据通信的各种事件。主程序在完成全部初始化后进入死循环状态,等待这两个中断的发生。其中,rs232串口数据发送在主程序中执行,而串口数据接收由串口中断处理程序完成。串口通信程序较为简单,这里主要给出gpib通信程序结构。
nat9914芯片开始工作之前需要对其进行初始化,这部分代码作为主程序中初始化程序的一部分运行,包括设置icr寄存器、选择时钟信号频率、设置gpib延迟时问t1、定义通信结束字符eos、设置gpib设备地址(规定地址必须在o~30之间,如果写入更大的地址。则设备仍看作30)。初始化完成后将nat9914接通gpib总线。初始化流程如图2所示。
gpib控制部分的代码以中断方式运行,当nat9914触发89c51芯片的外部中断时,单片机中止正常工作,将现场数据压入堆栈保护,并调用外部中断处理函数,响应nat9914芯片的中断申请,其中断处理程序流程如图3所示。引起nat9914向单片机发出中断信号的事件主要有四种:发送数据事件、接收数据事件、接收get命令事件和接收dcas命令事件。中断频繁时会影响主程序运行效率,但考虑到所设计的转换器功能单一,主程序基本处于空转状态,四种事件的处理都在中断程序中完成,因此,对主程序运行影响不大。gpib接收数据和发送数据流程如图4和图5所示。
每次gpib接口数据接收中,nat9914接收到第一个字节数据后,即置位寄存器isr0中的bi位。触发单片机外部中断,单片机进入外部中断处理程序后,读取isr0寄存器,判断nat9914触发中断的原因是接收数据事件后,调用接收数据子程序的执行,开始接收来自gpib仪器的数据。
在主程序中,nat9914发送完第一个字节数据后.即置位寄存器isr0中的bo位,触发单片机外部中断。单片机进入外部中断处理程序后,根据bo位判断事件类型为发送数据事件,则调用gpib数据发送程序,将缓冲区中剩余的数据依次发送到gpib总线上。
3 运行情况及结果
本文设计的rs232一gpib控制器已成功用于计算机和泰克tds210型示波器的gpib总线连接中。图6是计算机超级终端显示界面的部分截图,其中command:》为计算机键盘scpi命令输入提示符,gpib:》为gpib连接设备的反馈信息输出提示符,表示后面的信息来自gpib设备(即泰克tds210型示波器)。
首先输入的是查询命令.该类命令以‘?’结尾,当示波器收到查询命令后,会立即反馈相关查询信息。id?命令,查询该示波器的品牌和型号信息,示波器回复相关信息显示在超级终端上;ch1?命令,查询示波器l号通道的设置信息;data?命令,查询示波器当前使用通道信息以及采样点数等信息。
接着输入控制命令,示波器收到该命令后,执行相应的操作,但并不将执行结果反馈回来。如:lang engl命令,表示将示波器语言界面改为英文界面;langjapa命令,表示将修改界面为日语界面。


SVD的简介和主要应用领域以及原理与几何意义
蓝海将至?安防机器人几大痛点尚未解决
基于SpringBoot+Redis的转盘抽奖
高级工程师职业生涯的下一步是什么
负荷开关能直接代替断路器吗
基于AT89C51单片机的RS232-GPIB控制器设计
挑战存储“不可能之三角”:用自研技术引领存储性能突破
变电站二次设备有哪些,它的作用是怎样的
苹果特斯拉股价暴跌 美股开盘大跌纳指一度重挫
在水利行业风速传感器的应用技术解决方案
TriQuint携多种产品亮相IWS2013
C++之函数模板的概念及意义
LT3012 具停机功能的 5V 电源
沃尔沃与Veoneer合作 获准在瑞典公路进行自动驾驶测试
Multisim在MAXl6823新元器件建立及LED驱动电路仿真中的应用
智能继电器模块是什么,它的作用是什么
什么是模块化(KSK)
业界最小型单线 I/O 扩展器
旧发电机组可以进口吗 国家的排放标准是什么
汽车零部件企业保隆科技发布2022第一季度报告