《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > CPLD實(shí)現(xiàn)GPIB控制器的設(shè)計(jì)
CPLD實(shí)現(xiàn)GPIB控制器的設(shè)計(jì)
來源:《微計(jì)算機(jī)信息》2008年23期
魏金成 牟濤 西華大學(xué)電氣信息學(xué)院
摘要: 綜觀現(xiàn)今市場上的測試儀器,不難發(fā)現(xiàn)GPIB總線有重要的作用,在研制臺式測試儀器的時(shí)候,客戶幾乎均要求具備GPIB接口。可是在實(shí)際研發(fā)過程中,卻發(fā)現(xiàn)GPIB控制芯片很難購買,而且價(jià)格昂貴。而且作為測試儀器具備GPIB的接口,一般只需要具有聽、講、串查功能,而不需要控、并查功能,這樣又會造成資源與功能的浪費(fèi)。所以我們嘗試用CPLD來實(shí)現(xiàn)GPIB接口的聽、講、串查功能,不僅可擁有自主知識產(chǎn)權(quán),節(jié)省了產(chǎn)品的成本,而且具有很大的靈活性。
Abstract:
Key words :
1 引言

1.1 用CPLD實(shí)現(xiàn)GPIB控制芯片的意義

綜觀現(xiàn)今市場上的測試儀器,不難發(fā)現(xiàn)GPIB總線有重要的作用,在研制臺式測試儀器的時(shí)候,客戶幾乎均要求具備GPIB接口。可是在實(shí)際研發(fā)過程中,卻發(fā)現(xiàn)GPIB控制芯片很難購買,而且價(jià)格昂貴。而且作為測試儀器具備GPIB的接口,一般只需要具有聽、講、串查功能,而不需要控、并查功能,這樣又會造成資源與功能的浪費(fèi)。所以我們嘗試用CPLD來實(shí)現(xiàn)GPIB接口的聽、講、串查功能,不僅可擁有自主知識產(chǎn)權(quán),節(jié)省了產(chǎn)品的成本,而且具有很大的靈活性。

1.2 GPIB控制芯片簡介

GPIB也叫HPIB,是一個(gè)數(shù)字化的24腳并行總線,由16條信號線和8條地線組成。這16條信號線分為8條數(shù)據(jù)線、5條控制線和3條握手線。8條數(shù)據(jù)線:從DIO1到DIO8,用來傳送命令、地址和數(shù)據(jù);5條控制線:分別為ATN線、IFC線、REN線、SRQ線和EOI線,用來管理通過接口的有序信息流;3條握手線:DAV線、NRFD線和NDAC線,用于控制設(shè)備之間消息字節(jié)的傳送。發(fā)送消息方(源方)和接收消息方(受方)利用這3條握手線進(jìn)行三線掛鉤,以保證數(shù)據(jù)線上的消息(命令或數(shù)據(jù))能準(zhǔn)確無誤地傳送。

在GPIB系統(tǒng)中,把器件與GPIB總線的一種交互作用定義成一種接口功能。GPIB標(biāo)準(zhǔn)接口共定義了10種接口功能。

1.3 設(shè)計(jì)軟件及設(shè)計(jì)芯片的選擇

開發(fā)工具采用ALTERA公司的MAXplusⅡ10.0。MAXplusⅡ開發(fā)工具是美國Altera公司自行設(shè)計(jì)的一種EDA軟件工具,它具有原理圖輸入和文本輸入(采用硬件描述語言)兩種輸入手段,配備有編輯、編譯、仿真、綜合、芯片編程等功能。

Altera公司是世界上從事可編程邏輯芯片生產(chǎn)的幾家主要廠商之一,其MAX3000A系列可編程邏輯芯片速度快,容量大,性價(jià)比高。我們選用的EPM3256ATC144-10,擁有256個(gè)宏單元,144個(gè)管腳,可自定義使用的管腳達(dá)116 個(gè),4.5ns的傳輸延時(shí)完全能滿足要求。

2 GPIB控制器各個(gè)模塊的設(shè)計(jì)

我們可以把整個(gè)系統(tǒng)劃分為幾個(gè)子系統(tǒng)。其中包括和微處理器接口的讀寫電路,與GPIB母線通信的接口功能,以及內(nèi)部寄存器。對每個(gè)子系統(tǒng)的設(shè)計(jì)也可以采用向下分解為模塊級設(shè)計(jì),這樣在調(diào)試和組件系統(tǒng)時(shí),不僅具有很強(qiáng)的靈活性,而且方便代碼的調(diào)試以及利于代碼的重利用。與微處理器接口的讀寫電路設(shè)計(jì)可以利用組合邏輯電路設(shè)計(jì)方法實(shí)現(xiàn),其基本模塊,如:譯碼電路,讀寫電路,相對比較成熟,在設(shè)計(jì)的時(shí)候只要對其基本功能深刻理解的基礎(chǔ)上容易實(shí)現(xiàn)。與GPIB母線通信的子系統(tǒng)設(shè)計(jì)是本課題設(shè)計(jì)的重點(diǎn)也是難點(diǎn),它不僅需要對IEEE488協(xié)議有深刻的認(rèn)識,而且在接口功能子集的選擇上也有一定的要求。

