當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]  PCI總線支持突發(fā)傳送,多處理器和并發(fā)工作,廣泛應(yīng)用于各種平臺(tái)設(shè)計(jì)?;赑CI9054的接口板也廣泛地應(yīng)用于各種高速、大數(shù)據(jù)量的處理系統(tǒng)。由于PCI9054橋接有PCI總線和本地總線,開發(fā)者不必過多考慮復(fù)雜的PCI總線規(guī)

  PCI總線支持突發(fā)傳送,多處理器和并發(fā)工作,廣泛應(yīng)用于各種平臺(tái)設(shè)計(jì)?;?strong>PCI9054的接口板也廣泛地應(yīng)用于各種高速、大數(shù)據(jù)量的處理系統(tǒng)。由于PCI9054橋接有PCI總線和本地總線,開發(fā)者不必過多考慮復(fù)雜的PCI總線規(guī)范,從而能有更多精力開發(fā)硬件和驅(qū)動(dòng)程序設(shè)計(jì)。

  這里以PCI9054為例,給出了接口板的硬件和軟件設(shè)計(jì),詳細(xì)論述了該系統(tǒng)設(shè)計(jì)的原理圖和用VHDL語言編寫的部分邏輯源程序,以供相關(guān)開發(fā)人員參考。

  1 PCI9054簡(jiǎn)介

  PCI9054是PLX公司推出的一種32位33 MHz的PCI總線主控I/O加速器,它采用PLX在業(yè)界領(lǐng)先的數(shù)據(jù)流水線框架,包含DMA引擎,可編程的PCI起始器和目標(biāo)數(shù)據(jù)傳輸模式以及PCI信息傳輸功能。遵循PCI2.2版規(guī)范,可獲得最高可達(dá)132 MB/s的突發(fā)傳輸速度。它使復(fù)雜的PCI接口應(yīng)用設(shè)計(jì)變得相對(duì)簡(jiǎn)單,目前已成為主流的PCI接口器件之一。

  PCI9054數(shù)據(jù)傳輸有3種方式:主模式、從模式和DMA方式。其內(nèi)部具有2個(gè)DMA數(shù)據(jù)通道,每個(gè)通道均支持塊Scatter/Gather的DMA方式,雙向數(shù)據(jù)通路上各有6個(gè)FIF0進(jìn)行數(shù)據(jù)緩沖,可同時(shí)進(jìn)行高速的數(shù)據(jù)接收和發(fā)送,8個(gè)32位Mailbox寄存器可為雙向數(shù)據(jù)通路提供消息傳送,PCI9054內(nèi)部框圖,如圖1所示。

  


 

  PCI9054的本地總線有M、C、J 3種工作模式,可通過模式選擇引腳MODE[1:0]進(jìn)行控制,其中C模式能夠滿足絕大多數(shù)的應(yīng)用需求,而且C模式的本地總線操作時(shí)序最為簡(jiǎn)單,邏輯控制相對(duì)容易,其開發(fā)難度相對(duì)較低。C模式下PCI9054通過片內(nèi)邏輯控制將PCI的地址線和數(shù)據(jù)線分開,很方便地為本地工作時(shí)序提供各種工作方式,一般較廣泛應(yīng)用于系統(tǒng)設(shè)計(jì)中。因此,如無特殊需求,建議采用C模式,這也是本接口卡所采用的模式,同時(shí)PCI9054的本地總線時(shí)鐘可由外部提供,該時(shí)鐘可和PCI時(shí)鐘異步。

  2 接口卡硬件設(shè)計(jì)

  接口卡主要功能是:對(duì)外設(shè)裝置進(jìn)行工作模式和狀態(tài)檢測(cè),控制端對(duì)檢測(cè)結(jié)果進(jìn)行相應(yīng)的數(shù)據(jù)接收或發(fā)送操作。其工作流程是:由控制端提出請(qǐng)求,根據(jù)進(jìn)入接口卡的信號(hào)對(duì)外部設(shè)備進(jìn)行工作模式和狀態(tài)檢測(cè)并決定是否對(duì)進(jìn)入外設(shè)的信號(hào)進(jìn)行接收或發(fā)送。機(jī)械特性方面,接口卡遵從Eurocard工業(yè)標(biāo)準(zhǔn),采用6U(233.35 mmxl60 mm)結(jié)構(gòu)。接口卡的邏輯框圖如圖2所示。

  

 

  由圖2可知,接口卡分為3個(gè)部分:PCI總線接口、本地總線接口和串行EEPROM接口。

  2.1 PCI9054與PCI總線接口

  PCI9054與PCI總線接口的連接實(shí)際上是PCI9054與cPCI連接器Jl的連接,即PCI9054的PCI端信號(hào)線通過10Ω的端接電阻與PCI插槽的相應(yīng)信號(hào)線對(duì)應(yīng)連接。PCI總線接口信號(hào)包括地址數(shù)據(jù)復(fù)用信號(hào)線、接口控制信號(hào)線、中斷信號(hào)線等。PCB設(shè)計(jì)時(shí),為了滿足反射條件,需注意PCI總線信號(hào)的布線及長(zhǎng)度,普通信號(hào)長(zhǎng)度,從連接器到PCI橋器件間距應(yīng)不大于1.5英寸(3.81 cm),PCI_CLK信號(hào)布線長(zhǎng)度為2.5±0.1英寸,否則會(huì)導(dǎo)致信號(hào)不穩(wěn)定甚至總線沖突,無法開機(jī)。PCI9054內(nèi)部有可編程的FIF0,實(shí)現(xiàn)零等待突發(fā)傳輸及本地總線與PCI總線之間的異步操作,本地總線時(shí)鐘由外部提供,該時(shí)鐘可以和PCI時(shí)鐘(33 MHz)異步,本地總線選擇工作在50 MHz,由頻率為50 MHz的晶振OSCl產(chǎn)生,同時(shí)

  送往PCI9054本地端的時(shí)鐘信號(hào)LCLK與送往CPLD的時(shí)鐘信號(hào)CCLK要等長(zhǎng),以保持它們同步。

  2.2 PCI9054與本地總線接口

  本接口卡中的CPLD采用Xilinx公司生產(chǎn)的XC95288XL,實(shí)現(xiàn)對(duì)接口卡的邏輯控制。C模式下PCI9054通過片內(nèi)邏輯控制將PCI的地址線和數(shù)據(jù)線分開,然后與CPLD相對(duì)應(yīng)的引腳連接,能方便為本地工作時(shí)序提供各種工作方式,一般廣泛應(yīng)用于系統(tǒng)設(shè)計(jì)。

  

 

  本地總線部分中的INPUT_BUFFER部分主要由差分電壓比較器組成,如圖3所示。當(dāng)從J4進(jìn)入的信號(hào)電壓(引腳7)大于基準(zhǔn)電壓(引腳6)時(shí),輸出高電平(引腳1)并進(jìn)入CPLD,控制器通過PCI9054讀入。0UT_BUFFER部分主要是實(shí)現(xiàn)控制器對(duì)外設(shè)接收或發(fā)送數(shù)據(jù)的控制。

  2.3 PCI9054與EEPROM接口

  PCI9054提供4個(gè)引腳EEDI,EED0,EESK,EECS與串行EEPROM-93LC56的4個(gè)引腳DI、D0、SK、CS相連,此外93LC56的VCC引腳需要接+3.3 V電源,GND接地。因?yàn)樾枰獙?duì)串行EEPROM進(jìn)行寫操作,串行EEPROM需處于可編程而且非保護(hù)狀態(tài),所以PE通過10 kΩ的電阻上拉后接高電平3.3 V電壓,而PRE通過10 kΩ的電阻下拉后接地。EEPROM原理圖如圖4所示。

  

 

  連接好PCI9054與PCI總線接口、本地總線接口和串行EEPROM接口后,還需對(duì)寄存器進(jìn)行配置,配置時(shí)需借助于Windriver工具,寄存器的配置包括PCI配置寄存器的配置、本地配置寄存器的配置及對(duì)EEPROM初始化。

  配置PCI配置寄存器主要是填寫生產(chǎn)商ID號(hào)、器件ID號(hào)、子系統(tǒng)生產(chǎn)商ID號(hào)和類碼子系統(tǒng)ID號(hào)。對(duì)于PCI9054,其生廠商ID號(hào),器件ID號(hào),子系統(tǒng)號(hào),子系統(tǒng)ID號(hào)等是固定的,可以在PCI9054數(shù)據(jù)手冊(cè)中查到。

  本地配置寄存器的配置是對(duì)本地地址空間及本地總線屬性的配置,這種配置根據(jù)實(shí)際開發(fā)需要進(jìn)行,配置完成后,在主機(jī)CPU要訪問本地地址空間時(shí),可能給出對(duì)應(yīng)的PCI總線地址。

  PCI9054在加電啟動(dòng)時(shí),從外部EEPROM讀取初始化數(shù)據(jù)來配置PCI9054的內(nèi)部寄存器,在板卡加電自檢期間,PCI總線的RST#信號(hào)復(fù)位,PCI9054內(nèi)部寄存器的默認(rèn)值作為回應(yīng)。PCI9054出本地LRESET#信號(hào)并檢測(cè)串行EEPROM。

  如果串行EEPROM中的前33位不全為1,那么PCI9054確定串行EEPROM非空,用戶可通過向PCI9054的寄存器CNTRL的29位寫1,來加載EEPROM的內(nèi)容到PCI9054的內(nèi)部寄存器,配置的信息可以在P1xSdk的PLXMON下對(duì)EEPROM進(jìn)行配置。

  3 接口卡軟件設(shè)計(jì)

  3.1 CPLD邏輯設(shè)計(jì)

  PC39054通過本地總線與本地總線設(shè)備進(jìn)行通信,PCI9054提供2種訪問方式,即單周期訪問和突發(fā)方式訪問。

  

 

  其中單周期訪問本地總線采用狀態(tài)機(jī)實(shí)現(xiàn)本地總線接口的控制,其狀態(tài)圖如圖5所示。狀態(tài)SO為空閑狀態(tài),當(dāng)ADS#為0時(shí),如經(jīng)本地總線譯碼邏輯譯碼后表明需要訪問本地空間時(shí)則轉(zhuǎn)到狀態(tài)S1,否則留在狀態(tài)SO;狀態(tài)S1為單周期訪問開始狀態(tài),當(dāng)BLAST#為1時(shí),停留在狀態(tài)S1,否則轉(zhuǎn)到狀態(tài)S2:狀態(tài)S2為訪問等待狀態(tài),在此狀態(tài)下數(shù)據(jù)在本地總線保持,然后直接轉(zhuǎn)到狀態(tài)S3;狀態(tài)S3數(shù)據(jù)傳送狀態(tài),在此狀態(tài)下數(shù)據(jù)從本地總線上取走(如果需要可以加一個(gè)狀態(tài)來延長(zhǎng)數(shù)據(jù)讀取時(shí)間);當(dāng)ADS#為0時(shí),經(jīng)本地總線譯碼邏輯譯碼后,表明還需要訪問本地空間,轉(zhuǎn)到狀態(tài)S1,否則轉(zhuǎn)為SO,本周期訪問結(jié)束完成數(shù)據(jù)傳送。

  將以上狀態(tài)機(jī)用VHDL語言在可編程器件中實(shí)現(xiàn),部分源程序代碼如下:

  ……

  

 

  

 

  圖6是借助于Xilinx ISE 9.1i仿真工具對(duì)在C模式下的8位本地總線寬度的本地邏輯控制的傳輸時(shí)序仿真結(jié)果舉例。由圖6可知:在寫周期,是把PCI總線端的地址local_adrr[9:2]為8'h00的數(shù)據(jù)寫到輸出端outport0;在讀周期,是把地址為8'h00的數(shù)據(jù)從inportO[2;0]讀入到local_data[0]。

  

 

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

  Windriver是Jungo公司生產(chǎn)的一個(gè)設(shè)備驅(qū)動(dòng)程序開發(fā)組件,開發(fā)者不需熟悉操作系統(tǒng)內(nèi)核即可利用Windriver開發(fā)設(shè)備驅(qū)動(dòng)程序。整個(gè)驅(qū)動(dòng)程序中的所有函數(shù)都是在用戶態(tài)下運(yùn)行的,通過與Windriver的.Vxd或者.Sys文件交互來達(dá)到驅(qū)動(dòng)硬件的目的,大大提高了PCI設(shè)備驅(qū)動(dòng)程序開發(fā)。

  用Windriver開發(fā)驅(qū)動(dòng)程序的過程大致如下:首先,打開Windriver設(shè)備,查找所要訪問的PCI設(shè)備;然后是枚舉該設(shè)備的資源(包括內(nèi)存、I/O、中斷)并鎖定該設(shè)備的資源,不能被其他程序訪問;在訪問板上的資源之后是解鎖資源;最后是關(guān)閉Windriver設(shè)備。這個(gè)過程是用C語言在VC++6.0開發(fā)環(huán)境下借助于Windriver本身自帶函數(shù)(安裝Windriver之后,在其“Help”中可找出相關(guān)函數(shù)說明)實(shí)現(xiàn)對(duì)PCI9054的

  初始化。設(shè)備打開,訪問硬件資源,調(diào)用函數(shù)庫(kù),設(shè)備關(guān)閉等操作后。再對(duì)源代碼進(jìn)行編譯,鏈接和運(yùn)行成功后,找出產(chǎn)生的5個(gè)文件:wdr-eg.exe,plx9054.inf,windrvr6.sys,plx9054.lib和plx9054.dll,這5個(gè)文件組成了所需的驅(qū)動(dòng)文件。在板卡成功插入插槽后點(diǎn)擊wdreg.exe成功安裝驅(qū)動(dòng)程序。

  4 結(jié)束語

  本文以性價(jià)比較高的PCI9054作為PCI橋路器,給出了橋路器的部分功能介紹、電路設(shè)計(jì)時(shí)需注意的問題及本地總線數(shù)據(jù)傳輸接口邏輯設(shè)計(jì)。本設(shè)計(jì)降低了PCI總線的復(fù)雜性,輕松實(shí)現(xiàn)了PCI總線端的控制器對(duì)本地總線和本地總線外部設(shè)備的工作模式和狀態(tài)的有效檢測(cè),具有極大的應(yīng)用價(jià)值。

本站聲明: 本文章由作者或相關(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日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(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ì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

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

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(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)閉