當(dāng)前位置:首頁(yè) > EDA > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀] 外圍部件互連總線PCI(Peripheral Component Interconnect)總線,是一種先進(jìn)的高性能32/64位地址數(shù)據(jù)復(fù)用局部總線,可同時(shí)支持多組外圍設(shè)備,并且不受制于處理器,為中央處理器與高速外圍設(shè)備提供了一座溝通的橋

   外圍部件互連總線PCI(Peripheral Component Interconnect)總線,是一種先進(jìn)的高性能32/64位地址數(shù)據(jù)復(fù)用局部總線,可同時(shí)支持多組外圍設(shè)備,并且不受制于處理器,為中央處理器與高速外圍設(shè)備提供了一座溝通的橋梁,提高了數(shù)據(jù)吞吐量(32位時(shí)最大可達(dá)132 MB/s),是現(xiàn)在PC領(lǐng)域中流行的總線。PCI總線具有嚴(yán)格的總線規(guī)范,這就保證了它具有良好的兼容性,符合PCI總線規(guī)范的擴(kuò)展卡可以插入任何PCI系統(tǒng)可靠地工作。

  1 PLX-PCI9054的結(jié)構(gòu)和性能

  PCI9054是PLX公司生產(chǎn)的PCI總線通用接口芯片,采用先進(jìn)的PLX數(shù)據(jù)管道結(jié)構(gòu)技術(shù),符合PCIV2.1和V2.2規(guī)范。提供2個(gè)獨(dú)立的可編程DMA控制器,每個(gè)通道均支持塊和分散/集中的DMA方式,在PCI總線端支持32位/33 MHz,本地端可以編程實(shí)現(xiàn)8、16、32位的數(shù)據(jù)寬度,傳輸速率最高可達(dá)132 MB/s,本地總線端時(shí)鐘最高可達(dá)50 MHz支持復(fù)用/非復(fù)用的32位地址數(shù)據(jù)。

  PCI9054提供了PCI、EEPROM、LOCAL總線3個(gè)接口。PCI9054作為一種橋接芯片在PCI總線和LOCAL總線之間提供傳遞消息,既可以作為兩個(gè)總線的主控設(shè)備去控制總線,也可以作為兩個(gè)總線的目標(biāo)設(shè)備去響應(yīng)總線。PCI9054有6個(gè)零等待可編程FIFO存儲(chǔ)器,它們分別完成PCI發(fā)起讀、寫操作,PCI目標(biāo)讀、寫操作和DMA讀、寫操作。由于FIFO存儲(chǔ)器的存在,數(shù)據(jù)可以大量突發(fā)傳輸而不丟失。這樣不僅滿足實(shí)時(shí)性要求,同時(shí)可根據(jù)用戶的需要采用與PCI時(shí)鐘異步的本地頻率。串行EEPROM是用來(lái)在開機(jī)時(shí)初始化配置內(nèi)部寄存器的。內(nèi)部寄存器(ItnternalRegis-ters)標(biāo)識(shí)地址映射關(guān)系以及PCI端和本地端工作狀態(tài),包括PCI配置寄存器組、Local配置寄存器組、Runtime寄存器組、DMA寄存器組、I2O消息寄存器組。FIFO和內(nèi)部寄存器在計(jì)算機(jī)主機(jī)或者本地端都是統(tǒng)一編址的,用戶可以從兩端通過(guò)編程訪問(wèn)它們的每一個(gè)字節(jié)。

  2 數(shù)據(jù)轉(zhuǎn)換模塊設(shè)計(jì)實(shí)現(xiàn)

  數(shù)據(jù)轉(zhuǎn)換模塊主要是為了把軟件仿真的數(shù)據(jù)通過(guò)PCI總線DMA傳輸,經(jīng)緩存、解碼、編碼、驅(qū)動(dòng)等處理轉(zhuǎn)換成高速串行數(shù)據(jù)流(LNDS數(shù)據(jù)流)。本設(shè)計(jì)中,數(shù)據(jù)轉(zhuǎn)換模塊的硬件組成包括:PCI接口芯片PCI9054、FIGA、EEPROM和SRAM。數(shù)據(jù)轉(zhuǎn)換模塊設(shè)計(jì)原理框圖如圖1所示。



