• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

      史 赟,鄭永秋,任勇峰

      (中北大學電子測試技術(shù)國家重點實驗室,山西太原 030051)

      0 引言

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

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

      1 三級緩存基本原理

      圖1為三級緩存結(jié)構(gòu)示意圖。一級緩存為數(shù)據(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)成一個8位數(shù)據(jù)位寬,容量為2 KByte的內(nèi)部FIFO。與之對稱的是三級緩存,它的構(gòu)造和一級緩存一樣,是數(shù)據(jù)的輸出緩存,作為輸出接口與外部計算機進行通信。為了不使數(shù)據(jù)在輸入緩存丟數(shù),設定輸入的高速數(shù)據(jù)在輸入緩存中達到10 Byte后,就會存入二級緩存,使容量更大的二級緩存作為主要的存儲緩存;而只有接到讀數(shù)請求后,二級緩存才會將數(shù)據(jù)寫入輸出緩存,輸出緩存中有512 Byte數(shù)據(jù)時,數(shù)據(jù)就會上傳到計算機,所以將輸入和輸出緩存容量設置為2 KByte,緩存容量有較大的冗余量,不會存在溢出問題。

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

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

      2 硬件設計

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

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

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

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

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

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

      3 邏輯設計

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

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

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

      3.1 寫FIFO模塊設計

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

      圖4 寫FIFO模塊流程圖Fig.4 Flow chart ofwriting FIFOmodule

      3.2 讀FIFO模塊設計

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

      3.3 SRAM控制模塊設計

      SRAM控制模塊包括寫SRAM和讀SRAM兩部分,寫SRAM是由一級緩存FIFO的半滿信號觸發(fā)的,當半滿信號有效時,開始寫SRAM。讀SRAM是通過讀FIFO模塊傳遞過來的request信號來控制的,當request信號有效時,讀取SRAM中的數(shù)據(jù),然后將它寫入到三級FIFO。通過SRAM的3個控制端來控制外部的SRAM的讀寫操作,具體的SRAM控制模塊的流程圖如圖5所示。

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

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

      圖6 SRAM寫時序Fig.6 Time sequence of writing SRAM

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

      圖7 SRAM讀時序Fig.7 Time sequence of reading SRAM

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

      4 測試與結(jié)論

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

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

      [1]王鵬,伊鵬,金德鵬,等.基于三級存儲陣列緩存高速數(shù)據(jù)包及性能分析[J].軟件學報,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ù)緩存的設計[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]張永樂,任勇峰,李圣昆.FPGA在多串口讀數(shù)系統(tǒ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ù)傳輸中的應用[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é)議及實現(xiàn)[J].長春科技大學學報,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] 于祥鳳,劉學斌,胡炳樑,等.基于FPGA的高速數(shù)據(jù)存儲系統(tǒng)中FIFO控制的設計[J].核電子學與探測技術(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ù)字電路中“邏輯非”的用法辨析
      鐵道車輛高/低電平信號智能發(fā)生器設計
      2017款凱迪拉克2.8L/3.0L/3.2L/3.6L車型低電平參考電壓總線電路圖
      基于AD9250的高速數(shù)據(jù)接口設計
      電子制作(2018年2期)2018-04-18 07:13:24
      讀數(shù)
      中國公路(2017年19期)2018-01-23 03:06:36
      讀數(shù)
      中國公路(2017年15期)2017-10-16 01:32:04
      讀數(shù)
      中國公路(2017年9期)2017-07-25 13:26:38
      讀數(shù)
      中國公路(2017年7期)2017-07-24 13:56:40
      PCI-e高速數(shù)據(jù)采集卡的驅(qū)動與上位機軟件設計
      電子器件(2015年5期)2015-12-29 08:43:12
      基于AD7891的浮空器高速數(shù)據(jù)采集系統(tǒng)設計
      博白县| 滦南县| 顺义区| 荣成市| 仪陇县| 水富县| 财经| 江川县| 土默特左旗| 泰兴市| 长顺县| 元谋县| 荔波县| 庆城县| 遂溪县| 阿坝| 措美县| 临桂县| 岳阳县| 苏州市| 灵台县| 富宁县| 津市市| 新密市| 滦平县| 隆子县| 吉水县| 阿瓦提县| 惠水县| 库尔勒市| 六盘水市| 莫力| 上饶县| 昌黎县| 论坛| 高雄县| 商水县| 双柏县| 靖西县| 桐梓县| 科技|