APP下载

基于C8051F020高端口的GPIB接口实现

2014-03-16中国电子科技集团公司第41研究所徐玉华

电子世界 2014年7期
关键词:存储器寄存器中断

中国电子科技集团公司第41研究所 徐玉华

1.引言

GPIB(General purpose Interface Bus,通用接口总线)是一种面向程控仪器的通用接口总线,适用于实时控制与快速数据采集等场合。随着自动测试系统的不断发展,GPIB总线的应用也越来越多,它是目前组建自动测试系统最成熟的总线之一,深受国内外仪器厂家的青睐。在以C8051F020单片机为主控CPU的智能仪器的设计中,将GPIB接口配置在功能比较单一的高端口(P4~P7),把功能比较强大的低端口(P0~P3)解放出来用作仪器的其他功能,使得单片机的系统资源配置达到最优化。

2.GPIB接口总线概述

GPIB于二十世纪60年代末诞生于惠普公司,现已成为工业控制及可编程仪器的标准接口之一,它是由国际电子电气工程师协会于1974年9月制定的一种标准接口总线,又称IEEE.488总线。GPIB是一种24芯的并行无源总线,其中16条被用作信号线,包括8条数据线(DIO1~DIO8),3条握手线(DAV、NRFD、NDAC)和5条管理线(ATN、REN、IFC、EOI、SRQ),其余8条为地线。数据传输采用位并行,字节串行的双向异步传输方式。消息采用负逻辑,低电平(≤0.8V)为逻辑1,高电平(≥2.0V)为逻辑0。

3.硬件电路实现

GPIB功能接口可以通过以下三种方式来实现:1)中小规模集成电路;2)软件模拟;3)专用大规模集成电路。其中采用中小规模集成电路和软件模拟实现GPIB接口都比较复杂,而且应用效率和可靠性比较差。因此,在本设计中,我们采用了专用大规模集成电路NAT9914来实现GPIB接口电路的设计。

本设计选用C8051F020作为仪器的主控CPU,原因在于C8051F020具有丰富的I/O端口,其中低端口(P0、P1、P2和P3)既可以按位寻址也可以按字节寻址,且每个引脚既可定义为通用的端口I/O(GPIO)引脚,又可以分配给一个数字外设或功能;高端口(P4、P5、P6和P7)只能按字节寻址,也只能作为普通的I/O端口使用。由此可见,单片机的低端口配置比较灵活,功能比较强大,高端口功能比较单一。故为了优化资源配置,我们把仪器的GPIB接口配置在高端口,把低端口解放出来用作仪器的其他功能。

3.1 C8051F020简介

C8051F020是美国Cygnal公司推出的一款新型的SOC型8位单片机,结合设计需求,主要介绍该款单片机的以下特征:

(1)高速、流水线结构的8051兼容的CIP-51内核(可达25MIPS),指令系统与标准51系列单片机兼容,程序编写容易。

(2)除了有标准8051的端口(P0、P1、P2和P3)外,还附加4个端口(P4、P5、P6和P7)。外部数据存储器接口(EMIF)可被配置为使用低I/O端口(P0~P3)或高I/O端口(P4~P7)。

(3)集成了JTAG端口,对于JTAG调试方式,它支持在系统、全速、非插入调试和编程,并且不占用片内资源。

(4)可寻址64kB地址空间的外部数据存储器接口。

(5)64kB可在系统编程的FLASH存储器,可用于单片机程序和非易失性数据存储。

3.2 NAT9914简介

NAT9914可以被看作为一个总线翻译器,它把来自单片机的消息转换成相应的GPIB总线的消息,又可以将GPIB总线的消息转变成单片机能够识别的信号。它共有25个可寻址的寄存器,对应用来说,最主要的有19个工作寄存器。这19个寄存器包括8个只读寄存器和11个只写寄存器。微处理器通过地址选择端RS0、RS1、RS2和读写端DBIN、/WE来选择这些寄存器,进行读写操作。当/WE和DBIN均为低电平时,微处理器可对写寄存器进行操作,当/WE和DBIN均为高电平时,微处理器可对读寄存器执行操作,NAT9914正是通过这些读/写寄存器来实现GPIB总线与CPU之间的全部通讯。

NAT9914的性能特点如下:

(1)NAT9914的管脚与TMS9914的管脚完全兼容。

(2)在软件上可以与μPD7201兼容。

(3)低功耗,与CMOS和TTL电平兼容。

(4)完成所有IEEE488.1的接口功能。

(5)满足IEEE488.2的所有协议。

(6)可以程控数据传输速率(延迟350ns、500ns、1.1μs和1.2μs)。

