關(guān) 閉

新聞中心

GPIB接口專用芯片TNT4882

作者: 時(shí)間:2004-12-07 來(lái)源:網(wǎng)絡(luò) 收藏
摘要:4882是美國(guó)NI公司推出的一款專用芯片。文中介紹了其內(nèi)部結(jié)構(gòu)、外圍時(shí)鐘電路和部分重要的寄存器,給出了設(shè)計(jì)中對(duì)4882編程的基本思路和注意事項(xiàng)。

關(guān)鍵詞: 4882

1 概述

TNT4882是美國(guó)NI公司的一款單芯片、高速、聽(tīng)/講功能的兼?zhèn)涞腉PIB(General purpose interface bus)接口專用芯片。它內(nèi)部集成了Turbo488(高速傳輸電路)以及NAT4882(IEEE488.2兼容電路),并擁有諸多新的特性,能夠兼容ANSI IEEE Standard 488.1和ANSI IEEE Standard 488.2規(guī)范,因而可以為GPIB系統(tǒng)提供一套完整的解決方案。為了達(dá)到更高的傳輸速率。TNT4882采用了單芯片F(xiàn)IFO緩存電路設(shè)計(jì),其內(nèi)置的16個(gè)增強(qiáng)型IEEE 488.1兼容收發(fā)器可以直接連接GPIB總線,以實(shí)現(xiàn)HS488傳輸模式(一種新的GPIB高速傳輸模式)。在兼容性方面,它與以往使用的μPD7210、TMS9914A中的寄存器設(shè)置完全兼容,用戶可以將以前所用的代碼直接移植到TNT4882上。同時(shí),它所包含的Turbo488電路及其諸多新特性也可以在一定程度上減少軟件的開(kāi)銷。另外,TMT4882還具有靈活的CPU接口,可以方便地連接各種16位或8位微處理器,并將CPU發(fā)出的消息和信號(hào)轉(zhuǎn)化成相應(yīng)的GPIB消息和信號(hào),以使實(shí)現(xiàn)GPIB設(shè)備和CPU及內(nèi)存之間的通信。

圖1 雙芯片模式結(jié)構(gòu)框圖

2 內(nèi)部結(jié)構(gòu)和外圍時(shí)鐘電路

2.1 TNT4882的內(nèi)部結(jié)構(gòu)

TNT4882的內(nèi)部結(jié)構(gòu)以其工作模式的不同而有所不同。工作模式可分為單芯片模式和雙芯片模式兩種,而雙芯片模式又可分為Turbo+7210模式和Turbo+9914模式。工作模式的選擇和轉(zhuǎn)換由寄存器的設(shè)置來(lái)決定,不同的工作模式?jīng)Q定著FIFO與GPIB的連接方式、寄存器的狀態(tài)和訪問(wèn)屬性。

在雙芯片工作模式下,NAT4882相當(dāng)于μPD7210(Turbo+7210模式)或TMS9914A(Turbo+9914模式),但功能更加強(qiáng)大。此時(shí)的結(jié)構(gòu)及工作過(guò)程如圖1所示。當(dāng)前GPIB寫數(shù)據(jù)時(shí),CPU首先將數(shù)據(jù)寫入TNT4882的FIFO里,并由傳輸狀態(tài)機(jī)將數(shù)據(jù)從FIFO傳至NAT4882電路,再由NAT4882電路將數(shù)據(jù)傳送至GPIB上;而當(dāng)從GPIB上讀數(shù)據(jù)時(shí),過(guò)程則正好相反。

在單芯片工作模式下,F(xiàn)IFO可直接與GPIB相連而不需要傳輸狀態(tài)機(jī),其結(jié)構(gòu)如圖2所示。此時(shí),TNT4882中寄存器的設(shè)置與Turbo+7210模式類似。

由于單芯片模式采用的是最簡(jiǎn)單且最快速的結(jié)構(gòu),且是NI公司推薦的TNT4882工作模式,因此,本文主要討論這種模式。

2.2 外圍時(shí)鐘電路

TNT4882工作時(shí)需要40MHz的驅(qū)動(dòng)時(shí)鐘,產(chǎn)生時(shí)鐘信號(hào)的方法有兩種:一是采用40MHz的CMOS晶振,將晶振的輸出接至TNT4882的XTALI管腳,并將XTALO管腳懸空;二是采用如圖3所示的外圍時(shí)鐘電路。

圖2 單芯片模式結(jié)構(gòu)框圖 圖3 TNT4882外圍時(shí)鐘電路

3 寄存器簡(jiǎn)介

TNT4882內(nèi)部寄存器的數(shù)量和種類都很多,而且在不同的工作模式下,寄存器的情況又不盡相同。本文只對(duì)單芯片模式以及與最基本的GPIB操作有關(guān)的一些寄存器進(jìn)行簡(jiǎn)要地介紹。

需要注意的是,TNT4882內(nèi)部的寄存器都是8位的。所以,每個(gè)寄存器的控制字也必須是8位。寄存器的地址通常是TNT4882的基地址加上各個(gè)寄存器所對(duì)應(yīng)的偏移量。TNT4882的基地址由硬件電路決定,而每個(gè)寄存器對(duì)應(yīng)的偏移量則是固定的,其范圍從0至0x1F。寄存器有三種類型:只讀、只寫和讀/寫。表1列出了一些比較重要的寄存器類型。

