<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > PCI總線目標控制器的設計

          PCI總線目標控制器的設計

          作者: 時間:2012-11-07 來源:網(wǎng)絡 收藏

          0引言

            (PeripheralComponentInterconnect)總線是微型計算機中處理器/存儲器與外圍控制部件、擴展卡之間的互聯(lián)接口。總線規(guī)范是互聯(lián)機構(gòu)的協(xié)議,以及電氣和機械配置的規(guī)范,是當今高性能微型計算機事實上的總線標準。[1]

            總線控制器為PCI總線和用戶設備提供操作接口,協(xié)調(diào)PCI總線信號和用戶設備接口信號,使用戶設備能夠按照PCI總線的規(guī)范進行數(shù)據(jù)的傳輸。本文設計了一個適用于CMOS圖象處理的PCI,具有較強的通用性。

          1控制器的頂層設計

            PCI總線目標設備在總線傳輸中處于被動地位,它不會申請對總線的使用權(quán)。當PCI總線上的某一主設備發(fā)起對本地資源的訪問時,整個控制邏輯的建立和數(shù)據(jù)傳輸?shù)倪^程都是通過實現(xiàn)的。


          圖1頂層結(jié)構(gòu)

            PCI系統(tǒng)中,目標設備在地址周期內(nèi)響應總線主設備的傳輸要求,并配合主設備完成整個數(shù)據(jù)傳輸。圖1為目標控制器的詳細結(jié)構(gòu)圖。

            本設計將目標控制器按照功能分為幾個功能模塊實現(xiàn),即命令解碼器、、FIFO類型目標接口和寄存器型目標接口。命令解碼模塊和構(gòu)成目標控制器的控制部分,PCI主設備發(fā)起某類型的操作,目標控制器在地址周期內(nèi)解析相應的地址和命令信息。在解析地址確定為本次操作的目標設備后,目標控制器會啟動目標設備根據(jù)當前解碼的信息進行一系列的控制操作。FIFO類型通道用于大批量的數(shù)據(jù)傳輸,可將本地存儲器塊掛接在該類型的數(shù)據(jù)通道上;寄存器類型接口用于數(shù)據(jù)量小的數(shù)據(jù)傳輸,該接口的后面可以掛接配置寄存器和一些本地功能設備的控制/狀態(tài)寄存器塊。這樣,PCI總線上的主設備既可以訪問到本地的存儲器設備也可以訪問本地的寄存器。下面從目標控制器的數(shù)據(jù)路徑和控制路徑分別進行論述。

          2控制模塊實現(xiàn)

            目標控制器的控制由兩部分完成,命令解碼器和目標狀態(tài)機。命令解碼器解碼來自PCI總線上的地址命令信息作為目標狀態(tài)機的輸入,狀態(tài)機鑒于此輸入執(zhí)行相應的操作。

            (1)命令解碼器:PCI總線主設備在地址周期內(nèi)通過命令數(shù)據(jù)線(C/BE#)設置不同的編碼可以發(fā)起以下的操作,I/O讀寫、存儲器讀寫、配置讀寫、存儲器行讀/多行讀和存儲器寫及使無效。

           ?。?)目標狀態(tài)機[3]:對于PCI總線上傳來的信號,狀態(tài)機根據(jù)命令解碼器的解碼信息來控制總線控制器進行相應的操作。如果地址信息不正確或者本地的設備正忙于存取數(shù)據(jù),狀態(tài)機會向PCI總線上發(fā)起本次操作的主設備回應目標丟棄或目標重試。目標狀態(tài)機的具體設計,如圖2所示。


          圖2目標設備接口狀態(tài)機
          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();