2.1 微處理器(MCU)接口電路

微處理器(MCU)接口包括提供正確的寄存器訪問地址的譯碼電路,以及連同WE和DBIN一起構(gòu)成的訪問GPIB控制器的讀寫電路,NCS用來選通地址譯碼。地址譯碼電路以及數(shù)據(jù)讀寫電路在數(shù)字電路設(shè)計(jì)中是最為成熟的電路,在此不作更多深入的闡述。值得注意的是GPIB控制器的讀寫信號并不是通常意義上的RD和WR信號,而是由DBIN和WE信號完成。而且,對13個(gè)寄存器的譯碼也用的僅僅是RS[0:2],這就需要和DBIN信號的配合來完成譯碼功能。

2.2 內(nèi)部寄存器

GPIB控制器(參考NAT9914)的內(nèi)部體系結(jié)構(gòu)有13個(gè)寄存器,其中7個(gè)可寫寄存器,6個(gè)只讀寄存器。它們都是八位的,其中可讀寄存器有中斷狀態(tài)寄存器0(ISR0)、中斷狀態(tài)寄存器1(ISR1)、地址狀態(tài)寄存器(ASR)、總線狀態(tài)寄存器(BSR)、命令通過寄存器(CPR)、數(shù)據(jù)輸入寄存器(DIR);可寫寄存器有中斷屏蔽寄存器0(IMR0)、中斷屏蔽寄存器1(IMR1)、地址寄存器(ADR)、輔助命令寄存器(AUXCR)、串行查詢寄存器(SPR)、并行查找寄存器(PPR)、數(shù)據(jù)輸出寄存器(CDOR)。在GPIB 控制芯片的設(shè)計(jì)中對這十三個(gè)寄存器進(jìn)行詳細(xì)的描述。本模塊的設(shè)計(jì)采用圖形方式,利用參數(shù)化模塊庫實(shí)現(xiàn)各個(gè)寄存器。

2.3 接口功能

GPIB標(biāo)準(zhǔn)接口共定義了10種接口功能。每一個(gè)接口功能由一組或多組相互聯(lián)系而又相互排斥的狀態(tài)來定義。在一個(gè)時(shí)刻,一組互聯(lián)又互斥的狀態(tài)中必須有一個(gè)而且也僅又一個(gè)狀態(tài)在起作用。在IEEE488協(xié)議中對接口功能的每一個(gè)狀態(tài)還做了兩方面的規(guī)定:

1.當(dāng)某個(gè)狀態(tài)在起作用時(shí),在接口上可以或必須發(fā)送的消息;

2.在什么條件下接口功能必須脫離某一狀態(tài)而進(jìn)入同一組狀態(tài)的另一個(gè)狀態(tài);這些因素決定了狀態(tài)的處理能力。接口功能狀態(tài)圖給出了全部狀態(tài)以及從一個(gè)狀態(tài)變遷到另一個(gè)狀態(tài)一切可能的途徑。由于篇幅的限制,下面以受方掛鉤接口功能AH功能為例,來介紹功能模塊的實(shí)現(xiàn)過程及原理。受方掛鉤功能賦予器件保證正確地接收遠(yuǎn)地多線消息地能力。一個(gè)源方掛鉤功能與一個(gè)或多個(gè)受方掛鉤功能(分別含于各個(gè)器件中)的鏈鎖掛鉤序

列保證每個(gè)消息拜特的異步傳遞。受方掛鉤功能可以延遲多線消息傳遞的開始或結(jié)束,直到器件準(zhǔn)備好繼續(xù)參與傳遞過程為止。狀態(tài)圖如圖1:

CPLD實(shí)現(xiàn)GPIB控制器的設(shè)計(jì)
圖1 AH功能狀態(tài)圖

其狀態(tài)轉(zhuǎn)換的VHDL語言描述如下:

process(c_state,n_state)

begin AIDS<='0';ANRS<='0';AWNS<='0';ACDS<='0';ACRS<='0'; case c_state is

when s1=>AIDS<='1';NRFD<='1';NDAC<='1';

