电子发烧友网 > 控制/MCU > 正文

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

2019年12月04日 15:44 次阅读

越来越多的测量仪器提供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接口控制电路是控制器硬件设计的重点。

基于AT89C51单片机的RS232-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的片上资源,简化电路,降低硬件成本。

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

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所示。

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

GPIB控制部分的代码以中断方式运行,当NAT9914触发89C51芯片的外部中断时,单片机中止正常工作,将现场数据压入堆栈保护,并调用外部中断处理函数,响应NAT9914芯片的中断申请,其中断处理程序流程如图3所示。引起NAT9914向单片机发出中断信号的事件主要有四种:发送数据事件、接收数据事件、接收GET命令事件和接收DCAS命令事件。中断频繁时会影响主程序运行效率,但考虑到所设计的转换器功能单一,主程序基本处于空转状态,四种事件的处理都在中断程序中完成,因此,对主程序运行影响不大。GPIB接收数据和发送数据流程如图4和图5所示。

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

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

每次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型示波器)。

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

首先输入的是查询命令.该类命令以‘?’结尾,当示波器收到查询命令后,会立即反馈相关查询信息。ID?命令,查询该示波器的品牌和型号信息,示波器回复相关信息显示在超级终端上;CH1?命令,查询示波器l号通道的设置信息;DATA?命令,查询示波器当前使用通道信息以及采样点数等信息。

接着输入控制命令,示波器收到该命令后,执行相应的操作,但并不将执行结果反馈回来。如:LANG ENGL命令,表示将示波器语言界面改为英文界面;LANGJAPA命令,表示将修改界面为日语界面。
责任编辑;zl

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播

电子发烧友观察

一线报道 · 深度观察 · 最新资讯
收藏 人收藏
分享:

评论

相关推荐

四轴机器人编程与应用

主题简介:本次直播主要讲解四轴机器人控制器基本原理及组成。四轴机器人的核心技术内嵌人工智能算法的工业级运动控制技术和伺服
发烧友学院发表于 2018-10-30 00:00 11721次阅读
四轴机器人编程与应用

基于嵌入式控制器架构系统的应用技巧

AI(Analog Inputs)的多寡对系统的运行的实时性和稳定性有较大的影响,尤其是当AI模块较....
发表于 2019-12-04 14:30 9次阅读
基于嵌入式控制器架构系统的应用技巧

怎样使用游戏控制器和Arduino控制机器人

Arduino和类似的兼容板是世界各地DIY修补匠的首选设备之一。无论您是刚开始使用Arduino的....
发表于 2019-12-03 16:39 83次阅读
怎样使用游戏控制器和Arduino控制机器人

监管环境给企业区块链带来了什么

尽管关于区块链如何适应现代监管环境仍存在许多悬而未决的问题,但显然,区块链为增强企业的数据治理和数据....
发表于 2019-12-03 16:08 39次阅读
监管环境给企业区块链带来了什么

如何将Xbox One控制器连接到树莓派

一个新窗口将在终端中打开,其中包含按钮和轴的列表。按下和移动时,每个将显示不同的值。在Xbox On....
发表于 2019-12-03 08:38 95次阅读
如何将Xbox One控制器连接到树莓派

主令控制器的结构示意图

主令控制器是用来较为频繁地切换复杂的多回路控制电路的主令电器。它一般由触头、凸轮、转轴、定位机构、面....
发表于 2019-11-30 17:27 321次阅读
主令控制器的结构示意图

电子节气门控制器对车是否有影响

电子节气门控制器对车没有损害,但是成本比较高,需要更换发动机电脑和变速箱以及节气门阀体。
发表于 2019-11-29 15:08 338次阅读
电子节气门控制器对车是否有影响

赛灵思公司推出了两款赛灵思汽车级(XA)新器件

新推出的 XA Zynq UltraScale+ MPSoC 7EV 和 11EG 器件是响应客户需....
发表于 2019-11-29 14:23 325次阅读
赛灵思公司推出了两款赛灵思汽车级(XA)新器件

可编程控制器的功能_可编程控制器的技术指标

PLC中的用户存储器由用户程序存储器和数据存储器组成,该存储器的容量大,就可以编制出复杂的程序,一般....
发表于 2019-11-29 09:59 372次阅读
可编程控制器的功能_可编程控制器的技术指标

DCS系统选型的主要注意事项

鉴于对等网结构(P/P)和客户/服务器C/S结构各有优势,最先进的系统是可以混合结构,两种通讯结构都....
发表于 2019-11-29 09:04 90次阅读
DCS系统选型的主要注意事项

【罗姆BD70522GUL-EVK-101评估板试用申请】环境控制器

项目名称:环境控制器 试用计划:主要解决电源部分问题,购买的开关电源不符合CPU的上升电压要求。...
发表于 2019-11-28 17:45 262次阅读
【罗姆BD70522GUL-EVK-101评估板试用申请】环境控制器

怎样使用Arduino制作MIDI控制器

其中有一个自定义MIDI控制器的许多实际用途。您可以建造一个大型的脚踏控制单元,或者一个时尚的录音棚....
发表于 2019-11-28 17:44 382次阅读
怎样使用Arduino制作MIDI控制器

怎样使用Arduino和Unity制作自定义游戏...

现在,当您按Play时,多维数据集将在您上方生成并掉落。您可以使用电位计来避免它们,并可以使用按钮来....
发表于 2019-11-28 11:43 290次阅读
怎样使用Arduino和Unity制作自定义游戏...

Achronix联合BittWare推出了Vec...