圖1 數(shù)據(jù)轉(zhuǎn)換模塊設(shè)計(jì)原理框圖

  2.1 PCI9054硬件接口設(shè)計(jì)

  PCI9054供了3種物理總線接口:PCI總線接口、LOCAL總線接口和串行EPROM接口。FPGA通過(guò)專用接口芯片PCI9054與PCI總線相連,在FP-GA內(nèi)部分配一塊RAM用作數(shù)據(jù)的緩沖區(qū),可用VHDL語(yǔ)言編程實(shí)現(xiàn)FPGA作為RAM控制器。PCI9054專用接口芯片內(nèi)部2個(gè)獨(dú)立DMA通道,可以實(shí)現(xiàn)系統(tǒng)數(shù)據(jù)在PC機(jī)內(nèi)存與PCI板卡之間的高速傳輸,接口電路示意圖如圖2所示。



圖2 接口電路示意圖

  2.1.1 PCI9054與PCI總線接口

  PCI9054與PCI總線接口連接相對(duì)簡(jiǎn)單,只要將PCI9054芯片的PCI端信號(hào)線與PCI插槽相應(yīng)的信號(hào)線對(duì)應(yīng)連接即可。這些信號(hào)包括地址數(shù)據(jù)復(fù)用信號(hào)、接口控制信號(hào)線、中斷等信號(hào)線。在電路板制作上,需注意PCI總線信號(hào)的走線,為了滿足反射條件,對(duì)信號(hào)走線有嚴(yán)格要求:普通信號(hào)長(zhǎng)度,從插槽連接器到PCI橋芯片不大于1.5 inch(1 inch=0.025 4 m),CLK信號(hào)走線長(zhǎng)度為2.5±0.1 inch。否則會(huì)導(dǎo)致信號(hào)不穩(wěn)定甚至總線沖突,無(wú)法開機(jī)。

  2.1.2 PCI9054與LOCAL Bus接口

  PCI9054與本地信號(hào)接口是相對(duì)重要的一部分。PCI9054有3種工作模式:M、C和J模式。M模式是專為Motorola公司的MCU設(shè)計(jì)的工作模式,主要針對(duì)Motorola公司高性能PC850/860的應(yīng)用而設(shè)計(jì)。C模式下PCI9054芯片通過(guò)片內(nèi)邏輯控制將PCI的地址線和數(shù)據(jù)線分開,方便地為本地工作時(shí)序提供各種工作方式,一般廣泛應(yīng)用于系統(tǒng)設(shè)計(jì)中。J模式是一種沒(méi)有Local Master的工作模式,它的好處是地址數(shù)據(jù)線沒(méi)有分開,嚴(yán)格仿效PCI總線的時(shí)序。J模式的接口設(shè)計(jì)相對(duì)復(fù)雜,最常用的是C模式。C模式下PCI9054分為PCIInitiator操作和PCI Target操作。在PCI Initiator操作過(guò)程中,本地總線主控設(shè)備能夠直接通過(guò)PCI9054訪問(wèn)PCI總線,發(fā)起Local-to-PCI的數(shù)據(jù)傳輸。而在PCI Target操作過(guò)程中,PCI總線主控設(shè)備可以以總線寬度和突發(fā)傳輸功能訪問(wèn)PCI9054的3個(gè)本地空間(空間0,空間1和擴(kuò)充ROM空間),本設(shè)計(jì)就采用了C模式。

  信號(hào)線連接主要包括:LHOLD(申請(qǐng)使用本地總線,輸出信號(hào))、LHOLDA(對(duì)LHOLD應(yīng)答,輸入信號(hào))、ADS#(新的總線訪問(wèn)有效地址的開始,在總線訪問(wèn)first clock設(shè)置時(shí)輸出信號(hào))、BLAST#(表示為總線訪問(wèn)的last transfer,輸出信號(hào))、LW/R#(高電平表示讀操作,低電平表示寫操作,輸出信號(hào))、LA[31:2](地址線)、LD[31:0](數(shù)據(jù)線)、READY#(表示總線上讀數(shù)據(jù)有效或?qū)憯?shù)據(jù)完成,用以連接PCI9054等待狀態(tài)產(chǎn)生器,輸入信號(hào))。

  2.1.3 PCI9054與EEPROM接口

  PCI9054在加電啟動(dòng)時(shí),需要從外部EEPROM讀取初始化數(shù)據(jù)來(lái)配置PCI9054的內(nèi)部寄存器,而且依賴于硬件板卡的硬件資源要求,以及選擇正確的PCI9054工作模式。PCI9054提供4個(gè)管腳與串行EEPROM相連接,它們分別是EEDI、EEDO、EESK和EECS。本文選擇的串行EEPROM是93L-C56,因此對(duì)應(yīng)于93LC56的DI、DO、SK、CS這4個(gè)管腳。

  在計(jì)算機(jī)加電自檢期間,PCI總線的RST#信號(hào)復(fù)位。PCI9054內(nèi)部寄存器的默認(rèn)值作為回應(yīng)。PCI9054出本地LRESET#信號(hào)并檢測(cè)串行EEP-ROM,若串行EEPROM中的前33個(gè)bit不全為1,那么PCI9054確定串行EEPROM非空,用戶可通過(guò)向9054的寄存器CNTRL的29位寫1來(lái)加載EEPROM的內(nèi)容到PCI9054的內(nèi)部寄存器。配置的信息可在P1xSdk中的PLXMON下對(duì)EEPROM進(jìn)行配置。

  EEPROM配置信息主要包括以下兩部分:1)PCI配置寄存器,填寫生產(chǎn)商ID號(hào)、器件ID號(hào)、類碼子系統(tǒng)ID號(hào)和子系統(tǒng)生產(chǎn)商ID號(hào)。對(duì)于PCI-9054,其生廠商ID號(hào)為1OB5,器件ID號(hào)為9054,子系統(tǒng)號(hào)為9054,子系統(tǒng)ID號(hào)為10B5,類碼號(hào)為0680,表示其為橋設(shè)備中的其他橋設(shè)備類。  2)本地配置寄存器的配置,即對(duì)本地地址空間及其本地總線屬性的配置。這些配置要根據(jù)實(shí)際開發(fā)的硬件板卡的硬件資源進(jìn)行配置。設(shè)備人員配置寄存器的任務(wù)就是要把某一段本地地址映射為PCI地址,也就是當(dāng)主機(jī)CPU要訪問(wèn)本地地址空間時(shí),要知道其對(duì)應(yīng)的PCI總線地址。

  2.2 數(shù)據(jù)緩存器設(shè)計(jì)

  數(shù)據(jù)緩存器由兩組SRAM組成,在模擬數(shù)據(jù)時(shí),主機(jī)從磁盤陣列上讀取要模擬的數(shù)據(jù),通過(guò)PCI總線的DMA傳輸給FPGA,首先存到SRAM-A里,SRAM-A存儲(chǔ)滿時(shí),開始以一定的速率讀SRAM-A里的數(shù)據(jù),并串轉(zhuǎn)換成串行數(shù)據(jù),用LVDS信號(hào)形式發(fā)送,在讀的同時(shí)主機(jī)啟動(dòng)第二次DMA傳輸數(shù)據(jù)給FPGA,再存到SRAM-B,SRAM-A讀完、SRAM-B寫滿就開始以一定的速率讀SRAM-B的數(shù)據(jù),并串轉(zhuǎn)換成串行數(shù)據(jù),用LVDS信號(hào)形式發(fā)送,這樣輪番交替形成“乒乓機(jī)制”,有效克服了數(shù)據(jù)流不連續(xù)的現(xiàn)象,解決了形成不間斷數(shù)據(jù)流和兩次DMA傳輸之間的數(shù)據(jù)間斷問(wèn)題。

  3 工作流程

  在設(shè)計(jì)中,PCI端的數(shù)據(jù)傳輸主要是利用PCI9054的BLOCK DMA模式。PCI9054集成了2個(gè)相互獨(dú)立的DMA通道,每個(gè)通道都支持Block DMA和Scatter/Gather DMA,通道0還支持Demand DMA傳輸方式。

  Block DMA要求PCI主機(jī)或Loeal主機(jī)提供PCI和Local的起始地址、傳輸字節(jié)數(shù)、傳輸方向。主機(jī)設(shè)定DMA開始位啟動(dòng)DMA數(shù)據(jù)傳輸,一旦傳輸完成,PCI9054設(shè)定DMA“傳輸結(jié)束位”結(jié)束DMA。如果啟動(dòng)中斷允許位,在傳輸結(jié)束時(shí)PCI9054將向主機(jī)(PCI主機(jī)或LOCAL主機(jī))產(chǎn)生中斷。在DMA傳輸中,PCI9054既是PCI總線的主控器又是Loeal總線的主控器。

  Scatter/Gather DMA要求主機(jī)在PCI空間或Local空間設(shè)定Descriptor模塊,模塊包括PCI和Local的起始地址、傳輸字節(jié)數(shù)、傳輸方向和下一個(gè)Descriptor模塊的地址。PCI9054載人第1個(gè)Descriptor模塊并發(fā)起傳輸,連續(xù)加載下一個(gè)模塊,直到它偵測(cè)到“鏈結(jié)束位”有效,PCI 9054設(shè)置“傳輸結(jié)束位”,或者申請(qǐng)PCI或Local中斷。這種模式下,PCI9054也可以在每個(gè)模塊加載時(shí)有效中斷信號(hào),結(jié)束DMA傳輸。若Desc-riptor模塊在本地存儲(chǔ)空間,可以編程使DMA控制器在每次DMA傳輸結(jié)束后清除傳輸字節(jié)數(shù)。具體工作流程如圖3所示。



