CPLD實現GPIB控制器的設計

2021-01-11 電子產品世界

作者:魏金成 牟濤

本文引用地址:http://www.eepw.com.cn/article/201610/308495.htm

1. 引言:

1.1用 CPLD 實現 GPIB 控制晶片的意義

綜觀現今市場上的測試儀器,不難發現 GPIB總線有重要的作用,在研製臺式測試儀器的時候,客戶幾乎均要求具備 GPIB接口。可是在實際研發過程中,卻發現 GPIB控制晶片很難購買,而且價格昂貴。而且作為測試儀器具備 GPIB的接口,一般只需要具有聽、講、串查功能,而不需要控、並查功能,這樣又會造成資源與功能的浪費。所以我們嘗試用 CPLD來實現 GPIB接口的聽、講、串查功能,不僅可擁有自主智慧財產權,節省了產品的成本,而且具有很大的靈活性。

1.2 GPIB控制晶片簡介:

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

在 GPIB系統中,把器件與 GPIB總線的一種交互作用定義成一種接口功能。GPIB標準接口共定義了 10種接口功能。

1.3設計軟體及設計晶片的選擇

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

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

2. GPIB控制器各個模塊的設計

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

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

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

2.2 內部寄存器

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

2.3 接口功能

GPIB標準接口共定義了 10種接口功能。每一個接口功能由一組或多組相互聯繫而又相互排斥的狀態來定義。在一個時刻,一組互聯又互斥的狀態中必須有一個而且也僅又一個狀態在起作用。在 IEEE488協議中對接口功能的每一個狀態還做了兩方面的規定:

1 當某個狀態在起作用時,在接口上可以或必須發送的消息;

2 在什麼條件下接口功能必須脫離某一狀態而進入同一組狀態的另一個狀態;

這些因素決定了狀態的處理能力。接口功能狀態圖給出了全部狀態以及從一個狀態變遷到另一個狀態一切可能的途徑。由於篇幅的限制,下面以受方掛鈎接口功能 AH功能為例,來介紹功能模塊的實現過程及原理。受方掛鈎功能賦予器件保證正確地接收遠地多線消息地能力。一個源方掛鈎功能與一個或多個受方掛鈎功能(分別含於各個器件中)的鏈鎖掛鈎序列保證每個消息拜特的異步傳遞。受方掛鈎功能可以延遲多線消息傳遞的開始或結束,直到器件準備好繼續參與傳遞過程為止。狀態圖如圖 1:


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;

根據儀器的具體要求,由於大多數測試系統只要求被遠控,並不要求控功能,而並查功能在系統組建中屬於可選項,很少用到,為了簡化系統,設計中徹底去掉此兩項功能。其他功能模塊包括:講者功能( T)、聽者功能( L)、源方掛鈎功能( SH)、受方掛鈎功能( AH)、服務請求功能(SR)、、遠控本控功能( RL)、設備觸發功能(DT)和設備清除功能(DC)。其設計原理與 AH相同,在這裡就不做詳細論述。

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

1.輔助命令解碼器通過對輔助命令寄存器 F0到 F4位的解碼來生成輔助命令。

輔助命令共有 stactic和 pulse兩種,即靜態和脈衝兩種信號,靜態命令用電平的高低來表示。而動態命令則通過一個周期的方波脈衝信號來產生,要求脈衝命令至少在寫完輔助命令寄存器後保持一個周期。我們通過 VHDL語言來完成本模塊的設計。

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

2.5 三態 I/O通道

需要注意的是晶片數據通道中八條數據線與控制數據流向的八條控制線都是雙向的,所以必須對 I/O通道進行設置。實現雙向總線,就需要使用可編程邏輯器件的雙向口構造雙向三態總線。三態總線的實現,需要使用三態緩衝器,實現高、低電平和高阻三個狀態。基於ALTERA公司的 CPLD系列器件的特點,我們在設計的時候,內部避免使用雙向的三態總線,將雙向的信號分別直接引到外部。在外部設計雙向三態總線。設計中採用圖形方式輸入,利用參數化模塊庫(LPM)實現。這種方法尤為清晰簡便。如圖所示:


在這裡用 TE信號來作為三態總線的方向控制信號。不考慮控功能,當本設備處於並行點名狀態,或者作為非命令數據的源接受方時,TE信號為真,即 TE=PPAS+~SIDS。

2.6 GPIB總線中的三線掛鈎技術的實現三線掛鈎技術是本設計的關鍵,因為在總線傳輸中,所有的命令和數據的傳送都要通過三線掛鈎來實現。

GPIB 總線中的三線掛鈎技術( DAV、NRFD、NDAC)可以自動適應測試系統中各種不同器件的傳輸速率。源方作為講者或者控者的器件,發 DAV消息。受方作為聽者的器件,發 NRFD、NDAC消息。三條握手線, DAV線、NRFD線和 NDAC線,用於控制設備之間消息字節的傳送。發送消息方(源方)和接收消息方(受方)利用這 3條握手線進行三線掛鈎,以保證數據線上的消息(命令或數據)能準確無誤地傳送。


