摘 要:本文采用基于模塊化思想對GPIB控制器IP核進行設計,采用VHDL語言編程實現。在EDA平臺下進行功能分析并采用ALTERA公司ACEX1K系列芯片實現。結果證明采用此方法設計GPIB控制器能提高設計效率和正確性,降低成本。
關鍵詞:GPIB控制器IP核FPGA
中圖分類號:TN911文獻標識碼:A文章編號:1674-098X(2011)05(a)-0019-02
引言
隨著計算機技術、網絡技術與通信技術的高速發展與廣泛應用,這必將給網絡時代的測試儀器和測試技術帶來革命性變化,“網絡就是儀器”確切的概括了測試和儀器的網絡化發展趨勢。組建網絡化測試系統不僅能實現更多的資源共享,降低組建系統的費用,還可以提高測試系統的功能,拓寬其應用的范圍。本文采用FPGA芯片實現GPIB控制器的IP核設計完成芯片TMS 9914的產權自主化。
1 GPIB控制器方案設計
GPIB(General Purpose Interface Bus,通用接口總線)使自動化測試儀器的互聯有了統一的標準,極大地推動了自動測試技術的發展。由于GPIB總線為并行外總線,不僅保持了并行總線傳送速度快、有效數據速率高的優點,而且增強了驅動能力, 通訊距離可達20m,并有良好的抗干擾能力和通用性,總線上最多可掛接15臺設備并且傳輸速度可以達到8Mbit/s,因此有著良好的應用前景[1][2],其自動測試系統組建圖如圖1所示。
GPIB控制器IP核設計采用模塊化思想進行,設計主要模塊包括:與GPIB母線通信的接口功能模塊、多線消息譯碼器以及數據通路模塊。接口功能狀態機模塊設計包括八個小模塊(如源方掛鉤、受方掛鉤等),并采用VHDL語言對各個小模塊進行編程實現,最后調用各個子模塊并用原理圖的方式進行狀態機頂層模塊設計,并在Synplify以及QuartusⅡ平臺下進行分析和仿真。對數據通路的設計也采用同樣的方式,先對各個子模塊進行設計,然后進行整體設計。最后調用狀態機頂層模塊、數據通路頂層模塊與多線消息譯碼電路模塊等進行GPIB控制器IP核的頂層設計。完成整個IPCore設計后,通過JTAG下載方式將Core下載到選定的FPGA專用開發套件(ACEX1K30QC208)芯片,從而得到一個實體化的GPIB控制器。
對頂層設計進行結論驗證時,若發現問題可進一步進行模塊調整與優化,將固化的IPCore重新下載到FPGA,直到滿足功能要求,由此提高了設計效率、縮短生產周期、降低了投入成本。
2 GPIB控制器IP核設計的實現
2.1 接口控制電路的工作原理
GPIB總線是一種24芯的并行無源總線,由8根地線和16根信號線組成,16根信號線為8根數據線(DIO1~DIO8)、3根握手線(DAV、NRFD、NDAC)和5根管理線(ATN、REN、IFC、EOI、SRQ)。數據傳輸采用位并行,字節串行的雙向異步傳輸方式。需要注意的是:GPIB采用的是負邏輯,即低電平(≤0.8V)為邏輯1,高電平(≥2.0V)為邏輯0[3]。
GPIB總線的基本原理是將控者作為服務器,利用編程并通過GPIB總線實現對各儀器的控制,各儀器也可通過操作GPIB控制芯片來實現與服務器的數據傳輸,輸出到GPIB母線上的信號符合IEEE488標準,從而達到自動控制和測試的目的。
2.2 模塊設計
1)接口功能狀態機模塊設計 在GPIB系統中,把器件與GPIB總線的一種交互作用定義成一種接口功能。該功能模塊是本設計的重點,需要對IEEE488協議有深刻的認識,在接口功能子集的選擇上也有一定的要求,主要實現八種子接口功能,即:源方掛鉤SH、受方掛鉤AH、講者T、聽者L、服務請求SRQ、遠控本控RL、器件清除DC、器件觸發DT。各接口模塊功能采用同步MOORE狀態機(只與當前信號有關,與輸入信號無關)實現。
在各子接口模塊功能實現的基礎上,對其進行頂層狀態機設計,即:調用各子模塊,用原理圖方式對其進行互聯式設計,并用VHDL語言完成對狀態機的描述,主狀態機的頂層圖模塊。其中,輸入信號包括通用接口母線(ATN、DAV、IFC、REN、NDAC、NRFD、EOI、SRQ)、多線消息(MTA、MLA、OTA、LLO、GTL、GET、DCL、SDC、UNL、SPD、SPE)、輔助命令寄存器產生的內部消息及本地消息(swrst、lon、rsv、ton)等,信號均通過譯碼電路產生;輸出信號包括GPIB 控制線,接口功能的狀態。
下面以源方掛鉤SH為例說明其接口功能的實現,并采用邏輯關系編寫代碼,主要代碼為:
ARCHITECTURE ONE OF AH IS
….BEGIN
IF RESET = '1' OR (NOT ATN AND NOT (LACS OR LADS))='1'THEN C_ST<= ST1;RFD<='1';DAC<='1' ; AIDS<='1';ANRS<='0';ACRS<='0';AWNS<='0';ACDS<='0';
ELSIF CLK'EVENT AND CLK='0' THEN
CASE C_ST IS
WHEN ST1=> IF ATN='1' OR LACS='1' OR LADS='1' THEN C_ST <=ST2;RFD<='0';DAC<='0';AIDS<='0';ANRS<='1';…
ELSE C_ST<=ST1;RFD<='1';DAC<='1';AIDS<='0';…
END IF;
WHEN …. ELSIF DAV='1' THEN C_ST<=ST4; RFD<='0'; ..
ELSE C_ST <= ST2; RFD<='0'; DAC<='0'; ..
…不同種狀態定義… ELSE C_ST<=ST5;RFD<='0';DAC<='0';AIDS<='0';
ACRS<='0';AWNS<='0';ACDS<='1';
END IF;…END CASE; END IF;END PROCESS;END;
2)數據通路模塊設計 數據通路功能模塊作用是實現微處理器端到 GPIB 接口功能端的數據橋梁,主要對控制器內部寄存器進行讀寫操作。
3)多線消息譯碼器電路 譯碼電路主要是對控者發送的多線消息(遠地消息和本地消息)進行譯碼,產生邏輯功能信號,實現對各接口功能的控制(多線消息譯碼、地址譯碼和輔助寄存器譯碼電路)。
2.3 軟件設計
軟件程序配合硬件電路實現GPIB控制器IP核的頂層功能設計。軟件設計主要完成的功能包括:1)接口初始化;2)主控計算機向儀器發送指令、地址和程控碼等消息;3)主控計算機讀取從儀器返回的數據,并對數據進行分析處理。GPIB總線上各種動作均是通過PC機向TMS 9914內部寄存器寫入某些控制字或執行讀取操作,使接口實現相應的功能變化。由于篇幅有限,此處簡述。
2.4 實驗結果
通過對整體系統搭建,可以完成儀器與總線間的數據傳輸。以AH與L功能配合接收GPIB總線的數據為例分析實驗結果。由此可知,在信號WRITE及地址RS[2..0]=010(ADR在寄存器中的地址)的作用下,儀器通過INDATA[7..0]數據端口向地址寄存器ADR內寫入該儀器在GPIB總線上的地址11H。
在第四個時鐘下降沿器件收到ATN信號,表明AH功能從AIDS狀態進入ANRS狀態;第五個時鐘下降沿仍然有ATN信號,表明AH功能從ANRS狀態進入ACRS狀態,同時發出RFD信號,告訴控者已經準備好接收GPIB接口命令;在六個時鐘下降沿,檢測到總線傳輸的DAV信號,表明AH功能從ACRS狀態進入ACDS狀態。隨后,系統控者通過DIO線發送地址命令31H,通過多線消息譯碼器輸出MLA信號,在第七個時鐘下降沿,L功能在MLAACDS的作用下從LIDS進入LADS狀態,表明儀器已經受命為聽者;接收接口消息結束后,便會產生一個T信號,在第八個時鐘下降沿,GPIB控制器檢測到T信號,表明AH功能進入AWNS狀態,并發出DAC信號,告訴控者接口命令接受完畢;在第九個時鐘下降沿,系統控者撤銷DAV信號和ATN信號,表明AH功能進入ANRS狀態,至此一個三線掛鉤的過程已經完成。在ATN為0的作用下,L功能進入LACS狀態。此時,儀器正式進入聽者狀態,其它傳輸過程與聽者接收數據過程類似,在此不再贅述。
3 結語
GPIB控制器IP核設計具有可移植性,簡化了接口電路的開發周期、減低了成本,改變了傳統儀器手工操作、單臺使用等特點,提高了儀器的利用率。
GPIB控制芯片是組建自動測試系統的核心,GPIB控制器的FPGA設計為計算機與儀器儀表相結合的自動測試系統向智能化、標準化發展提供了有力的媒介。
參考文獻
[1]陳長齡,田書林.自動測試及接口技術.2005:p20-28;
[2]文彥等.現代測試系統.國防科技大學出版社.1995,p60-65.
[3]劉樹勛,何其超.自動測試系統原理及應用.2000:43-48.