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

          關 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設計應用 > 簡化PCI總線協(xié)議的實現(xiàn)以及FPGA驅動設計

          簡化PCI總線協(xié)議的實現(xiàn)以及FPGA驅動設計

          作者: 時間:2009-02-19 來源:網(wǎng)絡 收藏

          目前,許多公司都提出了新型的計算機高速總線,如Arapahoe總線標準和HyperTransport技術,但各協(xié)議互不兼容,沒有形成統(tǒng)一標準。作為傳統(tǒng)的通用局部總線,總線仍然占據(jù)著主流個人電腦市場,具有頑強的生命力。

          本文引用地址:http://www.ex-cimer.com/article/202715.htm

            現(xiàn)在市面上存在著各種接口芯片,如AMCC公司的S5933,PLX的9080系列等。專用芯片可以實現(xiàn)完整的主設備與從設備模式的接口功能,將復雜的PCI總線接口轉化相對簡單的用戶接口,但系統(tǒng)結構受接口芯片的限制,不能靈活地設計目標系統(tǒng),且成本較高。本文使用符合PCI電氣特性的芯片進行簡化的PCI接口邏輯設計,實現(xiàn)了33MHz、32位數(shù)據(jù)寬度的PCI從設備模塊的接口功能,節(jié)約了系統(tǒng)的邏輯資源,且可以將其它用戶邏輯集成在同一塊芯片,降低了成本,增加了設計的靈活性。另外,還給出了Windows9x系統(tǒng)下的設備驅動程序,可以與應用程序接口,形成一個完整的系統(tǒng)。目前,本系統(tǒng)已經被印染企業(yè)應用在數(shù)據(jù)采集和處理等方面。

            1 系統(tǒng)構成與功能描述

            系統(tǒng)的總體框圖如圖1所示。

            由圖1可見,系統(tǒng)的硬件平臺為一塊PCI卡。此卡的結構十分簡潔,主要由芯片、RAM芯片和輸出接口三部分組成。其中,芯片集成了PCI接口模塊和數(shù)據(jù)處理模塊。PCI接口模塊實現(xiàn)了33MHz工作時鐘、32位總線寬度的接口功能,支持I/O空間、內存空間及配置空間的讀寫和PCI中斷功能。由于簡化的PCI接口占用的邏輯資源較少,可在同一塊芯片中集成其他用戶邏輯。作為一個應用實例,本文加入了一個數(shù)據(jù)處理模塊,對PCI接口傳送來的數(shù)據(jù)進行處理,通過片外的輸出接口輸出到下位機。RAM芯片為數(shù)據(jù)處理提供緩存功能。

          2 從設備模式下的簡化PCI協(xié)議的實現(xiàn)

            為了實現(xiàn)PCI接口的基本功能,必須完成以下幾個模塊:

           ?。?)PCI配置空間設置。PCI協(xié)議支持三種地址空間:I/O空間、內存空間和配置空間。配置空間提供了支持PCI設備自動配置的機制,是必需的。

           ?。?)PCI從設備狀態(tài)機。PCI總線狀態(tài)機是具有PCI總線的計算機系統(tǒng)狀態(tài)流,是由一個已知狀態(tài)到另一個狀態(tài)的條件、時序的描述。這是PCI接口設計中最基本也是最重要的部分。

           ?。?)地址譯碼和命令譯碼。地址譯碼用來確定PCI設備是否應當響應當前總線的操作;命令譯碼則用來指示PCI設備根據(jù)不同的總線命令作出相應的動作。

            本文采用ALTERA公司的Max+PlusII軟件平臺,硬件描述語言使用ALTERA HDL語言,也可以方便地轉換民VHDL或VerilogHDL語言。在此之前,先引入PCI總線信號的定義。

            2.1 總線信號定義

            根據(jù)PCI2.2版,從設備模式下PCI接口至少包含47根引腳。圖2給出了按功能劃分的引腳分布,左邊是必需引腳。右邊是可選引腳。為簡化起見,本文采用了如下引腳,其他引腳均不使能或置為高阻態(tài)。

           ?。?)由系統(tǒng)提供的33MHz的同步時鐘信號CLK和復位信號RST#(#表示低電平有效);

           ?。?)關于數(shù)據(jù)傳輸?shù)暮诵男盘枺?2位地址/數(shù)據(jù)復用線AD[31:0]、總線命令/字節(jié)使能復用線C/BE[3:0]#和偶校驗信號PAR;

           ?。?)接口控制信號FRAME#、TRDY#、IRDY#、STOP#、DEVSEL#和IDSEL。其中,F(xiàn)RAME#為數(shù)據(jù)傳輸起止信號,TRDY#為主設備準備好信號,IRDY#為從設備準備好信號,STOP#為從設備停止請求信號,DEVSEL#為設備選擇信號,IDSEL為配置空間讀寫時的片選信號;

           ?。?)中斷引腳INTA#。

            為簡化PCI協(xié)議,本文只實現(xiàn)了最重要的總線命令,表1給出了所支持的總線命令對應的C/BE[3:0]#編碼值。

            表1 支持的總線命令

          C/BE[3:0]# 命令類型說明
          0010

            0011

            0110

            0111

            1010

            1011
          I/O讀

            I/O寫

            存儲器讀

            存儲器寫

            配置空間讀

            配置空間寫


            2.2 配置空間設置

            配置空間大小為256字節(jié),前64字節(jié)必需,記錄了PCI設備的基本住處,比較重要的有:

           ?。?)VendorID、DeviceID和Class Code域:分別表示設備的生產廠商、設備編號和類型;

           ?。?)Command和Status域:分別給出了對PCI設備的控制命令和當前狀態(tài);

           ?。?)Base Adress Register域:指示此PCI設備按I/O方式還是內存方式進行讀寫以及需要的地址空間大??;

            (4)Interrupt Line和Interrupt Pin域:分別指明了設備使用的斷號和中斷引腳。

            在對配置空間的訪問中,用AD[7:2]尋址一個雙字DWORD。在本設計中,配置空間設置如表2所示。

            2.3 簡化的從設備狀態(tài)機

            在PCI協(xié)議中,標準的從設備狀態(tài)機包含五種狀態(tài),而且各狀態(tài)的跳轉條件比較復雜。本文在不違反PCI協(xié)議的前提下,簡化了從設備的狀態(tài)機,如圖3所示。

            圖3中,狀態(tài)轉移條件信號a、b、c定義如下:a代表配置空間訪問條件,b代表I/O空間或內存空間訪問條件,c代表總線傳輸開始條件。這三個條件的實現(xiàn)由后面的命令譯碼模塊給出。

            表2 配置空間設置(均為十六進制)

          字 段 值或含義 字段 值或含義
          VendorID 1172 Class Code 040000,即視頻卡
          DeviceID 8901 Base Adress Register 映射到I/O空間
          Command 0082 Interrupt Line 中斷號A
          Status 0400 Interrupt Pin 使用INTA中斷引腳


            IDLE是系統(tǒng)的缺省狀態(tài),表示總線當前空閑。通常,設備處在IDLE狀態(tài)時,要檢測來自PCI總線和后級設備的信號,便設備作出合適的響應。設備處于S_DATA狀態(tài)時完成第一次數(shù)據(jù)傳輸,直接無條件跳到BACKOFF狀態(tài)。設備在BACKOFF狀態(tài)時進行多個數(shù)據(jù)傳輸,直到主設備斷開訪問。需要注意的是:任何對I/O空間、配置空間以及內存空間的突發(fā)傳輸?shù)牡刂烦^了設備映射地址的范圍時,從設備要在此狀態(tài)建立STOP信號,斷開訪問。當幀信號無效或主設備終止傳輸時,設備回到初始的IDLE狀態(tài)。BUS_BUSY狀態(tài)時總線忙,表示總線正在被其它設備使用。有兩條轉移路徑,若總線仍然被占用,則停留在BUS_BUSY狀態(tài),否則返回空頭狀態(tài)IDLE。

            2.4 地址譯碼和命令譯碼模塊


          上一頁 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); })();