造价通

反馈
取消

热门搜词

造价通

取消 发送 反馈意见

GPIB接口专用芯片TNT4882

2018/09/06102 作者:佚名
导读:1 概述 是美国NI公司的一款单芯片、高速、听/讲功能的兼备的GPIB(General purpose interface bus)接口。它内部集成了Turbo488(高速传输电路)以及NAT4882(IEEE488.2兼容电路),并拥有诸

1 概述

是美国NI公司的一款单芯片、高速、听/讲功能的兼备的GPIB(General purpose interface bus)接口。它内部集成了Turbo488(高速传输电路)以及NAT4882(IEEE488.2兼容电路),并拥有诸多新的特性,能够兼容ANSI IEEE Standard 488.1和ANSI IEEE Standard 488.2规范,因而可以为GPIB系统提供一套完整的解决方案。为了达到更高的传输速率。TNT4882采用了单芯片FIFO缓存,其内置的16个增强型IEEE 488.1兼容收发器可以直接连接GPIB,以实现HS488传输模式(一种新的GPIB高速传输模式)。在兼容性方面,它与以往使用的μPD7210、TMS9914A中的寄存器设置完全兼容,用户可以将以前所用的代码直接移植到TNT4882上。同时,它所包含的Turbo488电路及其诸多新特性也可以在一定程度上减少软件的开销。另外,TMT4882还具有灵活的CPU接口,可以方便地连接各种16位或8位微处理器,并将CPU发出的消息和信号转化成相应的GPIB消息和信号,以使实现GPIB设备和CPU及内存之间的通信。

图1 双芯片模式结构

2 内部结构和外围

2.1 TNT4882的内部结构

TNT4882的内部结构以其工作模式的不同而有所不同。工作模式可分为单芯片模式和双芯片模式两种,而双芯片模式又可分为Turbo+7210模式和Turbo+9914模式。工作模式的选择和转换由寄存器的设置来决定,不同的工作模式决定着FIFO与GPIB的连接方式、寄存器的状态和访问属性。

在双芯片工作模式下,NAT4882相当于μPD7210(Turbo+7210模式)或TMS9914A(Turbo+9914模式),但功能更加强大。此时的结构及工作过程如图1所示。当前GPIB写数据时,CPU首先将数据写入TNT4882的FIFO里,并由传输状态机将数据从FIFO传至NAT4882电路,再由NAT4882电路将数据传送至GPIB上;而当从GPIB上读数据时,过程则正好相反。

在单芯片工作模式下,FIFO可直接与GPIB相连而不需要传输状态机,其结构如图2所示。此时,TNT4882中寄存器的设置与Turbo+7210模式类似。

由于单芯片模式采用的是最简单且最快速的结构,且是NI公司推荐的TNT4882工作模式,因此,本文主要讨论这种模式。

2.2 外围时钟电路

TNT4882工作时需要40MHz的驱动时钟,产生时钟信号的方法有两种:一是采用40MHz的CMOS晶振,将晶振的输出接至TNT4882的XTALI管脚,并将XTALO管脚悬空;二是采用如图3所示的外围时钟电路。

图2 单芯片模式结构框图 图3 TNT4882外围时钟电路

3 寄存器简介

TNT4882内部寄存器的数量和种类都很多,而且在不同的工作模式下,寄存器的情况又不尽相同。本文只对单芯片模式以及与最基本的GPIB操作有关的一些寄存器进行简要地介绍。

需要注意的是,TNT4882内部的寄存器都是8位的。所以,每个寄存器的控制字也必须是8位。寄存器的地址通常是TNT4882的基地址加上各个寄存器所对应的偏移量。TNT4882的基地址由硬件电路决定,而每个寄存器对应的偏移量则是固定的,其范围从0至0x1F。寄存器有三种类型:只读、只写和读/写。表1列出了一些比较重要的寄存器类型。

表1 TNT4882的部分寄存器