IF (ATN OR LACS OR LADS)='1' then n_state<=s2;

else n_state<=s1; end if;

when s2=>ANRS<='1';NRFD<='0';NDAC<='0';

IF ((ATN OR rdy) and not tcs)= '1' then n_state<=s3;

elsif DAV='1' then n_state<=s5;

else n_state<=s2; end if;

when s3=>ACRS<='1';NRFD<='1';NDAC<='0'; IF DAV='1' then n_state<=s4;

ELSIF (NOT ATN AND NOT rdy)='1' THEN n_state<=s2;

else n_state<=s3; end if;

when s4=>ACDS<='1';NRFD<='0';NDAC<='0';

IF ((ATN AND T3) OR (NOT ATN AND NOT rdy))='1' THEN n_state<=s5;

else n_state<=s4; end if;

when s5=>AWNS<='1';NRFD<='0';NDAC<='1'; IF DAV='0' then n_state<=s2;

else n_state<=s5; end if;

end case;

end process;

根據(jù)儀器的具體要求,由于大多數(shù)測試系統(tǒng)只要求被遠(yuǎn)控,并不要求控功能,而并查功能在系統(tǒng)組建中屬于可選項(xiàng),很少用到,為了簡化系統(tǒng),設(shè)計(jì)中徹底去掉此兩項(xiàng)功能。其他功能模塊包括:講者功能(T)、聽者功能(L)、源方掛鉤功能(SH)、受方掛鉤功能(AH)、服務(wù)請求功能(SR)、遠(yuǎn)控本控功能(RL)、設(shè)備觸發(fā)功能(DT)和設(shè)備清除功能(DC)。其設(shè)計(jì)原理與AH相同,在這里就不做詳細(xì)論述。

2.4 輔助命令譯碼器與多線消息譯碼器

1.輔助命令譯碼器通過對輔助命令寄存器F0到F4位的譯碼來生成輔助命令。輔助命令共有stactic和pulse兩種,即靜態(tài)和脈沖兩種信號,靜態(tài)命令用電平的高低來表示。而動(dòng)態(tài)命令則通過一個(gè)周期的方波脈沖信號來產(chǎn)生,要求脈沖命令至少在寫完輔助命令寄存器后保持一個(gè)周期。我們通過VHDL語言來完成本模塊的設(shè)計(jì)。

2.多線消息是處于相互排斥的編碼集中但又公用一組信號線來傳遞的消息。在母線上,每一時(shí)刻只能傳遞一條多線消息(一個(gè)消息拜特)。多線消息在遠(yuǎn)地消息譯碼單元內(nèi)進(jìn)行譯碼。在這個(gè)譯碼單元,通過消息傳遞單元(DIO 線)來接收母線上的消息。消息譯碼單元僅在命令工作方式下(ATN=真)期間起作用。這樣的接口消息可能是地址、通令、專令或副令之一。在數(shù)據(jù)工作方式(ATN=假)中,數(shù)據(jù)線上攜帶器件消息,這時(shí)譯碼單元不起作用。在本GPIB控制器設(shè)計(jì)中,此模塊還包含了地址比較器,這樣可以得到內(nèi)部狀態(tài)機(jī)所需的與地址相關(guān)的信號。用VHDL語言完成其設(shè)計(jì),并例化成模塊。

2.5 三態(tài)I/O通道

需要注意的是芯片數(shù)據(jù)通道中八條數(shù)據(jù)線與控制數(shù)據(jù)流向的八條控制線都是雙向的,所以必須對I/O通道進(jìn)行設(shè)置。實(shí)現(xiàn)雙向總線,就需要使用可編程邏輯器件的雙向口構(gòu)造雙向

三態(tài)總線。三態(tài)總線的實(shí)現(xiàn),需要使用三態(tài)緩沖器,實(shí)現(xiàn)高、低電平和高阻三個(gè)狀態(tài)。基于ALTERA公司的CPLD系列器件的特點(diǎn),我們在設(shè)計(jì)的時(shí)候,內(nèi)部避免使用雙向的三態(tài)總線,將雙向的信號分別直接引到外部。在外部設(shè)計(jì)雙向三態(tài)總線。設(shè)計(jì)中采用圖形方式輸入,利用參數(shù)化模塊庫(LPM)實(shí)現(xiàn)。這種方法尤為清晰簡便。如圖所示: 

CPLD實(shí)現(xiàn)GPIB控制器的設(shè)計(jì)
圖2 三態(tài)總線的實(shí)現(xiàn)

