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

发布者:快乐的舞蹈最新更新时间:2023-07-03 来源: elecfans关键字:AT89C51  单片机 手机看文章 扫描二维码
随时随地手机看文章

越来越多的测量仪器提供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命令,表示将修改界面为日语界面。


关键字:AT89C51  单片机 引用地址:基于AT89C51单片机的RS232-GPIB控制器设计

上一篇:AT89C51单片机电话遥控报警器电路的设计
下一篇:基于AT89C51单片机实现串行总线芯片测试实验平台的设计

推荐阅读最新更新时间:2024-11-08 15:02

一种基于51单片机的多功能温度控制器的设计
O 引言 在某些工业生产过程中,如恒温炉、仓库储藏、花卉种植、小型温室等领域都对温度有着严格的要求,需要对其加以检测和控制。传统的温度测量方法是将温度传感器输出的模拟信号放大后送至远端A/D转换器,最后单片机对A/D转换后的数据进行分析处理。这种方法的缺点是模拟信号在传输的过程中存在损耗并且容易受到外界的干扰,导致测量的温度精度不高。 文中以STC89C52RC单片机为控制核心,利用美国Dallas公司最新推出的单总线数字温度传感器DSl8820测量温度,单片机处理后对温度进行控制,并将温度显示在LCDl602上,还可通过按键设置温度上下限值实现温度超限报警等功能。 1 系统的组成和工作原理 多功能温度控制系统的结构
[单片机]
一种基于51<font color='red'>单片机</font>的多功能温度<font color='red'>控制器</font>的设计
[单片机框架][os层] RTX5 中间件 公共函数
Keil RTX5 是一种免版税、确定性、全功能的实时操作系统,它实现了 CMSIS-RTOS API v2,这是一种适用于基于 Cortex-M 处理器的设备的通用 RTOS 接口。功能包括定期激活定时器功能、内存管理和线程之间的消息交换。 现在RTX4和RTX5属于CMSIS软件包的一部分,Apache2.0授权,几乎随意商用。Github开源地址:https://github.com/ARM-software/CMSIS_5 重新封装RTX5函数,以便适配RTX4 / FREERTOS / FREERTOS_NRF_RTC。 特征 开源免费的确定性RTOS。 支持时间片,抢占式和合作式调度。 以低的中断延迟执
[单片机]
基于ISP技术及89C55单片机的图像处理系统设计
随着图像处理技术应用的普及,其应用范围越来越广。在医学、军事、公安等领域,特别是近些年在工业自动化、工业检测方面得到广泛应用。目前的图像处理系统大多采用计算机加上视频采集卡和摄像头来构成其硬件系统,这种硬件结构对于处理自满不复杂的简易图像处理系统显然是不合适的。 目前,EPLD芯片内部的资源越来越多,速度越来越快,开发的软件功能也更加完善,使其应用逐步扩大。人们普遍认为,今后的许多电子系统,将以CPU+RAM+EPLD的结构为特征。图像系统将向小型化发展。如何设计一套简单的、低成本的图像处理系统是将图像处理技术应用到更广的领域的迫切要求。 本文介绍的系统正是针对这样的需求而开发出来的。 1 总体设计方案 整个系
[单片机]
从零开始51单片机教程 —— 单片机定时/计数器实验
前面我们做了定时器的实验,现在来看一看计数实验。 在工作中计数常常会有两种要求:第一、将计数的值显示出来,第二、计数值到一定程度即中断报警。第一种如各种计数器、里程表,第二种如前面例中讲到的生产线上的计数。先看第一种吧。我们的硬件中是这样连线的:324组成的振荡器连到定时/计数器1的外部管脚T1上面,我们就利用这个来做一个计数实验,要将计数的值显示出来,当然最好用数码管了,可我们还没讲到这一部份,为了避免把问题复杂化,我们用P1口的8个LED来显示计到的数据。 程序如下: ORG 0000H ,http://www.51hei.com AJMP START ORG 30H START: MOV SP,#5FH MO
[单片机]
PIC单片机定时器相关用法
什么是定时器? 定时器顾名思义就是用来定时的。在单片机应用中常常用于各种各样的定时。比如让LED灯每隔 1S 亮一次。 这个1S 就是由定时器做到的。 指令周期 指令周期就是单片机执行一个指令所花费的时间。这也是定时器定时的最小时间单位。时钟频率/4=指令频率。1/指令频率=指令周期。 假设现在的时钟是4MHZ ,4MHz的时钟经过4分频后变成了 1MHz 其周期为0.0000001s也就是1us,这个1us就是指令周期,这1us也就是定时器定时的最小单位。 定时器与预分频器 假设在没有预分频器情况下。开启定时器 每隔一个指令周期定时器就加一。假设时钟是4MHz 也就是每隔 1us 定时器加一。 如果有了预分频器假设预分
[单片机]
PIC<font color='red'>单片机</font>定时器相关用法
MSP430单片机低功耗结构原理
当系统时钟发生器基本功能建立之后,CPU内状态寄存器SR的SCG1,SCG0,CPUOFF,OSCOFF位是重要的低功耗控制位。只要任意中断被响应,上述控制位就被压入堆栈保存,中断处理之后,又可恢复先前的工作方式。在中断处理子程序执行期间,通过间接访问堆栈数据,可以操作这些控制位;这样允许程序在中断返回(RETI) 后,以另一种功耗方式继续运行。 各控制位的作用如下: SCG1: 复位,使能SMCLK;置位,禁止SMCLK。 SCG0: 复位,激活直流发生器,只有SCG0置位,并且DCOCLK没有被用作MCLK或SMCLK时,直流发生器才能被禁止。 OSCOFF:复位,激活LFXT1,只有当OSCOFF被置位并且L
[单片机]
什么是堆栈?MCS-51单片机的堆栈怎样设置的?
程序设计时,往往需要一个后进先了的RAM区,以保存CPU的现场。这种后进先出的缓冲区,就称为堆栈。 MCS-51单片机的堆栈原则上设在内部RAM的任意区域内 。但是,一般设在31H~7FH的范围之间,栈顶的位置由栈指针SP指出。
[单片机]
什么样的MCU才叫车规级?
控制类芯片介绍 控制类芯片主要就是指MCU(Microcontroller Unit),即微控制器,又叫单片机,是把CPU的主频与规格做适当缩减,并将存储器、定时器、A/D转换、时钟、I/O端口及串行通讯等多种功能模块和接口集成在单个芯片上,实现终端控制的功能,具有性能高、功耗低、可编程、灵活度高等优点。 车规级MCU示意图 ※资料来源:公开资料、编写单位提供 汽车是MCU的一个非常重要的应用领域,据IC Insights数据,2019年全球MCU应用于汽车电子的占比约为33%。高端车型中每辆车用到的MCU数量接近100个,从行车电脑、液晶仪表,到发动机、底盘,汽车中大大小小的组件都需要MCU进行把
[汽车电子]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved