《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > 淺論P(yáng)CI 9052芯片功能及其應(yīng)用
淺論P(yáng)CI 9052芯片功能及其應(yīng)用
宋春雷 董春雷 黃宇輝
摘要: 隨著PCI總線廣泛地應(yīng)用在計算機(jī),、通信、儀器儀表、工業(yè)控制等領(lǐng)域,,PCI接口電路的設(shè)計也變得越來越重要。PCI9052是PLX公司繼PCI9050之后新推出的一種低成本的PCI總線目標(biāo)接口芯片,,它傳輸速率高,,數(shù)據(jù)吞吐量大,可避免用戶直接面對復(fù)雜的PCI總線協(xié)議,。本文主要介紹了PCI9052的功能與操作,,并給出了具體的應(yīng)用設(shè)計實(shí)例,。
關(guān)鍵詞: 接口IC 接口電路 PCI9052 PCI總線
Abstract:
Key words :

0 引言
   
目前,PCI總線" title="PCI總線">PCI總線已成為新一代個人計算機(jī)的標(biāo)準(zhǔn)總線,,它是一種高性能的32/64位地址數(shù)據(jù)復(fù)用總線,,總線時鐘頻率0~33MHz,具有獨(dú)立于處理器,、高數(shù)據(jù)傳速率,、即插即用、低功耗,、適應(yīng)性強(qiáng)等特點(diǎn),。隨著PCI總線的廣泛應(yīng)用,其接口的設(shè)計開發(fā)顯得尤為重要,。實(shí)現(xiàn)PCI總線接口一般采用CPLD或FPGA設(shè)計PCI接口,,這種方法難度很大;另一種是采用專用的PCI接口電路" title="接口電路">接口電路,,使設(shè)計開發(fā)者免除繁瑣的時序分析,,縮短開發(fā)周期,降低開發(fā)成本,。PCI通用接口芯片對于PCI協(xié)議的良好支持,,以及提供給設(shè)計者的良好接口都大大減少了設(shè)計者的工作量。現(xiàn)有的PCI接口芯片主要有AMCC公司的MACCS59XX系列和PLX公司的PLX系列,。本文將對PLX公司的PCI9052" title="PCI9052">PCI9052總線目標(biāo)接口芯片的功能及其在PCI板卡設(shè)計中的應(yīng)用進(jìn)行介紹,。

1 PCI9052的功能與操作
1.1 PCI9052的簡要介紹
   
PCI9052是PLX公司繼PCI9050之后新推出的,可用于低成本適配器的總線目標(biāo)接口芯片,。PCI9Q52與PCI9050一樣,,可提供用于適配卡的小型高性能PCI總線目標(biāo)(從屬)接口,以使ISA適配器可以迅速,、低成本地轉(zhuǎn)換到PCI總線上,。采用PCI9052可使適配卡上的I/O數(shù)據(jù)傳送速度從ISA總線的8MHz提高到PCI的33MHz。
    PCI9052能被編程去直接連接復(fù)用或非復(fù)用的8位,、16位或32位局部總線,。8位和16位模式也能容易地轉(zhuǎn)換成ISA轉(zhuǎn)PCI的設(shè)計。
    PCI9052包含讀和寫FIFO,,用來將32位寬33MHz的PCI總線與有可能總線寬度要窄或慢的局部總線的速度進(jìn)行匹配,。最大5個局部地址空間和4個片選被支持。
1.2 PCI9052的主要功能
   
