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

0 引言
   
目前,PCI總線" title="PCI總線">PCI總線已成為新一代個(gè)人計(jì)算機(jī)的標(biāo)準(zhǔn)總線,它是一種高性能的32/64位地址數(shù)據(jù)復(fù)用總線,總線時(shí)鐘頻率0~33MHz,具有獨(dú)立于處理器、高數(shù)據(jù)傳速率、即插即用、低功耗、適應(yīng)性強(qiáng)等特點(diǎn)。隨著PCI總線的廣泛應(yīng)用,其接口的設(shè)計(jì)開發(fā)顯得尤為重要。實(shí)現(xiàn)PCI總線接口一般采用CPLD或FPGA設(shè)計(jì)PCI接口,這種方法難度很大;另一種是采用專用的PCI接口電路" title="接口電路">接口電路,使設(shè)計(jì)開發(fā)者免除繁瑣的時(shí)序分析,縮短開發(fā)周期,降低開發(fā)成本。PCI通用接口芯片對于PCI協(xié)議的良好支持,以及提供給設(shè)計(jì)者的良好接口都大大減少了設(shè)計(jì)者的工作量?,F(xiàn)有的PCI接口芯片主要有AMCC公司的MACCS59XX系列和PLX公司的PLX系列。本文將對PLX公司的PCI9052" title="PCI9052">PCI9052總線目標(biāo)接口芯片的功能及其在PCI板卡設(shè)計(jì)中的應(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è)計(jì)。
    PCI9052包含讀和寫FIFO,用來將32位寬33MHz的PCI總線與有可能總線寬度要窄或慢的局部總線的速度進(jìn)行匹配。最大5個(gè)局部地址空間和4個(gè)片選被支持。
1.2 PCI9052的主要功能
   
支持低成本從屬適配器:PCI9052支持符合PCI2.1版本協(xié)議的低成本從屬適配器,此芯片也允許轉(zhuǎn)換ISA適配器到PCI。
    異步操作:PCI9052的局部總線與PCI總線的時(shí)鐘相互獨(dú)立運(yùn)行,兩總線的異步運(yùn)行便于高、低速設(shè)備的兼容。局部總線的運(yùn)行時(shí)鐘頻率范圍為0~40MHz,TTL電平,PCI的運(yùn)行時(shí)鐘頻率范圍為0~33MHz。
    支持突發(fā)操作:PCI9052支持從PCI總線到局部總線的猝發(fā)存儲器映射空間的傳送和I/O訪問,PCI9052提供一個(gè)64字節(jié)的寫FIFO和一個(gè)32字節(jié)的讀FIFO,從而支持預(yù)取模式即突發(fā)操作。
    中斷產(chǎn)生器:可以由局部總線的二個(gè)中斷信號LINTi1和LINTi2產(chǎn)生一個(gè)PCI中斷信號INTA#。
    串行EEPROM接口:PCI9052包含一個(gè)SEEPROM接口,用于存放PCI總線和局部總線的配置信息。
    5個(gè)局域總線地址空間和4個(gè)片選:基址和地址范圍可以由串行EEPROM或主機(jī)進(jìn)行編程。
    大/小邊界的字節(jié)交換:PCI9052支持大和小邊界字節(jié)順序。在16位或8位局部總線操作時(shí)PCI9052也支持大邊界字節(jié)通路方式重定向到當(dāng)前字/字節(jié)通路。
    總線驅(qū)動:所有地址、數(shù)據(jù)和控制信號都由PCI9052直接驅(qū)動,不用額外的驅(qū)動電路。
    局部總線等待狀態(tài):插入LRDY#(局部準(zhǔn)備好輸入信號)握手信號能產(chǎn)生幾個(gè)等待狀態(tài),PCI9052也有一個(gè)內(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提供一個(gè)ISA邏輯接口,用戶可直接使PCI總線和ISA總線相連,可以非常容易地將ISA設(shè)計(jì)轉(zhuǎn)換到PCI。
    PCI9052的接口示意圖如圖1所示。


