雙端口RAM原理介紹及其應(yīng)用
本文引用地址:http://butianyuan.cn/article/149933.htm
為避免因競爭而導(dǎo)致的通訊失敗,設(shè)計者提出了各種解決方案。常見的有三種:
(1)設(shè)置標(biāo)志位:在開辟數(shù)據(jù)通訊區(qū)的同時,可通過軟件方法在某個固定存儲單元設(shè)立標(biāo)志位。這種方法要求兩端CPU每次訪問雙端口RAM之前,必須查詢、測試和設(shè)置標(biāo)志位,然后再根據(jù)標(biāo)志位的狀態(tài)決定是否可以訪問數(shù)據(jù)區(qū);有的雙端口RAM本身就個有專用的一個或多個硬件標(biāo)志鎖存器和專門的測試和設(shè)置指令,可直接對標(biāo)志位進行讀/寫操作。這種方法通常用在多個處理器共享一個存儲器塊時。為了保證通訊數(shù)據(jù)的完整性,在采用這種方法時往往要求每個處理器能對該存儲器塊進行互斥的存取。
(2)軟件查詢BUSY引腳狀態(tài):雙端口RAM必須具有解決兩個處理器同時訪問同一單元的競爭仲裁邏輯功能。當(dāng)雙方址發(fā)生沖突時,競爭仲裁邏輯可用來決定哪個端口訪問有效,同時取消無效端口的訪問操作,并將禁止端口的Busy信號置為低電平。因此Busy信號可作為處理器等待邏輯的輸入之一,即當(dāng)Busy為低電平時,讓處理器進入等待狀態(tài)。每次訪問雙端口RAM時,CPU檢查BUSY狀態(tài)以判斷是否發(fā)生競爭,只有BUSY為高時,對雙端口RAM的操作才有效。
(3)利用硬件解決競爭:將BUSY信號引入READY引腳可在發(fā)生競爭時使BUSY為低,從而使CPU內(nèi)部總線時序根據(jù)READY引腳狀態(tài)自動插入WAIT信號并展寬總線,以達(dá)到分時訪問的目的。對于80C196KC和8098等MCS-96系列微處理器,利用這種方法便可通過硬件解決競爭問題。
另外,在使用BUSY信號時必須首先將此信號接上拉電阻,其次應(yīng)在BUSY信號有效期間使處理器保持讀寫操作經(jīng)及相應(yīng)的地址和數(shù)據(jù),但是需要說明的是:在BUSY信號變高之前,這種情況下的所有寫操作都是無效的,圖4所示發(fā)生競爭時的時序圖。
3 RAM在雷達(dá)仿真平臺中的應(yīng)用
雷達(dá)仿真平臺是用于雷達(dá)操作手訓(xùn)練的仿真設(shè)備。該平是一個由計算機、主控CPU(80C196KC)、手輪控制CPU(8098)等組成的多機系統(tǒng)。在主控CPU判斷目標(biāo)是否進入雷達(dá)波瓣作用范圍時,必須將目標(biāo)理想諸元與雷達(dá)的高低角和方位角做比較。在雷達(dá)仿真平臺中,雷達(dá)的高低角和方位角是通過對高低手輪和方位手輪的軸角轉(zhuǎn)換而獲得的。主控CPU每隔20ms就向手輪控制CPU發(fā)送一次模擬目標(biāo)的高低角、方位角、距離以及目標(biāo)屬性等多組數(shù)據(jù)(共200字節(jié)),同時接收手輪控制CPU的數(shù)據(jù)。為了加快通迅速度,簡化通訊,提高通信的實時性指標(biāo),系統(tǒng)要用了雙端口RAM(DPRAM)IDT7132/7142來進行CPU之間的數(shù)據(jù)交換。具體電路見圖5。
80C196KC和8098均有READY引腳,通過80C196KC和8098的時序可知,當(dāng)READY引腳出現(xiàn)低電平時,CPU可自動插入WAIT等待周期,以延長讀寫和片選信號,因此,設(shè)計時將80C196KC和8098的READY引腳與IDT7132/7142的BUSY引腳相連就可在發(fā)生競爭時,自動使80C196KC或8098處于等待狀態(tài)。
在資源分配方面,該設(shè)計還劃分了電視跟蹤數(shù)據(jù)區(qū)、雷達(dá)跟蹤數(shù)據(jù)區(qū)、手輪實測值數(shù)據(jù)區(qū)和命令狀態(tài)區(qū),并明確規(guī)定了各個通訊區(qū)的任務(wù)和性質(zhì),從而簡化了通訊程序,提高了通訊速度。
通過雷達(dá)仿真平臺控制系統(tǒng)的實時運行實驗證明:主控CPU與手輪控制CPU之間的數(shù)據(jù)交換速率很高、運行可靠,大大提高了系統(tǒng)的實時性能。目前,該系統(tǒng)已經(jīng)通過了技術(shù)鑒定。
評論