亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種雙口ram互斥訪問的實現(xiàn)方法

文檔序號:6585772閱讀:370來源:國知局
專利名稱:一種雙口ram互斥訪問的實現(xiàn)方法
技術(shù)領(lǐng)域
本發(fā)明為一種雙口 RAM互斥訪問的實現(xiàn)方法,屬于處理器信號交換領(lǐng)域。
背景技術(shù)
在現(xiàn)代工業(yè)控制系統(tǒng)中,由于對系統(tǒng)的功能和性能要求越來越高,一般都采用高 性能的處理器來實現(xiàn)控制功能,并將這些智能設(shè)備聯(lián)網(wǎng)組成分布式系統(tǒng),所以雙口 RAM作 為共享存儲器,在滿足實時性要求高、數(shù)據(jù)量大的控制系統(tǒng)中得到越來越廣泛地應(yīng)用。一般雙口 RAM都提供了兩個完全獨(dú)立的端口,每個端口都有自己的控制線、地址 線和數(shù)據(jù)線。但當(dāng)兩個CPU同時對同一地址單元寫入數(shù)據(jù),或者兩個CPU同時對同一地址 單元操作、一個寫入數(shù)據(jù),另一個讀出數(shù)據(jù)時,雙口 RAM會產(chǎn)生共享沖突問題。目前有幾種 防止共享沖突的方式。1.插入等待狀態(tài)的防沖突方式該方式也稱為硬件判優(yōu)方式。當(dāng)左右端口同時對同一地址的RAM存儲單元進(jìn)行存 取時,雙口 RAM內(nèi)部的仲裁單元將會給出BUSY信號,具體來說,BUSYL、BUSYR信號的正常狀 態(tài)為高電平。當(dāng)左側(cè)端口對一存儲單元進(jìn)行存取時,若右側(cè)端口也對該存儲單元進(jìn)行操作, 則芯片內(nèi)部的仲裁單元會使信號BUSYR為低,直到左側(cè)端口操作完成后再將BUSYR恢復(fù)為 高電平。設(shè)計中可以利用BUSY信號作為CPU的等待狀態(tài)輸入,并利用該信號使CPU在操作 過程中插入等待狀態(tài),避免兩端同時對雙口 RAM進(jìn)行操作。2.中斷防沖突方式該方式也稱為中斷判優(yōu)方式,芯片具有兩套中斷邏輯。通過兩個INT引腳分別接 收到兩個CPU的中斷引腳上,以實現(xiàn)CPU的握手。雙口 RAM中最高地址的兩個存儲單元可以作為郵箱使用。在雙口 RAM的數(shù)據(jù)傳送 中,兩端的CPU都把雙口 RAM作為自己存儲器的一部分。當(dāng)兩個CPU需要數(shù)據(jù)傳送時,假設(shè) 左端CPUL向右端CPUR傳送。首先CPUL將需要傳送的數(shù)據(jù)存放到雙口 RAM某段約定的地 址單元中,然后向雙口 RAM的右端口的郵箱進(jìn)行寫操作,用以向CPUR發(fā)出一個中斷。這樣 CPUR就進(jìn)入其相應(yīng)的中斷服務(wù)子程序。將約定地址單元的數(shù)據(jù)讀出,然后對雙口 RAM右端 口的郵箱進(jìn)行寫操作,用以清除該中斷。這樣通過郵箱向?qū)Ψ絺鬟f自己使用存儲單元的狀 態(tài)來達(dá)到防止沖突之目的。3.信號量防沖突方式該方式也稱為令牌判優(yōu)方式。在此方式中有信號鎖存邏輯,CY7C056V內(nèi)部提供了 八個相互獨(dú)立的鎖存邏輯單元,最多可將RAM空間分成八個區(qū)段。這些鎖存邏輯單元獨(dú)立 于雙口 RAM存儲區(qū),并不能控制RAM區(qū)、封鎖兩端CPU的讀/寫操作,而是被作為命令,只提 供指示邏輯,由兩端CPU按約定的規(guī)則,輪流地占用它們劃定的RAM區(qū)。各區(qū)的大小及地址 由軟件自由設(shè)定,且左右端操作完全一樣,只要不超過令牌的限制次數(shù)即可。當(dāng)左右端同時 申請同一令牌時,令牌邏輯裁定誰先占用,從而保證只有一個端口獲取令牌。而在占用令牌 期間,CPU可以按最高速無等待存取數(shù)據(jù)。這對實現(xiàn)高速、多CPU數(shù)據(jù)采集與處理系統(tǒng)無疑是非常有利的。但是,為了避免令牌方式爭用出錯,應(yīng)盡可能使兩端CPU分時占用同一 RAM 區(qū)。它們分別存在以下缺點(diǎn)>中斷防沖突方式當(dāng)發(fā)生中斷時,會打斷當(dāng)前的執(zhí)行流程,造成運(yùn)行過程不確 定;>插入等待狀態(tài)的防沖突方式對于高速接口來說會影響數(shù)據(jù)的傳送速率,而且 該方式下CPU在訪問數(shù)據(jù)時需要檢查BUSY信號并做出判斷,并可能出現(xiàn)等待情況。很難滿 足時間確定性的要求;>信號量防沖突方式在兩個CPU共享內(nèi)存空間時,如果雙口 RAM主要用于兩個 CPU之間交換數(shù)據(jù),則交換的實時性很難用軟件來保證。

