一種基于PCI總線的反射內(nèi)存卡設(shè)計

訊石光通訊網(wǎng) 2011/5/10 8:19:49
        對實時傳輸, 傳統(tǒng)的以太網(wǎng)絡由于傳輸協(xié)議開銷的不確定性, 很難滿足實時網(wǎng)絡的要求, 實時網(wǎng)絡是一種應用于高實時性要求的專用網(wǎng)絡通信技術(shù), 一般采用基于高速網(wǎng)絡的共享存儲器技術(shù)實現(xiàn)。除了具有嚴格傳輸確定性和可預測性外, 還具有傳輸速度高、通訊協(xié)議簡單、軟硬件平臺適應性強、可靠的傳輸糾錯能力、支持中斷信號的傳輸?shù)忍攸c。鑒于以上原因, 設(shè)計一款反射內(nèi)存卡, 寫入一個節(jié)點的內(nèi)存的數(shù)據(jù)可以通過網(wǎng)絡硬件傳輸?shù)狡渌械墓?jié)點。

  1.硬件設(shè)計

  反射內(nèi)存卡系統(tǒng)的總體框圖如圖1 所示, 主要由5部分組成:FPGA、PCI 接口、SDRAM、數(shù)據(jù)編解碼電路、光纖收發(fā)電路。

  其中,F(xiàn)PGA 內(nèi)部包含SDRAM控制器和FIFO 控制器、編解碼控制器、接收FIFO、發(fā)送FIFO、中斷FIFO及中斷控制等。FPGA 選用Cyclone II 系列的EP2C35F484C7;PCI 選用PLX 公司的PCI9054,能夠提供兩個獨立的DMA 引擎,每個都可以進行讀寫,在一個DMA 讀取數(shù)據(jù)的同時另一個DMA 可以寫入數(shù)據(jù),加快系統(tǒng)工作速度; 編解碼芯片選用安捷倫的H D M P -1636A,提供十位的并行IO,串行數(shù)據(jù)傳輸速率達1062.5MBd,負責數(shù)據(jù)串并行和并串行轉(zhuǎn)換,以便與光纖收發(fā)器內(nèi)部數(shù)據(jù)格式進行匹配; 光纖收發(fā)器選用安捷倫的HFBR-57L5AP,支持多模光纖,串行傳輸速率達1.0625Gb/s,負責將電信號轉(zhuǎn)化為光信號, 通過光纖向下一節(jié)點傳輸。 


圖1 反射內(nèi)存卡系統(tǒng)的總體框圖



  1.1 SDRAM 控制器

  與雙端口RAM 相比,SDRAM 容量大、價格低,采用128M 的SDRAM 作為反射內(nèi)存卡的數(shù)據(jù)存儲器。由于SDRAM 讀寫不能同時進行,且需要刷新維護,因此,需要設(shè)計SDRAM 控制器。

  SDRAM 控制器實現(xiàn)對SDRAM 的讀寫控制與仲裁,提供類似于雙端口RAM 的外部接口。SDRAM 控制器內(nèi)部由初始化模塊、刷新計數(shù)器、地址多路開關(guān)、仲裁及信號產(chǎn)生器等組成,SDRAM 控制器結(jié)構(gòu)如圖2 所示。 


圖2 SDRAM 控制器結(jié)構(gòu)圖


 

  SDRAM 控制器內(nèi)部各模塊功能如下:

  (1) 初始化模塊在上電之后對SDRAM 的模式寄存器進行設(shè)置;(2) 刷新計數(shù)器對SDRAM 進行定時刷新;(3) 地址多路開關(guān)將地址總線上的地址轉(zhuǎn)化為SDRAM 的行列地址;(4) 仲裁機構(gòu)要對上位機讀、上位機寫、網(wǎng)絡寫和刷新等操作做出仲裁。當讀寫和刷新同時產(chǎn)生時, 先完成相應的讀寫操作然后再刷新, 而上位機讀、上位機寫、網(wǎng)絡寫這三種操作的優(yōu)先級從高到低依次是網(wǎng)絡寫、上位機讀、上位機寫;(5) 信號產(chǎn)生器根據(jù)不同的讀寫操作產(chǎn)生不同的讀寫信號, 從而SDRAM 可以正常工作, 而不發(fā)生讀寫沖突。

  1.2 FIFO 控制器

  在峰值速率下進行數(shù)據(jù)傳輸,SDRAM 存儲器很難達到要求,所以使數(shù)據(jù)經(jīng)過FIFO 緩存后發(fā)送或接收,可以降低了對存儲器傳輸速率的要求, 實現(xiàn)較高的傳輸速率。設(shè)計了FIFO 控制器,它由數(shù)據(jù)解析、數(shù)據(jù)封裝、仲裁、讀信號產(chǎn)生器、寫信號產(chǎn)生器組成。FIFO 控制器結(jié)構(gòu)如圖3 所示。 