寄存器 英文缩写 偏移量 类 型
命令寄存器 CMDR 1C 只写
辅助模式寄存器 AUXMR 0A 只写
连续轮询模式寄存器 SPMR 06 只写
握手选择寄存器 HSSEL 0D 只写
高速使能寄存器 HIER 13 只写
多功能寄存器 MISC 15 只写
地址模式寄存器 ADMR 08 只写
地址寄存器 ADR 0C 只写
中断寄存器0 IMR0 1D 只写
中断寄存器1 IMR1 02 只写
配置寄存器 CFG 10 只写
总线控制寄存器 BCR 1F 只写
总线状态寄存器 BSR 1F 只读
地址状态寄存器 ADSR 08 只读
FIFO缓存A FIFOA 19 读/写
FIFO缓存B FIFOB 18 读/写
计数寄存器0 CNT0 14 读/写
计数寄存器1 CNT1 16 读/写
计数寄存器2 CNT2 09 读/写
计数寄存器3 CNT3 0B 读/写

4

TNT4882是一种需要软件编程的集成电路。其内部各个寄存器的状态决定或标志着芯片及GPIB的工作状态。在GPIB中,只有通过编程对寄存器进行正确设备,才能实现对GPIB的各种操作。以下是编程的基本思路和注意事项。

4.1 芯片初始化

最典型的初始化程序需完成以下工作:

(1)复位TNT4882器件中的Turbo488电路;

(2)将TNT4882设置成Turbo+7210模式;

(3)将TNT4882设置成模式;

(4)使Local Power-On信号有效;

(5)配置TNT4882以为GPIB操作作准备,其具体任务是设置TNT4882的GPIB地址、设置初始串行轮询响应、设置初始并行轮询响应、清除或设定中断、设置GPIB握手参数等。

(6)清除Local Power-On信号,开始GPIB操作。

上述工作只是编程时考虑实现各种功能的基本原则,设计得可以根据自己的实际需要,对TNT4882进行适当的编程,而没有必要完成每种功能的设置。

4.2 GPIB数据传输

用TNT4882进行GPIB数据传输时,需经历初始化、数据传输和传输终止三个阶段,传输初始化步骤如下:

(1)正确设置TNT4882的地址模式。在GPIB写操作之前,应将TNT4882设置成讲状态;而在GPIB读操作之前,要将TNT4882设置成听状态;

(2)清空FIFO,为数据传输作准备;

(3)向配置寄存器中写入正确的控制字以设定传输参数;

(4)将欲传输字符个数的二进制补码写入计数寄存器;

(5)如果需要的话,可以设置DMA参数并使用DMA方式进行传输;

(6)根据需要,合理设置或清除中断;

(7)向TNT4882发送传输命令。

在传输初始化完成之后,就可以在系统内存和GPIB之间传输数据了。此时,所要考虑的只是如何协调内存和FIFO间的工作,而TNT4882会自动管理FIFO与GPIB间的数据传输。通常可以选择两种传输方式:DMA方式和程序控制方式。若使用DMA方式,则必须在传输初始化时对TNT4882进行正确设定。如果使用程序控制方式,则需设计控制程序来对数据传输进行管理。控制程序的基本流程如图4所示。

当数据传输终止时,还应进行以下几步操作:

(1)向TNT4882发送停止命令;

(2)若使用了DMA方式,还需禁止外部的DMA控制器;

(3)清除所有的中断设置。

5 结束语

使用TNT4882时,除了要求外接一个40MHz的外部时钟以外,几乎不需要其它任何辅助电路,因而大大简化了接口电路的设计和开发。通过笔者的实验证明:TNT4882是一款廉价的、高性能的专用芯片,是GPIB接口设计的理想选择。

原文链接:

*文章为作者独立观点,不代表造价通立场,除来源是“造价通”外。
关注微信公众号造价通(zjtcn_Largedata),获取建设行业第一手资讯

热门推荐

相关阅读