• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > SOPC實現的PCI總線高速數據傳輸系統

    SOPC實現的PCI總線高速數據傳輸系統

    作者: 時間:2014-02-21 來源:網絡 收藏

      DMA傳輸系統功能模塊之間的交互過程如圖3所示,過程描述如下:

      (1)CPU等待PC使能DMA傳輸,PC使能DMA后,執行(2);

      (2)PC等待乒乓RAM的數據準備好信號,數據準備好后,執行(3);

      (3) CPU將DMA的讀/寫地址和傳輸長度參數寫入DMA控制器中,使能DMA控制器,DMA控制器開始數據傳輸,即讀口通過DMARD接口從RAM中讀數,寫口將數據寫到PCI橋,PCI橋將數據送至;

      (4)當傳輸結束后,DMA控制器產生一個中斷(IRQ1)送CPU;

      (5)CPU判斷傳輸是否完成,傳輸完成則通過PCI橋向PC發送中斷,并執行(1),開始下一次DMA傳輸;

      (6)發生異常時,PCI橋邏輯中斷CPU,CPU查詢異常狀態,并自動從異常中恢復。

    2.2 PCI總線異常的自動處理

      PCI總線DMA傳輸過程中,可能出現的異常包括:

      (1)PCI總線上SERR信號為高,系統錯誤。

      (2)PCI總線上PERR信號為高,數據奇偶校驗錯誤;

      (3)主設備或從設備中止傳輸;

      (4)主設備或從設備中止傳輸,或重試次數超過門限,導致PCI橋對總線讀/寫失敗。

      在偵察接收系統設計中,上述異常一旦發生,PCI接口便中斷NiosCPU,CPU接收到中斷后,通過查詢PCI橋的控制寄存器訪問(Control RegisterAccess,CRA)空間,獲得異常信息。系統錯誤發生時,PCI接口設備是沒有辦法恢復的,在這種情況下,NiosCPU可點亮指示燈,指示系統錯誤發生;其它異常情況發生后,Nios CPU可立即通過對DMA控制器的狀態空間的長度寫零來停止DMA傳輸,然后重新啟動DMA傳輸,讓系統從異常中恢復過來。

      2.3 提高PCI總線DMA速率的優化措施

      為了盡可能提高DMA傳輸速率,本方案中共采取了以下三個方面的措施。

      (1)PCI總線的突發傳輸與Avalon總線的流水線操作

      為了提高系統傳輸速率,應充分利用PCI總線的突發傳輸特性,使PCI總線處于突發傳輸狀態。為此,在系統設計中,一方面使Avalon總線工作于流水線模式下,降低Avalon總線的延遲時間;另一方面適當增大緩存存儲空間,避免因緩沖區滿造成的傳輸延遲等待。

      (2)DMA控制的優化

      為了使DMA傳輸更為靈活,如程序運行過程中改變DMA長度、讀寫地址、數據的幀長度,以及發生異常時程序自動恢復等,本文中使用Nio sCPU控制DMA傳輸。CPU的主要任務是在PC使能DMA和數據準備好時啟動DMA傳輸,應盡可能使程序緊湊,減少冗余操作,做到條件具備立即啟動DMA傳輸。

      (3)功能模塊的時鐘設置

      如圖2所示,中包括7個功能組件,為了進一步提高系統的速度,需要分別讓這7個組件的時鐘處于最佳狀態。PCI總線訪問相關組件的時鐘為33MHz,Nios CPU相關的組件運行在150MHz時鐘上。使系統在正確穩定運行的基礎上,最大限度地提高運行速度。

      3 結束語

      該方案將PCI橋和用戶邏輯在一片FPGA中實現,減少了硬件電路的復雜度、降低了系統成本;采用創建PCI橋,大大縮短了開發周期,提高了系統的可靠性,且因使用了片上Nios CPU進行DMA的在線配置和自動異常處理,使DMA傳輸更加靈活。通過在EP3C120芯片上驗證,該設計能夠實現大于100Mbytes /s的PCI總線DMA傳輸速率。


    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 长宁县| 通城县| 蕲春县| 象山县| 浦东新区| 定结县| 汝阳县| 石泉县| 读书| 凤庆县| 沙坪坝区| 郑州市| 景泰县| 探索| 民乐县| 临澧县| 滨州市| 牙克石市| 霸州市| 岳阳县| 麻栗坡县| 满洲里市| 樟树市| 建湖县| 义马市| 西乡县| 阳春市| 通海县| 道真| 松滋市| 新沂市| 五寨县| 会同县| 黄骅市| 孟津县| 额敏县| 怀来县| 漳浦县| 义马市| 德安县| 宜昌市|