發(fā)明內(nèi)容
本發(fā)明的目的是解決兩端CPU在操作雙口 RAM中,避免產(chǎn)生沖突。即不允許兩個 CPU同時對同一地址單元寫入數(shù)據(jù);或者兩個CPU同時對同一地址單元一個寫入數(shù)據(jù),另一 個讀出數(shù)據(jù)。本發(fā)明的技術(shù)方案為一種雙口 RAM互斥訪問的實現(xiàn)方法,所述一種雙口 RAM互斥訪問的實現(xiàn)方法包括 如下操作步驟1)采用地址分區(qū)方式,將共享數(shù)據(jù)區(qū)劃分成多個數(shù)據(jù)區(qū),并制定相應(yīng)軟件協(xié)議;2)軟件分區(qū)處理時,按照交換數(shù)據(jù)的類型將RAM的共享存儲區(qū)從起始單元開始分 成若干個大的數(shù)據(jù)區(qū),數(shù)據(jù)區(qū)大小由實際的傳輸數(shù)據(jù)確定。每個大數(shù)據(jù)區(qū)又細(xì)分為一個數(shù) 據(jù)接收區(qū)和一個數(shù)據(jù)發(fā)送區(qū),且每個區(qū)都定義有相應(yīng)的數(shù)據(jù)存取地址和控制標(biāo)識;3)開始寫入雙RAM數(shù)據(jù),讀取雙RAM接收緩沖區(qū)的寫指針,將數(shù)據(jù)寫入基地址加上 寫指針對應(yīng)的雙RAM單元,接收緩沖區(qū)寫指針加1,判斷寫指針,如果寫指針是最后一位,對 寫指針回零,否則結(jié)束寫入數(shù)據(jù);4)開始讀取雙RAM數(shù)據(jù),讀取雙RAM接收緩沖區(qū)的寫指針和讀指針進(jìn)行判斷,讀指 針與寫指針不相等,從基地址加上讀指針對應(yīng)的雙RAM單元讀取數(shù)據(jù),接收緩沖區(qū)讀指針 加1,判斷讀指針,如果讀指針是最后一位,對讀指針回零,否則結(jié)束讀取數(shù)據(jù);讀指針與寫 指針相等結(jié)束操作。所述的雙口 RAM互斥訪問的實現(xiàn)方法,其特征在于,雙口 RAM所對外部系統(tǒng)的通信 工作均由從機(jī)來完成,主機(jī)只對雙口 MM中相應(yīng)的數(shù)據(jù)緩沖區(qū)寫入要發(fā)送的數(shù)據(jù)或讀取需 要的數(shù)據(jù)。將雙口 RAM劃分成兩個區(qū)域,其中一個區(qū)域只允許一方向雙口 RAM寫入數(shù)據(jù),另一 方只允許讀取數(shù)據(jù),不允許有寫操作。在上述每個交換區(qū)中設(shè)置一對緩沖,這兩個緩沖區(qū)的大小、結(jié)構(gòu)相同,在其中一個 緩沖區(qū)被占用的情況下,可以訪問另一緩沖區(qū);通信雙方通過判斷兩個交換緩沖區(qū)的狀態(tài)選擇相應(yīng)的緩沖區(qū)。每個緩沖區(qū)采用一種計數(shù)值來判斷數(shù)據(jù)的狀態(tài)。雙口通信雙方在各自的緩沖區(qū)首尾兩端各設(shè)置了完全相同計數(shù)值;主寫設(shè)備在更新緩沖區(qū)時,要同時更新兩個計數(shù)值;當(dāng)通信對方讀取緩沖區(qū)數(shù)據(jù)后,要檢查這兩個計數(shù)值 是否一致,如果一致則認(rèn)為計數(shù)值正確。所述的一種雙口 RAM互斥訪問的實現(xiàn)方法在此基礎(chǔ)上在緩沖區(qū)設(shè)置了控制標(biāo)志; 該占用標(biāo)志只允許主寫設(shè)備設(shè)置,其它設(shè)備只讀。從機(jī)在讀數(shù)據(jù)時,先檢查哪個緩沖區(qū)被占用;優(yōu)先讀取未被占用的緩沖區(qū)。在系統(tǒng) 的數(shù)據(jù)傳輸過程中,為了提高系統(tǒng)通信的可靠性,在緩沖區(qū)末端添加了數(shù)據(jù)校驗和;雙方通 過該方式可以檢查緩沖區(qū)的數(shù)據(jù)是否正確。本發(fā)明的優(yōu)點(diǎn)在于1、將共享數(shù)據(jù)區(qū)按一定的標(biāo)準(zhǔn)劃分成若干個數(shù)據(jù)并制定相應(yīng)的軟件協(xié)議,使得 主、從機(jī)以適當(dāng)?shù)臅r序讀寫數(shù)據(jù),從而避免對同一單元的競爭,提高實時性;2、主、從機(jī)根據(jù)緩沖區(qū)數(shù)據(jù)存取基地址及讀、寫指針,對相應(yīng)單元進(jìn)行讀、寫操作, 整個緩沖區(qū)等效于一個環(huán)形數(shù)據(jù);3、在兩緩沖區(qū)的機(jī)制下,不同操作通過算法獲得應(yīng)訪問的緩沖區(qū)。這樣可以保證 每次讀取的數(shù)據(jù)是完整的。這樣可以避免讀取的數(shù)據(jù)是不同時間段寫入的可能性;4、有效避免了雙RAM接口數(shù)據(jù)流沖突。


