專利名稱:雙口ram替代系統(tǒng)及采用該系統(tǒng)實現(xiàn)數(shù)據(jù)傳輸?shù)姆椒?br>
技術領域:
本發(fā)明涉及電力自動化領域,尤其涉及一種雙口 RAM替代系統(tǒng)及采用該系統(tǒng)實現(xiàn)數(shù)據(jù)傳輸?shù)姆椒ā?br>
背景技術:
在電力自動化產(chǎn)品的應用中,板級的高速數(shù)據(jù)傳輸過程中有相當一部分使用雙口 RAM實現(xiàn),因為雙口 RAM有很多優(yōu)點,例如硬件上有兩套獨立的讀寫總線,可以實現(xiàn)異步數(shù)據(jù)的讀寫,易于板卡的模塊化設計;軟件上易于實現(xiàn)協(xié)議的隔離和數(shù)據(jù)的緩沖。但是,現(xiàn)有的雙口 RAM雖然簡單易用,最突出的缺點就是容量小且價格高,比如IDT公司的IDT7028, 是該公司最大容量的異步16位雙口 RAM,容量只能達到64K 16位,價格卻要400元人民幣, 并且很多場合需要256K甚至更高的容量,僅一塊板卡的雙口 RAM就至少需要1600元,僅此一項就可能超過板卡的設計預算。目前一般采用采用FPGA內(nèi)部的RAM實現(xiàn)雙口 RAM,這種方式實現(xiàn)也比較簡單,但是同樣存在成本過高的問題,比如使用價格較低的ALTERA的EP3C55,價格約400元左右,可以替代兩塊IDT7028,但是價格仍然較高,加上外圍電路實現(xiàn)256K16位的雙口 RAM大約需要900元左右;另外,也有使用FPGA和一塊SRAM實現(xiàn)雙口 RAM,但大都是做些簡單的邏輯處理,或者實現(xiàn)高速單向的數(shù)據(jù)傳輸,或者對總線分時復用,實現(xiàn)慢速的雙向數(shù)據(jù)傳輸,這類接口大部分都不兼容雙口 RAM,即使接口做到兼容,也無法實現(xiàn)高速數(shù)據(jù)傳輸,可能只能達到10 - 20M的傳輸速率,不利于移植于其它的系統(tǒng),更不利于對老的雙口 RAM系統(tǒng)升級以及后期系統(tǒng)性能的升級,例如無法實現(xiàn)高速大容量的雙向數(shù)據(jù)傳輸?shù)鹊取?br>
發(fā)明內(nèi)容
本發(fā)明要解決的技術問題在于,針對現(xiàn)有技術的成本高,速度慢以及無法兼容的缺陷,提供一種雙口 RAM替代系統(tǒng)及采用該系統(tǒng)實現(xiàn)數(shù)據(jù)傳輸?shù)姆椒?,該技術方案具有成本低、高速、靈活、易于擴展以及兼容的特點。本發(fā)明解決其技術問題所采用的技術方案是構造一種雙口 RAM替代系統(tǒng),所述系統(tǒng)包括第一接口、第二接口、第一 SRAM接口、第二 SRAM接口以及外圍調(diào)試電路接口,各個接口之間通過現(xiàn)場可編程門陣列實現(xiàn)數(shù)據(jù)傳輸,其中,第一接口和第二接口分別與第一雙口 RAM接口和第二雙口 RAM接口兼容,第一 SRAM接口和第二 SRAM接口分別對應整個存儲空間的奇數(shù)地址和偶數(shù)地址。在本發(fā)明所述的雙口 RAM替代系統(tǒng)中,第一接口、第二接口、第一 SRAM接口以及第二 SRAM接口均包括數(shù)據(jù)總線、地址總線以及控制總線。在本發(fā)明所述的雙口 RAM替代系統(tǒng)中,第一 SRAM接口和第二 SRAM接口均為16位。在本發(fā)明所述的雙口 RAM替代系統(tǒng)中,第一 SRAM接口和第二 SRAM接口的物理連接均處于獨立狀態(tài)。本發(fā)明還構造一種采用雙口 RAM替代系統(tǒng)實現(xiàn)數(shù)據(jù)傳輸?shù)姆椒?,所述雙口 RAM替代系統(tǒng)為上述任一項所述的雙口 RAM替代系統(tǒng),所述方法包括對外接口讀寫步驟和內(nèi)部 SRAM讀寫步驟,其中,
對外接口讀寫步驟包括
Al.接收用戶讀寫第一預傳輸數(shù)據(jù)的命令;
Bi.通過第一接口和/或第二接口對所述第一預傳輸數(shù)據(jù)所對應的地址進行讀寫操作,以讀寫所述第一預傳輸數(shù)據(jù); 內(nèi)部SRAM讀寫步驟包括
A2.在第一 SRAM控制器和/或第二 SRAM控制器處于空閑狀態(tài)時接收用戶需要讀寫的
第二預傳輸數(shù)據(jù);
B2.根據(jù)第一 SRAM接口和/或第二 SRAM接口所檢測到的讀寫信號,對所述第二預傳輸數(shù)據(jù)進行相應的處理。 在本發(fā)明所述的方法中,所述步驟Bl具體包括以下步驟
Bll.通過第一接口對所述第一預傳輸數(shù)據(jù)所對應的地址進行讀寫操作時判斷第二接口是否正在讀寫該地址,若是,則發(fā)送忙信號,若否,則執(zhí)行步驟B12 ;
B12.判斷該地址為讀操作還是寫操作,若為寫操作,則執(zhí)行步驟B13,若為讀操作,則直接轉至步驟B16;
B13.在寫緩沖區(qū)處于空閑狀態(tài)下,判斷該寫緩沖區(qū)是否存在該地址,若是,則執(zhí)行步驟 S141,若否,則執(zhí)行步驟S142;
B141.更新該地址中的所述第一預傳輸數(shù)據(jù),步驟結束;
B142.查看該寫緩沖區(qū)是否已滿,若是,則發(fā)送忙信號,步驟結束,若否,則執(zhí)行步驟
B15 ;
B15.待總線空閑時將所述第一預傳輸數(shù)據(jù)寫入緩沖區(qū),步驟結束;
B16.判斷該寫緩沖區(qū)是否存在該地址,若是,則直接轉至步驟S182,若否,則執(zhí)行步驟
S17 ;
B17.判斷該地址所分配的空間是否正在進行讀寫操作,若是,則執(zhí)行步驟S181,若否, 則執(zhí)行步驟S182 ;
B181.在下一個讀寫周期讀取所述第一預傳輸數(shù)據(jù); B182.讀取所述第一預傳輸數(shù)據(jù)。
在本發(fā)明所述的方法中,所述步驟Bll還包括以下步驟
判斷第一接口和第二接口所對應的地址是否相同,若是,根據(jù)優(yōu)先級確定第一接口進行寫操作、第二接口進行寫操作,還是兩個接口都不進行寫,若否,則執(zhí)行步驟B12。在本發(fā)明所述的方法中,所述步驟A2還包括以下步驟
判斷第一 SRAM控制器和/或第二 SRAM控制器是否處于空閑狀態(tài)。在本發(fā)明所述的方法中,所述步驟B2具體包括以下步驟
B21.判斷當前地址所對應的SRAM接口是否有正在操作的指令,若是,則執(zhí)行步驟 B221,若否,則執(zhí)行步驟B222;
B221.在當前操作結束后對所述預傳輸數(shù)據(jù)進行讀寫操作; B222.直接對所述預傳輸數(shù)據(jù)進行讀寫操作。實施本發(fā)明的技術方案,具有以下有益效果通過分別與雙口 RAM的兩個接口兼容的第一接口和第二接口實現(xiàn)高速的雙向數(shù)據(jù)傳輸,該技術方案具有成本低、高速、靈活、 易于擴展以及兼容的特點。
下面將結合附圖及實施例對本發(fā)明作進一步說明,附圖中 圖1是本發(fā)明雙口 RAM替代系統(tǒng)的結構示意圖2是本發(fā)明外接口讀寫步驟的流程圖; 圖3是本發(fā)明內(nèi)部SRAM讀寫步驟的流程圖; 圖4是本發(fā)明外接口讀寫步驟中Bl的具體流程圖; 圖5是本發(fā)明內(nèi)部SRAM讀寫步驟中B2的具體流程圖。
具體實施例方式為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。請參閱圖1,圖1是本發(fā)明雙口 RAM替代系統(tǒng)的結構示意圖,如圖1所示, 所述系統(tǒng)包括第一接口、第二接口、第一 SRAM接口、第二 SRAM接口以及外圍調(diào)試電路
接口,各個接口之間通過FPGA(Field — !Programmable Gate Array,現(xiàn)場可編程門陣列) 實現(xiàn)數(shù)據(jù)傳輸,其中,第一接口和第二接口分別與第一雙口 RAM接口和第二雙口 RAM接口兼容,第一 SRAM接口和第二 SRAM接口分別對應整個存儲空間的奇數(shù)地址和偶數(shù)地址,在本實施例中,第一雙口 RAM接口和第二雙口 RAM接口可以使用多片RAM組成的RAM陣列實現(xiàn)容量的擴展,值得一提的是,在本實施例中,實現(xiàn)511的雙口 RAM的價格只需要160元左右, 容量越高平均成本也越低。優(yōu)選地,第一接口、第二接口、第一 SRAM接口以及第二 SRAM接口均包括數(shù)據(jù)總線、 地址總線以及控制總線。優(yōu)選地,第一 SRAM接口和第二 SRAM接口均為16位,應當說明的是,在其他的實施例中,第一 SRAM接口和第二 SRAM接口的比特數(shù)可為其他,本領域的技術人員應當了解,這里不再贅述。優(yōu)選地,第一 SRAM接口和第二 SRAM接口的物理連接均處于獨立狀態(tài)。也就是說, 本實施可同時并分別對第一 SRAM和第二 SRAM進行操作,以加快隨機讀寫的訪問速度。本發(fā)明還提供了一種采用雙口 RAM替代系統(tǒng)實現(xiàn)數(shù)據(jù)傳輸?shù)姆椒?,所述方法包括對外接口讀寫步驟和內(nèi)部SRAM讀寫步驟,其中,
請參閱圖2,圖2是本發(fā)明外接口讀寫步驟的流程圖,如圖2所示,對外接口讀寫步驟包
括
在步驟Al中,接收用戶讀寫第一預傳輸數(shù)據(jù)的命令。在步驟Bl中,通過第一接口和/或第二接口對所述第一預傳輸數(shù)據(jù)所對應的地址進行讀寫操作,以讀寫所述第一預傳輸數(shù)據(jù)。應當說明的是,若第一接口在寫操作時,需要先判斷第二接口是否正在讀寫該地址,也就是下述步驟B11,反之亦然,若第二接口在寫操作時,需要先判斷第一接口是否正在讀寫該地址,本領域的技術人員應當了解,這里不再贅述。請參閱圖3,圖3是本發(fā)明內(nèi)部SRAM讀寫步驟的流程圖,如圖3所示,內(nèi)部SRAM讀寫步驟包括
在步驟A2中,在第一 SRAM控制器和/或第二 SRAM控制器處于空閑狀態(tài)時接收用戶需要讀寫的第二預傳輸數(shù)據(jù)。優(yōu)選地,所述步驟A2還包括以下步驟
判斷第一 SRAM控制器和/或第二 SRAM控制器是否處于空閑狀態(tài)。應當說明的是,若第一 SRAM控制器和/或第二 SRAM控制器處于忙碌狀態(tài),則循環(huán)該步驟,直至第一 SRAM控制器和/或第二 SRAM控制器處于空閑狀態(tài)為止。在步驟B2中,根據(jù)第一 SRAM接口和/或第二 SRAM接口所檢測到的讀寫信號,對所述第二預傳輸數(shù)據(jù)進行相應的處理。應當說明的是,在本實施中,若當前需要讀取的是奇數(shù)地址,而偶數(shù)地址中的數(shù)據(jù)有讀寫操作,這時可以立即讀取該數(shù)據(jù),但是若奇數(shù)地址中有正在操作的命令,則需要等待當前操作完成之后再讀取該數(shù)據(jù)。請參閱圖4,圖4是本發(fā)明外接口讀寫步驟中Bl的具體流程圖,如圖4所示,所述步驟Bl具體包括以下步驟
在步驟Bll中,通過第一接口對所述第一預傳輸數(shù)據(jù)所對應的地址進行讀寫操作時判斷第二接口是否正在讀寫該地址,若是,則發(fā)送忙信號,若否,則執(zhí)行步驟B12。優(yōu)選地,所述步驟Bll還包括以下步驟
判斷第一接口和第二接口所對應的地址是否相同,若是,根據(jù)優(yōu)先級確定第一接口進行寫操作、第二接口進行寫操作,還是兩個接口都不進行寫,若否,則執(zhí)行步驟B12。應當說明的是,在本實施例中,假定優(yōu)先級為0時,第一接口進行寫操作;優(yōu)先級為1時,第二接口進行寫操作;優(yōu)先級為2時,第一接口和第二接口都不進行寫操作,本領域的技術人員應當了解,這里不再贅述。在步驟B12中,判斷該地址為讀操作還是寫操作,若為寫操作,則執(zhí)行步驟B13,若為讀操作,則直接轉至步驟B16。在步驟B13中,在寫緩沖區(qū)處于空閑狀態(tài)下,判斷該寫緩沖區(qū)是否存在該地址,若是,則執(zhí)行步驟S141,若否,則執(zhí)行步驟S142。在步驟B141中,更新該地址中的所述第一預傳輸數(shù)據(jù),步驟結束。在步驟B142中,查看該寫緩沖區(qū)是否已滿,若是,則發(fā)送忙信號,若否,則執(zhí)行步驟 B15。在步驟B15中,待總線空閑時將所述第一預傳輸數(shù)據(jù)寫入緩沖區(qū),步驟結束。在步驟B16中,判斷該寫緩沖區(qū)是否存在該地址,若是,則直接轉至步驟S182,若否,則執(zhí)行步驟S17。在步驟B17中,判斷該地址所分配的空間是否正在進行讀寫操作,若是,則執(zhí)行步驟S181,若否,則執(zhí)行步驟S182。在步驟B181中,在下一個讀寫周期讀取所述第一預傳輸數(shù)據(jù)。在步驟B182中,讀取所述第一預傳輸數(shù)據(jù)。請參閱圖5,圖5是本發(fā)明內(nèi)部SRAM讀寫步驟中B2的具體流程圖,如圖5所示,所述步驟B2具體包括以下步驟在步驟B21中,判斷當前地址所對應的SRAM接口是否有正在操作的指令,若是,則執(zhí)行步驟B221,若否,則執(zhí)行步驟B222。在步驟B221中,在當前操作結束后對所述預傳輸數(shù)據(jù)進行讀寫操作。在步驟B222中,直接對所述預傳輸數(shù)據(jù)進行讀寫操作。應當說明的是,在本實施例中,可實現(xiàn)與雙口 RAM完全兼容的接口,速度優(yōu)于雙口 RAM,雙口 RAM —般為20ns,便于移植并可以直接替代原有的雙口 RAM系統(tǒng);在256K16位容量上可以實現(xiàn)不同容量的雙口 RAM 25%的價格,在1M16位的情況下,只有同容量雙口 RAM 不到15%的價格,且容量越大,成本越低;擴展時只需要增加地址線即可擴展更大容量的應用;具備高速的讀寫B(tài)UF和合理的邏輯控制;另外還可以通過編程實現(xiàn)某些特殊的功能,例如可以實現(xiàn)16位8位32位之間的數(shù)據(jù)任意轉換的功能。綜上所述,相較于現(xiàn)有技術,通過分別與雙口 RAM的兩個接口兼容的第一接口和第二接口實現(xiàn)高速的雙向數(shù)據(jù)傳輸,該技術方案具有成本低、高速、靈活、易于擴展以及兼容的特點。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的權利要求范圍之內(nèi)。
權利要求
1.一種雙口 RAM替代系統(tǒng),其特征在于,所述系統(tǒng)包括第一接口、第二接口、第一 SRAM 接口、第二 SRAM接口以及外圍調(diào)試電路接口,各個接口之間通過現(xiàn)場可編程門陣列實現(xiàn)數(shù)據(jù)傳輸,其中,第一接口和第二接口分別與第一雙口 RAM接口和第二雙口 RAM接口兼容,第一 SRAM接口和第二 SRAM接口分別對應整個存儲空間的奇數(shù)地址和偶數(shù)地址。
2.根據(jù)權利要求1所述的雙口RAM替代系統(tǒng),其特征在于,第一接口、第二接口、第一 SRAM接口以及第二 SRAM接口均包括數(shù)據(jù)總線、地址總線以及控制總線。
3.根據(jù)權利要求2所述的雙口RAM替代系統(tǒng),其特征在于,第一 SRAM接口和第二 SRAM 接口均為16位。
4.根據(jù)權利要求3所述的雙口RAM替代系統(tǒng),其特征在于,第一 SRAM接口和第二 SRAM 接口的物理連接均處于獨立狀態(tài)。
5.一種采用雙口 RAM替代系統(tǒng)實現(xiàn)數(shù)據(jù)傳輸?shù)姆椒?,其特征在于,所述雙口 RAM替代系統(tǒng)為上述權利要求1至4任一項所述的雙口 RAM替代系統(tǒng),所述方法包括對外接口讀寫步驟和內(nèi)部SRAM讀寫步驟,其中,對外接口讀寫步驟包括Al.接收用戶讀寫第一預傳輸數(shù)據(jù)的命令;Bi.通過第一接口和/或第二接口對所述第一預傳輸數(shù)據(jù)所對應的地址進行讀寫操作,以讀寫所述第一預傳輸數(shù)據(jù); 內(nèi)部SRAM讀寫步驟包括A2.在第一 SRAM控制器和/或第二 SRAM控制器處于空閑狀態(tài)時接收用戶需要讀寫的第二預傳輸數(shù)據(jù);B2.根據(jù)第一 SRAM接口和/或第二 SRAM接口所檢測到的讀寫信號,對所述第二預傳輸數(shù)據(jù)進行相應的處理。
6.根據(jù)權利要求5所述的方法,其特征在于,所述步驟Bl具體包括以下步驟Bll.通過第一接口對所述第一預傳輸數(shù)據(jù)所對應的地址進行讀寫操作時判斷第二接口是否正在讀寫該地址,若是,則發(fā)送忙信號,若否,則執(zhí)行步驟B12 ;B12.判斷該地址為讀操作還是寫操作,若為寫操作,則執(zhí)行步驟B13,若為讀操作,則直接轉至步驟B16;B13.在寫緩沖區(qū)處于空閑狀態(tài)下,判斷該寫緩沖區(qū)是否存在該地址,若是,則執(zhí)行步驟 S141,若否,則執(zhí)行步驟S142;B141.更新該地址中的所述第一預傳輸數(shù)據(jù),步驟結束;B142.查看該寫緩沖區(qū)是否已滿,若是,則發(fā)送忙信號,步驟結束,若否,則執(zhí)行步驟B15 ;B15.待總線空閑時將所述第一預傳輸數(shù)據(jù)寫入緩沖區(qū),步驟結束;B16.判斷該寫緩沖區(qū)是否存在該地址,若是,則直接轉至步驟S182,若否,則執(zhí)行步驟S17 ;B17.判斷該地址所分配的空間是否正在進行讀寫操作,若是,則執(zhí)行步驟S181,若否, 則執(zhí)行步驟S182 ;B181.在下一個讀寫周期讀取所述第一預傳輸數(shù)據(jù); B182.讀取所述第一預傳輸數(shù)據(jù)。
7.根據(jù)權利要求6所述的方法,其特征在于,所述步驟Bll還包括以下步驟判斷第一接口和第二接口所對應的地址是否相同,若是,根據(jù)優(yōu)先級確定第一接口進行寫操作、第二接口進行寫操作,還是兩個接口都不進行寫,若否,則執(zhí)行步驟B12。
8.根據(jù)權利要求7所述的方法,其特征在于,所述步驟A2還包括以下步驟 判斷第一 SRAM控制器和/或第二 SRAM控制器是否處于空閑狀態(tài)。
9.根據(jù)權利要求8所述的方法,其特征在于,所述步驟B2具體包括以下步驟B21.判斷當前地址所對應的SRAM接口是否有正在操作的指令,若是,則執(zhí)行步驟 B221,若否,則執(zhí)行步驟B222;B221.在當前操作結束后對所述預傳輸數(shù)據(jù)進行讀寫操作; B222.直接對所述預傳輸數(shù)據(jù)進行讀寫操作。
全文摘要
本發(fā)明公開一種雙口RAM替代系統(tǒng)及采用該系統(tǒng)實現(xiàn)數(shù)據(jù)傳輸?shù)姆椒ǎ鱿到y(tǒng)包括第一接口、第二接口、第一SRAM接口、第二SRAM接口以及外圍調(diào)試電路接口,各個接口之間通過現(xiàn)場可編程門陣列實現(xiàn)數(shù)據(jù)傳輸,其中,第一接口和第二接口分別與第一雙口RAM接口和第二雙口RAM接口兼容,第一SRAM接口和第二SRAM接口分別對應整個存儲空間的奇數(shù)地址和偶數(shù)地址。通過分別與雙口RAM的兩個接口兼容的第一接口和第二接口實現(xiàn)高速的雙向數(shù)據(jù)傳輸,該技術方案具有成本低、高速、靈活、易于擴展以及兼容的特點。
文檔編號G06F13/16GK102541775SQ20121000827
公開日2012年7月4日 申請日期2012年1月12日 優(yōu)先權日2012年1月12日
發(fā)明者王慶山 申請人:航天科工深圳(集團)有限公司