支持低成本從屬適配器:PCI9052支持符合PCI2.1版本協(xié)議的低成本從屬適配器,,此芯片也允許轉(zhuǎn)換ISA適配器到PCI,。
    異步操作:PCI9052的局部總線與PCI總線的時鐘相互獨(dú)立運(yùn)行,兩總線的異步運(yùn)行便于高,、低速設(shè)備的兼容,。局部總線的運(yùn)行時鐘頻率范圍為0~40MHz,,TTL電平,PCI的運(yùn)行時鐘頻率范圍為0~33MHz,。
    支持突發(fā)操作:PCI9052支持從PCI總線到局部總線的猝發(fā)存儲器映射空間的傳送和I/O訪問,,PCI9052提供一個64字節(jié)的寫FIFO和一個32字節(jié)的讀FIFO,從而支持預(yù)取模式即突發(fā)操作,。
    中斷產(chǎn)生器:可以由局部總線的二個中斷信號LINTi1和LINTi2產(chǎn)生一個PCI中斷信號INTA#,。
    串行EEPROM接口:PCI9052包含一個SEEPROM接口,用于存放PCI總線和局部總線的配置信息,。
    5個局域總線地址空間和4個片選:基址和地址范圍可以由串行EEPROM或主機(jī)進(jìn)行編程,。
    大/小邊界的字節(jié)交換:PCI9052支持大和小邊界字節(jié)順序。在16位或8位局部總線操作時PCI9052也支持大邊界字節(jié)通路方式重定向到當(dāng)前字/字節(jié)通路,。
    總線驅(qū)動:所有地址,、數(shù)據(jù)和控制信號都由PCI9052直接驅(qū)動,不用額外的驅(qū)動電路,。
    局部總線等待狀態(tài):插入LRDY#(局部準(zhǔn)備好輸入信號)握手信號能產(chǎn)生幾個等待狀態(tài),,PCI9052也有一個內(nèi)部等待狀態(tài)產(chǎn)生器(R/W地址到數(shù)據(jù),R/W數(shù)據(jù)到數(shù)據(jù),,和R/W數(shù)據(jù)到地址),。
    PCI鎖定機(jī)制:主機(jī)可以通過鎖定信號占有對PCI9052的唯一訪問權(quán)。
    ISA總線模式:PCI9052提供一個ISA邏輯接口,,用戶可直接使PCI總線和ISA總線相連,,可以非常容易地將ISA設(shè)計轉(zhuǎn)換到PCI。
    PCI9052的接口示意圖如圖1所示,。


1.3 PCI9052的應(yīng)用操作
1.3.1 初始化
   
在上電時,PCI總線的RST#信號將PCI9052的內(nèi)部寄存器設(shè)置為缺省值,,同時,,PCI9052輸出局部復(fù)位信號(LRESET#),并且檢查EEPROM是否存在,。如果設(shè)備上裝有EEPROM,,且EEPROM的第一個16字節(jié)非空,那么,,PCI9052根據(jù)EEPROM或PCI主機(jī)CPU設(shè)置內(nèi)部寄存器,,否則設(shè)為缺省值。
1.3.2 復(fù)位
   
PCI9052總線接口在RST信號輸入有效時將引起整個PCI9052的復(fù)位,,并輸出LRESET局部復(fù)位信號,。PCI總線上的主機(jī)可以通過設(shè)置控制寄存器中的軟件復(fù)位比特來對PCI9052進(jìn)行復(fù)位,并輸出LRESET信號,。
1.3.3 訪問串行EEPROM接口
   
復(fù)位后,,PCI9052開始讀串行EEPROM,,若讀出的第一個字非FFFFH,則PCI9052繼續(xù)讀操作,,否則認(rèn)為EEPROM無效,。對PCI9052來講,EEP-ROM的前四個字節(jié)應(yīng)為52H,、90H,、B5H和10H,其中9052H為設(shè)備號,,10B5H為廠商編號,。
1.3.4 訪問內(nèi)部寄存器
   
PCI9052提供了二種類型的片內(nèi)寄存器,即PCI配置寄存器和局部配置寄存器,,二者都只能由PCI總線和串行EEPROM訪問,,也可以通過設(shè)置寄存器CNTRL[3:12]禁止對后者的訪問,這樣就極大地增強(qiáng)了接口設(shè)計的靈活性,。
1.3.5 直接數(shù)據(jù)傳輸模式
   
PCI9052支持PCI總線上的主處理器對局部總線上的設(shè)備進(jìn)行讀/寫操作,。PCI9052配置寄存器能夠訪問映射到局部的地址空間。同時片內(nèi)的讀寫FIFO使PCI9052能夠支持PCI總線與局部總線間的高性能猝發(fā)傳送,。PCI總線主控訪問局部總線的示意圖如圖2所示,。


1.3.6 PCI中斷(INTA#)的產(chǎn)生
   
要產(chǎn)生P C I中斷IN TA#, 首先將寄存器INTCSR[6](PCI中斷使能位)設(shè)置為“1”,,如果需要以軟件方式產(chǎn)生中斷,,則只需將INTCSR[7](軟件中斷位)設(shè)置為“1”。如果系統(tǒng)設(shè)計方案中選用由局部總線上的設(shè)備產(chǎn)生中斷信號INTi1和INTi2,,再生成PCI中斷INTA#的方式,,只要將寄存器INTCSR的相關(guān)位按表1進(jìn)行設(shè)置,復(fù)位后INTCSR的值全部為“0”,。


1.3.7 局部總線ISA接口模式
   
PCI9052的新功能是它直接提供給用戶ISA邏輯接口,,從而保證了ISA到PCI的平滑轉(zhuǎn)換。另外,,ISA接口還能支持8/16位存儲器或I/O設(shè)備,。用戶通過對EEPROM的編程可將PCI9052置為ISA接口模式,在ISA接口模式下,,LRESET信號將由低有效變?yōu)楦哂行?,并可將局部總線空間2、3配置為無復(fù)用方式,。