圖3 數(shù)據(jù)轉(zhuǎn)換流程圖

  通過(guò)設(shè)置其DMA控制器內(nèi)部的寄存器即可實(shí)現(xiàn)兩總線之間的數(shù)據(jù)傳輸。PCI9054的DMA傳輸過(guò)程可由以下幾個(gè)步驟實(shí)現(xiàn):

  1)設(shè)置方式寄存器:設(shè)置DMA通道的傳輸方式,寄存器DMAMODE0或者DMAMODE1;

  2)設(shè)置PCI地址寄存器:設(shè)置PCI總線側(cè)的地址空間起始地址;

  3)設(shè)置LOCAL地址寄存器:設(shè)置LOCAL總線側(cè)的地址空間起始地址;

  4)設(shè)置傳輸計(jì)數(shù)寄存器:以字節(jié)位單位設(shè)置每次DMA數(shù)據(jù)傳輸量;

  5)設(shè)置描述寄存器:設(shè)置DMA傳輸?shù)姆较颍?表示數(shù)據(jù)從PCI總線到Local總線,1表示數(shù)據(jù)從Local總線到PCI總線;

  6)設(shè)置命令/狀態(tài)寄存器:?jiǎn)?dòng)或停止DMA操作。

  當(dāng)應(yīng)用程序啟動(dòng)開始模擬后,驅(qū)動(dòng)程序收到應(yīng)用程序開始模擬的命令后,同時(shí)填寫PCI9054的門鈴寄存器(PCI端偏移地址:60H)產(chǎn)生LO-CAL端的中斷通知硬件接收DMA的數(shù)據(jù),F(xiàn)PGA收到中斷后,清除中斷,同時(shí)判斷收到開始模擬的命令。硬件準(zhǔn)備好以后發(fā)中斷告訴主機(jī)已經(jīng)準(zhǔn)備好,同時(shí)填寫PCI9054的門鈴寄存器(PCI端偏移地址:64H)產(chǎn)生PCI端的中斷通知硬件已經(jīng)準(zhǔn)備好,主機(jī)收到中斷后,清除中斷,填寫啟動(dòng)DMA開始寄存器,把計(jì)算機(jī)內(nèi)存空間的數(shù)據(jù)通過(guò)PCI總線傳輸?shù)絇CI9054的LOCAL端,F(xiàn)PGA接收LOCAL端的數(shù)據(jù)存入數(shù)據(jù)緩沖區(qū),同時(shí)由FPGA控制讀取緩沖區(qū)中的數(shù)據(jù)經(jīng)并串轉(zhuǎn)換用LVDS信號(hào)形式發(fā)送。當(dāng)DMA結(jié)束后產(chǎn)生主機(jī)PCI中斷,主機(jī)收到中斷后清除中斷,并等待硬件準(zhǔn)備好中斷來(lái)后清中斷填寫下一個(gè)DMA開始,直到模擬數(shù)據(jù)模擬完為止。

  4 WDM驅(qū)動(dòng)程序設(shè)計(jì)

  4.1 WDM驅(qū)動(dòng)程序簡(jiǎn)介

  WDM驅(qū)動(dòng)程序是一種PnP驅(qū)動(dòng)程序,它同時(shí)還遵循電源管理協(xié)議,并能在Windows 98和Windows 2000間實(shí)現(xiàn)源代碼級(jí)兼容。WDM驅(qū)動(dòng)程序還細(xì)分為類驅(qū)動(dòng)程序(class driver)和迷你驅(qū)動(dòng)程序(minidriver),類驅(qū)動(dòng)程序管理屬于已定義類的設(shè)備迷你驅(qū)動(dòng)程序向類驅(qū)動(dòng)程序提供廠商專有的支持。在WDM驅(qū)動(dòng)程序模型中,每個(gè)硬件設(shè)備至少有兩個(gè)驅(qū)動(dòng)程序。其中一個(gè)驅(qū)動(dòng)程序稱為功能(function)驅(qū)動(dòng)程序,了解使硬件工作的所有細(xì)節(jié),負(fù)責(zé)初始化I/O操作,處理I/O操作完成時(shí)所帶來(lái)的中斷事件,為用戶提供一種設(shè)備適合的控制方式。另一個(gè)驅(qū)動(dòng)程序稱為總線(bus)驅(qū)動(dòng)程序,它負(fù)責(zé)管理硬件與計(jì)算機(jī)的連接。例如,PCI總線驅(qū)動(dòng)程序檢測(cè)插入到PCI槽上的設(shè)備并確定設(shè)備的資源使用情況,它還能控制設(shè)備所在PCI槽的電流開關(guān)。

  4.2 驅(qū)動(dòng)程序開發(fā)環(huán)境及設(shè)計(jì)

  項(xiàng)目開發(fā)中選擇的是Numega公司的Driverstudio驅(qū)動(dòng)程序開發(fā)工具包,它是建立在Windows Driver Development Kit之上的驅(qū)動(dòng)程序開發(fā)工具,包含了VtoolsD、DriverWorks、DriverNetWorks和SoftICE等開發(fā)工具。DriverWorks用于開發(fā)普通設(shè)備的WDM驅(qū)動(dòng)程序,SoftICE提供了強(qiáng)大的調(diào)試工具。在安裝Driverstudio之前,還需要安裝相應(yīng)操作系統(tǒng)的DDK,如XPDDK和VC6.0工具。

  在Driverstudio驅(qū)動(dòng)程序向?qū)Ю锟梢暂p易方便地建立起PCI9054的驅(qū)動(dòng)程序框架,而且Driverstudio還提供了PCI9054驅(qū)動(dòng)程序中大量類函數(shù)的接口,降低了開發(fā)難度,縮短了程序編寫時(shí)間。調(diào)試程序可以使用SoftICE和Driver Moniter,極為方便查錯(cuò)及優(yōu)化程序設(shè)計(jì)。

  5 結(jié)束語(yǔ)

  本文通過(guò)介紹PCI總線接口協(xié)議芯片PCI9054的性能、特點(diǎn),分析Windows的WDM驅(qū)動(dòng)程序的特點(diǎn),對(duì)所設(shè)計(jì)的數(shù)據(jù)轉(zhuǎn)換模塊結(jié)構(gòu)進(jìn)行了詳細(xì)說(shuō)明,提出了雙SBAM結(jié)構(gòu)數(shù)據(jù)緩存器的應(yīng)用方案。應(yīng)用結(jié)果表明,該設(shè)計(jì)可滿足數(shù)字視頻帶寬20 MHz以內(nèi)的高速串行數(shù)據(jù)流(INDS數(shù)據(jù)流)的轉(zhuǎn)換與傳輸,保證了硬件內(nèi)存大容量讀取的高速、實(shí)時(shí)性。


 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