CPLD 實現(xiàn) GPIB 控制器的設計
摘要:GPIB 控制器芯片是組建自動測試系統(tǒng)的核心,在測試領域應用廣泛。本文擬討論用
ALTERA 公司的低成本 CPLD 來實現(xiàn) GPIB 控制器的功能。GPIB 控制器芯片的硬件設計主 要分為狀態(tài)機的實現(xiàn)、數(shù)據(jù)通道和微處理接口的設計。本文重點介紹了各個模塊的實現(xiàn)原理。
關鍵詞:GPIB,CPLD,三線掛鉤,三態(tài)總線,VHDL。
1. 引言:
1.1 用 CPLD 實現(xiàn) GPIB 控制芯片的意義
綜觀現(xiàn)今市場上的測試儀器,不難發(fā)現(xiàn) GPIB 總線有重要的作用,在研制臺式測試儀器 的時候,客戶幾乎均要求具備 GPIB 接口??墒窃趯嶋H研發(fā)過程中,卻發(fā)現(xiàn) GPIB 控制芯片很難購買,而且價格昂貴。而且作為測試儀器具備 GPIB 的接口,一般只需要具有聽、講、串查功能,而不需要控、并查功能,這樣又會造成資源與功能的浪費。所以我們嘗試用 CPLD來實現(xiàn) GPIB 接口的聽、講、串查功能,不僅可擁有自主知識產(chǎn)權,節(jié)省了產(chǎn)品的成本,而 且具有很大的靈活性。
1.2 GPIB 控制芯片簡介:
GPIB 也叫 HPIB,是一個數(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 線,用于控制設備之間消息字節(jié)的傳送。發(fā)送消息方(源方)和接收消息方(受方)利用這 3 條握手線進行三線掛鉤,以保證數(shù)據(jù)線上的消息(命令或數(shù)據(jù))能準確無誤地傳送。
在 GPIB 系統(tǒng)中,把器件與 GPIB 總線的一種交互作用定義成一種接口功能。GPIB 標準 接口共定義了 10 種接口功能。
1.3 設計軟件及設計芯片的選擇
開發(fā)工具采用 ALTERA 公司的 MAXplusⅡ10.0。MAXplusⅡ開發(fā)工具是美國 Altera 公司 自行設計的一種 EDA 軟件工具,它具有原理圖輸入和文本輸入(采用硬件描述語言)兩種輸入手段,配備有編輯、編譯、仿真、綜合、芯片編程等功能。
Altera 公司是世界上從事可編程邏輯芯片生產(chǎn)的幾家主要廠商之一,其 MAX3000A 系列 可編程邏輯芯片速度快,容量大,性價比高。我們選用的 EPM3256ATC144-10,擁有 256個宏單元,144 個管腳,可自定義使用的管腳達 116 個,4.5ns 的傳輸延時完全能滿足要求。
2. GPIB 控制器各個模塊的設計 我們可以把整個系統(tǒng)劃分為幾個子系統(tǒng)。其中包括和微處理器接口的讀寫電路,與 GPIB母線通信的接口功能,以及內部寄存器。對每個子系統(tǒng)的設計也可以采用向下分解為模塊級
設計,這樣在調試和組件系統(tǒng)時,不僅具有很強的靈活性,而且方便代碼的調試以及利于代 碼的重利用。與微處理器接口的讀寫電路設計可以利用組合邏輯電路設計方法實現(xiàn),其基本 模塊,如:譯碼電路,讀寫電路,相對比較成熟,在設計的時候只要對其基本功能深刻理解的基礎上容易實現(xiàn)。與 GPIB 母線通信的子系統(tǒng)設計是本課題設計的重點也是難點,它不僅 需要對 IEEE488 協(xié)議有深刻的認識,而且在接口功能子集的選擇上也有一定的要求。
2.1 微處理器(MCU)接口電路 微處理器(MCU)接口包括提供正確的寄存器訪問地址的譯碼電路,以及連同 WE 和DBIN 一起構成的訪問 GPIB 控制器的讀寫電路,NCS 用來選通地址譯碼。地址譯碼電路以 及數(shù)據(jù)讀寫電路在數(shù)字電路設計中是最為成熟的電路,在此不作更多深入的闡述。值得注意
的是 GPIB 控制器的讀寫信號并不是通常意義上的 RD 和 WR 信號,而是由 DBIN 和 WE 信 號完成。而且,對 13 個寄存器的譯碼也用的僅僅是 RS[0:2],這就需要和 DBIN 信號的配合來完成譯碼功能。
2.2 內部寄存器
GPIB 控制器(參考 NAT9914)的內部體系結構有 13 個寄存器,其中 7 個可寫寄存器,6 個只讀寄存器。它們都是八位的,其中可讀寄存器有中斷狀態(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ù)化模塊庫實現(xiàn)各個寄存器。
2.3 接口功能
GPIB 標準接口共定義了 10 種接口功能。每一個接口功能由一組或多組相互聯(lián)系而又相 互排斥的狀態(tài)來定義。在一個時刻,一組互聯(lián)又互斥的狀態(tài)中必須有一個而且也僅又一個狀態(tài)在起作用。在 IEEE488 協(xié)議中對接口功能的每一個狀態(tài)還做了兩方面的規(guī)定:
1.當某個狀態(tài)在起作用時,在接口上可以或必須發(fā)送的消息;
2.在什么條件下接口功能必須脫離某一狀態(tài)而進入同一組狀態(tài)的另一個狀態(tài); 這些因素決定了狀態(tài)的處理能力。接口功能狀態(tài)圖給出了全部狀態(tài)以及從一個狀態(tài)變遷到另一個狀態(tài)一切可能的途徑。由于篇幅的限制,下面以受方掛鉤接口功能 AH 功能為例, 來介紹功能模塊的實現(xiàn)過程及原理。受方掛鉤功能賦予器件保證正確地接收遠地多線消息地能力。一個源方掛鉤功能與一個或多個受方掛鉤功能(分別含于各個器件中)的鏈鎖掛鉤序
列保證每個消息拜特的異步傳遞。受方掛鉤功能可以延遲多線消息傳遞的開始或結束,直到 器件準備好繼續(xù)參與傳遞過程為止。狀態(tài)圖如圖 1:
評論