




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、PCI Express總線基礎(chǔ)及FPGA設(shè)計實(shí)戰(zhàn)1. PCI Expres靠礎(chǔ)PCIe總線是基于PCI總線發(fā)展起來的,很多基本概念都來自于PCI總線,有必要在介紹PCIe之前了解PCI總線。1.1 PCI基礎(chǔ)pci總線作為處理器系統(tǒng)的局部總線,其主要目的是為了連接外部設(shè)備,而不是作為處 理器系統(tǒng)的系統(tǒng)總線連接 Cache和主存儲器。PCI總線作為系統(tǒng)總線的延伸,其設(shè)計考慮了 許多與處理器相關(guān)的內(nèi)容,孤立的研究PCI總線并不可取,因此需要將 PCI作為存儲器系統(tǒng)的一個部分來研究。1.1.1 幾個重要概念1) PCI總線空間與處理器空間隔離PCI設(shè)備具有獨(dú)立的地址空間, 即PCI總線地址空間,該空
2、間與存儲器地址空間通過HOST主橋隔離。處理器需要通過HOST主橋才能訪問PCI設(shè)備,而PCI設(shè)備需要通過HOST主橋才能方位主存儲器。要注意區(qū)分存儲器地址空間和PCI總線地址。在一個處理器系統(tǒng)中,存儲器域、PCI總線域與HOST主橋的關(guān)系如下圖。圖2-1存儲器城勺PU總線域的劃分圖中的處理器系統(tǒng)由一個 CPU 一個DRAM控制器和兩個 HOST主橋組成。在這個處理 器系統(tǒng)中,包含 CPU域、DRAM域、存儲器域和 PCI總線域地址空間。其中 HOST主橋x和 HOST主橋y分別管理PCI總線x域與PCI總線y域。CPU訪問PCI設(shè)備,必須通過 HOST主 橋進(jìn)行地址轉(zhuǎn)換,而PCI設(shè)備訪問存儲
3、器設(shè)備,也需要HOST主橋進(jìn)行地址轉(zhuǎn)換。HOST主橋的一個重要作用就是將存儲器訪問的存儲器地址轉(zhuǎn)換成PCI總線地址。CPU域地址空間是指CPU所能直接訪問的地址空間集合。DRAM域地址空間是指 DRAM控制器所能訪問的地址空間集合,又稱為主主存儲器域。存儲器域是CPU域和DRAM域的集合。存儲器域包括 CPU內(nèi)部的通用寄存器、存儲器 映射尋址的寄存器、主存儲器空間和外部設(shè)備空間。在 Intel的x86處理系統(tǒng)中,外部設(shè)備 空間與PCI總線域地址空間等效。因為在 x86處理器系統(tǒng)中,使用 PCI總線同一管理全部外 部設(shè)備。值得注意的是,存儲器域白外部設(shè)備空間,在PCI總線域中還有一個地址映射。當(dāng)
4、處理器訪問PCI設(shè)備時,首先訪問的是這個設(shè)備在存儲器域上的PCI設(shè)備空間,之后 HOST主橋?qū)⑦@個存儲器域的 PCI總線地址轉(zhuǎn)換成 PCI總線域的物理地址,然后通過 PCI總線事務(wù)訪問 PCI總線域的地址空間。2) 可擴(kuò)展性PCI總線具有很強(qiáng)的擴(kuò)展性。在PCI總線中,HOST主橋可以直接推出一條 PCI總線,這條總線也是該HOST主橋管理的第一條 PCI總線,該總線還可以通過 PCI橋擴(kuò)展一系列PCI 總線,并以HOST主橋作為根節(jié)點(diǎn),形成 1棵PCI總線樹。這些 PCI總線都可以連接 PCI設(shè) 備,但是一棵PCI設(shè)備樹上,最多只能掛接256個PCI設(shè)備(包括PCI橋)。3) 動態(tài)配置機(jī)制PC
5、I設(shè)備使用的地址可以根據(jù)需要由系統(tǒng)軟件動態(tài)分配。PCI總線使用這種方式合理地解決設(shè)備間的地址沖突,從而實(shí)現(xiàn)了 “即插即用”功能。每一個PCI設(shè)備都有獨(dú)立的配置空間,在配置空間中包含該設(shè)備在PCI總線中使用的基地址即 BAR地址,從而保證每一個 PCI設(shè)備使用的物理地址并不相同。PCI橋的配置空間中包含有其下PCI子樹所能使用的地址范圍。x86系統(tǒng)的工作流程是:主板上的 BIOS程序會掃描PCI/PCIE設(shè)備,讀取其 BAR空間的 大小,動態(tài)地為PCI/PCIE設(shè)備分配地址空間。在調(diào)試過中發(fā)現(xiàn),假如將BAR空間設(shè)置成2G, x86系統(tǒng)會報no bootable device的錯誤,原因應(yīng)該是 B
6、IOS給PCIE設(shè)備分配了 2G的地址空 間,暫用了硬盤的地址空間,導(dǎo)致無法加載操作系統(tǒng)。4)總線帶寬PCI總線與之前的局部總線相比,極大提高了數(shù)據(jù)傳送帶寬,32位/33MHz的PCI總線可以提供132MB/S的峰值帶寬,而64位/66MHz的PCI總線可以提供的峰值帶寬為532MB/S。雖然PCI總線所能提供的峰值帶寬遠(yuǎn)不能和PCIe總線相比,但是與之前的局部總線ISA EISA和MCA總線相比,仍然具有極大的優(yōu)勢。ISA總線的最高主頻為 8MHz,位寬為16,其峰值帶寬為16MB/s; EISA總線的最高主頻 為8.33MHz,位寬為32,其峰值帶寬為 33MB/S ;而MCA總線的最高主
7、頻為 10MHz,最高 位寬為32,其峰值帶寬為40MB/s。PCI總線提供的峰值帶寬遠(yuǎn)高于這些總線。 產(chǎn)17 21總歧幫基與魚粒之間的關(guān)國總域曼建_抄率小立員里隆力per - J3-113個播66 -_ _ _2M十播拈RCJ-XrJ2664個怖槽m.1-5331-=- _ _ _ _ _2個捕棺IQA61個新陽21JI1個輛情5)共享總線機(jī)制PCI設(shè)備通過仲裁獲得 PCI總線的使用權(quán)后,才能進(jìn)行數(shù)據(jù)傳送,在PCI總線上進(jìn)行數(shù)據(jù)傳送,并不需要處理器進(jìn)行干預(yù)。PCI總線仲裁器不在 PCI總線規(guī)范定義的范圍內(nèi),也不一定是HOST主橋和PCI橋的一部分,雖然絕大多數(shù) HOST主橋和PCI橋都包含P
8、CI總線仲裁 器,但是在某些處理器系統(tǒng)設(shè)計中也可以使用獨(dú)立的PCI總線仲裁器。PCI設(shè)備使用共享總線方式進(jìn)行數(shù)據(jù)傳遞,在同一條總線上,所有PCI設(shè)備共享同一總線帶寬,這將極大地影響PCI總線的利用率。這種機(jī)制顯然不如 PCIe總線采用的交換結(jié)構(gòu)。 6)中斷機(jī)制PCI總線上的設(shè)備可以通過四根中斷請求信號INTAD#t處理器提交中斷請求。與 ISA總線上的設(shè)備不同,PCI總線上的設(shè)備可以共享這些中斷請求信號,不同的PCI設(shè)備可以將這些中斷請求信號線與后,與中斷控制器的中斷請求引腳連接。PCI設(shè)備的配置空間記錄了該設(shè)備使用這四根中斷請求信號的信息。PCI總線還進(jìn)一步提出了 MSI (Message
9、Signal Interrupt)機(jī)制,該機(jī)制使用存儲器寫總 線事務(wù)傳遞中斷請求,并可以使用 x86處理器FSB (Front Side Bus)總線提供的Interrupt Message總線事務(wù),從而提高了 PCI設(shè)備的中斷請求效率。1.1.2 PCI總線的組成結(jié)構(gòu)。圖1-1基于pci恿線的處理器系統(tǒng)圖中與PCI總線相關(guān)的模塊包括:HOST主橋、PCI總線、PCI橋和PCI設(shè)備。PCI總線是由HOST主橋和PCI橋推出,HOST主橋與主存儲器控制器在同一級總線上,因此PCI設(shè)備可以方便通過HOST主橋訪問存儲器,即進(jìn)行 DMA操作。在一些簡單的處理器系統(tǒng)中,可能 不包含PCI橋,此日所有P
10、CI設(shè)備都是連接再HOST主橋上推出的PCI總線上。在一些處理 器系統(tǒng)中有可能有多個 HOST主橋,如圖1-1所示處理器系統(tǒng)中含有 HOST主橋x和HOST 主橋V。X86處理器的HOST主橋X86處理器使用南北橋結(jié)構(gòu)連接 CPU和PCI設(shè)備。其中北橋連接快速設(shè)備, 如顯卡和內(nèi) 存條,并推出PCI總線,HOST主橋包含在北橋中。而南橋連接慢速設(shè)備。1.2 PCIE總線概述PCI總線使用并行總線結(jié)構(gòu),在同一條總線上的所有外部設(shè)備共享總線帶寬,而PCIe總線使用高速查分總線,采用端對端白連接方式,因此在每一條PCIe鏈路中只能連接兩個設(shè)備。這使得 PCIe與PCI總線采用的拓?fù)浣Y(jié)構(gòu)有所不同。PCI
11、e總線除了在連接方式上與PCI總線不同之外,還使用一些在網(wǎng)絡(luò)通信中使用的技術(shù),如支持多種數(shù)據(jù)路由方式,基于多通路的數(shù)據(jù)傳遞方式,和基于報文的數(shù)據(jù)傳送方式,并充分考慮在數(shù)據(jù)傳送中出現(xiàn)的服務(wù)質(zhì)量 QoS (Quality of Service)問題。1.2.1 基于PCIe的系統(tǒng)結(jié)構(gòu)前期的Intel主板中會集成單獨(dú)的南北橋芯片,北橋負(fù)責(zé)連接速度較快的CPU主存儲器以及顯卡等元件,南橋負(fù)責(zé)連接速度較慢的設(shè)備,包括硬盤、USR網(wǎng)卡等。只要 CPU讀取主存儲器,還需要北橋的支持,也就是CPU與主存儲器的交流,會占用北橋的帶寬。因此新一代的Intel主板架構(gòu),大多將北橋存儲控制器整合到CPU封裝中,CPU
12、直接與主存儲器交互,速度較快。bilrT EHtrrwryrurpgi Suppnrt基于PCIe總線的Intel處理器架構(gòu)主存儲器的速度SDRAM/DDR型號數(shù)據(jù)位寬內(nèi)部時鐘頻率速度帶寬SDRAMPC10064100100800MBytes/secSDRAMPC133641331331064MBytes/secDDRDDR-266641332662.1GBytes/secDDRDDR-400642004003.2GBytes/secDDRDDR2-900642008006.4GBytes/secDDRDDR3-160064200160012.8GBytes/secPCIe總線帶寬規(guī)格1x帶寬
13、16x帶寬PCIe1.0250Mbytes/sec4GBytes/secPCIe2.0500Mbytes/sec8GBytes/secPCIe3.01GBytes/sec16GBytes/secPCIe4.02GBytes/sec32GBytes/secSATA總線帶寬版本帶寬SATA1.0150Mbytes/secSATA2.0300Mbytes/secSATA3.0600Mbytes/secUSB總線帶寬版本帶寬USB1.01.5Mbytes/secUSB2.060 Mbytes/secUSB3.0500Mbytes/secUSB3.11000Mbytes/sec1.2.2 端到端的數(shù)據(jù)傳
14、遞PCI總線不同,PCIe總線采用端到端的連接方式,在一條PCIe鏈路的兩端只能各連接 個設(shè)備,這兩個設(shè)備互為數(shù)據(jù)發(fā)送端和數(shù)據(jù)接收端。發(fā)送端接收端圖4-1 PC加總線的物理鏈躋在PCIe總線的物理鏈路的一個數(shù)據(jù)通路( Lane)中,有兩組查分信號,共 4根信號線。其 中發(fā)送端的TX部件與接收端的 RX部件使用一組差分信號連接,該鏈路也被稱為發(fā)送端的 發(fā)送鏈路,也是接收端的接收鏈路;而發(fā)送端的RX部件與接收端 TX部件使用另一組查分信號連接,該鏈路也被稱為發(fā)送端的接收鏈路,也是接收端的發(fā)送鏈路。一個PCIe鏈路可以由多個數(shù)據(jù)通路Lane組成,目前PCIe鏈路可以支持1、2、4、8、16 和 32
15、Lane,即 x1、x2、x4、x8、x16、x32 寬度的 PCIe鏈路。_47 PCI 與總 W 率和蛤青的關(guān)梨PC5懸線戰(zhàn)菰星曾鞫尊打心HeT%崢和書OTA)鮮冉力武L *1.152. SR/lOb瑞哥2. i133a/iob城科工。4s128/130 研6 II *的dtft幅中指壁為廿接Ifl道辮和艙索變化時的短軍PCIe總線物理鏈路間的數(shù)據(jù)傳送使用基于時鐘的同步傳送機(jī)制,但是在物理鏈路上并沒有時鐘線,PCIE總線的接收端含有時鐘恢復(fù)模塊CDR (Clock Data Recovery), CDR將從接收報文中提取接收時鐘,從而進(jìn)行同步數(shù)據(jù)傳遞,PCIe設(shè)備進(jìn)行鏈路訓(xùn)練時將完成時鐘的
16、提取工作。1.2.3 PCIe總線的層次結(jié)構(gòu)PCIe總線采用串行連接方式,并使用數(shù)據(jù)包(Packet)進(jìn)行數(shù)據(jù)彳輸。在 PCIe總線中,數(shù)據(jù)報文在接收和發(fā)送過程中,需要通過多個層次,包括事務(wù)層、數(shù)據(jù)鏈路層和物理層。PCIe I lev kt A12 icr CorePhysical Layerl i.igtoal Sub-bljaartliE UI民“磯二名口_二。國電5FO47*D_F7FFJ- micTDhlB.Tfl-OJ S Mm (3Qliis 4 - MiL5_UIQM 用 OJfiiKi44K(hMtQJTFF0ssiqijQBeOiOQ.WW64OkO&JIFJn bi inF
17、 it-口aB*eQMUZLWg641MHHOJFF 盯=azi jrir_0GJUIBA3O0 4gJXJR6w西bF 口工股:- czi_;cie_QSJIITLILO256 M,S15JIP_5I3Ts szi_arilj tt_Cf5 JUMex齷頓_:俄力T加醍燈e,;/小工“巾viiscW &睢/rutSIMH”QuflC_DOEOLasK%+ EI bvtruliMi a firiLtevvi Wli : 帕H-cr-zliLu-e O_lpcal n anorvy1 lint brut.5LW3GsMO 口 _30團(tuán)L28EGtfOCOlJTFrpcie 地址空間axi_pci
18、e_bar0 0xC000_00000xC000_FFFFmem 地址空間axi_mem_00x0600_00000x0600_FFFF2.1.2 EP端系統(tǒng)設(shè)計EP端硬件系統(tǒng)由 MicroBlaze 處理器、EP 采用 xilinx 的 AXI Memony Mapped To PCI Express 配置成EP模式)、DMA以及內(nèi)置BRAM塊。地址分配j as j _bff an_t tfl._0S_UNmMjSi 3 jp4 11_0sjll幽。u i q i i.GXOTCLCTLOExeLud.M-d d.dr-ass. 峙口出11二 - ezxi dna 0s.Aii.ure-J
19、Eix.dnaJ白城羽n wus 口事5招i tJ型口三七仁一七土士”匕M m _br wi_c lrl_O U asjcisjG sea jc3.i_G11. fsel udi &dflrdu 二口 i3ri_ena_05 口 ux _jicl e 0白戰(zhàn) ILAtt 32 =dCi= L:t E - axi_brn_mljO。,_ 立+一0j wi jcit.O=DMO33K* OiDOOO._TT?F加必gQO glOM.OxlIXG.0000256M,M1FFFfl?ax2DjG_DGOO自4KOzSOOO.FF于于xOKOJK-OO32K koeggam電4il* OiiTOO.F2
20、58M oiirrr一打”JX-00BdJfJT77010B-G_0:00熨* * OiOBGOLTTFF* OsOSOOJTTFax*w(?_QO冷曲- OzKOOJIfFgDMJOW25幅 OilFTF FTFFpcie地址空間mem地址空間axi_pcie_bar0 axi_mem_00x4000_00000x4000_FFFF0x0800_00000x0800_FFFFRC_AXIBAR2PCIEBAR_0=0xFFFF_0000EP_CFG_BAR0=0xFFFF_0000EP_PCIEBAR2AXIBAR0=0x0800_00000xC000 1000 14 0xFFFF 1000
21、 16 0x0000_10000x0800_10002.2讀寫數(shù)據(jù)分析2.2.1讀寫MEM數(shù)據(jù)操作地址為RC端BAR空間存儲器域地址+偏移量例如,往 EP端偏移量為 0x1000的MEM寫數(shù)據(jù),RC端寫地址為0xC000_000+0x1000 0xC000_000為RC端axi_pcie_bar0基地址,即EP端PCIe域基地址映射到 RC端存儲器地址 域的基地址。將RC端存儲器域地址0xC000_1000,轉(zhuǎn)換成 EP端AXI地址0x0800_1000,最終寫入到 EP端 MEM。RC存儲器域PCI總線接口E嘲PCIe總線域E嘲AXI總線地址域2.2.2 DMA 操作DMA在EP端,源地址和
22、目的地址為 EP端AXI總線地址0x0800_00000x0800_10000x0800_20000x080030002.2.2.1讀內(nèi)存 讀內(nèi)存指將RC端的內(nèi)存的數(shù)據(jù)搬移到 EP端MEM。數(shù)據(jù)流圖如下RC端EP端源地址為0x4000_1000, RC端存儲器域地址在 EP端AXI總線域的映射地址目標(biāo)地址為0x0800_2000, EP端AXI總線域地址E嘲AXI總線地址域PCIe總線接口R嘲PCIe總線域R嘲存儲器域EP_AXIBAR2PCIEBAR_0=0xEEEE_0000RP_CFG_BAR0=0xEEEE_0000EP_PCIEBAR2AXIBAR0=0x0600_00000x400
23、0_10000xEEEE_1000 1= 0x0000_100010x0600_10002.2.2.2寫內(nèi)存寫內(nèi)存將EP端的數(shù)據(jù)寫入RC端的內(nèi)存。數(shù)據(jù)流圖EP端RC端源地址為0x0800_1000 , EP端AXI總線地址目標(biāo)地址為0x4000_2000, RC端存儲器域內(nèi)存地址在EP端AXI總線地址域的映射地址E嘲AXI總線地址域PCIE總線接口R嘲PCIE總線域R嘲存儲器域EP_AXIBAR2PCIEBAR_0=0xEEEE_0000RP_CFG_BAR0=0xEEEE_0000EP_PCIEBAR2AXIBAR0=0x0600_00000x4000_20000xEEEE_2000 1二
24、0x0000_20000x0600_20003.設(shè)計實(shí)戰(zhàn)本章將搭建一個基于 PCIe x4的EP端硬件系統(tǒng),并在安裝 Windows7的x86電腦上,使 用WinDriver軟件完成驅(qū)動開發(fā)。3.1 EP端硬件系統(tǒng)搭建地址分配r3號i _dn _0SH。3工衣”禽.Jbat* :。 o口nCst*_52WI, -02 里嶼配 Eu 同m_C lrl_DSJklTWertjGit.OKono.JffFS_AIL_UI1M匕OEQI 翦 M城。心叫jfffn UL JPC|.GSJOTSULgcgajWML&wOHTFPTFTF匚一口 cxl jpci*_psjaijaZI3256HqOeITFF
25、.JFFEJ 0:si 】_D 匚 i E_-二卜3 H_4 - ad.jF4E5 Bits: . ai L_braFi_c 1r)_DS JiITU源兇_w帕G事,g抄入FHn曰匕_曲$_口$猛,Or:SOIl.JFTF 整 i j*c if JSITBAK,加二0i三圜MLG,OMFJFIFsjurcn口 a011M3JMCK4en,OtLTTFJFFFAXI Memony Mapped To PCI Express 參數(shù)配置1.將 Device/Port Type 配置成功 PCI Express Endpoint deviceU * i*UE leai Ikjjped FC”工41ql
26、f U&W$h- jTbLT at*t心LUt二中 3vnQua sraxirlnIIM一marmjrn Eijtal4;l)LiH金 iTyp。MHMi.H3.ub.oufi wm*1遣,3 El4A lilfiLRlE-iH E 耶LUET_recio_fj4rriEii二JrAULl Frtri 1. EI ._irFZn _ HKi _p R. r- UU k- rIiJfJil,,7才中K. frw.M i*“fll f# KE kiim * Jd * stf rirnv,IW,Im FBTav4 !:* res E/a + l.工 tr4lalSEKTTtEu-tcxi ni-ut
27、 TrrR :H2 fw 5CC Em-nit 1 . vh. Zjjua3 *JL 二ulul he工&LU. ILnk: 3 L一/ Jf2.將 Lane Width 配置成 x4,將 Link Speed 配置成 5.0GT/s11E 一lippedl T* RB Eapirs- C?_ i)XfaMiUIa k _r 口 Licta KI % J +111.”舊血卬n OMi.iTaavIn 邙 TTJUI 一3Twr* T,T.,*m_ JI* iQ F3Jii Ihit u iiallil Ldw aHU biIhIii :aw Hkm*th ri& tr-iia Ibm. w m
28、4JLit Ikti f i+xM! aaSHi Lihh- i-SJi -d-ci- SaLv; th但 *144 1bV II HI1、X片耳,Lmm Vi-ibk IS ,Li .一1IkabUJ:KI Lufix hlL.J i*Lai.LM 11kBI i 上 -3M lb* AMLn-Li q 16。 p3.配置Vendor ID和Device ID,驅(qū)動開發(fā)時將根據(jù) Vendor ID和Device ID來掃描 PCIe 設(shè)備。4.配置 BAR0的地址空間為 128K,配置 C PCIEBAR2AXIBAR 0 0x0800 00005.配置 C_AXIBAR2PCIEBAR_0
29、 0xFFFF_00003.2 上板調(diào)試記錄1. BAR0的地址空間分配過大當(dāng)將Bar0空間配置成2GB時,WINDOWS7的PC機(jī)沒有啟動操作系統(tǒng), 報錯no bootable device,原因應(yīng)該是 BIOS需要給BAR0分配2G的地址空間,占用了硬盤的地址空間,導(dǎo)致 無法加載操作系統(tǒng)。2. axi_pcie 的 BAR空間或 C_AXIBAR2PCIEBAR0 設(shè)置不正確調(diào)試時可以使用 windriver工具輔助開發(fā),快速獲取pcie設(shè)置的配置寄存器的值以及主機(jī)為 pcie設(shè)備分配的bar空間大小,假設(shè)主機(jī)為pcie設(shè)備分配的bar空間為0xF7D000000xF7D1FFFF總共12
30、8KB(注意x86處理器系統(tǒng)中存儲器域地址和pcie域地址相等,而arm處理器則不一致)。主機(jī)為 鎖定的 dma 的物理地址為0x00000000db361000(pDma-pDma-Page0.pPhysicalAddr ),進(jìn)行 dma寫內(nèi)存操作時,源地址為 EP 端 bram 空間的地址,目標(biāo)地址位置成主機(jī)為鎖定的dma的物理地址,假設(shè)EP端為axi_pcie 分配的空間為 0x4000_00000x7FFF_FFFF, 0xdb361000 無法順利達(dá)到 axi_pcie 的 S_AXI 總線,將 EP端白axi_pcie 的地址空間設(shè)置成 0xC000_00000xFFFF_FFFF
31、時,0xdb361000可以順利達(dá) 到 axi_pcie 的 S_AXI 總線。 但如果C_AXIBAR2PCIEBAR破置不正確,數(shù)據(jù)也無法正常返回PC端。假如EP端的參數(shù)配置如下C_AXIBAR_0 = 0xC000_0000C_AXI_HIGHADDR_0 = 0xFFFF_FFFFC_AXIBAR2PCIEBAR0 = 0x4000_0000axi到pcie地址轉(zhuǎn)換如下,pcie的最終地址為 0x5b361000,無法返回PC端。為了獲取正 確的pcie 域地址,需要將 C_AXIBAR2PCIEBAR0的最高2比特設(shè) 置成全1 ,如 C_AXIBAR2PCIEBAR0=0xC000_
32、0000 0xFFFF_0000 都是可行的。3.調(diào)試時發(fā)下 axi dma每次最大傳輸長度為 原因是 Width of Buffer Length Register 配置成了 限。將 Width of Buffer Length Register 配置成了16KB-1,假如超過 16KB, dma無法工作。14bits , 16KB-1=0x3FFF好達(dá)至U buffer 的上17bits后,dma可以一次傳輸64KB數(shù)據(jù)。AXI HI rect iRHory Accrkk (7.1 J1加丁麗士blM y lc2 IP UttLiWh* (ittbHd 產(chǎn)ri-l ilin i I r*
33、Ife r . T 1, : L n ll J jj&ii v AajnKExr manz C LqrJka,Jlrnl:.工 31* 5 3 (rtiw CnKB-B4九L打口他I NLBI ; 5產(chǎn)/n=ucibok - -,三寸二mg_SH30三t ,MI_a |1b _*.Lh miE LF_Tfcl l_ni I 口* 3m T .ui _*= UtimB_LZ.ij口L: -E3nt_Wm3 中口*Vl dth el if Luik-lL S.idfk 】H + Sire* D*i hdcii必* |Rm M” -11 *1Z11A 必出41 二T3E*bi Ea.司1第1看j W
34、 C%44ludFBif if hsMivll. Aihi- *”.臼 it/ %qr MrSlrew Dwt 力酰II 備”*941 1w h1 SueJUlfe UTiflU EKt T1 o&3&3.3 WINDOWS下驅(qū)動開發(fā)3.3.1 開發(fā)流程WinDriver是Jungo公司提供的一種通用的驅(qū)動開發(fā)支持軟件,它簡化了用戶的上層驅(qū) 動開發(fā)和應(yīng)用接口開發(fā),而且易于再封裝,實(shí)現(xiàn)商業(yè)化應(yīng)用。該軟件提供了對PCI Express接口設(shè)備的驅(qū)動支持,而且也提供了對DMA實(shí)現(xiàn)功能的支持。開發(fā)流程及使用的函數(shù)如下圖所示,使用接口函數(shù)可以分成3大類:WDC庫相關(guān)、設(shè)備相關(guān)以及 dma相關(guān)。WDC_D
35、riverOpen()WDC_PciScanDevices() WDC_PciGetDeviceInfo() WDC_PciDeviceOpen()WDC_DMAContigBufLock()wDC_DMABufUnlock()WDC WriteAddr32()WDC_PciDeviceClose()WDC_DriverClose()1 .WDC庫相關(guān)打開Windriver驅(qū)動并初始化 WDC庫DWORD DLLCALLCONV WDC_DriverOpen(WDC_DRV_OPEN_OPTIONS openOptions,const CHAR *sLicense);關(guān)閉Windriver驅(qū)動
36、以及WDC庫DWORD DLLCALLCONV WDC_DriverClose(void);2 .設(shè)備相關(guān)掃描PC設(shè)備,dwVendorId為廠商ID, dwDeviceId為器件ID, pPciScanResul的掃描到的PCI 設(shè)備。WDC_PciScanDevices(DWORD dwVendorId, DWORD dwDeviceId,WDC_PCI_SCAN_RESULT *pPciScanResult);返回設(shè)備信息。DWORD DLLCALLCONV WDC_PciGetDeviceInfo(WD_PCI_CARD_INFO *pDeviceInfo);獲取設(shè)備句柄。DWORDLLCALLCONWDC_PciDeviceOpen(WDC_DEVICE_HANDLEDev, const WD_PCI_C
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《GBT24721.5-2023公路用玻璃纖維增強(qiáng)塑料產(chǎn)品第5部分:標(biāo)志底板》(2025版)深度解析
- 《高級管理溝通》課件
- 《智慧經(jīng)營之道》課件
- 集合的基本運(yùn)算
- 語言文字規(guī)范化示范校創(chuàng)建工作
- 中醫(yī)診所消毒隔離培訓(xùn)
- 教科研工作總結(jié)模版
- 兩只小兔子課件
- 七年級英語組長發(fā)言稿模版
- 2025年建筑工程部年終工作總結(jié)模版
- DB32/T+4638-2024+智能泵站技術(shù)導(dǎo)則
- 800萬噸年混合原油常減壓蒸裝置設(shè)計
- 扁鵲治病課本劇劇本
- PCT申請進(jìn)入國家階段的程序及實(shí)務(wù)操作
- 教師教學(xué)中分層布置作業(yè)現(xiàn)狀的調(diào)查問卷
- 各級無塵室塵埃粒子測量表
- 招商引資培訓(xùn)課件-招商引資講課
- WMO五年級初級測評專項訓(xùn)練
- 走進(jìn)神奇的中藥學(xué)習(xí)通章節(jié)答案期末考試題庫2023年
- 計算機(jī)軟件測試員(三級)技能理論考試題庫(匯總)
- 混凝土施工檢驗批質(zhì)量驗收記錄表
評論
0/150
提交評論