PCI總線接口芯片PCI9054及其應(yīng)用
PCI9054是PLX公司推出的一種PCI主模式橋芯片。本文主要介紹了它的特性、功能及應(yīng)用,說明了以PCI9054作為接口芯片,開發(fā)PCI總線擴(kuò)展卡的硬件框架圖,最后給出一個(gè)簡單的實(shí)例。關(guān)鍵詞:PCI總線;局部總線;PCI9054
一、 引言 PCI 總線是英特爾公司推出的一種高性能局部總線,其數(shù)據(jù)總線為32 位,且可擴(kuò)展成64 位,最大數(shù)據(jù)傳輸速率為128- 256MB/ s,遠(yuǎn)遠(yuǎn)大于ISA總線5Mbyte/s的速度,是目前使用廣泛的一種總線,可以支持突發(fā)傳送。PCI總線與CPU無關(guān),與時(shí)鐘頻率也無關(guān),因此它可以應(yīng)用于各種平臺(tái),支持多處理器和并發(fā)工作。
PCI總線協(xié)議比較復(fù)雜,用戶可以根據(jù)具體實(shí)際需求選擇相應(yīng)的開發(fā)方式,一般,PCI總線開發(fā)采用兩種方式, 一是采用CPLD來設(shè)計(jì)控制接口。它的最大好處是比較靈活,用戶可以根據(jù)自己的需要開發(fā)出適合于特定功能的芯片,而不必實(shí)現(xiàn)PCI的全部功能。現(xiàn)在有許多生產(chǎn)可編程邏輯器件的廠商,如Xilinx的LogiCore和Altera的AMPP都提供經(jīng)過嚴(yán)格測試的PCI接口功能模塊,用戶只要進(jìn)行組合設(shè)計(jì)即可。由于PCI總線協(xié)議復(fù)雜,設(shè)計(jì)PCI控制接口難度較大,對(duì)于產(chǎn)品不大又有時(shí)限的工程項(xiàng)目來說,成本巨大,不劃算。 二是采用通用PCI接口芯片,例如南京沁恒公司的CH365,AMCC 公司的AMCC S5920、AMCC S5933,PLX 公司的PLX9054、PLX9080 等,通過專用芯片可以實(shí)現(xiàn)完整的PCI主控模塊和目標(biāo)模塊的功能,將復(fù)雜的PCI總線接口轉(zhuǎn)換為相對(duì)簡單的用戶接口,用戶只要設(shè)計(jì)轉(zhuǎn)換后的總線接口即可,它能實(shí)現(xiàn)PCI規(guī)范所要求的所有硬件接口信號(hào)和配置空間寄存器,專用接口芯片具有較低的成本和通用性,能夠有效降低接口設(shè)計(jì)的難度,縮短開發(fā)時(shí)間, 并能獲得較好的數(shù)據(jù)傳輸性能。下面將主要介紹PLX公司的PCI9054接口芯片。
二、 概述 PCI9054是由美國PLX公司生產(chǎn)的先進(jìn)的PCI I/O加速器,采用了先進(jìn)的PLX數(shù)據(jù)流水線結(jié)構(gòu)技術(shù),是32位、33MHz的PCI總線主I/O加速器;符合PCI本地總線規(guī)范2.2版,突發(fā)傳輸速率達(dá)到132MB/s,本地總線支持復(fù)用/非復(fù)用的32位地址/數(shù)據(jù);有M、C、J三種模式;針對(duì)不同的處理器及局總線特性可選,盡量減少中間邏輯;具有可選的串行E2PROM接口,本地總線時(shí)鐘可和PCI時(shí)鐘異步。PC9054內(nèi)部有6種可編程的FIFO,以實(shí)現(xiàn)零等待突發(fā)傳輸及本地總線和PCI總線之間的異步操作;支持主模式、從模式、DMA傳輸方式,因其強(qiáng)大的功能可應(yīng)用于適配卡和嵌入式系統(tǒng)中。PCI 9054是一種性比高的PCI橋路芯片,比PCI9080、PCI9050等性能更優(yōu)越。
PCI9054內(nèi)部圖
PCI 9054其內(nèi)部框圖如圖所示。它采用了先進(jìn)的PLX數(shù)據(jù)管道結(jié)構(gòu)技術(shù),是32Bit、33MHz的PCI總線主I/O加速器。 PCI9054主要特性如下: PCI總線接口 PCI總線狀態(tài)機(jī) FIFO本地總線狀態(tài)機(jī) 本地總線接口 內(nèi)部寄存器 串行EEPROM初始值 控 制 邏 輯 9054內(nèi)部圖本地總線 PCI總線 ·符合PCI V2.1,V2.2規(guī)范,包含PCI電源管理特性。 ·支持VPD(Vital Product Data)的PCI擴(kuò)展。 ·支持PCI雙地址周期,地址空間高達(dá)4GB ·具備I2O準(zhǔn)備報(bào)文單元,完全兼容I2O V1.5規(guī)范。 ·提供了兩個(gè)獨(dú)立的可編程DMA控制器,每個(gè)通道均支持塊和Scatter/Gather的DM方式,DMA通道0支持請(qǐng)求DMA方式。 ·在PCI啟動(dòng)模式下,PCI 9054可插入類型1和類型2的配置周期。 ·PCI和Local Bus數(shù)據(jù)傳送速率高達(dá)132MB/S。 ·支持本地總線直接接口Motorola MPC850或MPC860系列、Intel i960系列、IBMPPC401系列及其它類似總線協(xié)議設(shè)備。 ·本地總線速率高達(dá)50MHz;支持復(fù)用/非復(fù)用的32bit地址/數(shù)據(jù);本地總線有三種模式;M模式、C模式和J模式,可利用模式選擇引腳加以選擇。 ·具有可選的串行EEPROM接口。 ·具有8個(gè)32bit Mailbox寄存器和2個(gè)32位Doorbell寄存器。
三、 功能描述
1、PCI9054的物理總線接口
PCI9054提供了三種物理總線接口:PCI總線接口,LOCAL總線接口,及串行EPROM接口。LOCAL總線的數(shù)據(jù)寬度為32位,時(shí)鐘頻率可達(dá)到50MHZ, 并且支持?jǐn)?shù)據(jù)預(yù)取功能。 PCI9054的總線操作包括PCI總線操作和本地總線操作。對(duì)于PCI總線操作,它完全遵守2.2版本PCI規(guī)范。PCI9054本地總線支持非多路復(fù)用32位地址/數(shù)據(jù)總線,多路復(fù)用32位和8位,16位或32位本地總線設(shè)備從屬訪問,運(yùn)行速率高達(dá)50MHz,可以獲得200MB/S的本地總線突發(fā)傳輸速率。 PCI9054的LOCAL總線與PCI總線之間數(shù)據(jù)傳輸有三種方式:主模式(Direct Master),從模式(Direct Slave),DMA方式。其內(nèi)部具有兩個(gè)DMA數(shù)據(jù)通道,雙向數(shù)據(jù)通路上各有6個(gè)FIFO進(jìn)行數(shù)據(jù)緩沖,可同時(shí)進(jìn)行高速的數(shù)據(jù)接收和發(fā)送。8個(gè)32位Maibox寄存器可為雙向數(shù)據(jù)通路提供消息傳送。PCI9054還提供了一個(gè)串行EEPROM接口,容量2K字節(jié)。在配置存儲(chǔ)器中存放了廠家標(biāo)示、設(shè)備標(biāo)示以及本地總線的基地址空間、I/O空間、中斷控制信號(hào)等信息。當(dāng)初始化時(shí),系統(tǒng)自動(dòng)將串行EEPROM中的配置參數(shù)裝入PCI配置寄存器,并根據(jù)本地總線對(duì)內(nèi)存、I/O端口和中斷的需求統(tǒng)一劃分,自動(dòng)配置。其中本地端寄存器也可以由本地CPU讀寫,直接進(jìn)行配置。
2、PCI9054工作模式
PCI9054有3種工作模式,分別為C、M和J模式。M模式主要是針對(duì)Motorola公司高性能MPC850/860的應(yīng)用而設(shè)計(jì)的,主要應(yīng)用在電信領(lǐng)域,J模式的接口設(shè)計(jì)相對(duì)比較復(fù)雜,通常用的是C模式。 C模式下PCI9054分為PCI Initiator操作和PCI Target操作。在PIC Initiator操作過程中,本地處理器或本地總線主控設(shè)備能夠直接通過PCI9054訪問PCI總線,發(fā)起Local-to-PCI的數(shù)據(jù)傳輸。而在PCI Target操作過程中,PCI總線主控設(shè)備可以以可編程的等待狀態(tài)、總線寬度和突發(fā)傳輸功能訪問PCI9054的三個(gè)本地空間(空間0,空間1和擴(kuò)充ROM空間)。
3、PCI9054的DMA突發(fā)模式
PCI9054集成了兩個(gè)互相獨(dú)立的DMA通道,每個(gè)通道都支持Block DMA和Scatter/Gather DMA,通道0還支持Demand DMA傳輸方式 Block DMA要求PCI主機(jī)或Local主機(jī)提供PCI和Local的起始地址、傳輸字節(jié)數(shù)、傳輸方向。主機(jī)設(shè)定DMA開始位啟動(dòng)數(shù)據(jù)傳輸,一旦傳輸完成,PCI9054設(shè)定DMA"傳輸結(jié)束位"結(jié)束DMA,如果中斷允許位被使能,在傳輸結(jié)束時(shí)PCI9054將向主機(jī)申請(qǐng)中斷。在DMA傳輸中,PCI9054既是PCI總線的主控器又是Local總線的主控器。 Scatter/Gather DMA要求主機(jī)在PCI空間或Local空間設(shè)定Descriptor模塊,模塊包括PCI和Local的起始地址、傳輸字節(jié)數(shù)、傳輸方向和下一個(gè)Descriptor模塊的地址。PCI9054載入第一個(gè)Descriptor模塊并發(fā)起傳輸,連續(xù)加載下一個(gè)模塊,直到它偵測到"鏈結(jié)束位"有效,PCI 9054設(shè)置"傳輸結(jié)束位",或者申請(qǐng)PCI或Local中斷。這種模式下,PCI9054也可以在每個(gè)模塊加載時(shí)有效中斷信號(hào)結(jié)束DMA傳輸。若Descriptor模塊在本地存儲(chǔ)空間,可以編程使DMA控制器在每次DMA傳輸結(jié)束后清除傳輸字節(jié)數(shù)。
4、PCI9054寄存器
PCI9054內(nèi)部提供了5種寄存器:PCI配置寄存器,本地端配置寄存器,運(yùn)行時(shí)間RUNTIME寄存器,DMA寄存器和I2O信息寄存器。,下面對(duì)PCI配置寄存器和本地端配置寄存器的功能做簡要介紹。 PCI配置寄存器也就是我們常說的PCI配置空間,他提供了配置PCI的一些信息。其中VenderID,DeviceID,RevisionID,HeaderType,ClassCode用于PCI設(shè)備的識(shí)別。 命令寄存器(Command)包含設(shè)備控制位,包括允許存儲(chǔ)器讀寫響應(yīng)等。 狀態(tài)寄存器(Status)用于記錄PCI總線的相關(guān)事件。 PCI配置寄存器提供了6個(gè)基地址寄存器,這些基地址都是在系統(tǒng)中的物理地址范圍內(nèi),其中BASE0和BASE1都是用來訪問其他配置寄存器的基地址,BASE1是其他配置寄存器映射到PCI端內(nèi)存的基地址,BASE2是其他寄存器映射到PCI端I/O的基地址。 所以可以通過PCI端內(nèi)存和PCI端I/O來訪問LOCAL配置寄存器與其他3種寄存器。BASE2~5四個(gè)空
間提供了訪問本地端所接的4個(gè)芯片(當(dāng)然可以少于4個(gè)),他們將本地端的芯片通過本地端地址(在LOCAL配置寄存器中設(shè))翻譯成PCI的地址,也就是將本地的芯片映射到系統(tǒng)的內(nèi)存或I/O口。這樣使得用程序操作這一段內(nèi)存(或I/O)實(shí)際上就是對(duì)本地的芯片操作。 本地端配置寄存器提供了本地端的一些信息
5、C模式部分時(shí)序圖
局部總線仲裁(LHOLD和LHOLFA) LCLK:輸入信號(hào),時(shí)鐘信號(hào) LHOLD:輸入信號(hào),申請(qǐng)使用本地總線。 LHOLFA:輸入信號(hào),對(duì)LHOLD應(yīng)答。 四、 基于PCI9054的PCI接口設(shè)計(jì) PCI 9054 以其強(qiáng)大的功能和簡單的用戶接口,為PCI總線接口的開發(fā)提供了一種簡潔的方法,設(shè)計(jì)者只需設(shè)計(jì)出本地總線接口控制電路,即可實(shí)現(xiàn)與PCI總線的高速數(shù)據(jù)傳輸。 下圖是應(yīng)用PCI9054作為接口芯片,開發(fā)PCI總線擴(kuò)展卡的總體硬件框架圖
下面簡單介紹以PCI9054為接口芯片的網(wǎng)卡設(shè)計(jì),
1、 硬件設(shè)計(jì) 8051 RAM8位鎖存器029AS
第一部分是9054和PCI插槽間的連接信號(hào)線。這些信號(hào)包括地址數(shù)據(jù)復(fù)用信號(hào)AD[31:0],總線命令信號(hào)C/BE[3:0]#和PCI協(xié)議控制信號(hào)PAR、FRAME#、IRDY#、TRDY#、STOP#、IDSEL、PERR#、SERR#、 第二部分是9054與EEPROM的連線。這里有四根信號(hào)線:EESK、EEDO、EEDI、EECS,串行EEPROM的數(shù)據(jù)通過燒寫編程的方式,也可以通過本地CPU直接編程的方式來完成初始化 第三部分就是9054與應(yīng)用電路的連接。其中LA地址總線、LD數(shù)據(jù)總線、LBE#字節(jié)使能信號(hào)和CPLD相連;LW/R讀寫信號(hào)、BLAST#、READY#、ADS#和8051單片機(jī)相連。 PCI9054工作在初始化器模式時(shí),要求本地端的總線是32位的。在這里,用CPLD實(shí)現(xiàn)將80C51單片機(jī)的8位數(shù)據(jù)與16位地址轉(zhuǎn)換成32位的數(shù)據(jù)和地址,使用RAM的目的是提高8051的數(shù)據(jù)傳輸速度和處理復(fù)雜的TCP/IP協(xié)議,EEPROM用來保存些相關(guān)的信息狀態(tài)等。
2、軟件設(shè)計(jì) 軟件程序主要分為兩大部分,一是對(duì)PCI9054芯片的PCI端配置寄存器和本地端配置寄存器進(jìn)行正確的編程配置;二是網(wǎng)絡(luò)通訊,包括網(wǎng)卡初始化、發(fā)送控制和接受控制3部分 五、 結(jié)束語 在實(shí)踐開發(fā)中證明,用PCI9054開發(fā)各種高速數(shù)據(jù)采集系統(tǒng)、圖象處理系統(tǒng)等PCI設(shè)備,能夠減少許多相應(yīng)的外圍器件,降低了開發(fā)難度,縮短了開發(fā)周期,并且使成本有了大幅度的降低。
參考文獻(xiàn): [1 ] 李貴山,戚德虎. PCI局部總線開發(fā)者指南.西安:西安電子科技大學(xué)出版社,2001 [2 ] PCI Local Bus Specification Revision 2.2 December 18, 1998 [ 3 ] PCI9054 Data Book V2.1,PLX公司.2000 [4 ] 采用8位單片機(jī)驅(qū)動(dòng)PCI總線網(wǎng)卡的設(shè)計(jì)方案,西安理工大學(xué).閆全成,李琦, 楊延西 作者:黃身錁,司職于福州南南信息科技有限公司,從事PCI總線、USB總線開發(fā)
評(píng)論
查看更多