基于PCI總線目標(biāo)接口芯片PCI9052及其應(yīng)用設(shè)計
目前,PCI總線已成為新一代個人計算機(jī)的標(biāo)準(zhǔn)總線,它是一種高性能的32/64位地址數(shù)據(jù)復(fù)用總線,總線時鐘頻率的0~33MHz。它不象ISA異步總線那樣把地址尋址和數(shù)據(jù)讀寫控制信號都交由微處理器產(chǎn)生,而是一種獨(dú)立于處理器的同步總線,可以支持猝發(fā)傳送。為支持即插即用功能,PCI總線規(guī)范定義了264字節(jié)的配置空間。由于PCI總線協(xié)議比較復(fù)雜,因而其接口電路實(shí)現(xiàn)起來比較困難,但采用通用PCI接口芯片即可很好地解決這個問題。PCI通用接口芯片對于PCI協(xié)議的良好支持,以及提供給設(shè)計者的良好接口都大大減少了設(shè)計者的工作量?,F(xiàn)有的PCI接口芯片主要有AMCC公司的MACCS59XX系列和PLX公司的PLX系列。本文將對PLX公司的PCI9052總線目標(biāo)接口芯片的功能及其在PCI板卡設(shè)計中的應(yīng)用進(jìn)行介紹。
1 PCI9052的功能特點(diǎn)
PCI9052是PLX公司繼PCI9050之后新推出的、可用于低成本適配器的總線目標(biāo)接口芯片。PCI9052與PCI9050一樣,可提供用于適配卡的小型高性能PCI總線目標(biāo)(從屬)接口,以使ISA適配器可以迅速、低成本地轉(zhuǎn)換到PCI總線上。采用PCI9052可使適配卡上的I/O數(shù)據(jù)傳送速度從PCI9052可使適配卡上的I/O數(shù)據(jù)傳送速度從ISA總線的8MHz提高到PCI的33MHz。
PCI9052的主要功能與特性如下:
●符合PCI2.1規(guī)范,支持低成本從屬適配器;
●帶有五個局域總線地址空間和四個片選;
●具有雙向FIFO,可用于零等待狀態(tài)突發(fā)操作;
●PCI總線的傳輸速度可高達(dá)132兆字節(jié)/秒;
●支持多路復(fù)用和非多路復(fù)用的8位、16位和32位通用局域總線;
●支持局域總線與PCI時鐘的異步運(yùn)行;
●支持Big/Little Endian編碼字節(jié)轉(zhuǎn)換;
●支持來自兩個局域總線的中斷所生成的PCI中斷;
●可用串行EEPROM裝載配置信息;
●具有ISA模式,支持PCI總線到ISA總線的單周期存儲器(8位、16位)讀寫和I/O訪問。
圖1所示是PCI9052的信號接口示意圖。
2 PCI9052的應(yīng)用操作
2.1 初始化
在上電時,PCI總線的RST信號有效,同時,PCI9052輸出局部復(fù)位信號LRESET并檢查EEPROM是否存在數(shù)值。若存在,則根據(jù)EEPROM中的內(nèi)容設(shè)置內(nèi)中寄存器,否則設(shè)為缺省值。PCI配置寄存器只能通過EEPROM或PCI主機(jī)CPU來進(jìn)行設(shè)置。[!--empirenews.page--]
2.2 復(fù)位
PCI9052總線接口在RST信號輸入有效時將引起整個PCI9052的復(fù)位,并輸出LRESET局部復(fù)位信號。PCI總線上的主機(jī)可以通過設(shè)置控制寄存器中的軟件復(fù)位比特來對PCI9052進(jìn)行復(fù)位,并輸出LRESET信號。
2.3 串行存儲器接口
復(fù)位后,PCI9052開始讀串行EEPROM,若讀出的第一個字非FFFFH,則PCI9052繼續(xù)讀操作,否則認(rèn)為EEPROM無效。對PCI9052來講,EEPROM的前四個字節(jié)應(yīng)為52H、90H、B5H和10H,其中9052H為設(shè)備號,10B5H為廠商編號。
2.4 寄存器訪問
PCI9052的內(nèi)部寄存器可通過PCI總線的主機(jī)CPU和串行EEPROM進(jìn)行訪問,這些內(nèi)部寄存器分為PCI配置寄存器和局部總線配置寄存器。主要有以下幾種:
●設(shè)備與廠商寄存器:該寄存器位于PCI配置寄存器的起始處,用于標(biāo)識設(shè)備類別及制造廠家;
●狀態(tài)寄存器:狀態(tài)寄存器內(nèi)含與PCI總線相關(guān)的事件信息;
●命令寄存器:用來控制設(shè)備對PIC訪問的響應(yīng);‘‘
●局部配置寄存器存儲器訪問的PCI基地址寄存器:系統(tǒng)BIOS利用此寄存器為PCI9052局部配置寄存器的存儲器訪問分配一段PCI地址空間,范圍為128字節(jié),實(shí)始化時,主機(jī)對寄存器寫入FFFFFFFF,然后讀回FFFFFF70,以確定其占用空間為128字節(jié);
●局部配置寄存器I/O訪問的PCI基地址寄存器:系統(tǒng)BIOS利用此寄存器為PCI9052局部配置寄存器的I/O訪問分配一段PCI地址空間;
●局部地址空間0訪問的PCI基地址寄存器:系統(tǒng)BIOS利用此寄存器為PCI9052局部地址空間0的訪問分配一段PCI地址空間;
PCI主機(jī)處理可以直接對局部上的設(shè)備進(jìn)行讀/寫操作。PCI9052配置寄存器能夠訪問映射到局部的地址空間。同時片內(nèi)的讀寫FIFO使PCI9052能夠支持PCI總線與局部總線間的高性能猝發(fā)傳送。PCI總線主控訪問局部總線的示意圖如圖2所示。
2.5 局部總線ISA接口模式
PCI9052的新功能是它直接提供給用戶個ISA邏輯接口,從而保證了ISA到PCI的平滑轉(zhuǎn)換,另外,ISA接口還能支持8/16位存儲器或I/O設(shè)備。用戶通過對EEPROM的編程可將PCI9052置為ISA接口模式,在ISA接口模式下,LRESET信號將由低有效變?yōu)楦哂行?并可將局部總線空間2、3配置為無復(fù)用方式。
3 基于PCI9052的PCI接口卡設(shè)計
利用PCI總線目標(biāo)接口芯片PCI9052設(shè)計PCI接口卡非常簡便,圖3是筆者設(shè)計的PCI總線數(shù)據(jù)采集卡的原理框圖。圖中的數(shù)據(jù)采集電路用來完成數(shù)據(jù)的采集與存儲,而PCI總線上的主機(jī)CPU可通過PCI9052直接讀取存儲器中的數(shù)據(jù)。
4 結(jié)束語
由于PCI總線數(shù)據(jù)吞吐量大,傳輸速率高,從而大大改善了數(shù)據(jù)傳輸?shù)?ldquo;瓶頸”問題。所以,在未來的微機(jī)接口設(shè)計中,基于PCI總線的設(shè)計在將成為主流。當(dāng)然,PCI總線協(xié)議比較復(fù)雜,設(shè)計PCI控制接口難較大。目前,一般采用兩種方式:一種是使用ALTERA,XILINX等公司的FPGA系列并使用其元件庫;另一種辦法是使用成型接口芯片如AMCC公司的S5933或PLX公司的PCI905X系列等。而專用PCI接口芯片的使用將避免用戶直接面對復(fù)雜的PCI總線協(xié)議,因此,可以降低設(shè)計難度,從而使用戶能夠集中精力解決具體的應(yīng)用問題以縮短開發(fā)周期。