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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于Wishbone片上總線的PCI Bridge核的研究和應(yīng)

          基于Wishbone片上總線的PCI Bridge核的研究和應(yīng)

          作者: 時(shí)間:2005-08-08 來源:網(wǎng)絡(luò) 收藏

          摘要:討論了主橋的應(yīng)用和片上技術(shù),詳細(xì)介紹了 核的功能、內(nèi)部結(jié)構(gòu)和操作方式。實(shí)驗(yàn)證明,在系統(tǒng)中使用PCI 核進(jìn)行開發(fā)設(shè)計(jì),電路簡潔,使用方便靈活。

          關(guān)鍵詞:PCI主橋;片上;PCI橋核

          自PCI協(xié)議問世以來,PCI總線應(yīng)用越來越廣泛,現(xiàn)已成為事實(shí)上的計(jì)算機(jī)總線標(biāo)準(zhǔn)。隨著PCI應(yīng)用和開發(fā)的深入,往往需要在復(fù)雜的PCI系統(tǒng)中使用PCI橋來完成設(shè)計(jì)工作,包括使用主/PCI橋來完成整個(gè)系統(tǒng)的初始化配置過程。PCI橋的使用已從傳統(tǒng)的PC機(jī)領(lǐng)域拓展到更多的電子應(yīng)用系統(tǒng)中。

          1 PCI主橋簡介

          在復(fù)雜的PCI系統(tǒng)中,往往擁有不只一條PCI總線。為了提高PCI系統(tǒng)的負(fù)載能力,可用PCI-PCI橋把各條PCI總線連接起來,同時(shí)在處理器總線與PCI總線之間使用主/PCI橋來完成總線轉(zhuǎn)換,以形成完整的PCI系統(tǒng)。常用的PCI系統(tǒng)結(jié)構(gòu)如圖1所示。

          系統(tǒng)上電時(shí),主CPU(處理器)對PCI目標(biāo)設(shè)備的初始化也稱為配置訪問。由于PCI目標(biāo)設(shè)備所定義的配置空間通常不在CPU的存儲(chǔ)器和I/O空間中,所以需要一種特殊的機(jī)制來執(zhí)行配置訪問。這種機(jī)制通常由主/PCI橋來完成。配置軟件在上電后能夠掃描PCI總線,以確定現(xiàn)有哪些PCI設(shè)備,并根據(jù)它們的配置要求分別進(jìn)行配置。配置完成后,各個(gè)PCI目標(biāo)設(shè)備就可以在PCI總線控制器的協(xié)調(diào)仲裁下正常工作。

          在PC兼容系統(tǒng)中,主/PCI橋也稱為北橋,用于連接主處理器總線和基礎(chǔ)PCI局部總線(第一級(jí)PCI總線)。北橋芯片內(nèi)通常集成有主存儲(chǔ)器控制器,因此處理速度很快。南橋芯片內(nèi)一般集成有IDE控制器、USB和其它速度較慢的I/O控制器,因此處理速度相對較慢。南北橋構(gòu)成芯片組。

          2 Wishbone片上總線技術(shù)

          片上系統(tǒng)SOC(System-On-Chip)技術(shù)近兩年發(fā)展迅速,越來越多的廠商開始開發(fā)自己的IP核,然后提供給系統(tǒng)集成者。而各廠商采用自己定義的IP核接口規(guī)范來開發(fā)產(chǎn)品,使得系統(tǒng)集成成為一個(gè)棘手的問題。為了提供IP核的可重用性,實(shí)現(xiàn)眾多廠商IP核的有效互連,片上總線OCB(On-Chip-Bus)技術(shù)就應(yīng)運(yùn)而生了。目前在SOC領(lǐng)域較有影響的三種片上總線標(biāo)準(zhǔn)為:IBM公司的Core-connect、ARM公司的AMBA和SilicoreCorp公司的Wishbone總線。其中Wishbone總線已經(jīng)被全球最大的開放IP組織(Opencores)列為主要支持的SOC內(nèi)部互連總線協(xié)議。遵循Wishbone總線協(xié)議的IP核可以很快有效地集成到SOC中。目前,Opencores上很多開放的IP核接口都采用Wishbone總線設(shè)計(jì)。而且越來越多的IP核商用廠商也宣布支持Wish-bone總線協(xié)議。

          Wishbone總線最大的特點(diǎn)是結(jié)構(gòu)簡單靈活,需要邏輯門少;同時(shí)完全免費(fèi)、完全公開。Wishbone規(guī)范支持完整的普通數(shù)據(jù)傳輸協(xié)議,包括單個(gè)讀寫周期、塊傳輸?shù)?。?shù)據(jù)總線寬度為8~64位(寬度仍然可以擴(kuò)展),地址總線可以達(dá)到64位;最快時(shí)一個(gè)時(shí)鐘周期就可進(jìn)行一次數(shù)據(jù)傳輸;支持握手協(xié)議,速率可以調(diào)整;支持出錯(cuò)重試等。在Wishbone總線規(guī)范中,可使用Master/Slave結(jié)構(gòu)實(shí)現(xiàn)非常靈活的系統(tǒng)設(shè)計(jì)。Master和Slave有四種互連方式,分別為:點(diǎn)對點(diǎn)、數(shù)據(jù)流、共享總線和交叉互連。其中點(diǎn)對點(diǎn)方式是連接一個(gè)Master和一個(gè)Slave最簡單的方式,使用起來非常方便。圖2給出了采用點(diǎn)對點(diǎn)互連方式的Wishbone主/從接口圖。其中SYSCON為產(chǎn)生RST復(fù)位和CLK時(shí)鐘信號(hào)的模塊,TAGN為用戶自定義信號(hào)。

          Wishbone 在Master和Slave之間使用的握手協(xié)議如圖3所示。當(dāng)準(zhǔn)備好傳輸數(shù)據(jù)時(shí)?Master使STB O信號(hào)有效,STB O狀態(tài)將一直保持到Slave的結(jié)束信號(hào)ACK O、ERR O 或 RTY O?對Master而言是ACK I?ERR I和RTY I? 之一聲明有效。Master在每一個(gè)CLK I的上升沿對結(jié)束信號(hào)采樣?如果該信號(hào)有效?STB O信號(hào)變低。此外,Wishbone接口的兩邊都能夠完全控制數(shù)據(jù)傳送的速率。

          3 PCI

          開放IP組織Opencores提供的PCI Bridge Core提供了Wishbone片上系統(tǒng)總線和PCI邏輯總線的接口。PCI Bridge Core由兩個(gè)相對獨(dú)立的單元組成:一個(gè)單元處理由PCI總線方啟動(dòng)的數(shù)據(jù)交易,另一個(gè)單元?jiǎng)t處理由Wishbone總線方啟動(dòng)的交易。它是一個(gè)PCI總線和Wishbone總線之間真正的橋。

          PCI 橋核支持32位PCI總線接口,并完全兼容PCI2.2協(xié)議(支持66MHz規(guī)范);它含有獨(dú)立的主橋、從橋功能模塊和完整的命令/狀態(tài)寄存器;支持Wishbone SOC互連協(xié)議B版本(包括B1和B3);此外,它可通過Wishbone接口支持32位總線操作;并可配置片上FIFO。

          3.1 PCI Bridge內(nèi)部結(jié)構(gòu)

          PCI橋核由兩個(gè)相對獨(dú)立的單元模塊組成:PCI目標(biāo)單元和Wishbone從單元。每個(gè)單元自身都有一套完整的功能來支持Wishbone和PCI總線之間的交易。Wishbone從單元可作為PCI橋中Wish-bone側(cè)的從設(shè)備和PCI側(cè)的主設(shè)備啟動(dòng)交易;PCI目標(biāo)單元?jiǎng)t可作為PCI橋中PCI側(cè)的目標(biāo)設(shè)備和Wishbone側(cè)的主設(shè)備啟動(dòng)交易。兩個(gè)單元互相獨(dú)立。PCI目標(biāo)單元用于實(shí)現(xiàn)PCI總線從設(shè)備接口和Wishbone總線的主設(shè)備接口;而Wishbone從單元?jiǎng)t用于實(shí)現(xiàn)Wishbone總線從接口和PCI總線的主設(shè)備接口。

          圖4是PCI橋核的內(nèi)部結(jié)構(gòu)。

          3.2 PCI Bridge的操作

          PCI橋核有兩種應(yīng)用方式:主、從橋(相對PCI總線而言)。作為從橋時(shí),當(dāng)PCI橋連到擁有PCI總線的主機(jī)系統(tǒng)上電后,主機(jī)系統(tǒng)軟件將掃描PCI總線上連接的PCI總線設(shè)備(包括PCI橋),然后配置PCI橋空間寄存器,即由配置軟件來完成PCI橋的初始化配置過程。之后,PCI橋進(jìn)入正常工作狀態(tài)。

          PCI橋核作為主橋時(shí),PCI橋完全控制PCI總線。PCI橋的Wishbone代理設(shè)備完全負(fù)責(zé)連接到PCI總線上的PCI設(shè)備的初始化配置過程。運(yùn)行在Wishbone代理設(shè)備上的固件(設(shè)備無關(guān)軟件)在上電后掃描PCI總線,以確定有哪些PCI設(shè)備,并分別有什么配置要求。然后在Wishbone映象0空間內(nèi)配置各個(gè)PCI設(shè)備的配置空間。配置完成即可加載各個(gè)PCI設(shè)備的驅(qū)動(dòng)程序。此時(shí)PCI設(shè)備也可以通過PCI橋的PCI目標(biāo)單元訪問Wishbone總線。

          PCI橋的配置空間包括兩個(gè)部分:一個(gè)部分為Wishbone從單元的配置、狀態(tài)和控制寄存器;另一個(gè)部分為PCI目標(biāo)單元的配置、狀態(tài)和控制寄存器(包括PCI協(xié)議要求實(shí)現(xiàn)的256字節(jié)標(biāo)準(zhǔn)配置空間)。PCI橋通過相應(yīng)的地址映像空間(PCI映像0和Wishbone映像0)來實(shí)現(xiàn)PCI橋兩側(cè)代理設(shè)備訪問PCI橋的配置空間。作為從橋時(shí),主機(jī)系統(tǒng)的主橋可以使用普通的存儲(chǔ)器讀寫指令來訪問PCI橋的配置空間,也可以通過配置讀寫指令來訪問PCI橋配置空間的低256字節(jié)。作為主橋時(shí),PCI橋本身就可以產(chǎn)生配置周期。如同PC機(jī)X86系統(tǒng)的主橋配置機(jī)制0一樣,PCI橋的Wishbone代理主設(shè)備可以通過訪問PCI橋配置空間的CNF_ADDR和CNF_DATA寄存器來產(chǎn)生配置讀寫命令,從而實(shí)現(xiàn)對其它PCI設(shè)備的上電初始化過程。

          由于PCI橋核是一個(gè)軟核,在PCI橋核中有一個(gè)參數(shù)頭文件。可以通過更改PCI橋核頭文件的參數(shù)來改變PCI橋的操作方式(如主橋或從橋設(shè)置、PCI或Wishbone映像空間的定義等),因而使用非常方便。

          4 使用PCI Bridge核來訪問PCI設(shè)備

          PCI橋作為從橋一般用在PCI擴(kuò)展卡上(或稱PCI周邊卡),如數(shù)據(jù)采集,圖像傳輸?shù)?。而作為主橋一般用在PCI總線的主控板上(或稱PCI系統(tǒng)卡),但需要初始化PCI總線上的功能設(shè)備,并控制PCI總線的操作。

          為了調(diào)試主/從橋的應(yīng)用,筆者設(shè)計(jì)了三塊電路板來協(xié)調(diào)控制PCI總線的操作。一塊為FPGA板(Xilinx公司的Spartan II芯片,設(shè)計(jì)有PCI接口),一塊為微控制器板(51單片機(jī)),一塊為普通PCI擴(kuò)展卡。

          作為從橋時(shí),只需要FPGA板就可以完成整個(gè)實(shí)驗(yàn)過程。即用Verilog語言實(shí)現(xiàn)一個(gè)Wishbone從接口,并連接到FPGA內(nèi)部的BlockRAM上(可由ISE的CORE generator產(chǎn)生),然后選擇PCI Bridge核的應(yīng)用方式為GUEST(從橋方式),并連同自己的程序一起編譯下載到FPGA的配置芯片上。這樣,把FP-GA板插入PC機(jī)的PCI插槽,就可在PC機(jī)上開發(fā)驅(qū)動(dòng)程序來訪問FPGA板上的資源(如RAM等)。如果要進(jìn)行數(shù)據(jù)采集,可以把Wishbone從接口連接到數(shù)據(jù)采集模塊上。從橋?qū)崿F(xiàn)的功能模塊圖如圖5所示。

          作為主橋時(shí)(選擇PCI Bridge核的應(yīng)用方式為HOST),由于FPGA板上沒有微控制器,所以需要把FPGA板上的I/O口與51單片機(jī)電路板上的I/O擴(kuò)展口連接起來一起形成PCI主控板。FPGA板和普通PCI擴(kuò)展板都插到獨(dú)立的PCI底板的PCI插槽上,然后在FPGA板上和單片機(jī)板上進(jìn)行編程以實(shí)現(xiàn)對普通PCI擴(kuò)展板的初始化配置和正常讀寫操作。其電路功能模塊框圖如圖6所示。

          由于單片機(jī)的接口是8位,讀寫時(shí)序也和PCI橋中的Wishbone時(shí)序不同,所以需要在PCI橋和單片機(jī)擴(kuò)展I/O口之間用軟件實(shí)現(xiàn)一個(gè)Wishbone主接口。該Wishbone主接口的工作過程為:單片機(jī)發(fā)出讀操作時(shí),先傳送4次8位地址數(shù)據(jù)到FPGA中,再將由Wishbone主接口組成的32位地址存儲(chǔ)在一個(gè)32位地址寄存器中,隨后單片機(jī)發(fā)出讀命令,以啟動(dòng)Wishbone主接口進(jìn)行Wishbone總線的讀時(shí)序,當(dāng)Wishbone主接口把從PCI總線上讀來的32位數(shù)據(jù)存放在一個(gè)32位讀數(shù)據(jù)寄存器中后,單片機(jī)將分4次讀出32位數(shù)據(jù);單片機(jī)進(jìn)行寫操作如同讀一樣,依次傳送32位地址和32位數(shù)據(jù),最后發(fā)送寫命令啟動(dòng)Wishbone主接口以進(jìn)行Wishbone總線的寫時(shí)序。Wishbone的讀寫時(shí)序可由Verilog語言描述的同步狀態(tài)機(jī)實(shí)現(xiàn)。

          在51單片機(jī)上用C語言編程實(shí)現(xiàn)主控板固件的完整軟件過程為:上電后,固件先按順序依次掃描PCI總線上存在的PCI設(shè)備,掃描的目的之一是為總線和設(shè)備編號(hào)。當(dāng)掃描結(jié)束后,設(shè)備類型、拓?fù)湮恢玫刃畔⒁栽O(shè)備為單位被存放在一個(gè)數(shù)據(jù)結(jié)構(gòu)中,并按實(shí)際掃描的順序組成一個(gè)鏈表。同時(shí),設(shè)備的配置要求也依次存放在這個(gè)數(shù)據(jù)鏈表中。固件得到系統(tǒng)的設(shè)備拓?fù)鋱D后,分別按照設(shè)備的配置要求一一進(jìn)行配置,也就是分配地址資源給設(shè)備的基地址寄存器。配置完成后,各個(gè)PCI設(shè)備即可進(jìn)入正常工作狀態(tài)。



          關(guān)鍵詞: Bridge 研究 PCI 總線 Wishbone 基于

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();