2 PCI9052設(shè)計實(shí)例
   
利用PCI總線目標(biāo)接口芯片PCI9052設(shè)計PCI接口卡非常簡便,,圖3是PCI主處理機(jī)讀取SRAM的接口示意圖,其主要功能是PCI主處理機(jī)通過PCI9052實(shí)現(xiàn)對RAM的單次或突發(fā)讀,、寫操作,。


2.1 電路連接
   
按照圖3中的連接電路,,對于SRAM主要有以下幾個引腳:A(17,0),、I/O(7,,0)、OE,、CE,、WE等。地址線A(17,,2)與本地地址線LA[17,,2]相連,根據(jù)PCI9052的LBE[0,,3]#的定義,,這里用8位數(shù)據(jù)總線將LBE0#與A0連接,LBE1#與A1連接,,OE與PCI9052的CSO#相連,。
    PCI9052為設(shè)計人員提供了4個片選信號CS(3:0)#,可以為4個設(shè)備提供片選信號,。這樣可以避免設(shè)計人員在設(shè)計電路時設(shè)計片選解碼電路,,其地址和范圍可由其對應(yīng)的內(nèi)部寄存內(nèi)部本地寄存器配置。串行EEPROM用于存儲配置寄存器內(nèi)的配置信息,,可以采用NM93C46或與之兼容的存儲器,。
2.2 寄存器設(shè)定
   
電路連接好后,要使電路能正常工作,,必須對PCI9052內(nèi)部寄存器進(jìn)行配置,。根據(jù)電路性能及特點(diǎn),應(yīng)將寄存器設(shè)定為非復(fù)用工作方式,,采取存儲器映射,,8位數(shù)據(jù)總線。局部總線0的基地址寄存器值為240001H,,其地址范圍寄存器值為3FFF8H,其描述寄存器值為39H,;片選0基址寄存器的初始值為4C0001,;命令寄存器的初始值為02H;狀態(tài)寄存器的初始值為800H,,其他寄存器采用默認(rèn)值,。確定好各個寄存器的值后,應(yīng)依據(jù)一定的次序?qū)⒓拇嫫鞯某跏贾祵懭隕EPROM,。
2.3 驅(qū)動程序的開發(fā)
    為了從PCI總線配置寄存器中獲得主機(jī)動態(tài)分配的映射基址并對映射端口進(jìn)行讀寫,,必須編寫驅(qū)動程序,。編寫Windows驅(qū)動程序時,可以使用DDK,,但難度較大,。為了簡化驅(qū)動程序開發(fā),可使用Jungo公司推出的WinDriver開發(fā)工具,。WinDriver可自動生成VxD驅(qū)動程序及相應(yīng)的高級函數(shù),。使用者不需具備Windows驅(qū)動程序開發(fā)知識,所生成的高級函數(shù)可直接在VC或CBuilder等高級編程語言中調(diào)用,。

3 結(jié)束語
   
由于PCI總線數(shù)據(jù)吞吐量大,,傳輸速率高,從而大大改善了數(shù)據(jù)傳輸?shù)?ldquo;瓶頸”問題,。所以,,在未來的微機(jī)接口設(shè)計中,PCI總線的設(shè)計將成為主流,。當(dāng)然PCI總線協(xié)議比較復(fù)雜,,設(shè)計PCI控制接口難度較大。實(shí)用證明,,用專用PCI接口電路對設(shè)計PCI接口卡帶來很大的方便,。本文主要介紹PLX公司的PCI9052專用接口電路,設(shè)計者可根據(jù)需要選用其他接口電路,,不需要ISA接口時,,可選用PCI9050;需要DMA數(shù)據(jù)傳送時,,可選用PCI9054,。專用PCI接口芯片的使用將避免用戶直接面對復(fù)雜的PCI總線協(xié)議,因此可以降低設(shè)計難度,,從而使用戶能夠集中精力解決具體的應(yīng)用問題以縮短開發(fā)周期,,降低開發(fā)成本,而且有利于驅(qū)動程序的開發(fā),。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。