在高速單片機數(shù)據(jù)采集和處理系統(tǒng)中,隨著采集數(shù)據(jù)量及數(shù)據(jù)處理任務的增加,對數(shù)據(jù)傳送的要求也越來越高,依靠單片機自帶的串口實現(xiàn)數(shù)據(jù)的串行傳輸已無法滿足要求,必須要進行高速的并行數(shù)據(jù)傳輸。雙口ram能夠方便地構成各種工作方式下的高速數(shù)據(jù)傳送介質,解決數(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具有兩端*對稱結構(即兩套*獨立的i/o控制線、地址線、數(shù)據(jù)線)和仲裁中斷旗語邏輯模塊,使得idt7005l成為真正的雙端口ram,允許兩個控制器同時讀取任何存儲單元,但不允許同時寫或一讀一寫同一地址單元。該芯片內(nèi)部的功能結構如圖1所示。
二、硬件電路接口設計
1.idt7005l的旗語令牌傳遞法由于idt7005具有兩套獨立的總線結構,可用多種方法解決兩邊對同一單元的爭用問題。
一般可以利用雙口ram的busy信號,但當兩端口對同一地址單元同時存取數(shù)據(jù)時,其中一個端口處于等待狀態(tài),對于高速數(shù)據(jù)傳輸來說,插入等待狀態(tài)會降低數(shù)據(jù)傳輸效率,這在某些情況下是不能夠接受的,此時可以利用idt7005l提供的旗語電路。這里介紹zui為常用的旗語令牌傳遞法。idt7005l的旗語操作見表1。
idt7005內(nèi)部有八個獨立于存儲單元的鎖存器,zui多將8kb存儲單元分為八部分,可用來指示是否相應的共享ram正被使用。當一側端口訪問共享ram時先向相應的鎖存邏輯單元寫入“0”,如讀出“1”則表示共享ram正被另一側占用,直到另一側端口釋放令牌,此時讀出的數(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)三部分構成。gal芯片須借助gal的開發(fā)軟件和硬件,對其編程寫入后,才能使gal芯片具有預期的邏輯功能。gal20v8b有八個i/o口、14個輸入口、10個寄存器單元,zui高頻率超過100mhz。它通過程序來控制可編程陣列區(qū)的軟連線,從而實現(xiàn)所需的邏輯電路。isa總線接口卡上采用gal20v8b芯片實現(xiàn)存儲器地址范圍選擇、i/o地址選擇、地址總線和數(shù)據(jù)總線的選通控制、isa總線與雙口ram間的控制信號產(chǎn)生等功能。該系統(tǒng)所采用的控制邏輯的程序如下。
moduleidt7005//模塊idt7005開始
title‘idt7005‘//標題語句
adapin15;
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結束
經(jīng)燒寫后的管腳功能圖見圖3。
三、結束語
通過雙口ram實現(xiàn)單片機與上位機數(shù)據(jù)通信接口電路的設計及其isa模式應用,利用idt7005芯片實現(xiàn)了數(shù)控機床運動控制卡主從式處理器間的通信,試驗證明,該方法與串行和并行通信相比,具有速度快、數(shù)據(jù)傳輸可靠性高、抗*力強、實現(xiàn)簡單的優(yōu)點,有很強的實際應用價值。