雙口RAM CY7C026在高速數(shù)據(jù)采集系統(tǒng)中的應(yīng)用
引言
由工業(yè)計(jì)算機(jī)通過pci總線控制的前端數(shù)據(jù)采集系統(tǒng)在工業(yè)控制領(lǐng)域中得到了廣泛的應(yīng)用,一般的數(shù)據(jù)傳送系統(tǒng)在大數(shù)據(jù)量的情況下會造成數(shù)據(jù)堵塞現(xiàn)象。在系統(tǒng)設(shè)計(jì)的過程中經(jīng)過多方面的比較,最后采用高數(shù)雙口ram構(gòu)成的高速數(shù)據(jù)交換接口成功地解決了此問題。
cy7c026是cypress公司生產(chǎn)的16k×16高速雙口靜態(tài)ram,存取速度小于25ns。它具有真正的雙端口,可以同時進(jìn)行數(shù)據(jù)存取,兩個端口具有獨(dú)立的控制信號線、地址線和數(shù)據(jù)線,另外通過主/從選擇可以方便地?cái)U(kuò)存儲容量和數(shù)據(jù)寬度。通過芯片的信號量標(biāo)志器,左、右兩端口可以實(shí)現(xiàn)芯片資源的共享。cy7c026芯片的管腳說明參見表1,內(nèi)部功能框圖見圖1。
cy7c026的工作原理
● 存取原理
由cy7c026的內(nèi)部結(jié)構(gòu)圖可以看出,該芯片的核心部分是雙端口存儲陣列,左右兩個端口可以共用該存儲陣列,并且擁有各自的控制線,在單獨(dú)存取數(shù)據(jù)時,和普通的ram相同。同時讀取不同存儲空間的數(shù)據(jù)和同時讀取相同數(shù)據(jù)空間的數(shù)據(jù)時,左右端口可以同時進(jìn)行。若同時對相同的數(shù)據(jù)空間做寫操作,或一端口對一數(shù)據(jù)空間作讀操作的同時另一端口對該數(shù)據(jù)空間作寫操作,左右端口將發(fā)生沖突。為此,cy7c026通過busy管腳來處理這兩種情況。
當(dāng)左右端口對不同存儲空間進(jìn)行讀寫操作時,可同時存取。此時,左右端口的busy信號同時置高。若對同一存儲空間同時進(jìn)行存儲操作時,哪一端的存儲請求信號先出現(xiàn),則該端的busy信號置高,允許存儲。哪一端的存儲信號出現(xiàn)在后,則這一端busy信號置低,禁止存儲。
值得注意的是,左右兩端存取請求信號出現(xiàn)的時間差必須大于5ns,不然仲裁邏輯無法判斷哪一邊的存取請求信號出現(xiàn)在前。如果出現(xiàn)兩端存取請求信號出現(xiàn)的時間差小于5ns的情況,仲裁邏輯將一邊的busy信號置高,將另一邊的busy信號置低,從而保證兩個端口一個執(zhí)行數(shù)據(jù)存儲,另一端口進(jìn)行數(shù)據(jù)讀取,避免了沖突。
● 中斷功能和主/從模式的使用
cy7c026芯片的中斷功能是通過“信箱”來實(shí)現(xiàn)的。所謂的“信箱”是指芯片將存儲器的高地址3fff作為左端口的“信箱”,而3ffe作為右端口的“信箱”。下面以左端口向右端口傳送數(shù)據(jù)為例,說明中斷功能的用法。當(dāng)左端口將數(shù)據(jù)寫入右端口的“郵箱”時,右端口的intr管腳就會產(chǎn)生中斷信號,即intr管腳置低。右端口讀取該數(shù)據(jù)后中斷信號自動復(fù)位。右端口向左端口傳送數(shù)據(jù)的情況與上述情況相同。用戶需要清楚的是,該功能只適用于數(shù)據(jù)的低速傳送。
實(shí)際中,數(shù)據(jù)的寬度往往大于16位。這時就需要擴(kuò)展數(shù)據(jù)位的寬度,cy7c026的m/s管腳提供了數(shù)據(jù)擴(kuò)展的功能。例如,實(shí)際應(yīng)用中經(jīng)常需要32位的數(shù)據(jù)總線,可以將一片cy7c026的m/s管腳置低,另一片的m/s管腳置高,然后將兩塊芯片的管腳連接在一起即可。
● 信號量標(biāo)志器的使用
信號量標(biāo)志器是該芯片所擁有的最具特色的功能,利用這種功能可以實(shí)現(xiàn)片內(nèi)資源的共享。cy7c026為實(shí)現(xiàn)該功能,提供了八個標(biāo)志鎖存器,每個鎖存器對應(yīng)一個信號量標(biāo)志器。使用信號量標(biāo)志器的過程是首先將sem管腳置低,ce管腳置高,然后通過a0~a2三條地址線來選擇相應(yīng)的標(biāo)志鎖存器,數(shù)據(jù)的存取通過對i/o0操作來實(shí)現(xiàn)。數(shù)據(jù)存取過程中,r/w和oe的使用方式與存取普通存儲器的使用方式相同。芯片上電后,左、右端口的標(biāo)志器都處于空閑狀態(tài)。這時左右兩端口都可以通過對任意標(biāo)志鎖存器寫“0”來提出使用該信號量標(biāo)志器的請求。然后讀取該信號量標(biāo)志器的值來確定是否獲得使用權(quán),如果讀回的值為“0”則說明該端口獲得使用權(quán),為“1”則說明另一端口已獲得了該標(biāo)志器的使用權(quán)。獲得使用權(quán)的端口只有對其所使用的標(biāo)志鎖存器寫“1”后,才能放棄該信號量標(biāo)志器的使用權(quán)。如果另一端口在它放棄使用權(quán)以前提出過使用該信號量標(biāo)志器的請求,那么當(dāng)前端口放棄使用權(quán)后,另一端口立即獲得該信號量標(biāo)志器的使用權(quán)。相反,如果另一個端口沒有提出過請求,則該信號量標(biāo)志器處于空閑狀態(tài)。
cy7c026在數(shù)據(jù)傳輸系統(tǒng)中的應(yīng)用
所設(shè)計(jì)的系統(tǒng)是石油測井設(shè)備的一個子系統(tǒng),系統(tǒng)以tms320c5402為主處理器,通過雙口ram cy7c026作為數(shù)據(jù)共享的接口。其主要功能是接收工業(yè)計(jì)算機(jī)通過cpci接口寫入雙口ram的命令,dsp將該命令下發(fā)到井下儀器,相應(yīng)的井下儀器接收到命令后,采集井下數(shù)據(jù),然后將數(shù)據(jù)傳送到dsp中,經(jīng)過dsp處理后的數(shù)據(jù)寫入雙口ram。最后,工業(yè)計(jì)算機(jī)通過cpci接口將雙口ram中的數(shù)據(jù)傳送到計(jì)算機(jī)中作顯示處理。系統(tǒng)框圖如圖2所示。
結(jié)束語
利用雙口ram cy7c026的高速數(shù)據(jù)傳輸能力和dsp tms320vc5402的高速性能能夠滿足高速數(shù)據(jù)傳輸?shù)囊?,同時能夠完成大量復(fù)雜的數(shù)據(jù)處理工作,從而兼顧了數(shù)據(jù)傳輸處理所需要的大吞吐量和高速性。
評論