摘 要:簡介IDT7005芯片,一種基于IDT7005芯片的數(shù)控運動控制卡接口電路和ispGAL20V8B的控制電路程序設計。
關(guān)鍵詞:雙口RAM;數(shù)控運動控制卡;接口電路設計
在高速單片機數(shù)據(jù)采集和處理系統(tǒng)中,隨著采集數(shù)據(jù)量及數(shù)據(jù)處理任務的增加,對數(shù)據(jù)傳送的要求也越來越高,依靠單片機自帶的串口實現(xiàn)數(shù)據(jù)的串行傳輸已無法滿足要求,必須要進行高速的并行數(shù)據(jù)傳輸。雙口RAM能夠方便地構(gòu)成各種工作方式下的高速數(shù)據(jù)傳送介質(zhì),解決數(shù)據(jù)傳輸?shù)退僖鸬钠款i問題。無論是并行處理網(wǎng)絡中的數(shù)據(jù)共享,還是流水線方式的高速數(shù)據(jù)傳輸,雙口RAM都可以發(fā)揮重要作用,從而保證數(shù)據(jù)通路的暢通。
一、IDT7005芯片
雙口RAM除了數(shù)據(jù)存儲功能外,還提供兩個完全獨立的端口,每個端口分別有自己的控制線、地址線和I/O數(shù)據(jù)線,允許雙端口同時讀寫數(shù)據(jù),適合于兩個單片機以總線方式對存儲空間的共享。
IDT7005是IDT公司生產(chǎn)的高速8kb的八位雙端口RAM器件,它具有存取速度快、功耗低、可完全異步操作、接口電路簡單等優(yōu)點。IDT7005L具有兩端完全對稱結(jié)構(gòu)(即兩套完全獨立的I/O控制線、地址線、數(shù)據(jù)線) 和仲裁中斷旗語邏輯模塊,使得IDT7005L成為真正的雙端口RAM,允許兩個控制器同時讀取任何存儲單元,但不允許同時寫或一讀一寫同一地址單元。該芯片內(nèi)部的功能結(jié)構(gòu)如圖1所示。
二、硬件電路接口設計
1. IDT7005L的旗語令牌傳遞法由于IDT7005具有兩套獨立的總線結(jié)構(gòu),可用多種方法解決兩邊對同一單元的爭用問題。
一般可以利用雙口RAM的BUSY信號,但當兩端口對同一地址單元同時存取數(shù)據(jù)時,其中一個端口處于等待狀態(tài),對于高速數(shù)據(jù)傳輸來說,插入等待狀態(tài)會降低數(shù)據(jù)傳輸效率,這在某些情況下是不能夠接受的,此時可以利用IDT7005L提供的旗語電路。這里介紹最為常用的旗語令牌傳遞法。IDT7005L的旗語操作見表1。
IDT7005內(nèi)部有八個獨立于存儲單元的鎖存器,最多將8kb存儲單元分為八部分,可用來指示是否相應的共享RAM正被使用。當一側(cè)端口訪問共享RAM時先向相應的鎖存邏輯單元寫入“0”,如讀出“1”則表示共享RAM正被另一側(cè)占用,直到另一側(cè)端口釋放令牌,此時讀出的數(shù)據(jù)為“0”,可訪問相應RAM。
另外,值得注意的是,對旗語進行操作,應先寫后讀,不要先讀后寫,以避免出現(xiàn)爭用系統(tǒng)總線的現(xiàn)象。
2. 總體設計方案
接口電路設計的上位機采用工業(yè)控制機,AT89S52單片機作為下位機,ISA總線與雙口RAM以及雙口RAM與單片機的總體通信方案原理見圖2。

(1) IDT7005芯片接口設計。由于共享RAM使用了存儲器尋址,而旗語令牌的鎖存邏輯單元使用了I/O尋址,所以SMEW信號和IOW信號相與后送給IDT7005的R/WR信號,同樣,SMER信號和IOR相與后送給IDT7005的OER信號。對共享RAM和旗語令牌訪問時片選信號分別采用CE 和SEM。ISA總線的A0~A12接到IDT7005的A0R~A12R作為地址線,A13~A19接到GAL20V8B的一組輸入端。本試驗中,共享RAM可配置在D0000H~DFFFFH,旗語令牌可配置在300H~3FFH。
(2) ispGAL20V8B的讀寫控制電路程序設計。通用陣列邏輯GAL是由可編程的與陣列、固定(不可編程) 的或陣列和輸出邏輯宏單元(OLMC) 三部分構(gòu)成。GAL芯片須借助GAL的開發(fā)軟件和硬件,對其編程寫入后,才能使GAL芯片具有預期的邏輯功能。GAL20V8B有八個I/O口、14個輸入口、10個寄存器單元,最高頻率超過100MHz。它通過程序來控制可編程陣列區(qū)的軟連線,從而實現(xiàn)所需的邏輯電路。ISA總線接口卡上采用GAL20V8B芯片實現(xiàn)存儲器地址范圍選擇、I/O地址選擇、地址總線和數(shù)據(jù)總線的選通控制、ISA總線與雙口RAM間的控制信號產(chǎn)生等功能。該系統(tǒng)所采用的控制邏輯的程序如下。
MODULE IDT7005 //模塊IDT7005開始
TITLE‘IDT7005‘ //標題語句
ADA PIN 15;
IOW,IOR,SMEMW,SMEMR
PIN1,2,4,5; //輸入管腳說明
A14,A15,A16,A17,A18,A19PIN7,8,9,10,11,13;
K1,K2,K3,K4PIN23,22,21,20;
OE,CE,RW,SEMPIN18,19,17,16;
S1= [A14,A15,A16,A17] ; //地址譯碼組合
S2= [K1,K2,K3,K4] ;
EQUATIONS //邏輯方程描述
WHEN (S1==S2) THENADA=1
ELSEADA=0;
! CE = ! ( SMEMW&SMEMR) &ADA&(A18&A19) ;
! SEM=! (IOW&IOR) &! (! A18#A19) ;
RW=SMEMW&IOW;
OE=SMEMR&IOR;
END //模塊IDT7005結(jié)束
經(jīng)燒寫后的管腳功能圖見圖3。

三、結(jié)束語
通過雙口RAM實現(xiàn)單片機與上位機數(shù)據(jù)通信接口電路的設計及其ISA模式應用,利用IDT7005芯片實現(xiàn)了數(shù)控機床運動控制卡主從式處理器間的通信,試驗證明,該方法與串行和并行通信相比,具有速度快、數(shù)據(jù)傳輸可靠性高、抗干擾能力強、實現(xiàn)簡單的優(yōu)點,有很強的實際應用價值。