在這里用TE信號來作為三態(tài)總線的方向控制信號。不考慮控功能,當(dāng)本設(shè)備處于并行點(diǎn)名狀態(tài),或者作為非命令數(shù)據(jù)的源接受方時(shí),TE信號為真,即TE=PPAS+~SIDS。

2.6 GPIB總線中的三線掛鉤技術(shù)的實(shí)現(xiàn)

三線掛鉤技術(shù)是本設(shè)計(jì)的關(guān)鍵,因?yàn)樵诳偩€傳輸中,所有的命令和數(shù)據(jù)的傳送都要通過三線掛鉤來實(shí)現(xiàn)。

GPIB總線中的三線掛鉤技術(shù)(DAV、NRFD、NDAC)可以自動(dòng)適應(yīng)測試系統(tǒng)中各種不同器件的傳輸速率。源方作為講者或者控者的器件,發(fā)DAV消息。受方作為聽者的器件,發(fā)NRFD、NDAC消息。三條握手線,DAV線、NRFD線和NDAC線,用于控制設(shè)備之間消息字節(jié)的傳送。發(fā)送消息方(源方)和接收消息方(受方)利用這3條握手線進(jìn)行三線掛鉤,以保證數(shù)據(jù)線上的消息(命令或數(shù)據(jù))能準(zhǔn)確無誤地傳送。

CPLD實(shí)現(xiàn)GPIB控制器的設(shè)計(jì)
圖4 本設(shè)計(jì)三線掛鉤仿真圖

通過對系統(tǒng)的仿真,對比NI公司的GPIB控制器NAT9914數(shù)據(jù)手冊上的三線掛鉤的時(shí)序圖可以看出,本設(shè)計(jì)成功地實(shí)現(xiàn)了三線掛鉤的要求。

2.7 系統(tǒng)調(diào)試

調(diào)試是軟硬件設(shè)計(jì)過程中必不可少的一環(huán)。最終程序通過ByteBlaster專用下載電纜下載EPM3256ATC144-10芯片中,將下載好程序地CPLD取代原來系統(tǒng)中的NAT9914進(jìn)行在線 調(diào)試。通過反復(fù)的試驗(yàn),成功地實(shí)現(xiàn)了CPLD 代 GPIB 控制器的大部分功能。

3 結(jié) 論

