PCI(Peripheral Component Interconnect,即外圍部件互連)總線是一種能為主CPU及外設提供高性能數據總線的局部總線。1992年以INTEL為首的多家集團開始設計PCI總線,其V2.0規范于1993年4月正式發布。PCI總線具有嚴格的規范,這就保證了它具有良好的兼容性,符合PCI規范的擴展卡可插入任何PCI系統可靠地工作;PCI總線可以提供極高的數據傳送速率(132MB/S);PCI總線與CPU無關,與時鐘頻率亦無關,可適用于各種平臺,支持多處理器和并發工作;PCI總線還具有良好的擴展性,通過PCI-PCI橋路,可允許無限地擴展;PCI總線以它的即插即用特性取代了VESA局部總線。一個PCI接口包括一系列的寄存器,這些寄存器中的信息允許計算機自動地配置PCI卡。PCI總線是目前PC機上最先進的一種總線。 PCI總線協議非常復雜。如果開發PCI擴展板使用可編程邏輯陣列芯片來完成PCI協議的執行,其工作量和難度都是巨大的,一般都會選用PCI專用接口芯片。下面介紹PCI9052接口芯片。 1 PCI9052芯片介紹 PCI9052是PLX技術公司為擴展適配板卡推出的能提供一種混合的高性能PCI總線目標(從)模式的接口芯片。該芯片可與多種局部總線相連,并且支持相對慢的局部總線在PCI總線上的突發傳送速率達到132MB/S。9052的可編程配置直接與復用或非復用的8/16/32位局部總線相連。8位和16位模式便于ISA卡直接向PCI卡轉換。 1.1 主要特點 (1) 兼容PCI V2.1協議特性。9052芯片與PCI協議V2.1版兼容,支持低開發成本的從模式適配設備,該芯片支持從ISA適配卡向PCI適配卡轉換。 (2) 直接從(目標)方式數據傳送模式。9052支持突發存儲器映射和I/O映射方式在PCI總線和局部總線存取數據。讀寫FIFO寄存器使得局部總線和PCI總線具有高性能的突發方式。PCI總線總是工作在突發方式,局部總線可以設置成突發方式或者連續單周期方式。 (3) 中斷發生器。9052可以從兩個局部總線中斷輸入生成一個PCI中斷。 (4) 時鐘。9052局部總線接口運行于TTL時鐘并生成必要的內部時鐘。局部TTL時鐘與PCI時鐘異步工作,并允許局部總線獨立于PCI時鐘工作。緩沖PCI總線時鐘BCLKO可與局部總線時鐘LCLK相連。 (5) 可編程局部總線配置。9052支持復用或非復用的8/16/32bit局部總線。芯片有4字節使能,26根地址線,32/16/8bit數據線。 (6) 先讀模式。9052支持先讀模式,也就是說,預鎖存數據可從9052內部FIFO寄存器先于局部總線讀取。 (7) 總線驅動。所有控制、地址和數據信號都由9052直接生成,用于驅動PCI和局部總線,不用額外驅動電路。 (8) 串行EEPROM接口。9052包含一個用于加載配置信息的串行EEPROM接口,對于裝載一個特定的適配設備信息來說?這是很有用的。將9052轉換為ISA接口模式時串行EEPROM也是必需的。 (9) 四個局部片選信號。9052提供了四個局部片選信號,基地址和每一個片選的范圍可由串行EEPROM或主控制器獨立編程 (10)五個局部地址空間。基地址和每一個局部地址空間的范圍可由串行EEPROM或主控制器獨立編程。 (11)讀/寫存儲延時和寫周期保持。對于ISA總線,讀/寫信號可以從時鐘周期的開始延時。 (12)局部總線等待狀態。附加的LRDYi握手信號用于產生各種等待狀態,9052有內部等待狀態發生器。 (13) 可編程預鎖存計數器。局部總線預鎖存計數器可以編程為0(無預鎖存),4、8、16或連續值(預鎖存計數器關閉)模式。 1.2 引腳功能 PCI9052為160腳塑封PQFP封裝結構。其各管腳功能按功能塊劃分分別列于表1~表7中。 2 PCI9052芯片的使用 PCI9052接口芯片作為通用PCI接口,其應用場合和范圍是廣泛的。隨著PC機中ISA擴展槽數量的逐漸減少直至取消,PCI擴展槽已成為PC機主板配置的主流,今后的擴展板的開發必定是基于PCI接口的。 但現行的很多ISA接口的擴展板,尤其是自己自主研制的具有某些特殊功能的擴展板,如何使之能在PCI槽上繼續使用,顯得很有意義。下面就著重介紹PCI9052接口芯片將ISA擴展板直接轉換為PCI擴展板的應用。 2.1 ISA接口模式介紹 PCI9052的內部結構中包含了一個獨立的ISA邏輯接口,通過這個邏輯接口可以完成由ISA到PCI的平滑轉換。它支持8位和16位數據寬度的ISA設備,該設備可以是內存映射,也可以是I/O映射。先讀模式用于提高讀取數據的吞吐量。一旦ISA接口模式使能,PCI9052只執行單個周期操作。特別指出的是,串行EEPROM必需使ISA接口模式使能。 2.1.1 配置方法 可以使用兩種方法配置PCI9052用于ISA接口模式。 方法一:燒寫串行EEPROM方法。使用燒寫器,將數據寫入串行EEPROM,參照表8使用恰當的數據。需要注意的是,對于ISA模式,LRESET#(132)引腳必須始終為高電平,并確認MODE(68)引腳置為0,處于非復用模式。 方法二:熱配置方法。從PCI總線通過PCI9052芯片使用方法一的相同數據來燒寫串行EEPROM。該方法需要注意的是,LRESET#(132)引腳的極性在ISA模式時由低變為高,并確認MODE(68)引腳置為0。 2.1.2 配置注意事項 當為ISA接口模式配置時必須注意以下幾點: ①存取ISA接口引腳時要參照PCI9052引腳的C/ISA模式引腳圖來連線。 ②空間0分配給ISA接口的內存存取。 ③空間1分配給ISA接口的I/O存取。 ④無論空間0的局部地址處于CS0#范圍還是空間1的局部地址處于CS1#范圍,ISA存取均有效。 ⑤標準的從周期可以使用空間2、空間3和串行EEPROM來存取。 2.2 應用實例 下面給出一個電子轉換開關控制器應用實例。該控制器的功能是,當檢測到觸發條件時,便向端口200H送一個控制碼C0H,用以控制繼電器完成開關動作。該例子旨在說明如何將PCI9052用于ISA擴展板向PCI擴展板的轉換。 2.2.1 硬件設計 控制器硬件電路結構圖如圖1所示。 電路分為三部分。第一部分是9052與PCI插槽間的連接信號線。這些信號包括地址數據復用信號AD?31:0?,總線命令信號C/BE?3:0?#和PCI協議控制信號PAR、FRAME#、IRDY#、TRDY#、STOP#、IDSEL、DEVSEL#、PERR#、SERR#。第二部分是與串行EEPROM的連線。這里有四根信號線:EESK、EEDO、EEDI和EECS,串行EEPROM的數據可以提前用燒寫器燒好,也可以在線燒寫。第三部分是9052與應用電路的連接。在本例中主要用到的是ISA局部總線信號,有數據線LAD?7:0,地址線ISAA?1:0?、LA?23:2?,I/O讀寫信號線IOWR#、IORD#,地址鎖存BALE。 2.2.2 軟件設計 程序分為兩部分,一部分為PCI9052各配置寄存器賦值并初始化芯片,另一部分為主程序,任務是不斷查詢注冊表中的相關鍵值,一旦條件滿足,即向端口送控制碼。程序用DELPHI語言完成。選用DELPHI的主要原因是可編譯成獨立的可執行文件,不帶任何動態連接庫,程序短小精悍,并且DELPHI各版本間的兼容性比較好。程序流程圖如圖2所示。 |