基于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通信程序结构。