亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        引入SRAM 的三級(jí)緩存技術(shù)在高速通信中的應(yīng)用

        2012-06-06 09:45:00鄭永秋任勇峰
        關(guān)鍵詞:高速數(shù)據(jù)低電平讀數(shù)

        史 赟,鄭永秋,任勇峰

        (中北大學(xué)電子測(cè)試技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,山西太原 030051)

        0 引言

        在高速通信過(guò)程中,發(fā)送方和接收方之間沒(méi)有握手信號(hào),發(fā)送方不停地向接收方發(fā)送數(shù)據(jù),而不管接收方的狀態(tài)。接收方要將收到的數(shù)據(jù)通過(guò)USB電纜上傳到終端計(jì)算機(jī)進(jìn)行分析,需要數(shù)據(jù)緩存保證數(shù)據(jù)流中的數(shù)據(jù)不丟失,而終端計(jì)算機(jī)對(duì)其內(nèi)部的USB設(shè)備是通過(guò)輪詢(xún)算法檢測(cè)的,每次讀完USB設(shè)備中的512 Byte數(shù)據(jù)后,向USB設(shè)備發(fā)送讀請(qǐng)求,就去檢測(cè)其他設(shè)備,直到下次檢測(cè)到USB設(shè)備,才會(huì)讀走數(shù)據(jù)。可以看出,讀數(shù)操作是不連續(xù)的,在終端計(jì)算機(jī)進(jìn)程任務(wù)繁重時(shí),對(duì)USB設(shè)備的檢測(cè)周期就會(huì)延長(zhǎng),滯留在USB設(shè)備中的512 Byte數(shù)據(jù)不能被及時(shí)讀走,就不會(huì)向接收方發(fā)送讀數(shù)請(qǐng)求,接收方的可編程門(mén)陣列(field programmable gate array,F(xiàn)PGA)不斷接收數(shù)據(jù),數(shù)據(jù)在FPGA中存儲(chǔ),而利用FPGA內(nèi)部的先進(jìn)先出(first in first out,F(xiàn)IFO)作為緩存,其容量有限,很容易導(dǎo)致緩存溢出,出現(xiàn)丟數(shù)問(wèn)題。因此,需要較大的存儲(chǔ)介質(zhì)作為數(shù)據(jù)緩存,而靜態(tài)隨機(jī)存儲(chǔ)器(static random access memery,SRAM)具備讀寫(xiě)速度快,控制簡(jiǎn)單,已廣泛應(yīng)用于需要快速存取數(shù)據(jù)的場(chǎng)合[1]。

        本文在FPGA外部引入容量為1MByte的SRAM作為外部緩存,設(shè)計(jì)并實(shí)現(xiàn)了三級(jí)緩存結(jié)構(gòu),輸入級(jí)和輸出級(jí)緩存為FPGA內(nèi)部的FIFO,用于實(shí)現(xiàn)與發(fā)送方和終端計(jì)算機(jī)的通信接口,中間級(jí)緩存為SRAM,作為核心存儲(chǔ),對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)緩存。利用FPGA控制數(shù)據(jù)的傳輸和對(duì)SRAM的讀寫(xiě)操作,簡(jiǎn)化了硬件設(shè)計(jì)和邏輯設(shè)計(jì)[2]。

        1 三級(jí)緩存基本原理

        圖1為三級(jí)緩存結(jié)構(gòu)示意圖。一級(jí)緩存為數(shù)據(jù)的輸入緩存,是三級(jí)緩存結(jié)構(gòu)與外部的輸入接口,它是利用FPGA內(nèi)部的BLOCK RAM構(gòu)成的,F(xiàn)PGA選用XILINX公司的Spartan3系列的XC3S200芯片,選用其內(nèi)部容量為2 KByte的同步雙口RAM(RAMB16_S9_S9)構(gòu)成一個(gè)8位數(shù)據(jù)位寬,容量為2 KByte的內(nèi)部FIFO。與之對(duì)稱(chēng)的是三級(jí)緩存,它的構(gòu)造和一級(jí)緩存一樣,是數(shù)據(jù)的輸出緩存,作為輸出接口與外部計(jì)算機(jī)進(jìn)行通信。為了不使數(shù)據(jù)在輸入緩存丟數(shù),設(shè)定輸入的高速數(shù)據(jù)在輸入緩存中達(dá)到10 Byte后,就會(huì)存入二級(jí)緩存,使容量更大的二級(jí)緩存作為主要的存儲(chǔ)緩存;而只有接到讀數(shù)請(qǐng)求后,二級(jí)緩存才會(huì)將數(shù)據(jù)寫(xiě)入輸出緩存,輸出緩存中有512 Byte數(shù)據(jù)時(shí),數(shù)據(jù)就會(huì)上傳到計(jì)算機(jī),所以將輸入和輸出緩存容量設(shè)置為2 KByte,緩存容量有較大的冗余量,不會(huì)存在溢出問(wèn)題。

        圖1 三級(jí)緩存結(jié)構(gòu)Fig.1 Tri-stage buffer structure

        二級(jí)緩存為FPGA外接的容量為1 MByte的SRAM。為確保不丟數(shù),應(yīng)使緩存容量足夠大,本設(shè)計(jì)選用的SRAM容量為1 MByte,可以確保數(shù)據(jù)傳輸可靠性,保證數(shù)據(jù)不會(huì)因?yàn)榫彺嫒萘坎粔蚨鴣G失。二級(jí)緩存實(shí)時(shí)地存儲(chǔ)高速數(shù)據(jù),是高速數(shù)據(jù)存儲(chǔ)的核心部分,數(shù)據(jù)經(jīng)過(guò)一級(jí)緩存后,主要存儲(chǔ)在二級(jí)緩存,當(dāng)接到三級(jí)緩存的讀取數(shù)據(jù)請(qǐng)求時(shí),才把數(shù)據(jù)寫(xiě)入三級(jí)緩存。采用這種三級(jí)緩存結(jié)構(gòu),輸入和輸出緩存為FPGA內(nèi)部的FIFO,便于實(shí)現(xiàn)FPGA對(duì)數(shù)據(jù)傳輸?shù)目刂?,中間級(jí)緩存只需在FPGA外部連接一個(gè)SRAM即可,利用FPGA實(shí)現(xiàn)對(duì)SRAM的讀寫(xiě)操作,從而簡(jiǎn)化了硬件電路。

        2 硬件設(shè)計(jì)

        硬件原理框圖如圖2所示。硬件結(jié)構(gòu)主要由FPGA,SRAM芯片、RS485接口芯片、USB2.0芯片等組成。FPGA控制數(shù)據(jù)存入和讀出緩存以及和計(jì)算機(jī)的USB通信過(guò)程,利用其內(nèi)部資源構(gòu)成三級(jí)緩存結(jié)構(gòu)的輸入和輸出緩存。SRAM芯片連接在FPGA外部,作為三級(jí)緩存結(jié)構(gòu)的中間級(jí)緩存。RS485芯片負(fù)責(zé)將差分形式的數(shù)據(jù)轉(zhuǎn)換為串行形式的數(shù)據(jù)傳遞給FPGA。USB2.0芯片負(fù)責(zé)FPGA與計(jì)算機(jī)USB接口的數(shù)據(jù)通信過(guò)程。

        圖2 硬件原理框圖Fig.2 Hardware Schematic block diagram

        FPGA選用 XILINX公司的 Spartan3系列的XC3S200芯片,它采用多電壓供電,其中內(nèi)核電壓為1.2 V,I/O口驅(qū)動(dòng)電壓為3.3 V,其他的輔助電壓為2.5 V。該芯片含有4 320個(gè)邏輯資源、141個(gè)可用的I/O口。外部晶振源頻率為36.864 MHz,利用FPGA內(nèi)部的倍頻模塊對(duì)它進(jìn)行倍頻后作為高速數(shù)據(jù)接收的外部時(shí)鐘[3]。

        數(shù)據(jù)接收是以RS485標(biāo)準(zhǔn)為物理層基礎(chǔ),硬件設(shè)計(jì)選用RS485芯片分別實(shí)現(xiàn)高速數(shù)據(jù)接口和高速時(shí)鐘接口。數(shù)據(jù)信號(hào)進(jìn)入FPGA之前,必須經(jīng)過(guò)RS485接口芯片進(jìn)行電壓轉(zhuǎn)換。根據(jù)設(shè)計(jì)要求,高速接口最高的輸出碼率為7.372 8 Mbit/s,由于本通信系統(tǒng)只是接收數(shù)據(jù),所以工作在單工模式。因此,RS485接口芯片選用MAX3490,它采用3.3 V單電源供電,波特率最高可達(dá)10 Mbit/s,可以支持全雙工工作模式,輸入電壓范圍為-7~+12 V,輸出電壓高電平為最小供電電壓減去0.4 V,低電平最大為0.4 V。

        SRAM芯片選用CY7C1059DV33,它的深度為1 M(1M代表106,深度代表SRAM中的位置數(shù),一個(gè)位置8位)。寬度為8 bit,容量為1×8 Mbit,3個(gè)控制端控制SRAM的讀寫(xiě)操作。經(jīng)過(guò)RS485芯片轉(zhuǎn)換的數(shù)據(jù)首先進(jìn)入FPGA內(nèi)部FIFO,然后進(jìn)入與FPGA相連的外部SRAM,計(jì)算機(jī)下發(fā)讀數(shù)請(qǐng)求后,才將SRAM存儲(chǔ)的數(shù)據(jù)讀出,經(jīng)過(guò)FPGA內(nèi)部FIFO送至USB口。

        FPGA利用CY7C68013芯片通過(guò)USB接口與計(jì)算機(jī)進(jìn)行通信。CY7C68013屬于Cypress公司的FX2系列產(chǎn)品,是 Cypress公司生產(chǎn)的第一款USB2.0芯片。CY7C68013是一個(gè)帶增強(qiáng)型MCS51內(nèi)核和USB接口的單片機(jī),完全遵從USB2.0協(xié)議,可提供高達(dá)480 Mbit/s的傳輸速率;內(nèi)部集成PLL(鎖相環(huán)),最高可使5l內(nèi)核工作在48 MHz;對(duì)外提供2個(gè)串口,可以方便地與外部通信;片內(nèi)擁有8 KByte的RAM,可完全滿(mǎn)足系統(tǒng)每次傳輸數(shù)據(jù)的需要,無(wú)需再外接 RAM[4]。

        3 邏輯設(shè)計(jì)

        基于XILINX公司的XILINX7.1開(kāi)發(fā)環(huán)境利用超高速集成電路硬件描述語(yǔ)言(VHDL)進(jìn)行邏輯設(shè)計(jì)。FPGA內(nèi)部模塊主要包括高速寫(xiě)FIFO模塊、SRAM控制模塊和讀FIFO模塊。圖3為三級(jí)緩存的邏輯框圖。

        圖3 邏輯框圖Fig.3 Logic block diagram

        高速寫(xiě)FIFO模塊負(fù)責(zé)將數(shù)據(jù)暫時(shí)存入內(nèi)部FIFO中;SRAM控制模塊的功能主要是控制SRAM的讀出、寫(xiě)入,將一級(jí)緩存 FIFO中的數(shù)據(jù)寫(xiě)入SRAM,將SRAM中的數(shù)據(jù)讀出寫(xiě)入三級(jí)緩存FIFO中。讀FIFO模塊主要是根據(jù)計(jì)算機(jī)下發(fā)的命令,選擇讀取高速FIFO,并將數(shù)據(jù)送至數(shù)據(jù)總線(xiàn)。

        3.1 寫(xiě)FIFO模塊設(shè)計(jì)

        高速接口包括時(shí)鐘和數(shù)據(jù)兩個(gè)接口,高速數(shù)據(jù)接收采用同步RS485通信協(xié)議,高速時(shí)鐘速率為3.686 4 MHz,與數(shù)據(jù)發(fā)送時(shí)鐘同源,可以利用同步時(shí)鐘實(shí)現(xiàn)數(shù)據(jù)接收同步。高速數(shù)據(jù)具有特定的幀格式,由標(biāo)志字、ID字和數(shù)據(jù)組成,每幀容量為2 KByte。用特殊的標(biāo)志字來(lái)表示數(shù)據(jù)幀的起始位置,可以識(shí)別有效的數(shù)據(jù)信息,從而實(shí)現(xiàn)同步[5]。標(biāo)志字選用16進(jìn)制數(shù)“FDB18540”,這種標(biāo)志字經(jīng)過(guò)大量測(cè)試表明它的獨(dú)立性很好,不會(huì)和數(shù)據(jù)內(nèi)容重復(fù),可以有效避免假同步現(xiàn)象。高速數(shù)據(jù)進(jìn)入一級(jí)緩存時(shí),在同步高速時(shí)鐘的下降沿時(shí),檢測(cè)高速數(shù)據(jù)的標(biāo)志字,當(dāng)檢測(cè)到標(biāo)志字時(shí),就意味著有效數(shù)據(jù)的到來(lái),將數(shù)據(jù)寫(xiě)入FPGA內(nèi)部FIFO緩存中。寫(xiě)FIFO模塊流程圖如圖4所示。

        圖4 寫(xiě)FIFO模塊流程圖Fig.4 Flow chart ofwriting FIFOmodule

        3.2 讀FIFO模塊設(shè)計(jì)

        讀FIFO模塊是通過(guò)FPGA內(nèi)部集成FIFO半滿(mǎn)信號(hào)觸發(fā)CY7C68013單片機(jī)進(jìn)行讀數(shù)的,單片機(jī)通過(guò)與FPGA相連的PA2接口利用運(yùn)行在其內(nèi)的固件程序檢測(cè)到FIFO半滿(mǎn)信號(hào)后,單片機(jī)才開(kāi)始從FIFO中讀取數(shù)據(jù),執(zhí)行每次讀操作,連續(xù)從FIFO中讀取512 Byte數(shù)據(jù),F(xiàn)IFO半滿(mǎn)信號(hào)是讀FIFO模塊通過(guò)比較FIFO讀寫(xiě)地址的差值而對(duì)其賦值的,當(dāng)寫(xiě)地址與讀地址之差大于512時(shí),F(xiàn)IFO半滿(mǎn)信號(hào)賦值為0,否則為1,這里設(shè)定讀寫(xiě)地址差值為512,是由于USB設(shè)備一次只讀取512 Byte數(shù)據(jù),F(xiàn)IFO中緩存的數(shù)據(jù)只要大于512 Byte時(shí),就應(yīng)觸發(fā)USB設(shè)備讀取數(shù)據(jù),這樣可以避免多余數(shù)據(jù)在FIFO中積存引起的丟數(shù)現(xiàn)象。利用FIFO半滿(mǎn)信號(hào)控制讀數(shù)過(guò)程,可以有效防止空讀和誤讀現(xiàn)象[6]。

        3.3 SRAM控制模塊設(shè)計(jì)

        SRAM控制模塊包括寫(xiě)SRAM和讀SRAM兩部分,寫(xiě)SRAM是由一級(jí)緩存FIFO的半滿(mǎn)信號(hào)觸發(fā)的,當(dāng)半滿(mǎn)信號(hào)有效時(shí),開(kāi)始寫(xiě)SRAM。讀SRAM是通過(guò)讀FIFO模塊傳遞過(guò)來(lái)的request信號(hào)來(lái)控制的,當(dāng)request信號(hào)有效時(shí),讀取SRAM中的數(shù)據(jù),然后將它寫(xiě)入到三級(jí)FIFO。通過(guò)SRAM的3個(gè)控制端來(lái)控制外部的SRAM的讀寫(xiě)操作,具體的SRAM控制模塊的流程圖如圖5所示。

        圖5 SRAM控制模塊的流程圖Fig.5 Flow chart of SRAM controlmodule

        SRAM 的訪(fǎng)問(wèn)控制由wesram,oesram,cesram 3個(gè)控制端決定,寫(xiě)SRAM和讀SRAM時(shí),控制線(xiàn)、地址線(xiàn)和數(shù)據(jù)線(xiàn)要有一定的時(shí)序先后,才能保證操作正確。設(shè)計(jì)中對(duì)寫(xiě)SRAM和讀SRAM進(jìn)行了時(shí)序仿真。圖6和圖7分別示意了SRAM的寫(xiě)時(shí)序和讀時(shí)序。外部時(shí)鐘速率為36.864 MHZ。

        圖6 SRAM寫(xiě)時(shí)序Fig.6 Time sequence of writing SRAM

        執(zhí)行寫(xiě)SRAM操作時(shí),cesram保持低電平,oesram保持高電平,先將地址送到地址線(xiàn)上,同時(shí)wesram變?yōu)榈碗娖?,低電平狀態(tài)至少要保持7 ns,才會(huì)保證數(shù)據(jù)寫(xiě)入SRAM,本設(shè)計(jì)中,wesram低電平保持時(shí)間約為80 ns。地址保持一個(gè)時(shí)鐘周期后,將數(shù)據(jù)送到數(shù)據(jù)線(xiàn)上,數(shù)據(jù)寫(xiě)入SRAM,完成一次寫(xiě)SRAM過(guò)程。而后,寫(xiě)地址遞增,以后的寫(xiě)SRAM操作重復(fù)此過(guò)程。

        圖7 SRAM讀時(shí)序Fig.7 Time sequence of reading SRAM

        讀SRAM時(shí),cesram保持低電平,wesram保持高電平,請(qǐng)求信號(hào)request為低電平。先將讀地址送到地址線(xiàn)上,同時(shí)oesram變?yōu)榈碗娖?,在?shù)據(jù)到來(lái)之前,oesram的低電平狀態(tài)至少要保持5 ns,本設(shè)計(jì)低電平保持時(shí)間約為160 ns。地址保持兩個(gè)時(shí)鐘周期后,數(shù)據(jù)被讀出送到數(shù)據(jù)線(xiàn)上,完成一次讀SRAM過(guò)程。而后,讀地址遞增,重復(fù)此過(guò)程。

        4 測(cè)試與結(jié)論

        為驗(yàn)證三級(jí)緩存設(shè)計(jì)在高速通信應(yīng)用過(guò)程中的可靠性和穩(wěn)定性,進(jìn)行了多次讀數(shù)測(cè)試,并將接收到的結(jié)果進(jìn)行分析,結(jié)果表明,運(yùn)用此技術(shù)后,高速數(shù)據(jù)通信過(guò)程中沒(méi)有出現(xiàn)丟數(shù)現(xiàn)象,而沒(méi)有應(yīng)用此技術(shù)的情形,丟數(shù)現(xiàn)象在測(cè)試中會(huì)隨機(jī)出現(xiàn)。引入

        SRAM作為外部緩存,結(jié)合FPGA內(nèi)部FIFO設(shè)計(jì)的三級(jí)緩存結(jié)構(gòu),可以可靠地緩存高速數(shù)據(jù),目前在高速通信中已得到了很好的應(yīng)用。

        [1]王鵬,伊鵬,金德鵬,等.基于三級(jí)存儲(chǔ)陣列緩存高速數(shù)據(jù)包及性能分析[J].軟件學(xué)報(bào),2005,16(12):2181-2189.

        WANG Peng,YIPeng,JIN De-peng,etal.Buffering highspeed packetswith tri-stagememortarray and its performance analysis[J].Journalof Software,2005,16(12):2181-2189.

        [2] 夏金軍,莊奕琪,包軍林,等.一種基于FPGA的高速數(shù)據(jù)緩存的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008,24(11):226-228.

        XIA Jin-jun,ZHUANG Yi-qi,BAO Jun-lin,et al.The design ofone type of high-speed data cache based on FPGA[J].Control and automation publication group,2008,24(11):226-228.

        [3]張永樂(lè),任勇峰,李圣昆.FPGA在多串口讀數(shù)系統(tǒng)中的應(yīng)用[J].電子技術(shù),2010,2:7-8.

        ZHANG Yong-le,REN Yong-feng,LI Sheng-kun.The application of FPGA on the data system with several UART[J].Electronic Technology,2010,2:7-8.

        [4]林剛勇,馬善農(nóng),許邦蓮.CY7C68013在數(shù)據(jù)傳輸中的應(yīng)用[J].微計(jì)算機(jī)信息,2007,23(10):76-78.

        LIN Gang-yong, MA Shan-nong, XU Bang-lian.CY7C68013 at the application among data transfer[J].Control and automation publication group,2007,23(10):76-78.

        [5]宮克存,黃永平.一種高效的串行通信協(xié)議及實(shí)現(xiàn)[J].長(zhǎng)春科技大學(xué)學(xué)報(bào),2000,30(1):98-101.

        GONG Ke-cun,HUANG Yong-pin.A high efficient serial communication protocol and implementatio[J].Journal of changchun university of science and technology,2000,30(1):98-101.

        [6] 于祥鳳,劉學(xué)斌,胡炳樑,等.基于FPGA的高速數(shù)據(jù)存儲(chǔ)系統(tǒng)中FIFO控制的設(shè)計(jì)[J].核電子學(xué)與探測(cè)技術(shù),2010,30(1):59-62.

        YU Xiang-feng,LIU Xue-bin,HU Bing-liang,et al.Design of FIFO in High Speed Data Storage System Based on FPGA[J].Nuclear Electronics& Detection Technology,2010,30(1):59-62.

        猜你喜歡
        高速數(shù)據(jù)低電平讀數(shù)
        數(shù)字電路中“邏輯非”的用法辨析
        鐵道車(chē)輛高/低電平信號(hào)智能發(fā)生器設(shè)計(jì)
        2017款凱迪拉克2.8L/3.0L/3.2L/3.6L車(chē)型低電平參考電壓總線(xiàn)電路圖
        基于AD9250的高速數(shù)據(jù)接口設(shè)計(jì)
        電子制作(2018年2期)2018-04-18 07:13:24
        讀數(shù)
        讀數(shù)
        讀數(shù)
        讀數(shù)
        PCI-e高速數(shù)據(jù)采集卡的驅(qū)動(dòng)與上位機(jī)軟件設(shè)計(jì)
        電子器件(2015年5期)2015-12-29 08:43:12
        基于AD7891的浮空器高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
        亚洲av蜜桃永久无码精品| 夜夜爽无码一区二区三区| 欧美一级在线全免费| 中文字幕一区,二区,三区| 国产一级黄片久久免费看| 日韩三级一区二区三区| 中文在线8资源库| 女女女女bbbbbb毛片在线| 欧美视频在线观看一区二区| 久九九久视频精品网站| 伊人久久综合狼伊人久久| 开心激情视频亚洲老熟女| 337p日本欧洲亚洲大胆| 性一交一乱一透一a级| 99国产精品丝袜久久久久| 麻豆激情视频在线观看| 国产成人精品无码免费看| 亚洲国产精品福利片在线观看| 亚洲AV无码一区二区二三区我| 国产av大片在线观看| 日本美女在线一区二区| 成年女人粗暴毛片免费观看| 免费人成又黄又爽的视频在线 | 国产精品久久成人网站| 成 人 色综合 综合网站| 天天狠天天透天干天天| av是男人的天堂免费| 男女肉粗暴进来动态图| 久久精品无码中文字幕| 国产精品偷伦免费观看的| 成年女人18毛片观看| 日本韩国男男作爱gaywww| 国产自偷亚洲精品页65页| 午夜无码片在线观看影院y| 久久一区二区三区少妇人妻| 野外亲子乱子伦视频丶| 日韩中文无线码在线视频观看| 一区二区三区视频偷拍| 99精品视频69v精品视频| 蜜桃臀无码内射一区二区三区| 国产免费的视频一区二区|