圖3 FIFO 控制器結(jié)構(gòu)圖



  FIFO 控制器內(nèi)部各模塊功能如下:

  (1) 數(shù)據(jù)解析對從網(wǎng)絡中接收的數(shù)據(jù)進行判斷,如果是中斷事件將中斷數(shù)據(jù)寫到中斷FIFO 中,如果是需要共享的數(shù)據(jù)則一部分送到SDRAM 控制器,一部分送仲裁機構(gòu);(2) 數(shù)據(jù)封裝對本節(jié)點發(fā)送的數(shù)據(jù)重新打包,加入數(shù)據(jù)類型、數(shù)據(jù)包長度、發(fā)送節(jié)點ID、目標節(jié)點ID 及校驗等相關(guān)信息,以便于其他節(jié)點對數(shù)據(jù)進行解析;(3) 仲裁機構(gòu)對來自接收FIFO 的數(shù)據(jù)和本節(jié)點發(fā)送到數(shù)據(jù)進行仲裁, 當他們同時到達時來自接收FIFO的數(shù)據(jù)優(yōu)先;(4) 讀信號產(chǎn)生器在接收到半滿中斷時產(chǎn)生讀信號,從接收FIFO 中讀出相應的數(shù)據(jù),避免FIFO 充滿或溢出;(5) 寫信號產(chǎn)生器在仲裁機構(gòu)向下發(fā)送數(shù)據(jù)時給發(fā)送FIFO一個寫信號。FIFO控制器仿真時序如圖4所示。 


圖4 FIFIO 控制器仿真時序


 
  1.3 編解碼控制器

  編解碼控制器由信號產(chǎn)生器、數(shù)據(jù)校驗、8B/10B編碼、8B/10B 解碼組成。編解碼控制器結(jié)構(gòu)如圖5 所示。在這部分主要是進行數(shù)據(jù)8B/10B 編解碼,以與編解碼芯片數(shù)據(jù)格式匹配同時給編解碼芯片的正常工作提供控制信號,數(shù)據(jù)編解碼控制器仿真時序如圖6 所示。 


圖5 編解碼控制器結(jié)構(gòu)圖


圖6 數(shù)據(jù)編解碼仿真時序



 

  2.軟件設(shè)計

  軟件設(shè)計包括驅(qū)動程序和應用程序兩部分。驅(qū)動程序提供的API 接口主要包含以下四個方面的功能: 打開和關(guān)閉驅(qū)動、配置反射內(nèi)存卡、數(shù)據(jù)傳輸、中斷控制與處理。當應用程序訪問反射內(nèi)存卡資源時,反射內(nèi)存板必須打開, 一個句柄將返回到應用程序。圖7是應用程序處理的流程圖。 


圖7 應用程序流程圖

 

  3.性能測試

  用三塊反射內(nèi)存卡組成環(huán)形反射內(nèi)存網(wǎng), 由節(jié)點1向2 節(jié)點發(fā)送數(shù)據(jù), 節(jié)點2 發(fā)送到節(jié)點3, 由節(jié)點3 向節(jié)點1 發(fā)送確認中斷, 記下此時的終止時間, 如表1 所示。

  該反射內(nèi)存卡在windows 操作系統(tǒng)下進行測試,由于windows 為非實時操作系統(tǒng),所以需發(fā)送大批量的數(shù)據(jù)進行速率測試, 以克服操作系統(tǒng)本身的時延。試驗中每次發(fā)送15Mbit 的數(shù)據(jù),根據(jù)傳輸速率= 總數(shù)據(jù)量/ 總時間算出傳輸速率。又由編解碼芯片的串行傳輸速率為1062.5MBd,數(shù)據(jù)傳輸速率為106.25MB/s,而數(shù)據(jù)包的長度是可變的, 從1 個雙字到16 個雙字, 每包數(shù)據(jù)包括32 位的header、32 位的地址數(shù)據(jù)和32 位的校驗和,所以有效的數(shù)據(jù)傳輸速率在26MB/s 至88MB/s,我們測得的數(shù)據(jù)傳輸率為38.9 MB/s 至39.9 MB/s,可以得出該反射內(nèi)存樣卡功能正常。 


表1 環(huán)形通訊傳輸速率表


 

  4.結(jié)束語

  本文介紹了一種基于PCI 總線的反射內(nèi)存卡的設(shè)計方法。給出了硬件電路設(shè)計,在FPGA 內(nèi)完成數(shù)據(jù)緩存FIFO 及其控制器、SDRAM 控制器和編解碼控制器的設(shè)計, 結(jié)構(gòu)清晰, 集成度高; 介紹了驅(qū)動程序的設(shè)計,提供了應用程序接口; 采用三塊反射內(nèi)存卡搭建了驗證系統(tǒng), 實驗證明該反射內(nèi)存樣卡功能正常, 工作穩(wěn)定。

新聞來源:互聯(lián)網(wǎng)a5

相關(guān)文章

    暫無記錄!