表1 TNT4882的部分寄存器

寄存器英文縮寫偏移量類 型
命令寄存器CMDR1C只寫
輔助模式寄存器AUXMR0A只寫
連續(xù)輪詢模式寄存器SPMR06只寫
握手選擇寄存器HSSEL0D只寫
高速使能寄存器HIER13只寫
多功能寄存器MISC15只寫
地址模式寄存器ADMR08只寫
地址寄存器ADR0C只寫
中斷寄存器0IMR01D只寫
中斷寄存器1IMR102只寫
配置寄存器CFG10只寫
總線控制寄存器BCR1F只寫
總線狀態(tài)寄存器BSR1F只讀
地址狀態(tài)寄存器ADSR08只讀
FIFO緩存AFIFOA19讀/寫
FIFO緩存BFIFOB18讀/寫
計(jì)數(shù)寄存器0CNT014讀/寫
計(jì)數(shù)寄存器1CNT116讀/寫
計(jì)數(shù)寄存器2CNT209讀/寫
計(jì)數(shù)寄存器3CNT30B讀/寫

4 軟件編程

TNT4882是一種需要軟件編程的集成電路。其內(nèi)部各個(gè)寄存器的狀態(tài)決定或標(biāo)志著芯片及GPIB的工作狀態(tài)。在GPIB接口設(shè)計(jì)中,只有通過(guò)編程對(duì)寄存器進(jìn)行正確設(shè)備,才能實(shí)現(xiàn)對(duì)GPIB的各種操作。以下是編程的基本思路和注意事項(xiàng)。

4.1 芯片初始化

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

(1)復(fù)位TNT4882器件中的Turbo488電路;

(2)將TNT4882設(shè)置成Turbo+7210模式;

(3)將TNT4882設(shè)置成單片機(jī)模式;

(4)使Local Power-On信號(hào)有效;

(5)配置TNT4882以為GPIB操作作準(zhǔn)備,其具體任務(wù)是設(shè)置TNT4882的GPIB地址、設(shè)置初始串行輪詢響應(yīng)、設(shè)置初始并行輪詢響應(yīng)、清除或設(shè)定中斷、設(shè)置GPIB握手參數(shù)等。

(6)清除Local Power-On信號(hào),開(kāi)始GPIB操作。

上述工作只是編程時(shí)考慮實(shí)現(xiàn)各種功能的基本原則,設(shè)計(jì)得可以根據(jù)自己的實(shí)際需要,對(duì)TNT4882進(jìn)行適當(dāng)?shù)木幊?,而沒(méi)有必要完成每種功能的設(shè)置。

4.2 GPIB數(shù)據(jù)傳輸

用TNT4882進(jìn)行GPIB數(shù)據(jù)傳輸時(shí),需經(jīng)歷初始化、數(shù)據(jù)傳輸和傳輸終止三個(gè)階段,傳輸初始化步驟如下:

(1)正確設(shè)置TNT4882的地址模式。在GPIB寫操作之前,應(yīng)將TNT4882設(shè)置成講狀態(tài);而在GPIB讀操作之前,要將TNT4882設(shè)置成聽(tīng)狀態(tài);

(2)清空FIFO,為數(shù)據(jù)傳輸作準(zhǔn)備;

(3)向配置寄存器中寫入正確的控制字以設(shè)定傳輸參數(shù);

(4)將欲傳輸字符個(gè)數(shù)的二進(jìn)制補(bǔ)碼寫入計(jì)數(shù)寄存器;

(5)如果需要的話,可以設(shè)置DMA參數(shù)并使用DMA方式進(jìn)行傳輸;

(6)根據(jù)需要,合理設(shè)置或清除中斷;

(7)向TNT4882發(fā)送傳輸命令。

在傳輸初始化完成之后,就可以在系統(tǒng)內(nèi)存和GPIB之間傳輸數(shù)據(jù)了。此時(shí),所要考慮的只是如何協(xié)調(diào)內(nèi)存和FIFO間的工作,而TNT4882會(huì)自動(dòng)管理FIFO與GPIB間的數(shù)據(jù)傳輸。通??梢赃x擇兩種傳輸方式:DMA方式和程序控制方式。若使用DMA方式,則必須在傳輸初始化時(shí)對(duì)TNT4882進(jìn)行正確設(shè)定。如果使用程序控制方式,則需設(shè)計(jì)控制程序來(lái)對(duì)數(shù)據(jù)傳輸進(jìn)行管理??刂瞥绦虻幕玖鞒倘鐖D4所示。

當(dāng)數(shù)據(jù)傳輸終止時(shí),還應(yīng)進(jìn)行以下幾步操作:

(1)向TNT4882發(fā)送停止命令;

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

(3)清除所有的中斷設(shè)置。

5 結(jié)束語(yǔ)

使用TNT4882時(shí),除了要求外接一個(gè)40MHz的外部時(shí)鐘以外,幾乎不需要其它任何輔助電路,因而大大簡(jiǎn)化了接口電路的設(shè)計(jì)和開(kāi)發(fā)。通過(guò)筆者的實(shí)驗(yàn)證明:TNT4882是一款廉價(jià)的、高性能的GPIB接口專用芯片,是GPIB接口設(shè)計(jì)的理想選擇。



關(guān)鍵詞: GPIB TNT 接口

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