在DSP與ICCD通信系統(tǒng)中雙口RAM的應(yīng)用
0 引言
增強型電荷耦合器件(Intensified Charge Coupled Device,簡稱ICCD)作為一種數(shù)據(jù)采集部件,因其采集光譜數(shù)據(jù)量大,快門時間達(dá)ns級,采集速率高的特點,在高時間分辨率光譜系統(tǒng)中應(yīng)用較廣。在高分辨率光譜測量分析系統(tǒng)中,為了與ICCD子系統(tǒng)實時通信,及時處理IC-CD子系統(tǒng)采集到的信息,作為實時信息處理器件的DSP子系統(tǒng)必須與ICCD子系統(tǒng)采取一種高速的并行接口方案,常用的串口通信不可能滿足這樣的要求,而USB口通信模式則顯得比較復(fù)雜,DSP系統(tǒng)中常用的FIFO存儲器不能滿足雙向讀取的需求。因此在實際的雙機通信系統(tǒng)中,一般通過雙口RAM實現(xiàn)并口通信。雙口RAM具有以下優(yōu)越的性能特點:
(1)兩套完全獨立的數(shù)據(jù)線、地址線、讀/寫控制線,允許兩個CPU對雙端口存儲器的同一單元進(jìn)行同時存??;
(2)有兩套完全獨立的中斷邏輯來實現(xiàn)兩個CPU之間的握手控制信號;
(3)具有兩套獨立的“忙”邏輯,保證兩個CPU同時對同一單元進(jìn)行讀/寫操作的正確性;
(4)兼容性強,讀/寫時序與普通單端口存儲器完全一樣,存取速度幾乎可以滿足各種CPU的要求。
因此。我們采用了雙口RAM來實現(xiàn)DSP子系統(tǒng)與ICCD子系統(tǒng)之間的高速通信。
1 雙口RAM器件IDT7007介紹
1.1 器件簡介
IDT7007是美國IDT公司采用高性能的CMOS工藝生產(chǎn)的高速32 k×8 bit雙端口靜態(tài)RAM,典型功耗850 mW;最大存取時間:15 ns;工作環(huán)境:-45℃~+85℃;工作電壓:5 V±10%。它可以作為8位雙口RAM單獨使用,也可以進(jìn)行位擴展,將數(shù)據(jù)線擴展到16 Bit,甚至更寬。這樣組成的雙口RAM系統(tǒng)可以全速運行,而且無須任何額外的附加邏輯。IDT7007提供的地址線,控制線以及I/O線是完全獨立的兩個接口,支持對器件的任何存儲空間進(jìn)行完全異步的讀寫操作。
1.2 器件使用
單片使用、不進(jìn)行位擴展時,IDT7007的真值表如表1:
X:無關(guān);H:邏輯高;L:邏輯低。
2 接口電路設(shè)計
系統(tǒng)中,ICCD子系統(tǒng)負(fù)責(zé)數(shù)據(jù)采集,DSP子系統(tǒng)負(fù)責(zé)信息處理。ICCD采集光譜數(shù)據(jù),將數(shù)據(jù)寫入到雙口RAM的指定存儲單元。DSP再將雙口RAM中的數(shù)據(jù)轉(zhuǎn)移入內(nèi)存儲器,進(jìn)行分析處理,以及其他運算。
雙口RAM與DSP芯片之間,我們采取8位數(shù)據(jù)線的接口寬度,地址線12位,可尋址空間應(yīng)為32 k×8 bit。
ICCD通過一條數(shù)據(jù)線與信息處理系統(tǒng)上的擴展接插板相連。二者間接口信號定義如表2:
二者之間的電路框圖如圖1。
如圖1所示,雙口RAM的左端與DSP相連,作為DSP系統(tǒng)的擴展存儲器,共同構(gòu)成了信息處理系統(tǒng)。雙口RAM的右端,與ICCD子系統(tǒng)相連,也可以認(rèn)為是ICCD子系統(tǒng)的一個外存儲器。為了保護(hù)ICCD子系統(tǒng)的處理器,我們在雙口RAM和ICCD之間加了總線收發(fā)器SN74LVCC3245,對信號進(jìn)行隔離與調(diào)理電平。
3 信息處理系統(tǒng)與ICCD交換數(shù)據(jù)的仲裁方式
對于整個系統(tǒng)來說,兩個子系統(tǒng)之間合適的仲裁方式是極為重要的。處理不好數(shù)據(jù)交換的仲裁。就會使兩個系統(tǒng)之間發(fā)生沖突。比如當(dāng)DSP系統(tǒng)對雙口RAM的一個存儲單元進(jìn)行寫操作時,ICCD系統(tǒng)也對這個單元寫入數(shù)據(jù),就必然導(dǎo)致寫操作的錯誤。抑或是當(dāng)ICCD系統(tǒng)對雙口RAM的某一存儲單元進(jìn)行讀取時,DSP也對這個單元讀操作,就會造成讀數(shù)據(jù)的錯誤。我們采取了三種有效的仲裁方式,用于解決兩個系統(tǒng)之間的通信爭端:
(1)中斷方式:雙口RAM提供了一種特殊的中斷方式,有別于其他芯片的中斷。
IDT7007左右兩端各提供一個中斷信號。存儲陣列中的FFEH和FFFH單元被用做通信的信令字和中斷源,左端口向FFFH寫入訪問的同時,右端口的中斷標(biāo)志被設(shè)置,直到右端口進(jìn)行讀取FFFH時清除,右端給左端的中斷方式與此類似。這樣就可以有效地協(xié)調(diào)通信雙方的讀寫操作。圖2為雙方接口的中斷邏輯。
(2)忙邏輯:當(dāng)雙口RAM的兩個端口同時對某一個存儲單元進(jìn)行操作時,IDT7007的忙邏輯(BUSY)將會有一個硬件的指示,允許對其中的一個端口進(jìn)行操作,將另一個端口置于等待狀態(tài)。如果在接到BUSY信號時,已經(jīng)進(jìn)行寫操作,那么IDT7007的內(nèi)部機制可以阻止寫操作的繼續(xù)進(jìn)行。
系統(tǒng)中,為了提高系統(tǒng)的穩(wěn)定性,保證通信數(shù)據(jù)的正確,我們對IDT7007原有的忙邏輯進(jìn)行了修改。硬件方面將雙口RAM原有的兩個BUSY信號求邏輯或,這個結(jié)果再與中斷信號INT求邏輯或。這樣,只要通信雙方同時讀寫同一個存儲單元,系統(tǒng)就認(rèn)為讀寫非法,同時中斷雙方的讀寫操作。這樣可以提高雙方交換數(shù)據(jù)的正確性。
圖3即為通信雙方接口的BUSY邏輯時序。
(3)軟件協(xié)調(diào):對于任何一個雙機系統(tǒng)來講,雙方的軟件設(shè)計都是避免爭端沖突的重要環(huán)節(jié)。軟件方案將在下一節(jié)詳細(xì)介紹。
4 軟件設(shè)計方案
系統(tǒng)中,ICCD(右方)主要負(fù)責(zé)發(fā)送數(shù)據(jù),信息處理系統(tǒng)(左方)主要負(fù)責(zé)接受數(shù)據(jù)。信息處理系統(tǒng)的軟件基于TI的TMS320C6713,用C語言與線性匯編語言進(jìn)行編程。通信部分的軟件主要包括了兩方面的內(nèi)容:(1)系統(tǒng)自檢,即右方向信令字單元0xFFFH寫入“5AH”,左方接到中斷后,到0xFFFH中讀取數(shù)據(jù),如果是“5AH”,說明通信正常,反之亦然。(2)傳輸數(shù)據(jù),右方向信令字單元FFFH寫入‘A5H’,在左方產(chǎn)生中斷后,左方讀信令字單元FFFH,如果是‘A5H’,說明在傳輸數(shù)據(jù),讀完數(shù)據(jù)后,向信令字單元FFEH寫入‘AAH’,表示讀完。右方接到中斷后,讀信令字單元FFEH,如果是‘AAH’,表示傳數(shù)據(jù)成功。
圖4為基于DSP的通信程序流程。
5 結(jié)論
基于雙口RAM芯片IDT7007實現(xiàn)DSP系統(tǒng)與ICCD并行接口的設(shè)計方案,實現(xiàn)了ICCD和信息處理系統(tǒng)的高速通信,保證了整體系統(tǒng)的實時性。文中所涉及的中斷,忙邏輯,軟件協(xié)調(diào)三種模式,可有效解決兩個系統(tǒng)之間的通信爭端。整體系統(tǒng)已經(jīng)通過調(diào)試,信息處理系統(tǒng)與ICCD可良好協(xié)調(diào)工作,系統(tǒng)運行穩(wěn)定,構(gòu)成合理,對相關(guān)系統(tǒng)設(shè)計有一定的參考價值。
評論