更加关键的是Speedster7t器件具有满足未来人工智能和机器学习要求的超高带宽接口,包括400G....
发表于 2019-11-27 15:16 733次阅读
Achronix联合BittWare推出了Vec...

新建工程时控制器全为灰色无法选择是怎么回事

求求各位大哥了
发表于 2019-11-27 14:54 164次阅读
新建工程时控制器全为灰色无法选择是怎么回事

怎样为机器视觉自动化检测系统选择合适的控制器

机器视觉系统主要研究用计算机来模拟人的视觉功能,通过摄像机等得到图像,然后将它转换成数字化图像信号,....
发表于 2019-11-26 16:17 71次阅读
怎样为机器视觉自动化检测系统选择合适的控制器

四轴PID算法:单环和串级

从小到大,拉动四轴越来越困难,越来越感觉到四轴在抵抗你的拉动;到比较大的数值时,四轴自己会高频震动,....
发表于 2019-11-26 11:32 354次阅读
四轴PID算法:单环和串级

高速任意波形发生器的原理及硬件设计方案

波形发生器的应用在生活中随处可见,其中使用较多的波形发生器为任意波形发生器。为增进大家对波形发生器的....
发表于 2019-11-26 09:17 136次阅读
高速任意波形发生器的原理及硬件设计方案

Qorvo推出了新型PAC5527电源应用控制器

移动应用、基础设施与国防应用中核心技术与RF解决方案的领先供应商Qorvo, Inc.(纳斯达克代码....
发表于 2019-11-26 08:55 563次阅读
Qorvo推出了新型PAC5527电源应用控制器

PLC的输入端,输出端常见的接线

PLC控制系统的电源除了交流电源外,还包括PLC直流电源,一般而言,PLC交流电源可以由市电直接供应....
发表于 2019-11-26 08:54 213次阅读
PLC的输入端,输出端常见的接线

可控硅控制器工作原理

可控硅控制器”通过对电压、电流和功率的精确控制,从而实现精密控温。并且凭借其先进的数字控制算法,优化....
发表于 2019-11-25 09:03 223次阅读
可控硅控制器工作原理

可控硅控制器接线图

下图所示的多用控制器具有手动调速,光控调速,模拟自然风,定时关闭等功能。
发表于 2019-11-25 08:59 459次阅读
可控硅控制器接线图

基于TPS92310控制器的低功耗LED照明驱动...

TI TPS92310控制器是一种单级一次侧传感AC/DC控制器,用于驱动高亮度LED的恒定电流。它....
发表于 2019-11-22 16:02 88次阅读
基于TPS92310控制器的低功耗LED照明驱动...

瑞萨电子推出用于工业以太网(IE)通信的R-IN...

瑞萨电子宣布推出用于工业以太网(IE)通信的R-IN32M4-CL3 IC。瑞萨最新的工业网络产品可....
发表于 2019-11-21 15:34 218次阅读
瑞萨电子推出用于工业以太网(IE)通信的R-IN...

IP1829A无阻塞、存储转发结构的交换机控制器

ip1829a 是一种无阻塞、存储转发结构的交换机控制器,它构建了24端口10 / 100mbps 的快速以太网 MAC 和物理层,5端...
发表于 2019-11-18 10:01 304次阅读
IP1829A无阻塞、存储转发结构的交换机控制器

PIC32MX795F512L控制器怎么检查是否工作?

我在应用程序中使用PIC32MX795F512L控制器。我已经按照和声工具设计了以太网固件。我想检查它是否工作。我想通...
发表于 2019-11-11 11:04 94次阅读
PIC32MX795F512L控制器怎么检查是否工作?

如何确保vga控制器输出30 fps?

嗨, 我设计了1024x768 VGA控制器像素时钟65 MHz。 如何确保输出30 fps(每秒帧数)。 VGA控制器的输出是...
发表于 2019-11-11 09:34 70次阅读
如何确保vga控制器输出30 fps?

如何设计液晶显示控制器?

液晶显示器由于具有低压、微功耗、显示信息量大、体积小等特点,在移动通信终端、便携计算机、GPS卫星定位系统等领...
发表于 2019-11-11 07:29 76次阅读
如何设计液晶显示控制器?

中央空调网络集中控制器有什么优点?

以往我国的中央空调控制系统主要采用以单片机为控制核心的单机组控制器,即一个控制器只能控制一台中央空调机组,这种...
发表于 2019-11-11 06:26 175次阅读
中央空调网络集中控制器有什么优点?

消防巡检控制柜专用电气元件:消防泵自动巡检控制器

根据公安部消防安全行业标准GA30.2《固定消防给水设备的性能要求和试验方法》之规定,为了防止消防水泵锈蚀、受潮、...
发表于 2019-11-08 17:19 374次阅读
消防巡检控制柜专用电气元件:消防泵自动巡检控制器

STM32电调-直流BLDC FOC控制器设计(PCB图、源代码、详细讲解)

本设计分享的是国外开源作品,本杰明VESC电调板(四层板)设计,该STM32电调板VESC设计-直流BLDC/FO...
发表于 2019-11-07 10:02 5958次阅读
STM32电调-直流BLDC FOC控制器设计(PCB图、源代码、详细讲解)

基于80C186XL和CPLD怎么实现DRAM控制器?

80C186XL16位嵌入式微处理器是Intel公司在嵌入式微处理器市场的上导产品之一,已广泛应用于电脑终端、程控交换和工...
发表于 2019-11-07 06:01 57次阅读
基于80C186XL和CPLD怎么实现DRAM控制器?