本文的創(chuàng)新點(diǎn):采用低成本的CPLD器件替代了價(jià)格昂貴,且難以購買的GPIB控制芯片,成功的實(shí)現(xiàn)了具有自主知識產(chǎn)權(quán)的IP CORE,并且所有核心模塊完全采用VHDL語言實(shí)現(xiàn),能夠在不同的開發(fā)環(huán)境上移植,可以根據(jù)不同的應(yīng)用環(huán)境,對其進(jìn)行進(jìn)行剪裁和優(yōu)化,不僅大大節(jié)省了成本,而且具有很大的靈活性。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产欧美一区二区三区在线看蜜臀| 国产午夜精品一区理论片飘花| 亚洲欧美日韩在线播放| 亚洲日本成人| 久久成人免费电影| 日韩午夜激情av| 极品日韩久久| 国产一区二区精品在线观看| 国产精品久久激情| 欧美日韩在线另类| 欧美日韩国产在线观看| 欧美成人亚洲| 美日韩精品免费观看视频| 久久精品91久久香蕉加勒比| 先锋亚洲精品| 亚洲一区二区三区高清不卡| 亚洲黄色在线视频| 亚洲国产成人av在线| 欧美专区在线观看| 欧美一区二区三区在| 亚洲欧美成人综合| 亚洲欧美日本日韩| 亚洲激情啪啪| 亚洲激情欧美激情| 亚洲精品少妇| 日韩一区二区福利| 一区二区三区视频免费在线观看| 日韩视频不卡| 夜夜嗨网站十八久久| 亚洲视频在线观看免费| 中日韩午夜理伦电影免费| 在线视频精品一区| 亚洲一区二区三区免费在线观看| 亚洲五月六月| 香蕉成人啪国产精品视频综合网| 午夜在线视频观看日韩17c| 亚洲欧美国产77777| 香蕉国产精品偷在线观看不卡| 午夜精品久久久久久久久久久久久| 亚洲综合视频1区| 欧美一区二区视频在线观看2020| 久久精品国产精品| 亚洲高清网站| 亚洲免费观看| 亚洲亚洲精品三区日韩精品在线视频| 亚洲一区二区精品在线| 亚洲欧美激情一区二区| 欧美影院午夜播放| 久久久免费精品| 免费短视频成人日韩| 欧美精品久久久久久久免费观看 | 国产一区在线视频| 91久久精品国产91久久性色| 一本色道久久加勒比88综合| 欧美一区二区视频97| 亚洲精品久久久久久下一站| 亚洲女人天堂av| 久久久久五月天| 欧美日韩国产美女| 国产欧美日本一区二区三区| 伊人精品在线| 一本色道久久综合亚洲精品按摩| 欧美一区二区三区日韩视频| 亚洲精品看片| 欧美在线视频网站| 欧美激情视频在线免费观看 欧美视频免费一 | 美国十次成人| 国产精品久久999| 伊人精品久久久久7777| 亚洲视屏在线播放| 亚洲国产成人久久综合| 国产精品99久久不卡二区| 欧美在线一区二区| 欧美国产日韩视频| 欧美日韩中文字幕精品| 狠狠综合久久av一区二区老牛| 亚洲高清色综合| 中文有码久久| 亚洲国产91| 亚洲中字黄色| 久久综合伊人77777麻豆| 欧美成人一区二区三区在线观看| 国产精品一区二区久久久| 在线高清一区| 亚洲一区二区三区国产| 亚洲国产天堂网精品网站| 中文精品视频| 美女啪啪无遮挡免费久久网站| 欧美午夜精品久久久久免费视| 国产一区二区在线观看免费播放| 亚洲国产午夜| 欧美一级理论片| 亚洲视频一区二区| 久久久久久网址| 欧美三区在线| 在线欧美影院| 亚洲综合久久久久| 亚洲美女啪啪| 麻豆成人91精品二区三区| 国产精品福利久久久| 影音先锋亚洲一区| 亚洲视频在线看| 亚洲激情影视| 欧美在线一级va免费观看| 欧美无砖砖区免费| 国内精品久久久久伊人av| 在线视频亚洲一区| 亚洲日本中文字幕| 久久婷婷激情| 国产精品视区| 日韩视频欧美视频| 日韩视频在线一区二区三区| 久久久91精品国产一区二区三区| 欧美三区在线视频| 亚洲黄一区二区三区| 久久福利电影| 欧美中文字幕视频在线观看| 欧美日韩在线综合| 欧美日韩你懂的| 日韩视频精品在线观看| 亚洲精品视频免费在线观看| 久久久久久亚洲精品杨幂换脸| 国产精品高潮呻吟久久av无限| 亚洲欧洲一区二区天堂久久| 亚洲国产高清视频| 久久精品系列| 国产日韩在线视频| 欧美一区二区三区四区高清| 欧美在线二区| 国产精品久久久久永久免费观看| 亚洲免费观看高清完整版在线观看熊 | 亚洲精品在线免费| 久久综合五月| 韩国亚洲精品| 久久国产精品久久w女人spa| 亚洲一区二三| 国产乱码精品| 亚洲欧美日韩精品一区二区| 亚洲欧美日韩精品久久久| 欧美三级网址| 一本色道婷婷久久欧美| 亚洲视频电影图片偷拍一区| 欧美激情国产日韩| 一本色道久久99精品综合| 亚洲一区二区成人| 欧美日韩午夜精品| 99香蕉国产精品偷在线观看| 亚洲少妇一区| 欧美三级资源在线| 中文日韩电影网站| 亚洲欧美视频在线观看视频| 国产精品色在线| 亚洲字幕在线观看| 久久久精品一品道一区| 精品9999| 亚洲精品在线观| 欧美日韩一卡| 亚洲欧美国产另类| 久久久青草婷婷精品综合日韩| 狠狠久久五月精品中文字幕| 久久国产精彩视频| 免费视频最近日韩| 亚洲黄网站在线观看| 正在播放亚洲一区| 国产视频观看一区| 亚洲高清不卡在线| 欧美日韩国产成人在线观看| 一本久久综合| 久久国产福利| 欧美国产视频一区二区| 99精品视频免费观看视频| 亚洲欧美中日韩| 国产一区二区无遮挡| 亚洲激情精品| 欧美日韩在线视频一区| 翔田千里一区二区| 久久se精品一区精品二区| 亚洲经典三级| 亚洲欧美日韩综合国产aⅴ| 国产一区二区观看| 亚洲美女av在线播放| 国产精品久久久久久久久久久久久 | 久久综合狠狠综合久久综青草 | 久久精品视频在线播放| 亚洲国产精品成人| 欧美一区二区视频在线观看2020| 韩国一区电影| 中文久久精品| 国产精品午夜在线观看| 欧美在线地址| 欧美精品免费观看二区| 亚洲在线视频观看| 免费不卡在线观看av| 在线一区日本视频| 亚洲一区二区三区四区视频| 1000部国产精品成人观看| 亚洲欧美经典视频| 亚洲国产精品va| 久久国产精品72免费观看| 亚洲国产清纯|