通過對系統的仿真,對比 NI公司的 GPIB控制器 NAT9914數據手冊上的三線掛鈎的時序圖可以看出,本設計成功地實現了三線掛鈎的要求。

2.7 系統調試

調試是軟硬體設計過程中必不可少的一環。昀終程序通過 ByteBlaster專用下載電纜下載 EPM3256ATC144-10晶片中,將下載好程序地 CPLD取代原來系統中的 NAT9914進行在線調試。通過反覆的試驗,成功地實現了 CPLD替代 GPIB控制器的大部分功能。

3. 結論本文的創新點:採用低成本的 CPLD器件替代了價格昂貴,且難以購買的 GPIB控制晶片,成功的實現了具有自主智慧財產權的 IP CORE,並且所有核心模塊完全採用 VHDL語言實現,能夠在不同的開發環境上移植,可以根據不同的應用環境,對其進行進行剪裁和優化,不僅大大節省了成本,而且具有很大的靈活性。

參考文獻:

譚會生,張昌凡.EDA技術及應用.西安電子科技大學出版社,2001

楊安祿,陳長齡.電子儀器接口技術,第 1版.電子科技大學出版社, 1994

王術群,田書林.「高速數據發生器的 GPIB接口與驅動軟體設計」,電子科技大學碩士論文

李訓銘,趙雪.基於 GPIB接口的虛擬儀器在接收機測試臺的應用[ J].微計算機信息, 2006, 6-1:184-186