1.3 PCI9052的應(yīng)用操作
1.3.1 初始化
   
在上電時(shí),PCI總線的RST#信號將PCI9052的內(nèi)部寄存器設(shè)置為缺省值,同時(shí),PCI9052輸出局部復(fù)位信號(LRESET#),并且檢查EEPROM是否存在。如果設(shè)備上裝有EEPROM,且EEPROM的第一個(gè)16字節(jié)非空,那么,PCI9052根據(jù)EEPROM或PCI主機(jī)CPU設(shè)置內(nèi)部寄存器,否則設(shè)為缺省值。
1.3.2 復(fù)位
   
PCI9052總線接口在RST信號輸入有效時(shí)將引起整個(gè)PCI9052的復(fù)位,并輸出LRESET局部復(fù)位信號。PCI總線上的主機(jī)可以通過設(shè)置控制寄存器中的軟件復(fù)位比特來對PCI9052進(jìn)行復(fù)位,并輸出LRESET信號。
1.3.3 訪問串行EEPROM接口
   
復(fù)位后,PCI9052開始讀串行EEPROM,若讀出的第一個(gè)字非FFFFH,則PCI9052繼續(xù)讀操作,否則認(rèn)為EEPROM無效。對PCI9052來講,EEP-ROM的前四個(gè)字節(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è)計(jì)的靈活性。
1.3.5 直接數(shù)據(jù)傳輸模式
   
PCI9052支持PCI總線上的主處理器對局部總線上的設(shè)備進(jìn)行讀/寫操作。PCI9052配置寄存器能夠訪問映射到局部的地址空間。同時(shí)片內(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è)計(jì)方案中選用由局部總線上的設(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è)計(jì)實(shí)例
   
利用PCI總線目標(biāo)接口芯片PCI9052設(shè)計(jì)PCI接口卡非常簡便,圖3是PCI主處理機(jī)讀取SRAM的接口示意圖,其主要功能是PCI主處理機(jī)通過PCI9052實(shí)現(xiàn)對RAM的單次或突發(fā)讀、寫操作。


2.1 電路連接
   
按照圖3中的連接電路,對于SRAM主要有以下幾個(gè)引腳: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è)計(jì)人員提供了4個(gè)片選信號CS(3:0)#,可以為4個(gè)設(shè)備提供片選信號。這樣可以避免設(shè)計(jì)人員在設(shè)計(jì)電路時(shí)設(shè)計(jì)片選解碼電路,其地址和范圍可由其對應(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)值。確定好各個(gè)寄存器的值后,應(yīng)依據(jù)一定的次序?qū)⒓拇嫫鞯某跏贾祵懭隕EPROM。
2.3 驅(qū)動程序的開發(fā)
    為了從PCI總線配置寄存器中獲得主機(jī)動態(tài)分配的映射基址并對映射端口進(jìn)行讀寫,必須編寫驅(qū)動程序。編寫Windows驅(qū)動程序時(shí),可以使用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è)計(jì)中,PCI總線的設(shè)計(jì)將成為主流。當(dāng)然PCI總線協(xié)議比較復(fù)雜,設(shè)計(jì)PCI控制接口難度較大。實(shí)用證明,用專用PCI接口電路對設(shè)計(jì)PCI接口卡帶來很大的方便。本文主要介紹PLX公司的PCI9052專用接口電路,設(shè)計(jì)者可根據(jù)需要選用其他接口電路,不需要ISA接口時(shí),可選用PCI9050;需要DMA數(shù)據(jù)傳送時(shí),可選用PCI9054。專用PCI接口芯片的使用將避免用戶直接面對復(fù)雜的PCI總線協(xié)議,因此可以降低設(shè)計(jì)難度,從而使用戶能夠集中精力解決具體的應(yīng)用問題以縮短開發(fā)周期,降低開發(fā)成本,而且有利于驅(qū)動程序的開發(fā)。

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