GPIB芯片TNT4882在多路程控电源中的应用_电源技术论文
关键词:gpib总线 tnt4882 微处理器 程控电源
gpib(general purpose interface bus)接口总线最早由美国hp公司倡导实施,命名为hpib。由于它良好的接口特性,很快在国际范围内得到广泛的应用,并被美国电气与电子工程学会命名为ieee488,在英国和日本等国家则称为gpib。虽然有多种叫法,但实际上除了机械标准有所不同外,其实质完全相同。它犹如一座桥梁,将配置gpib总线接口的仪器与计算机紧密地结合起来。用它组成的系统方便、灵活、功能强及适应性好,可方便地应用到科研、工程、医药工程、医药及测试等领域。
美国ni公司生产的gpib专用芯片tnt4882具有功能强、体积小、传输速度快及易与微处理器接口等特点,备受用户的青睐。笔者运用tnt4882成功地开发了具备gpib总线接口的多路程控电源。
图1 tnt4882引脚图
1 tnt4882芯片简介
1.1 tnt4882引脚说明
tnt4882是nt公司开发的100脚pqfq封装的gpib专用集成芯片,是ieee488.2标准和gpib收发功能的集成,且具有hs488增强功能。它的引脚如图1所示。
vdd:电源,接+5v;
gnd:电源地;
xtal0、xtal1:外接时钟振荡器引脚;
data15~data8(abus)、data7~data0(bbus):数据线,是tnt4882与外部cpu进行数据输入/输出的双向总线,分为abus和bbus,便于进行8位或16位数据操作;
abusn:abus使能;
bbusn:bbus使能;
abus_oen:当前正在通过abus读数据;
bbus_oen:当前正在通过bbus读数据;
csn:片选;
addr4~0:内部寄存器地址线;
rdn:读信号;
wrn:写信号;
cpuacc:指示tnt4882可以进行总线操作延时;
rdy1:指示tnt4882完成当前总线操作;
drq:dma申请信号;
dackn:dma申请应答信号;
burst_rdn:连续读信号;
fifo_rdy:当前tnt4882内部fifo至少已有8个有效数据;
intr:中断申请信号;
raged:地址映射选择,有效则映射内部寄存器到不同的地址;
mode:tnt4882工作模式选择;
swapn:模式切换;
resetn:复位;
tadcs:指示当前tnt4882选中为讲者;
ladcs:指示当前tnt4882选中为听者;
trig:指示当前tnt4882接收到外部触发信号;
dcas:指示当前tnt4882接收到设备清零信号;
rem:指示当前tnt4882进入遥控状态;
gpib数据线8根:dio8n~dio1n,用于gpib发布地址和命令,传递数据;
gpib管理总线5根:atnn(attention,注意)线、ifcn(interface-clear,接口清除)线、renn(remote enable,程控使能)线、srqn(service request,服务请求)线、ndacn(not data accepted,未接收到数据)线;
gpib挂钩总线3根:davn(data valid,数据有效)线、nrfdn(not ready for data,未准备好接收)线、ndacn(not data accepted,未接收到数据)线。tnt4882利用以上3条总线进行握手信息和数据传送,以确保和数据的发布与传送准确无误。
1.2 tnt4882内部结构
tnt4882有三种模式:单片模式、turbo+7210模式及turbo+9914模式,而且turbo+7210模式和turbo+9914模式可以转换到单片模式。单片模式是最简单、最快速的结构。在设计中,选用单片模式。单片模式内部组成模块如图2所示。
单片模式内部结构由1个片内isa逻辑接口,1个片内读/写控制器,1个片内先进先出的缓冲区,1个定时/计数器,1个片内中断控制器,1个可配置状态寄存器,1个ieee488总线监视器,1个ieee488总线功能接口,1个hs488电路功能接口,1个ieee488收发器及1个ieee488总线组成。
2 tnt4882功能控制和数据传送/接收方式
2.1 tnt4882功能控制
tnt4882功能控制是通过写命令字的方式实现的。这些命令字包括tnt4882复位、初始化、寄存器的读/写及中断请求等命令。tnt4882内部有40多个用户可访问的8位寄存器。对这些寄存器的访问是通过填在寄存器的读/写命令的地址进行的。这些寄存器包括基本配置、fifo、中断控制、定时/计数器、状态寄存器、挂钩和管理寄存器等。
2.2 tnt4882数据传送/接收方式
当传送数据开始时,tnt4882完成初始化。tnt4882初始化结束后,上位机和tnt4882进行数据传送。上位机传送计数器用来寄存上位机和fifo之间所要传送和接收的字节数。由ntn4882计数gpib接口传送和接收的字节。在上位机和fifo间每传送一个数据,上位机接口便将上位机传送计数器的传送计数值减一,并查询计数值是否等于零。如果计数值等于零,上位机开始检测结束条件,判断是否结束。如果结束,数据传送完成;否则,等待。
图4 tnt4882与微控制器接口原理图
3 tnt4882在多路程控电源中的应用及软件流程
多路程控电源是为航空航天电子设备及系统的自动测试设备(ate)的技术需要而设计和研制的,是目前在高性能的航空航天自测系统中不可缺少的配套设备之一。该程控电源的输出不但可满足目前国内、国外不同供电体系的技术需要,而且还配套输出多路的辅助电源,以满足用户的特殊需要。考虑到多路程控电源的通用性,且适于国际接口标准,在研制中加一gpib总线接口,以使我们的多路程控电源能用在不同的控制系统中。多路程控电源硬件图如图3所示。
多路程控电源由数据采集、微控制器、电源模块、gpib总线接口及上位机组成。多路程控电源输出的模拟量经变换后送到a/d转换器进行转换,转换成数字量送到微控制器处理,同时微控制器还采集开关信号。微控制器对采集的信号处理后,通过gpib总线送至上位机,实现上位机对电源状态的实时监控;同时,上位机可以通过gpib总线发送控制命令到微控制器,实现上位机对多路程控电源的程控。
3.1 tnt4882与微控制器接口及编程
tnt4882的d0~d7与89c51的p0口直接相连,addr0~addr5与微控制器的地址a0~a5相连,cs作tnt4882的片选信号,与在线可编程逻辑器件相接。wr、rd与微控制器的读、与直接相连,对读、写寄存器进行读、写操作。由于tnt4882的中断为高电平,与at89c51的中断申请极性相反,故需要通过反向后,才可与微控制器的中断int连接。
在本多路程控电源系统中,有两个晶振:一个用于产生微控制器工作时钟,一个用于产生tnt4882的工作时钟。图4是tnt4882与微控制器的接口原理图。
用mcs51汇编语言编写的gpib收、发数据子程序见网络补充版。
3.2 上位机编程
采用面向仪器与测控过程的交互式c/c++开发平台——labwindows/cvi(c for virtual instrumentation)语言。它是一种将c语言平台与测控专业工具库有机结合起来的开发平台。它不仅具有集成开发平台、交互式编程方法、功能面板和库函数,而且还有简单明了的友好图形设计界面、完善的开发系统兼容性以及灵活的程序调试手段,为熟悉c/c++语言的开发人员建立数据采集系统、测量系统、检测和过程监控系统提供了极大的便利。图5是上位机控制程序流程图。
多路程控电源与上位机通信的一个应用程序见网络补充版。
结语
新一代具备gpib接口总线的多路程控电源,符合ieee-488.2数据接口标准。只要用标准的gpib接口电缆与系统连接,就可以灵活地应用到任何系统中去,不受型号等因素的限制,并且具有很好的可扩展性,显示了它特有的优越性。