相關焦點

  • GPIB-RS232C接口轉換設計及應用概述
    GPIB-RS232C轉換電路板即以AT89C51作為控制中心,用MC68488與GPIB系統母線相連,用INTEL8251A作為AT89C51同RS232C的接口,從而實現GPIB-RS232C接口轉換。 AT89C51是一種帶4K字節閃速可編程可擦除只讀存儲器(PEROM)的低功耗、高性能CMOS8位微控制器。
  • 基於CPLD的MIDI播放器設計及調試
    圖1是本文設計的音樂播放器的原理框圖。該音樂編碼器內儲存著預先設定的四首歌曲的編碼,通過改變音樂選擇開關的狀態可以決定當前要播放哪首音樂。音樂編碼器控制著音調發生器和彩燈閃爍控制器,每當音樂節奏時鐘送給音樂編碼器一個時鐘脈衝時,音樂編碼器就將當前要播放的音符的編碼送給音調發生器和彩燈閃爍控制器。
  • 冰箱壓縮機設計利用數位訊號控制器實現高能效等級
    打開APP 冰箱壓縮機設計利用數位訊號控制器實現高能效等級 Microchip微芯 發表於 2021-01-06 16:33:58
  • 基於CAN控制器P8xC591和傳感器實現車窗智能控制系統的設計
    基於CAN控制器P8xC591和傳感器實現車窗智能控制系統的設計 張軍 發表於 2020-03-24 10:04:03 1、引言 目前.以微控制器為代表的汽車電子在整車電子系統中應用廣泛
  • 基於Petri網的並行控制器的VHDL實現
    隨著大規模、高密度的可編程邏輯器件FPGA和CPLD的問世與應用方面的迅速推廣,並且有各種EDA軟體工具的支持,使得人們可以根據Petri網的拓撲結構用硬體加以實現,以使Petri網的硬體實現成為可能。因此,基於Petri網的智能化的並行控制器的設計與硬體實現的課題引起了人們的強烈興趣。利用Petri網技術,不僅可以用來進行設計、分析和驗證,還能夠進行優化控制。
  • 節能型供熱溫度控制器設計
    摘要大型公共建築高能耗已成為建築節能發展的瓶頸,為實現節能型的供熱溫度控制,文中採用了基於89C51單片機和CAN總線的設計方法,給出了供熱溫度控制器的總體設計方案,以及主要電路原理圖的引腳連接,並根據功能要求和實際電路設計了系統軟體,給出了主要程序的流程圖
  • 基於微控制器PICl6F628實現數字調光電子鎮流器的設計
    基於微控制器PICl6F628實現數字調光電子鎮流器的設計 王守志 , 毛興武 發表於 2020-12-04 09:55:43 引言 可調光螢光燈電於鎮流器具有明顯的節電效果
  • 一種基於FPGA的SDRAM控制器設計
    本文介紹了一種基於FPGA的用於高解析度視頻圖像處理的SDRAM控制器的設計方法。通過設置SDRAM的工作狀態,使其工作在猝發模式。在視頻時序信號控制下,用多行連續的SDRAM存儲空間,存取視頻數據。並在數據接口部分增加FIFO,緩存一行視頻,在像素時鐘控制下,實現視頻數據實時的存儲和讀取。通過改變相關參數,能對所有VESA解析度視頻流進行操作。
  • 基於SCSI總線控制器和單片機實現圖像數據採集系統的設計
    基於SCSI總線控制器和單片機實現圖像數據採集系統的設計 曾巒;熊偉;趙忠 發表於 2020-07-01 08:00:00 引言 目前
  • 基於VIM的嵌入式存儲控制器的研究與實現
    本文具體闡述VIM體系結構中影響存儲系統性能的關鍵部件嵌入式存儲控制器的設計與實現。  2 VIM體系結構  VIM是一種面向流式數據處理的向量體系結構,其微體系結構的處理器部分由1個標量核和1個向量協處理器構成,嵌入式存儲控制器和存儲器構成片上DRAM存儲系統,處理器部分和存儲系統之間由高速存儲交叉開關互連。
  • 火災自動報警系統,火災報警控制器、聯動控制器的區別及點數設計
    首先給大家介紹以下幾種控制器,我們常見的控制器的幾種說法有:火災報警控制器、消防聯動控制器、火災報警控制器(聯動型)。這幾種都是什麼作用又有什麼區別呢?電氣設計在線教學狄老師。(1)火災報警控制器火災報警控制器從主要功能上講,可以實現邏輯判斷,可以實現報警功能。
  • 基於計算機技術和SCSI硬碟控制器實現遙感衛星快視設備的系統設計
    打開APP 基於計算機技術和SCSI硬碟控制器實現遙感衛星快視設備的系統設計 孫磊,安建平,卜 發表於 2020-05-03 11:00:00
  • 基於CAN總線接口和模塊控制器實現組合工具機電控通信系統的設計
    基於CAN總線接口和模塊控制器實現組合工具機電控通信系統的設計 姜江;吳長奇;王 發表於 2020-04-05 09:00:00 一、引言 現代組合工具機裝備了大量的電子設備來滿足加工精度
  • 水塔水位控制器設計詳解
    水塔水位自動控制器,具有適應各種液體液位的檢測和控制的功能,設計中分析了利弊,考慮了各種液體的阻值大小,是可以投入實際生產的產品。 1 設計分析: 「水塔水位自動控制系統」的控制對象為水泵,容器為水塔或儲液罐。水位高度正常情況下控制在C、D之間,如圖1(a)。當水位在低於C點時,水泵開始進水,如圖1(b)。當水位高於D點時,水泵停止進水,如圖1(c)。
  • 基於單片機和CPLD的PLC背板總線協議接口晶片設計(一)
    詳細介紹了通過Verilog HDL語言設計狀態機、協議幀控制器、FIFO控制器的過程,25MHz下背板總線工作穩定的試驗結果驗證了協議晶片設計的可行性。  可編程邏輯控制器(PLC)主機是通過背板總線支持擴展模塊的連接, 背板總線是PLC 主機同I/O擴展模塊之間的高速數據通路,支持主機和擴展模塊之間的I/O 數據刷新。
  • 太陽能電源低壓鈉燈智能控制器的設計
    摘要:設計一種採用低功耗單片機P87LPC767作為控制迴路核心,低壓鈉燈為負載的太陽能電源智能控制器。系統在P87LPC767單片機的控制下,能將太陽能電池方陣轉換的直流電進行有效存儲和合理使用,具有環保節能的雙重效果。
  • 簡化汽車車身電機控制器設計,快速實現輕量化
    打開APP 簡化汽車車身電機控制器設計,快速實現輕量化 德州儀器 發表於 2020-12-14 10:58:32 但將MOSFET用作開關給電子控制模塊設計(包括電磁幹擾(EMI)和熱管理、電流感應、斷電制動以及診斷與保護)帶來了新的技術性挑戰。德州儀器開發的集成電路(IC)電機驅動器產品集成了模擬功能,可幫助電子控制模塊設計人員應對這些挑戰,同時減小解決方案尺寸並縮短開發時間。
  • 開放式可編程控制器的設計
    目前,國內用戶選用的可編程控制器(PLC)仍以國外產品為主,造成這種局面的一個重要原因是歐、美、日等發達工業國家掌握了高端PLC的核心技術,其硬軟體技術對應用者來說完全是封閉的,使用者只能從應用的角度學習PLC,而不能參與PLC的開發[1-2]。
  • 基於控制器局部網CAN總線實現大型電機狀態監測系統的設計
    基於控制器局部網CAN總線實現大型電機狀態監測系統的設計 何效洲,盧博友 發表於 2020-12-18 10:23:23 引言 發電機組和電動機組是電能生產和應用的基本裝備
  • 基於STM32的RA8806控制器LCD設計
    摘要:RA8806點矩陣液晶顯示控制器內置字庫、觸控螢幕和鍵盤接口,具有功能強、移植性強、性價比高的特點,比其他同類產品更受設計人員歡迎。