(7)可以自动检测EOS和NL消息。

(8)具有直接存取功能。

(9)自动执行IEEE488的命令并可以读出未定义命令。

(10)有几种一次和二次地址寻址方式。

(11)程控时钟频率可高达20MHz。

3.3 硬件电路及工作原理

如图1所示,本文设计的GPIB接口电路主要由C8051F020、74LS373、NAT9914、SN75160和SN75161等芯片组成。NAT9914接在主控CPU C8051F020与数据总线收发器SN75160和控制总线收发器SN75161之间,充当GPIB总线和仪器之间的适配器,硬件上保证了GPIB接口物理性能的实现。

图1 GPIB硬件电路图

D0~D7为NAT9914的八条数据线,由于GPIB总线采用负逻辑,D7是内部数据总线的最低有效位,与C8051F020相连时,D7~D0与P7.0~P7.7对应相连。RS2、RS1、RS0是NAT9914内部寄存器选择端,与地址锁存器74LS373输出端低3位相连,并与读写操作线配合使用,以选择需要操作的寄存器。/INT为中断请求线,直接与C8051F020的中断端相连,使NAT9914可以通过中断方式实现接口功能。当NAT9914的读写端口DBIN和/WR为高电平时,允许对其读,为低电平时,允许对其写,因此C8051F020的/WR直接与NAT9914的/WR相连,而/RD则经反相后与NAT9914的DBIN相连。NAT9914无内部时钟发生器,本电路通过3MHz时钟振荡电路,产生3MHz时钟与NAT9914的CLK端相连。

因为仪器的GPIB接口是通过C8051F020的外部数据存储器接口(EMIF)对NAT9914的寄存器进行读写来实现的,而NAT9914寄存器的地址线只有3位,所以我们将C8051F020的外部数据存储器接口配置成“地址数据复用方式”,即数据总线和地址总线的低8位共享相同的端口P7;将外部数据存储器空间配置为“无块选择的分片模式”,由于在这种模式下,单片机访问片外存储器期间一个8位MOVX操作不驱动地址总线的高8位P6,因此我们又可以把P6口用作仪器的其他功能。

4.软件设计

本设计中软件采用C51语言编写,在主程序初始化部分对C8051F020高端口进行配置并对NAT9914进行初始化设置。单片机的高端口配置主要包括:首先将EMIF配置到到高端口(P4~P7),并将其配置成地址数据复用模式,然后选择存储器模式为不带块选择的分片方式,最后设置单片机与片外存储器接口的时序;NAT9914初始化主要包括:设置GPIB通信时钟频率、设置设备的GPIB地址、设置三线挂钩参数、NAT9914中断使能等,初始化完成后将NAT9914接入GPIB通信总线。

单片机系统以中断方式对GPIB各种事件进行处理,当有GPIB事件时,NAT9914会触发C8051F020芯片的外部中断,单片机进入中断子程序对事件进行处理。引起单片机中断的最常见GPIB事件是数据的接收和数据的发送,流程分别如图2和图3所示。

图2 GPIB接收数据子程序流程图

图3 GPIB发送数据子程序流程图

在接收数据时,NAT9914每接收到一个字节数据后,即置位寄存器ISR0中的BI位,触发单片机外部中断,单片进入外部中断处理程序后,读取ISR0寄存器,判断NAT9914触发中断的原因是接收数据事件后,开始接收来自GPIB仪器的数据。

在主程序中,NAT9914发送完第一个字节数据后,即置位寄存器ISR0中的BO位,触发单片机外部中断。单片机进入外部中断处理程序后,根据BO位判断事件类型为发送数据事件,将缓冲区中剩余的数据依次发送到GPIB总线上,直至所有数据发送完毕。

5.结束语

本设计利用C8051F020单片机的高端口控制NAT9914芯片,实现了以该单片机为主控CPU的智能仪器的GPIB接口,把功能比较强大的单片机低端口解放出来,用作仪器的其他功能。资源配置合理,设计简单,效果良好。

[1]NAT9914 Reference Manual.America,National Instruments Corporation,1995.

[2]潘琢金.C8051F020/1/2/3混合信号ISP FLASH微控制器数据手册[S].2005.

猜你喜欢

存储器寄存器中断
STM32和51单片机寄存器映射原理异同分析
静态随机存储器在轨自检算法
Lite寄存器模型的设计与实现
基于FPGA的中断控制器设计*
跟踪导练(二)(5)
千里移防,卫勤保障不中断
任意2~k点存储器结构傅里叶处理器
存储器——安格尔(墨西哥)▲
FPGA内嵌PowerPC的中断响应分析
高速数模转换器AD9779/AD9788的应用