GPIB接口专用芯片TNT4882

2007-03-09 19:03:27来源: 互联网
摘要:TNT4882是美国NI公司推出的一款GPIB接口专用芯片。文中介绍了其内部结构、外围时钟电路和部分重要的寄存器,给出了GPIB接口设计中对TNT4882编程的基本思路和注意事项。 关键词:GPIB 接口 TNT4882 1 概述 TNT4882是美国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接口专用芯片,是GPIB接口设计的理想选择。
编辑: 引用地址:http://www.eeworld.com.cn/designarticles/others/200703/10756.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

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