PCI9052接口電路的功能及應用
時間:2022-11-17 11:12:00
導語:PCI9052接口電路的功能及應用一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。
摘要:PCI總線是Pentium主機最常見的總線,基于PCI總線形成的CompactPCI和PXI總線廣泛地應用在儀器和自動化領域。PCI適配卡的接口設計變得越來越重要,介紹PCI專用接口電路pci9052的功能,通過一個例子介紹它的應用。
關鍵詞:外部設備互連總線;局部總線;接口電路;PCI9052;應用
1引言
PCI(PeripheralComponentInterconnect)總線具有獨立于處理器、高數據傳速率、即插即用、低功耗、適應性強等特點,已成為微型機的主流總線。基于PCI總線形成的CompactPCI和PXI總線廣泛應用于儀器和自動化領域。隨著PCI總線的廣泛應用,其接口的設計開發顯得尤為重要。由于PCI總線的獨特性能,如信號負載能力、支持數據的突發傳送、地址/數據、命令/字節使能信號總線復用等,使中小規模的器件難以實現接口電路。實現PCI總線接口一般采用CPLD或FPGA設計PCI接口,這種方法難度很大;另一種是采用專用的PCI接口電路,使設計開發者免除繁瑣的時序分析,縮短開發周期,降低開發成本。本文介紹PCI9052接口電路的功能及其在PCI板卡設計中的應用。
2接口電路
PCI9052是PLX公司開發的低價位PCI總線目標接口電路,功耗低,采用PQFP型160引腳封裝,符合PCI2.1規范,它的局部總線(LOCALBUS)可以通過編程設置為8/16/32位的(非)復用總線,數據傳送率可達到132Mb/s。提供了ISA接口,可以使ISA適配器迅速、低成本地轉換到PCI總線上。主要功能與特性如下所述:
異步操作。PCI9052的LocalBus與PCI總線的時鐘相互獨立運行,兩總線的異步運行便于高、低速設備的兼容。LocalBus的運行時鐘頻率范圍為0MHz~40MHz,TTL電平,PCI的運行時鐘頻率范圍為0MHz~33MHz。
支持突發操作。PCI9052提供一個64字節的寫FIFO和一個32字節的讀FIFO,從而支持預取模式即突發操作。
中斷產生器。可以由LocalBus的二個中斷信號LINTi1和LINTi2產生一個PCI中斷信號INTA#。
串行EEPROM接口,用于存放PCI總線和Local總線的配置信息。
5個局域總線地址空間和4個片選,基址和地址范圍可以由串行EEPROM或主控設備進行編程。
大/小Endian模式的字節交換,有二種交換字節順序的輸出方式。
總線驅動。所有地址、數據和控制信號都有PCI9052直接驅動,不用額外的驅動電路。
Localbus等待狀態。除了等待信號LRDYI#用于握手之外,PCI9052還有一個內部等待產生器(包括地址到數據周期、數據到數據周期和數據到地址周期的等待)。
PCI鎖定機制。主控設備可以通過鎖定信號占有對PCI9052的唯一訪問權。
ISA總線模式。PCI9052提供一個ISA邏輯接口,用戶可直接使PCI總線和ISA總線相連,可以非常容易地將ISA設計轉換到PCI。
PCI9052的接口示意圖如圖1所示。
圖1PCI總線接口示意圖
3PCI9052的功能及操作
3.1初始化
上電時,PCI總線的RST#信號將PCI9052的內部寄存器設置為缺省值,同時,PCI9052輸出局部復位信號(LRESET#),并且檢查EEPROM是否存在。如果設備上裝有EEPROM,且EEPROM的第一個16字節非空,那么,PCI9052根據EEPROM內容設置內部寄存器,否則設為缺省值。
3.2復位
PCI9052支持二種復位方式:硬件復位和軟件復位。硬件復位是PCI9052總線接口的RST#信號輸入有效時將引起整個PCI9052復位,并輸出LRESET#局部復位信號。軟件復位是PCI總線上的主機可以通過設置控制寄存器CNTRL(50H)中的軟件復位字節(Bit30)來對PCI9052復位,并輸出LRESET#信號。此時,PCI和局部總線的配置寄存器的值將保持不變。當CNTRL中的軟件復位字節有效時,PCI9052僅對配置寄存器的訪問應答,對局部總線的訪問不響應。PCI9052保持這種狀態直到PCI總線上的主機清除軟件復位字節。
3.3對串行EEPROM接口的訪問
復位后,PCI9052開始讀串行EEPROM,若讀出的第一個字非FFFFH,則PCI9052認為有一個有效的EEPROM存在,并且繼續進行讀操作,否則,認為EEPROM無效。PCI總線的主設備可以讀、寫連接在PCI9052上的串行EEPROM。對其進行讀、寫操作之前需要將控制寄存器CNTRL[25](使能位)設置為“1”,并控制CNTRL[24]位以產生串行EEPROM的時鐘,然后,從EEDI送入指令代碼。如果在指令代碼之后由EEDO輸出“0”,則表明可以對其進行讀、寫。需要結束操作時,只要將CNTRL[25]設置為“0”即可。
3.4對內部寄存器訪問
PCI9052提供了二種類型的片內寄存器,即PCI配置寄存器和局部配置寄存器,二者都只能由PCI總線和串行EEPROM訪問,也可以通過設置寄存器CNTRL[13:12]禁止對后者的訪問,這樣,極大地增強了接口設計的靈活性。
3.5直接數據傳輸模式
PCI9052支持PCI總線上的主處理器對局部總線上的設備進行直接訪問。PCI9052的配置寄存器將訪問映射到局部地址空間。片內的讀寫FIFO存儲器使PCI9052支持PCI總線與局部總線之間進行高性能的猝發傳送。PCI總線主控訪問局部總線示意圖如圖2所示。
圖2PCI主控直接訪問局部示意圖
3.6PCI中斷(INTA#)的產生
要產生PCI中斷INTA#,首先將寄存器INTCSR[6](PCI中斷使能位)設置為“1”,如果需要以軟件方式產生中斷,則只需將INTCSR[7](軟件中斷位)設置為“1”。如果系統設計方案中選用由局部總線上的設備產生中斷信號INTi1和INTi2、再生成PCI中斷INTA#的方式,只要將寄存器INTCSR的相關位按表1進行設置,復位后INTCSR的值全部為“0”。
表1寄存器INTCSR相關的設置
位
含義
設置為“1”
設置為“0”
0(3)
INTil(INTi2)
使能
使能
禁止
1(4)
極性
高電平有效
低電平有效
2(5)
狀態
中斷激活
中斷末激活
8(9)
選擇使能
邊緣觸發
電平觸發
10(11)
邊緣觸發清除位
清除邊緣觸發
保持
4應用實例
PCI9052是功能非常強大的PCI接口電路,用它設計PCI適配卡將使接口變得非常方便。圖3是PCI主處理機讀取SRAM的接口示意圖,其主要功能是實現對RAM的單次或突發讀、寫操作。
圖3存儲器突發讀寫示意圖
4.1電路連接
按照圖3中的連接電路,對于SRAM主要有以下幾個引腳:A(17,0)、I/O(7,0)、OE、CE、WE等。地址線A(17,2)與本地地址線LA[17,2]相連,根據PCI9052的LBE[0,3]#的定義,這里用8位數據總線將LBE0#與A0連接,LBE1#與A1連接,OE與PCI9052的CS0#相連。PCI9052為設計人員提供了4個片選信號CS(3:0)#,可以為4個設備提供片選信號,這樣,可以避免設計人員在設計電路時設計片選解碼電路,其地址和范圍可由其對應的內部寄存內部本地寄存器配置。串行EEPROM用于存儲配置寄存器內的配置信息,可以采用NM93C46或與之兼容的存儲器。
4.2寄存器設定
電路連接好后,要使電路能正常工作,必須對PCI9052內部寄存器進行配置。根據電路性能及特點,應將寄存器設定為非復用工作方式,采取存儲器映射,8位數據總線。局部總線0的基地址寄存器值為240001H,其地址范圍寄存器值為3FFF8H,其描述寄存器值為39H;片選0基址寄存器的初始值為4C0001;命令寄存器的初始值為02H;狀態寄存器的初始值為800H,其他寄存器采用默認值。確定好各個寄存器的值后,應依據一定的次序將寄存器的初始值寫入EEPROM。
4.3驅動程序的開發
為了從PCI總線配置寄存器中獲得主機動態分配的映射基址并對映射端口進行讀寫,必須編寫驅動程序。編寫Windows驅動程序時,可以使用DDK,但難度較大。為了簡化驅動程序開發,可使用Jungo公司推出的WinDriver開發工具。WinDriver可自動生成VxD驅動程序及相應的高級函數。使用者不需具備Windows驅動程序開發知識,所生成的高級函數可直接在VC或CBuilder等高級編程語言中調用。
5結論
實用證明,用專用PCI接口電路對設計PCI接口卡帶來很大的方便。本文主要介紹PLX公司的PCI9052專用接口電路,設計者可根據需要選用其他接口電路,不需要ISA接口時,可選用PCI9050;需要DMA數據傳送時,可選用PCI9054。專用接口電路是設計PCI適配卡的最佳方法,不但大大縮短了設計周期,而且有利于驅動程序的開發。
參考文獻
[1]李貴山.戚德虎.PCI局部總線開發者指南[M].西安:西安電子科技大學出版社,1997.
[2]楊全勝.胡友彬.現代微機原理與接口技術[M].北京:電子工業出版社,2002.
[3]TomShanley,DonAnderson,劉暉譯.PCI系統結構[M].北京:電子工業出版社,2000.