圖1為寫雙口 RAM數(shù)據(jù)程序流程圖;圖2為讀雙口 RAM數(shù)據(jù)程序流程圖;圖3為雙口 RAM分區(qū)管理圖;圖4計數(shù)值分布。
具體實施例方式安全級控制保護(hù)系統(tǒng)完成數(shù)據(jù)通訊、信號輸入、數(shù)據(jù)處理、保護(hù)和控制運(yùn)算、符合 邏輯和觸發(fā)信號輸出等功能。它一般由運(yùn)算、通訊和輸入輸出單元構(gòu)成。在信號輸入和輸 出過程中,通常采用高性能嵌入式處理器構(gòu)成的主從式系統(tǒng)完成相應(yīng)功能。主從式系統(tǒng)設(shè) 計的關(guān)鍵是主機(jī)與從機(jī)之間的數(shù)據(jù)通信。隨著雙口 RAM功能的不斷成熟和完善,現(xiàn)在很多 采用雙口 RAM來實現(xiàn)這些數(shù)據(jù)交互。由于安全級系統(tǒng)對程序確定性的嚴(yán)格要求,本系統(tǒng)不采用中斷機(jī)制。在插入等待 狀態(tài)的防沖突方式中,利用雙口 RAM的BUSY信號線,雖然可以保證左右兩個端口能可行地 完成數(shù)據(jù)的傳送。但當(dāng)兩個端口對同一地址單元同時存取數(shù)據(jù)時,其中一個端口要處于等 待狀態(tài)。對于實時性和確定性要求很高的系統(tǒng)來說,插入等待狀態(tài)會降低數(shù)據(jù)交換率,這在 一定程度上會影響系統(tǒng)的實時性和確定性。為了盡可能地避免出現(xiàn)等待狀態(tài),結(jié)合系統(tǒng)周 期執(zhí)行的特點(diǎn),在對雙口 RAM編程時,采用了地址分區(qū)方式。即將共享數(shù)據(jù)區(qū)按一定的標(biāo)準(zhǔn) 劃分成若干個數(shù)據(jù)并制定相應(yīng)的軟件協(xié)議,使得主、從機(jī)以適當(dāng)?shù)臅r序讀寫數(shù)據(jù),從而避免 對同一單元的競爭,提高實時性。在安全級控制系統(tǒng)中,主、從機(jī)之間需要交換的數(shù)據(jù)主要是運(yùn)算單元和通訊單元 進(jìn)行雙向通信的數(shù)據(jù)。軟件分區(qū)處理時,按照交換數(shù)據(jù)的類型將雙口 RAM的共享存儲區(qū)從 起始單元開始分成若干個大的數(shù)據(jù)區(qū)。數(shù)據(jù)區(qū)大小由實際的傳輸數(shù)據(jù)確定。每個大數(shù)據(jù)區(qū)又細(xì)分為一個數(shù)據(jù)接收緩沖區(qū)和一個數(shù)據(jù)發(fā)送緩沖區(qū),且每個緩沖區(qū)都定義有相應(yīng)的數(shù)據(jù) 存取地址和控制標(biāo)志。主、從機(jī)根據(jù)緩沖區(qū)數(shù)據(jù)存取地址及控制標(biāo)志,對相應(yīng)單元進(jìn)行讀、 寫操作,整個緩沖區(qū)等效于一個環(huán)形數(shù)據(jù)。若緩沖區(qū)大小設(shè)置合理,當(dāng)新數(shù)據(jù)覆蓋舊數(shù)據(jù) 時,舊數(shù)據(jù)已經(jīng)處理,既不會遺漏數(shù)據(jù)又節(jié)省了存儲單元。在本系統(tǒng)中,所有對外部系統(tǒng)的通信工作均由從機(jī)來完成。考慮到整個系統(tǒng)的數(shù) 據(jù)處理流程及時序要求,在軟件設(shè)計中,數(shù)據(jù)接收和發(fā)送則是在軟件的主流程內(nèi)部維持一 個無限循環(huán),將接收發(fā)送程序駐留在此循環(huán)中,通過查詢發(fā)送緩沖區(qū)的讀、寫指針,實時發(fā) 送數(shù)據(jù)。從機(jī)通過兩類通信協(xié)議實現(xiàn)與采集模塊和網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)通信。主機(jī)只需對雙 口 RAM中相應(yīng)的數(shù)據(jù)緩沖區(qū)寫入要發(fā)送的數(shù)據(jù)或讀取需要的數(shù)據(jù)即可。鑒于主、從機(jī)對這 兩種類型數(shù)據(jù)的存取操作程序類似,在此只給出從機(jī)寫入和讀取雙口 RAM數(shù)據(jù)的程序流程 圖,分別如圖1和圖2所示。其中,Base為系統(tǒng)數(shù)據(jù)接收緩沖區(qū)數(shù)據(jù)存取基地址。由圖1所示,開始寫入雙RAM數(shù)據(jù),讀取雙RAM接收緩沖區(qū)的寫指針,將數(shù)據(jù)寫入 基地址加上寫指針對應(yīng)的雙RAM單元,接收緩沖區(qū)寫指針加1,判斷寫指針,如果寫指針是 最后一位,對寫指針回零,否則結(jié)束寫入數(shù)據(jù);由圖2所示開始讀取雙RAM數(shù)據(jù),讀取雙RAM接收緩沖區(qū)的寫指針和讀指針進(jìn)行 判斷,讀指針與寫指針不相等,從基地址加上讀指針對應(yīng)的雙RAM單元讀取數(shù)據(jù),接收緩沖 區(qū)讀指針加1,判斷讀指針,如果讀指針是最后一位,對讀指針回零,否則結(jié)束讀取數(shù)據(jù);讀 指針與寫指針相等結(jié)束操作。由圖1和圖2可知,采用地址分區(qū)方式后,主從機(jī)對雙口 RAM的軟件控制變得較為 簡單。同時,為了驗證地址分區(qū)方式避免雙口 RAM地址爭用現(xiàn)象的有效性,在系統(tǒng)的數(shù)據(jù)傳 輸過程中,用示波器監(jiān)測雙口 RAM左口端口 BUSY引腳的電平。發(fā)現(xiàn)無等待狀態(tài)信號出現(xiàn), 這表明對雙口 RAM的軟件分區(qū)處理模式的確是一種比較理想的處理方法。(1)簡化分區(qū)管理本方案在軟件分區(qū)管理的基礎(chǔ)上,將雙口 RAM劃分成主機(jī)主寫 交換區(qū)和從機(jī)主寫交換區(qū)兩個區(qū)域。主機(jī)主寫區(qū)只允許主機(jī)向雙口 RAM寫入數(shù)據(jù),從機(jī)只 允許讀取數(shù)據(jù),不允許有寫操作;同理,從機(jī)主寫區(qū)只允許從機(jī)寫入數(shù)據(jù),主機(jī)只允許讀取 數(shù)據(jù)。這樣可以避免雙口 RAM的訪問沖突。如圖3所示。(2)采用兩緩沖結(jié)構(gòu)為了實現(xiàn)每次操作的數(shù)據(jù)完整的,在上述交換區(qū)中設(shè)置兩 緩沖區(qū),每個緩沖區(qū)的大小、結(jié)構(gòu)完全一樣。在一個緩沖區(qū)被占用的情況下,可以訪問另一 緩沖區(qū)。例如當(dāng)從機(jī)讀取主機(jī)主寫交換區(qū)數(shù)據(jù)時,發(fā)現(xiàn)1號緩沖區(qū)已經(jīng)被占用,即主機(jī)正在 向該緩沖區(qū)寫入數(shù)據(jù),它將轉(zhuǎn)去讀取2號緩沖區(qū)數(shù)據(jù)。這樣可以保證每次讀取的數(shù)據(jù)是完 整的,避免讀取的數(shù)據(jù)是不同時間段寫入的可能性。(3)緩沖區(qū)采用循環(huán)計數(shù)來判斷數(shù)據(jù)的狀態(tài)引入雙緩沖后,會出現(xiàn)更新雙緩沖 區(qū)數(shù)據(jù)的問題。因此需要通過某種機(jī)抽來判斷哪個緩沖區(qū)里的數(shù)據(jù)是新的、哪個緩沖區(qū)里 的數(shù)據(jù)是舊的。本方法采用了計數(shù)值的方案,該計數(shù)值由主寫設(shè)備維護(hù),在更新緩沖區(qū)數(shù)據(jù) 時同時更新計數(shù)值。下面以主機(jī)主寫區(qū)讀寫操作為例來描述在主機(jī)主寫區(qū)里的緩沖區(qū)都填入了主機(jī) 維護(hù)的計數(shù)值。主機(jī)在向雙口 RAM寫數(shù)據(jù)時,根據(jù)計數(shù)值,按照算法得到哪個緩沖區(qū)為新, 哪個緩沖區(qū)為舊。(1)在緩沖區(qū)首尾各設(shè)置計數(shù)值采用循環(huán)計數(shù)值判斷新舊后,要求這個計數(shù)有比較高的可靠性。因此在緩沖區(qū)首尾兩端各設(shè)置了計數(shù)值,這兩個計數(shù)值是相同的。主寫 設(shè)備在更新緩沖區(qū)時,要同時更新兩個計數(shù)值。當(dāng)通信對方讀取緩沖區(qū)數(shù)據(jù)后,要檢查這兩 個計數(shù)值是否一致,如果一致則認(rèn)為計數(shù)值正確。如圖4所示。(2)在緩沖區(qū)中設(shè)置控制標(biāo)志由于緩沖區(qū)采用了計數(shù)值判斷新舊據(jù)區(qū),在很大 程序上可以避免主從雙方同時對同一緩沖區(qū)操作的可能性。但是會出現(xiàn)主寫區(qū)在更新緩沖 區(qū)時還未結(jié)束時,主讀設(shè)備會根據(jù)已更新的計數(shù)值也去訪問該緩沖區(qū),造成潛在的訪問沖 突。因此本方法在此基礎(chǔ)上又在雙緩沖區(qū)設(shè)置了控制標(biāo)志。該標(biāo)志只允許主寫設(shè)備設(shè)置, 其它設(shè)備只讀。(3)在緩沖區(qū)最末端添加數(shù)據(jù)校驗和為了提高系統(tǒng)通信的可靠性,在緩沖區(qū)末 端添加了數(shù)據(jù)校驗和。雙方通過該方式可以檢查緩沖區(qū)的數(shù)據(jù)是否是確。有關(guān)結(jié)構(gòu)請參見 圖4。通信雙方各自擁有一個主寫交換區(qū)的軟件分區(qū)管理的方式。這種純軟件的方式, 不需要硬件引出Busy線和中斷信號,減少了硬件設(shè)計的介入。不采用讀取Busy線,避免了 訪問時的等待處理,保證了時間確定性。不采用中斷機(jī)制,保證了操作流程的確定性;采用了雙緩沖結(jié)構(gòu)。避免了訪問雙口 RAM的延遲等待,更重要的是保證了訪問數(shù) 據(jù)彼此之間的完整性。不會出現(xiàn)同一緩沖區(qū)存在不同時間段寫入的數(shù)據(jù);采用了首尾兩端各設(shè)置計數(shù)值。采用緩沖區(qū)計數(shù)值,可以有效檢查出雙緩沖區(qū)之 間的新舊關(guān)系。首尾兩端各設(shè)備相同的計數(shù)值,更進(jìn)一步保證了操作緩沖區(qū)之間流程的正 確性和計數(shù)值的可靠性。因為很難通過單個計數(shù)值來判斷該值在操作過程的正確性。另外, 如果兩端計數(shù)不一致,也可以反映訪問緩沖區(qū)時整個流程存在問題;緩沖區(qū)設(shè)置了主寫占用標(biāo)志。由于采用兩個緩沖區(qū),有可能出現(xiàn)主寫設(shè)備更新緩 沖區(qū)時,只更新了首計數(shù),還沒來得及完成整個緩沖區(qū)更新的情況下,讀設(shè)備正好根據(jù)新更 新的部分計數(shù)值而認(rèn)為該緩沖區(qū)是新的,從而訪問這個緩沖區(qū)。這樣會帶來的潛在訪問沖 突。即一方寫一方讀。而設(shè)置了主寫占用標(biāo)志,可以避免讀設(shè)備訪問正在被主寫設(shè)備操作 的緩沖區(qū)。從而進(jìn)一步解決訪問沖突的問題;數(shù)據(jù)區(qū)更新。通信雙方每周期更新緩沖區(qū)中的數(shù)據(jù),包括計數(shù)值和校驗碼。其中 計數(shù)值由本地維護(hù)??梢酝ㄟ^讀取計數(shù)值,按照判斷算法獲得通信對方是否正常,實現(xiàn)通信 監(jiān)視功能。
權(quán)利要求
1.一種雙口 RAM互斥訪問的實現(xiàn)方法,所述一種雙口 RAM互斥訪問的實現(xiàn)方法包括如 下操作步驟1)采用地址分區(qū)方式,將共享數(shù)據(jù)區(qū)劃分成多個數(shù)據(jù)區(qū),并制定相應(yīng)軟件協(xié)議;2)軟件分區(qū)處理時,按照交換數(shù)據(jù)的類型將RAM的共享存儲區(qū)從起始單元開始分成若 干個大的數(shù)據(jù)區(qū),數(shù)據(jù)區(qū)大小由實際的傳輸數(shù)據(jù)確定,每個大數(shù)據(jù)區(qū)又細(xì)分為一個數(shù)據(jù)接 收區(qū)和一個數(shù)據(jù)發(fā)送區(qū),且每個區(qū)都定義有相應(yīng)的數(shù)據(jù)存取地址和控制標(biāo)識;3)開始寫入雙RAM數(shù)據(jù),讀取雙RAM接收緩沖區(qū)的寫指針,將數(shù)據(jù)寫入基地址加上寫指 針對應(yīng)的雙RAM單元,接收緩沖區(qū)寫指針加1,判斷寫指針,如果寫指針是最后一位,對寫指 針回零,否則結(jié)束寫入數(shù)據(jù);4)開始讀取雙RAM數(shù)據(jù),讀取雙RAM接收緩沖區(qū)的寫指針和讀指針進(jìn)行判斷,讀指針與 寫指針不相等,從基地址加上讀指針對應(yīng)的雙RAM單元讀取數(shù)據(jù),接收緩沖區(qū)讀指針加1, 判斷讀指針,如果讀指針是最后一位,對讀指針回零,否則結(jié)束讀取數(shù)據(jù);讀指針與寫指針 相等結(jié)束操作。
2.根據(jù)權(quán)利要求1所述的雙口RAM互斥訪問的實現(xiàn)方法,其特征在于,雙口 RAM所對外 部系統(tǒng)的通信工作均由從機(jī)來完成,主機(jī)只對雙口 RAM中相應(yīng)的數(shù)據(jù)緩沖區(qū)寫入要發(fā)送的 數(shù)據(jù)或讀取需要的數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的一種雙口RAM互斥訪問的實現(xiàn)方法,其特征在于將雙口 RAM 劃分成兩個區(qū)域,其中一個區(qū)域只允許一方向雙口 RAM寫入數(shù)據(jù),另一方只允許讀取數(shù)據(jù), 不允許有寫操作。
4.根據(jù)權(quán)利要求3所述的一種雙口RAM互斥訪問的實現(xiàn)方法,其特征在于每個交換 區(qū)中設(shè)置一對緩沖,這兩個緩沖區(qū)的大小、結(jié)構(gòu)相同,在其中一個緩沖區(qū)被占用的情況下, 可以訪問另一緩沖區(qū)。
5.根據(jù)權(quán)利要求4所述的一種雙口RAM互斥訪問的實現(xiàn)方法,其特征在于通信雙方 通過判斷兩個交換緩沖區(qū)的狀態(tài)選擇相應(yīng)的緩沖區(qū)。
6.根據(jù)權(quán)利要求5所述的一種雙口RAM互斥訪問的實現(xiàn)方法,其特征在于每個緩沖 區(qū)采用一種計數(shù)值來判斷數(shù)據(jù)的狀態(tài)。
7.根據(jù)權(quán)利要求6所述的一種雙口RAM互斥訪問的實現(xiàn)方法,其特征在于雙口通信 雙方在各自的緩沖區(qū)首尾兩端各設(shè)置了完全相同計數(shù)值;主寫設(shè)備在更新緩沖區(qū)時,要同 時更新兩個計數(shù)值;當(dāng)通信對方讀取緩沖區(qū)數(shù)據(jù)后,要檢查這兩個計數(shù)值是否一致,如果一 致則認(rèn)為計數(shù)值正確。
8.根據(jù)權(quán)利要求7所述的一種雙口RAM互斥訪問的實現(xiàn)方法,其特征在于所述的一 種雙口 RAM互斥訪問的實現(xiàn)方法在此基礎(chǔ)上在緩沖區(qū)設(shè)置了控制標(biāo)志,該占用標(biāo)志只允許 主寫設(shè)備設(shè)置,其它設(shè)備只讀。
9.根據(jù)權(quán)利要求8所述的一種雙口RAM互斥訪問的實現(xiàn)方法,其特征在于從機(jī)在讀 數(shù)據(jù)時,先檢查哪個緩沖區(qū)被占用,優(yōu)先讀取未被占用的緩沖區(qū)。
10.根據(jù)權(quán)利要求9所述的一種雙口RAM互斥訪問的實現(xiàn)方法,其特征在于在系統(tǒng)的 數(shù)據(jù)傳輸過程中,為了提高系統(tǒng)通信的可靠性,在緩沖區(qū)末端添加了數(shù)據(jù)校驗和,雙方通過 該方式檢查緩沖區(qū)的數(shù)據(jù)是否正確。
全文摘要
本發(fā)明涉及一種雙口RAM互斥訪問的實現(xiàn)方法,所述一種雙口RAM互斥訪問的實現(xiàn)方法包括如下操作步驟1)采用地址分區(qū)方式,將共享數(shù)據(jù)區(qū)劃分成多個數(shù)據(jù)區(qū),并制定相應(yīng)軟件協(xié)議;2)軟件分區(qū)處理時,按照交換數(shù)據(jù)的類型將RAM的共享存儲區(qū)從起始單元開始分成若干個大的數(shù)據(jù)區(qū),數(shù)據(jù)區(qū)大小由實際的傳輸數(shù)據(jù)確定,每個大數(shù)據(jù)區(qū)又細(xì)分為一個數(shù)據(jù)接收區(qū)和一個數(shù)據(jù)發(fā)送區(qū),且每個區(qū)都定義有相應(yīng)的數(shù)據(jù)存取地址和控制標(biāo)識;3)在本系統(tǒng)中,所有對外部系統(tǒng)的通信工作均由從機(jī)來完成,主機(jī)只需對雙口RAM中相應(yīng)的數(shù)據(jù)緩沖區(qū)寫入要發(fā)送的數(shù)據(jù)或讀取需要的數(shù)據(jù)即可。
文檔編號G06F13/16GK101996147SQ20091024991
公開日2011年3月30日 申請日期2009年12月4日 優(yōu)先權(quán)日2009年8月25日
發(fā)明者冀建偉, 杜喬瑞, 石桂連, 程建明 申請人:北京廣利核系統(tǒng)工程有限公司;中國廣東核電集團(tuán)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1