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