PCI總線協(xié)議的FPGA實(shí)現(xiàn)及驅(qū)動(dòng)設(shè)計(jì)_第1頁(yè)
PCI總線協(xié)議的FPGA實(shí)現(xiàn)及驅(qū)動(dòng)設(shè)計(jì)_第2頁(yè)
PCI總線協(xié)議的FPGA實(shí)現(xiàn)及驅(qū)動(dòng)設(shè)計(jì)_第3頁(yè)
PCI總線協(xié)議的FPGA實(shí)現(xiàn)及驅(qū)動(dòng)設(shè)計(jì)_第4頁(yè)
PCI總線協(xié)議的FPGA實(shí)現(xiàn)及驅(qū)動(dòng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、PCI 總錄協(xié)枚的 FPGA況州浙江大學(xué)信息與區(qū)子工程學(xué)系(310027)曹明 陳文正摘 要:采用FP(;A技術(shù)在ALTERA公司的FLEX6000系列芯片上實(shí)現(xiàn)了從設(shè)備模式PCI總線 的簡(jiǎn)化協(xié)議并給:!: 了 Win(lows9x系統(tǒng)下的皮擬設(shè)備驅(qū)動(dòng)程序,提供了與應(yīng)用程序的接口。實(shí)現(xiàn)結(jié)果 表明:該設(shè)計(jì)結(jié)構(gòu)靈活,功施可靠有別于與其它模塊實(shí)現(xiàn)處片集成應(yīng)用:,本系統(tǒng)已應(yīng)用在數(shù)攜采集 和處理.圖像處理爭(zhēng)方面°關(guān)鍵詞:PCI總線協(xié)議 現(xiàn)場(chǎng)可編程門(mén)陣列 虛擬設(shè)務(wù)軀動(dòng) 丁p' g電子技術(shù)應(yīng)用2003年第7期歡速郵購(gòu)本刊1995-1999年光盤(pán)版,希杏100無(wú) 15目前,許多公司祁提出了新

2、熨的計(jì)算機(jī)高速總線, 如ArHfMihoe總線標(biāo)準(zhǔn)和HyixtrTranport技術(shù),但齊協(xié)議互 不兼容,沒(méi)有形成統(tǒng)一標(biāo)準(zhǔn):作為傳統(tǒng)的通用局部總線. PCI總線仍然占據(jù)若主流個(gè)人電腦巾場(chǎng).具有頑強(qiáng)的生 命力?,F(xiàn)怡巾面上存飾各種PO接口芯片,如AMCC公 司的S5933,卩LX的9080系列等。專用芯片可以實(shí)現(xiàn)完 整的PCI t設(shè)備與從設(shè)備模式的接門(mén)功能,將復(fù)雜的 PCI總線接口轉(zhuǎn)化為相對(duì)簡(jiǎn)單的用戶接口,但系統(tǒng)結(jié)構(gòu) 受接口芯片的限制不能靈活地設(shè)計(jì)目標(biāo)系統(tǒng)且成本 較高本文使用符合PCI電氣符性的FPCA芯片進(jìn)行簡(jiǎn) 化的PCI接口邏物設(shè)訃.實(shí)現(xiàn)了 33MH-32位數(shù)據(jù)寬度 的BC1從設(shè)備模塊的接門(mén)功

3、能.節(jié)約了系統(tǒng)的邏輯資 祿且可以將其它用戶邏軟集成在同-塊芯片上,降低 了成本.增加了設(shè)計(jì)的靈活性。另外,還給出了評(píng)血 dows9x系統(tǒng)下的設(shè)備珮動(dòng)程序.可以與應(yīng)用程序接口, 形成一個(gè)完號(hào)的系統(tǒng)。目前本系統(tǒng)已經(jīng)被印染金業(yè)應(yīng) 用在數(shù)據(jù)采矢和處理等方面。1系統(tǒng)構(gòu)成與功能描述系統(tǒng)的總體框圖W圖I所示。圖I娛統(tǒng)結(jié)構(gòu)也圖由圖1町見(jiàn).系統(tǒng)的喚件平臺(tái)為一塊PCJ卡。此卡 的結(jié)構(gòu)I分簡(jiǎn)潔.主要2FPGA芯片、RAM芯片和綸出 接口三部分組成。其屮.FPGA芯片集成了 PCI接門(mén)模塊 和數(shù)據(jù)處理模塊。PCI接口模塊實(shí)現(xiàn)了 33MH?T作時(shí) 仲、32位總線寬度的接口功能支持I/O空間、內(nèi)存空 間及配匱空間的讀寫(xiě)和

4、PCI屮斷功能二由于簡(jiǎn)化的PCI 接口占用的邏輯資源較少,可以在同一塊芯片中集成其 他用戶邏輯'作為一個(gè)應(yīng)用實(shí)例本文加人r一個(gè)數(shù)據(jù) 處理模塊對(duì)PCI接口傳送來(lái)的數(shù)據(jù)進(jìn)行處理,通過(guò)片 外的輸岀接口輸出到下位機(jī)。RAM芯片為數(shù)據(jù)處理從供 緩存功能2從設(shè)備模式下的簡(jiǎn)化PCI協(xié)議的實(shí)現(xiàn)為了實(shí)現(xiàn)PCI接口的基本功能,必須完成以下幾個(gè) 模塊:d)rci wh空間設(shè)宜。pci協(xié)議支持三種地址空間: I/O空間、內(nèi)”空間和配至空間。膽撫空間提供支持 pci設(shè)珞自動(dòng)配置的機(jī)制是必需的。(2) PCI從設(shè)備狀態(tài)機(jī)PCI總線狀態(tài)機(jī)是具有PCI 總線的計(jì)算機(jī)系統(tǒng)的狀態(tài)流址由一個(gè)已知狀態(tài)到另一 個(gè)伏態(tài)的條件、時(shí)

5、序的描述幼這建比(接口設(shè)什中竝基 本也是鼓爾要的部分°(3) 地址譯碼和命令譯碼°地址譯碼用來(lái)蜿定PCI設(shè) 備是否應(yīng)當(dāng)響應(yīng)當(dāng)前總線的操作;命令譯碼劃用來(lái)描示 PCI設(shè)備根據(jù)不同的總線命令作出柑應(yīng)的動(dòng)作。本文釆用ALTERA公司的Max + Plusll軟件半臺(tái)喚 件描述講言使用ALTERA HDLift言,也可以方便地轉(zhuǎn) 換成VHDL或VerilogUDL語(yǔ)盲。莊此之前.先引人PCI 總線信號(hào)的定義。2.1總線信號(hào)定義根據(jù)PC1總線協(xié)議2.2版.從設(shè)備模式下PCI接口 至少包含47根引腳。圖2給出了按功能劃分的引腳分 布左邊啟必需引腳冇邊是可選引曲,為簡(jiǎn)化遲丸本文 采用了如

6、卜引腳其他引牒均不便能或戲?yàn)橹坳帒B(tài)C計(jì)算機(jī)應(yīng)用對(duì)選引畀< AD【63:32(C/BE|7:4J# PAR 64REQ64#ACK64#LOCK#INTAHINTBtINTC«INTO#SBOtSIX)NEn)iTIX)TCKTMSTOST#>64位紡廉按口押制中斷JTAC (IEEE 1149.1)r支井AD(3I:OOJ pC/BEp:0)MPRKRAMK#TRDY#IRDY#STOP#DEVSEL#IlKELPESR«SERR*.REQ«amCI.KRST#必需引腳錯(cuò) iKWft仲統(tǒng) (只主控用)K:l11容設(shè)備(1) 由系統(tǒng)提供的33MHz的同步

7、時(shí)鐘伯號(hào)CLK和復(fù) 位信號(hào)RST#(#表示低電平有效);(2) 關(guān)于數(shù)據(jù)傳輸?shù)暮⑿男盘?hào):32位地址/數(shù)據(jù)復(fù)用 線AD3l:0.總線命令/字節(jié)使能復(fù)用線C/BE3:O#和 偶校驗(yàn)信號(hào)PAR;(3) 接口檸制信號(hào) FRAME#.TKDY# JRDY#.STOP#、 DEVbEL#和IDS匕I。A中,FRAME#為數(shù)據(jù)傳輸起止伯 號(hào).TRDY#為主設(shè)鑄準(zhǔn)條好信號(hào).IRDY*為從設(shè)備準(zhǔn)備 好信號(hào),STOP#為從沒(méi)備停止請(qǐng)求伯號(hào)> DEVSEL#為設(shè) 備選擇信9 .IOSEL為配丸空間讀寫(xiě)時(shí)的片選信9;(4) 中斷引腳INTA"。為簡(jiǎn)化HCI協(xié)議.4文只實(shí)現(xiàn)了最車(chē)要的總線命 令.表】給出

8、了所支持的總線命令對(duì)應(yīng)的C/BE3:0J# 編碼值。0010I/O讀0011I/O寫(xiě)0110存01IJ存住器寫(xiě)1010配at空IM讀1011IE童空何寫(xiě)2.2配矍空間設(shè)JE表I支持的總線令令金令類(lèi)型說(shuō)明C/BE(3:0 t配就空間大小為256字節(jié)前64字節(jié)必需,記錄/ PCI設(shè)備的基本信息比較輩要的有:(1 )Vendorll> J)eviceID 和 Class Code 域:分別農(nóng)示設(shè) 備的生產(chǎn)廠橢、設(shè)備編號(hào)和類(lèi)型;(2) Command和Status域:分別給出了對(duì)PCI設(shè)備的16 未刊儀犒郵希:etancse8mcn控制命令和當(dāng)削狀態(tài);(3) Basf Adress Regist

9、er 域:指示此 PCI 設(shè)備按I/O方式還是內(nèi)存方式進(jìn)行讀寫(xiě)以 及需要的地ill空間大小;(4) Interrupt lane 和 Interrupt Pin 域:分別 折明了設(shè)備便用的中斯號(hào)和中斷引腳、在對(duì)配笛空何的訪問(wèn)中.用AL)17:5)4 址一個(gè)XX字DWORD.在本設(shè)計(jì)屮眉皆空間 設(shè)智如表2所示各值的貝體含義請(qǐng)參閱文 ittllk2.3簡(jiǎn)化的從設(shè)備狀態(tài)機(jī)在PCI協(xié)i義中.標(biāo)準(zhǔn)的從設(shè)備狀直機(jī)包 含五種狀態(tài),fi且冬狀態(tài)的跳轉(zhuǎn)條件比較復(fù) 雜。本文我不違反PC1協(xié)議的前提八 簡(jiǎn)化 了從設(shè)備的狀態(tài)機(jī),如圖3所示。圖3中,狀態(tài)轉(zhuǎn)移條件倚號(hào)a、b、c定義 如下汕代喪配??臻g訪何條件丄代農(nóng)I/O

10、 空間或內(nèi)存空間訪問(wèn)條件乂代衣總線傳輸 開(kāi)始條件°這三個(gè)條件的實(shí)現(xiàn)由后血的命令譯碼模塊 給出。表2配最空間設(shè)JC(均為十六進(jìn)制)字段值或含義字鞍值或含義Vemiorll)1172Class Code(M(MXK).即輒頻卡DrvicelD8901Bivw A<Jrv*s HrgiMei筱影到】/o空間(Iurnniand0082Intcmipt Line中斷號(hào)ASlMlUH(MOOPin中斷引腳IDLE是系統(tǒng)的缺省狀玄表示總線當(dāng)前空閑°通常. 設(shè)備處A idle狀態(tài)時(shí)荽檢測(cè)來(lái)fl PC總線和后級(jí)設(shè) 備的信號(hào),以便設(shè)備作川合適的響應(yīng),設(shè)備處丁 S-DATA 狀杰時(shí)完成第

11、一次數(shù)據(jù)傳輸.直接無(wú)條件跳到back. OFF狀態(tài)。設(shè)備在BACKOFF狀態(tài)時(shí)進(jìn)行多個(gè)數(shù)據(jù)傳輸. 玄至主設(shè)備斷開(kāi)訪問(wèn)。需耍注意的是:任何對(duì)I/O空間、 配丑空間以及內(nèi)存爺間的突發(fā)傳輸?shù)牡刂烦^(guò)了設(shè)備 映射地址的范曲時(shí),從設(shè)倚要4此狀態(tài)建立STOP信號(hào). 斷開(kāi)訪問(wèn)。當(dāng)幀信U無(wú)妓或主設(shè)備終止傳輸時(shí)設(shè)備回 到初始的IDLE狀態(tài)。BUS.BUSY狀態(tài)時(shí)總線忙我示 總線正在彼其它設(shè)備使用。有兩條轉(zhuǎn)移路輕若總線仍電子技術(shù)應(yīng)用2003年第7期計(jì)算機(jī)應(yīng)用然被占用則停留在BUS_BUSY狀態(tài)否則返回空閑狀 態(tài) IDLE.2.4地址譯瑪和命令譯碼模塊地址譯碼模塊主婪檢測(cè)PCI地址與本PH K的基地 址是否P;配,

12、可以通過(guò)AD31:00信號(hào)線上的值勺設(shè)徴 的基地址作比絞判瞬。如果PCI地址落在設(shè)屋的荃地址 范圈內(nèi)則PC1卡響應(yīng)當(dāng)前的總線操作。命令譯碼模塊抱示PC!卡響應(yīng)不同的總線命令通 過(guò)檢測(cè)C/BE3:0# (ft號(hào)線上的值與表I列出的總線 命令作比較,完成命令譯碼。3 Windows9x系統(tǒng)下驅(qū)動(dòng)程序的設(shè)計(jì)對(duì)PCI設(shè)備而言驅(qū)動(dòng)程序提供了獲取PCI卡的配還 空間信息、勾掛PCI白斷、總線數(shù)抿傳輸?shù)裙δ蹸木文介紹 使用Numega公司的VtoohD軟件進(jìn)行翌動(dòng)設(shè)i|的方法。 3.1耳找PCI卡并讀取配置空間信息配建空間包含了系統(tǒng)初始化PCI設(shè)備所必需的信 息,詢先需要遍歷整個(gè)皎件樹(shù)結(jié)構(gòu)來(lái)#找指定的PCI

13、設(shè) 備。對(duì)于每一個(gè)議備,比較其廠商號(hào)(Ven<lor ID)和設(shè)備 編號(hào)(Device ID),如呆與設(shè)計(jì)的PCI卡的信息匹配則讀 取它的配置空間信息劇3.2 I/O方式下的讀寫(xiě)按作I/O方式下的讀寫(xiě)比校簡(jiǎn)單。在得到PCI沒(méi)備基地 址信息后,通過(guò)C*語(yǔ)中的端口讀寫(xiě)曲數(shù)inpd和OUI. 寫(xiě)。首先使用CFib類(lèi)広成員函數(shù)OpentT開(kāi)文件,為保 證數(shù)據(jù)讀寫(xiě)的準(zhǔn)確無(wú)俁,必須使用一進(jìn)制方式打開(kāi);接 下來(lái)使用Read和Write AM «數(shù)進(jìn)行文件瀆寫(xiě);完畢后 用Close成員函數(shù)關(guān)閉文件。3 4中斷的勾掛和處理首先6. ONJ)EVICEJNIT兩數(shù)中完成中斷的初始 化。即通過(guò)前面讀

14、取的PCI設(shè)備的中斷號(hào),使用 VPICD.VHualireIRQ函散進(jìn)行中斷勾掛,并調(diào)用 VPlCD.EhysicaUyLnmask 函數(shù)開(kāi)中斷。FrrCIHQFiandk=VPI(:D3irtudizeJRQ(&IRQde);VPIC D_Physical ly_U nmak (RTClRQHaiKlle);然后在RTCfat.Handler函數(shù)中進(jìn)行中斷處理.可以 進(jìn)行各種操作例如向應(yīng)用程序發(fā)送自定義的消息來(lái)通 知中斷的發(fā)生。3.5與應(yīng)用程序的通借一般地應(yīng)用程序適過(guò)CzleFih函數(shù)凋用VxD騾 動(dòng)程序得到一個(gè)VxD的文件句柄。便用如下的語(yǔ)句可 以打開(kāi)個(gè)名為mydrivcr.VXD

15、的文件得到的句柄保存 在hVxD中。hV 真 D=CrcayFil<<*my(i 承“VXD"000CREATE-NEW FIIE F LAG-DELETE-ON-CLOSE.O); 通過(guò)句柄hVxD和DcviceloControl歯數(shù)就可以與膽 動(dòng)程序進(jìn)行數(shù)據(jù)傳輸本文采用ALTEKA公可的FI.EX6000系列芯片型其中,PhysAddress為給定的物理地址,SizelnBytes為j 需要的空間大小。J建立了梆理RAN到系統(tǒng)內(nèi)存的映射后.就可以利1M即可完成。舉例如下:Temp=_inpd(gBa$eA<ldress); /Imp 中得到讀出的數(shù)據(jù) _outp

16、d(gBaseAddresses.Data); /向基地址寫(xiě)入數(shù)抵M中g(shù)BaseAddr 為基地址值.Data為寫(xiě)操作時(shí) 的數(shù)據(jù)。3.3內(nèi)存方式下的讀寫(xiě)對(duì)于內(nèi)存方式丁的讀寫(xiě)一個(gè)重要何題就足地址的 映射°因?yàn)橛布O(shè)備讀寫(xiě)的是物理內(nèi)存,但應(yīng)用程序讀 寫(xiě)的足虛擬地址,所以存在著將物理內(nèi)存地址映射到用 戶程序線性地址的問(wèn)題。映射功能通過(guò)詞用VioohD軟件的標(biāo)準(zhǔn)庫(kù)函數(shù)完 成。根據(jù)給定的物理地址和所要求的空何大小在系統(tǒng) 內(nèi)存中分配相應(yīng)空間。衍先,用PageResene函數(shù)分配當(dāng) 前保留頁(yè)的線性地址空間.再利用PageCommitPhys隨數(shù) 的狀務(wù)對(duì)開(kāi)始的線性地址空間分配相應(yīng)的物理地址空 間。

17、程序如下:ULONG nPages «.NP.,KGES.( PhysAddnw,SizelnBue); Linear 二 PageRewrM PR-SYSTEM nPag<s PREFIXED); PageCommitPhyK(PAGENUM(Linear).nPages,PAGENUM(PhyAddrrPCJNCR I PC.WRITEABLE I PC.USER ); UnPiiLock (PAGENUM (I inea j. nPagw, 0);用C+語(yǔ)吉中的文件操作基類(lèi)CFile類(lèi)完成數(shù)據(jù)的讀 號(hào)為EPE6O16TC144-3,實(shí)現(xiàn)f簡(jiǎn)化的從設(shè)備模式PC1 協(xié)議并在W

18、indows9x系統(tǒng)下實(shí)現(xiàn)驅(qū)動(dòng)稗序的設(shè)計(jì)整 個(gè)系統(tǒng)工作良好。資源占用悄況如下可用I/O引腳 】13植占用51根占用率45% : oj用邏輒能元數(shù)1320 個(gè),占用151個(gè),占用率)1%0簡(jiǎn)化的PCI協(xié)議的實(shí)現(xiàn)占用較少的邏輯資源以靈 活方便地進(jìn)行功能添加和改進(jìn)同時(shí)可以在同一塊芯片屮 集成其他用戶模塊實(shí)現(xiàn)不冋功能,以降低成本。目前本 系統(tǒng)已經(jīng)應(yīng)用在數(shù)據(jù)采集和處理、圖像處理等方面* 參考文獻(xiàn)I PCI Lwal BUS specification producliun. Version Revision 2.2. 19982彭禮孝擬沒(méi)備馭動(dòng)程序開(kāi)發(fā)起步與進(jìn)階北京:人民邙 電出版社,2«)0

19、3趙雅興-FPGA原理、設(shè)計(jì)與應(yīng)用天津:天禪大學(xué)岀版社. 1998(收梢 H 期:2003-02-31) 44山44 4乂山444.乂4乂4¥4¥“4乂 + 更正f由于出斤措課,電于技術(shù)應(yīng)用2003年第5期中彩一上 4華宙東通公司的廣令中“cortnX電”庖為磁“。由此給華宙惠通公司只廣大讀者癟 來(lái)的不仗深表歎慧。乍 特此更正f電子枚術(shù)應(yīng)用廣吿那加03年6月fc電子技術(shù)應(yīng)用)2003年第7期 歡速郵購(gòu)本刊1995-1999年光盍機(jī)希興100無(wú) 17PC總線協(xié)議的FPG實(shí)現(xiàn)及驅(qū)動(dòng)設(shè)計(jì)5 WMifWiSJS瓷戢鏈提作者:曹明,陳文正作者單位:杭州浙江大學(xué)信息與電子工程學(xué)系310027刊名:電子技術(shù)應(yīng)用|、|:.|廠英文刊名:APPLICATION OF ELECTRONIC TECHN

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論