GPIB芯片TNT4882在多路程控電源中的應(yīng)用
關(guān)鍵詞:GPIB總線 TNT4882 微處理器 程控電源
GPIB(General Purpose Interface Bus)接口總線最早由美國(guó)HP公司倡導(dǎo)實(shí)施,命名為HPIB。由于它良好的接口特性,很快在國(guó)際范圍內(nèi)得到廣泛的應(yīng)用,并被美國(guó)電氣與電子工程學(xué)會(huì)命名為IEEE488,在英國(guó)和日本等國(guó)家則稱為GPIB。雖然有多種叫法,但實(shí)際上除了機(jī)械標(biāo)準(zhǔn)有所不同外,其實(shí)質(zhì)完全相同。它猶如一座橋梁,將配置GPIB總線接口的儀器與計(jì)算機(jī)緊密地結(jié)合起來。用它組成的系統(tǒng)方便、靈活、功能強(qiáng)及適應(yīng)性好,可方便地應(yīng)用到科研、工程、醫(yī)藥工程、醫(yī)藥及測(cè)試等領(lǐng)域。
美國(guó)NI公司生產(chǎn)的GPIB專用芯片TNT4882具有功能強(qiáng)、體積小、傳輸速度快及易與微處理器接口等特點(diǎn),備受用戶的青睞。筆者運(yùn)用TNT4882成功地開發(fā)了具備GPIB總線接口的多路程控電源。
圖1 TNT4882引腳圖
1 TNT4882芯片簡(jiǎn)介
1.1 TNT4882引腳說明
TNT4882是NT公司開發(fā)的100腳PQFQ封裝的GPIB專用集成芯片,是IEEE488.2標(biāo)準(zhǔn)和GPIB收發(fā)功能的集成,且具有HS488增強(qiáng)功能。它的引腳如圖1所示。
VDD:電源,接+5V;
GND:電源地;
XTAL0、XTAL1:外接時(shí)鐘振蕩器引腳;
DATA15~DATA8(ABUS)、DATA7~DATA0(BBUS):數(shù)據(jù)線,是TNT4882與外部CPU進(jìn)行數(shù)據(jù)輸入/輸出的雙向總線,分為ABUS和BBUS,便于進(jìn)行8位或16位數(shù)據(jù)操作;
ABUSN:ABUS使能;
BBUSN:BBUS使能;
ABUS_OEN:當(dāng)前正在通過ABUS讀數(shù)據(jù);
BBUS_OEN:當(dāng)前正在通過BBUS讀數(shù)據(jù);
CSN:片選;
ADDR4~0:內(nèi)部寄存器地址線;
RDN:讀信號(hào);
WRN:寫信號(hào);
CPUACC:指示TNT4882可以進(jìn)行總線操作延時(shí);
RDY1:指示TNT4882完成當(dāng)前總線操作;
DRQ:DMA申請(qǐng)信號(hào);
DACKN:DMA申請(qǐng)應(yīng)答信號(hào);
BURST_RDN:連續(xù)讀信號(hào);
FIFO_RDY:當(dāng)前TNT4882內(nèi)部FIFO至少已有8個(gè)有效數(shù)據(jù);
INTR:中斷申請(qǐng)信號(hào);
RAGED:地址映射選擇,有效則映射內(nèi)部寄存器到不同的地址;
MODE:TNT4882工作模式選擇;
SWAPN:模式切換;
RESETN:復(fù)位;
TADCS:指示當(dāng)前TNT4882選中為講者;
LADCS:指示當(dāng)前TNT4882選中為聽者;
DCAS:指示當(dāng)前TNT4882接收到設(shè)備清零信號(hào);
REM:指示當(dāng)前TNT4882進(jìn)入遙控狀態(tài);
GPIB數(shù)據(jù)線8根:DIO8N~DIO1N,用于GPIB發(fā)布地址和命令,傳遞數(shù)據(jù);
GPIB管理總線5根:ATNN(ATTENTION,注意)線、IFCN(INTERFACE-CLEAR,接口清除)線、RENN(REMOTE ENABLE,程控使能)線、SRQN(SERVICE REQUEST,服務(wù)請(qǐng)求)線、NDACN(NOT DATA ACCEPTED,未接收到數(shù)據(jù))線;
GPIB掛鉤總線3根:DAVN(DATA VALID,數(shù)據(jù)有效)線、NRFDN(NOT READY FOR DATA,未準(zhǔn)備好接收)線、NDACN(NOT DATA ACCEPTED,未接收到數(shù)據(jù))線。TNT4882利用以上3條總線進(jìn)行握手信息和數(shù)據(jù)傳送,以確保信息和數(shù)據(jù)的發(fā)布與傳送準(zhǔn)確無誤。
1.2 TNT4882內(nèi)部結(jié)構(gòu)
TNT4882有三種模式:?jiǎn)纹J?、Turbo+7210模式及Turbo+9914模式,而且Turbo+7210模式和Turbo+9914模式可以轉(zhuǎn)換到單片模式。單片模式是最簡(jiǎn)單、最快速的結(jié)構(gòu)。在設(shè)計(jì)中,選用單片模式。單片模式內(nèi)部組成模塊如圖2所示。
單片模式內(nèi)部結(jié)構(gòu)由1個(gè)片內(nèi)ISA邏輯接口,1個(gè)片內(nèi)讀/寫控制器,1個(gè)片內(nèi)先進(jìn)先出的緩沖區(qū),1個(gè)定時(shí)/計(jì)數(shù)器,1個(gè)片內(nèi)中斷控制器,1個(gè)可配置狀態(tài)寄存器,1個(gè)IEEE488總線監(jiān)視器,1個(gè)IEEE488總線功能接口,1個(gè)HS488電路功能接口,1個(gè)IEEE488收發(fā)器及1個(gè)IEEE488總線組成。
2 TNT4882功能控制和數(shù)據(jù)傳送/接收方式
2.1 TNT4882功能控制
TNT4882功能控制是通過寫命令字的方式實(shí)現(xiàn)的。這些命令字包括TNT4882復(fù)位、初始化、寄存器的讀/寫及中斷請(qǐng)求等命令。TNT4882內(nèi)部有40多個(gè)用戶可訪問的8位寄存器。對(duì)這些寄存器的訪問是通過填在寄存器的讀/寫命令的地址進(jìn)行的。這些寄存器包括基本配置、FIFO、中斷控制、定時(shí)/計(jì)數(shù)器、狀態(tài)寄存器、掛鉤和管理寄存器等。
2.2 TNT4882數(shù)據(jù)傳送/接收方式
當(dāng)傳送數(shù)據(jù)開始時(shí),TNT4882完成初始化。TNT4882初始化結(jié)束后,上位機(jī)和TNT4882進(jìn)行數(shù)據(jù)傳送。上位機(jī)傳送計(jì)數(shù)器用來寄存上位機(jī)和FIFO之間所要傳送和接收的字節(jié)數(shù)。由NTN4882計(jì)數(shù)GPIB接口傳送和接收的字節(jié)。在上位機(jī)和FIFO間每傳送一個(gè)數(shù)據(jù),上位機(jī)接口便將上位機(jī)傳送計(jì)數(shù)器的傳送計(jì)數(shù)值減一,并查詢計(jì)數(shù)值是否等于零。如果計(jì)數(shù)值等于零,上位機(jī)開始檢測(cè)結(jié)束條件,判斷是否結(jié)束。如果結(jié)束,數(shù)據(jù)傳送完成;否則,等待。
圖4 TNT4882與微控制器接口原理圖
3 TNT4882在多路程控電源中的應(yīng)用及軟件流程
多路程控電源是為航空航天電子設(shè)備及系統(tǒng)的自動(dòng)測(cè)試設(shè)備(ATE)的技術(shù)需要而設(shè)計(jì)和研制的,是目前在高性能的航空航天自測(cè)系統(tǒng)中不可缺少的配套設(shè)備之一。該程控電源的輸出不但可滿足目前國(guó)內(nèi)、國(guó)外不同供電體系的技術(shù)需要,而且還配套輸出多路的輔助電源,以滿足用戶的特殊需要??紤]到多路程控電源的通用性,且適于國(guó)際接口標(biāo)準(zhǔn),在研制中加一GPIB總線接口,以使我們的多路程控電源能用在不同的控制系統(tǒng)中。多路程控電源硬件圖如圖3所示。
多路程控電源由數(shù)據(jù)采集、微控制器、電源模塊、GPIB總線接口及上位機(jī)組成。多路程控電源輸出的模擬量經(jīng)變換后送到A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換成數(shù)字量送到微控制器處理,同時(shí)微控制器還采集開關(guān)信號(hào)。微控制器對(duì)采集的信號(hào)處理后,通過GPIB總線送至上位機(jī),實(shí)現(xiàn)上位機(jī)對(duì)電源狀態(tài)的實(shí)時(shí)監(jiān)控;同時(shí),上位機(jī)可以通過GPIB總線發(fā)送控制命令到微控制器,實(shí)現(xiàn)上位機(jī)對(duì)多路程控電源的程控。
3.1 TNT4882與微控制器接口及編程
TNT4882的D0~D7與89C51的P0口直接相連,ADDR0~ADDR5與微控制器的地址A0~A5相連,CS作TNT4882的片選信號(hào),與在線可編程邏輯器件相接。WR、RD與微控制器的讀、與直接相連,對(duì)讀、寫寄存器進(jìn)行讀、寫操作。由于TNT4882的中斷為高電平,與AT89C51的中斷申請(qǐng)極性相反,故需要通過反向后,才可與微控制器的中斷INT連接。
在本多路程控電源系統(tǒng)中,有兩個(gè)晶振:一個(gè)用于產(chǎn)生微控制器工作時(shí)鐘,一個(gè)用于產(chǎn)生TNT4882的工作時(shí)鐘。圖4是TNT4882與微控制器的接口原理圖。
用MCS51匯編語言編寫的GPIB收、發(fā)數(shù)據(jù)子程序見網(wǎng)絡(luò)補(bǔ)充版。
3.2 上位機(jī)編程
采用面向儀器與測(cè)控過程的交互式C/C++開發(fā)平臺(tái)――LabWindows/CVI(C for Virtual Instrumentation)語言。它是一種將C語言平臺(tái)與測(cè)控專業(yè)工具庫有機(jī)結(jié)合起來的開發(fā)平臺(tái)。它不僅具有集成開發(fā)平臺(tái)、交互式編程方法、功能面板和庫函數(shù),而且還有簡(jiǎn)單明了的友好圖形設(shè)計(jì)界面、完善的開發(fā)系統(tǒng)兼容性以及靈活的程序調(diào)試手段,為熟悉C/C++語言的開發(fā)人員建立數(shù)據(jù)采集系統(tǒng)、測(cè)量系統(tǒng)、檢測(cè)和過程監(jiān)控系統(tǒng)提供了極大的便利。圖5是上位機(jī)控制程序流程圖。
多路程控電源與上位機(jī)通信的一個(gè)應(yīng)用程序見網(wǎng)絡(luò)補(bǔ)充版。
結(jié)語
新一代具備GPIB接口總線的多路程控電源,符合IEEE-488.2數(shù)據(jù)接口標(biāo)準(zhǔn)。只要用標(biāo)準(zhǔn)的GPIB接口電纜與系統(tǒng)連接,就可以靈活地應(yīng)用到任何系統(tǒng)中去,不受型號(hào)等因素的限制,并且具有很好的可擴(kuò)展性,顯示了它特有的優(yōu)越性。
評(píng)論