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