PCI總線(xiàn)接口芯片9050及其應用
摘要:PCI9050是PLX公司推出的一種低成本的PCI協(xié)議從模式接口芯片。本文主要介紹了它的功能、特點(diǎn)及應用,說(shuō)明了它在使用時(shí)應該注意的一些問(wèn)題,最后給出了一個(gè)具體的應用實(shí)例。
關(guān)鍵詞:PCI總線(xiàn) 局部總線(xiàn) PCI9050
1.引言
PCI總線(xiàn)是目前應用最廣泛、最流行的一種高速同步總線(xiàn),具有32bit總線(xiàn)寬度,總線(xiàn)時(shí)鐘頻率為0~33MHZ,最大傳輸速率可以達到132Mbyte/s,遠遠大于ISA總線(xiàn)5Mbyte/s的速度。而且,它不象ISA總線(xiàn)那樣把地址尋址和數據讀寫(xiě)控制信號都交給微處理器來(lái)處理,而是獨立于處理器,所以它可以支持突發(fā)傳送。PCI總線(xiàn)與CPU無(wú)關(guān),與時(shí)鐘頻率也無(wú)關(guān),因此它可以應用于各種平臺,支持多處理器和并發(fā)工作。
PCI總線(xiàn)協(xié)議比較復雜,因此它的接口電路實(shí)現起來(lái)也比較困難。它不但有著(zhù)嚴格的同步時(shí)序要求,而且為了實(shí)現即插即用和自動(dòng)配置,PCI接口還要求有許多的配置寄存器。對于一般的設計者來(lái)說(shuō),為了縮短開(kāi)發(fā)周期,沒(méi)有必要自己去設計所有的接口邏輯,只要利用通用PCI接口芯片就能很好的進(jìn)行設計開(kāi)發(fā),大大減小了工作的難度?,F在使用較多的是AMCC公司S59XX系列和PLX公司推出的PLX系列。下面將主要介紹PLX公司的PCI9050接口芯片。
2.PCI9050概述
PCI9050是PLX公司為擴展適配板卡推出的能提供一種混合的高性能PCI總線(xiàn)目標模式的接口芯片,可提供用于適配卡的小型高性能PCI總線(xiàn)目標接口。
它的主要特點(diǎn)有下面這些:
l符合PCI2.1規范,支持開(kāi)發(fā)低成本的從模式適配器。該芯片支持從ISA適配器向PCI適配器轉換。
l帶有五個(gè)局域總線(xiàn)地址空間和四個(gè)片選。
l支持突發(fā)存儲器映射和I/O映射方式在PCI總線(xiàn)和局部總線(xiàn)存取數據。雙向FIFO可以用于零等待狀態(tài)突發(fā)操作。PCI總線(xiàn)總是工作在突發(fā)方式,局部總線(xiàn)可以設置成突發(fā)方式或者連續單周期方式。
l可以從兩個(gè)局部總線(xiàn)中斷輸入生成一個(gè)PCI中斷。
l局部時(shí)鐘與PCI時(shí)鐘異步工作,允許局部總線(xiàn)獨立于PCI時(shí)鐘工作。
l支持多路復用和非多路復用的8位、16位和32位通用局部總線(xiàn)。
l總線(xiàn)驅動(dòng)。PCI9050直接生成所有的控制、地址和數據信號,用于驅動(dòng)PCI總線(xiàn),不需要額外驅動(dòng)電路。
3.PCI9050的功能描述
PCI9050為非PCI設備和PCI總線(xiàn)提供數據通道。
(1)初始化
在上電時(shí),PCI9050的內部寄存器由PCI總線(xiàn)的RST#信號復位,在局部總線(xiàn)上輸出LRESET#信號并檢查EEPROM是否存在數值。若是存在且前48位不全為1,則PCI9050用EEPROM中的值來(lái)配置片內寄存器,否則設為缺省值。PCI配置寄存器只能通過(guò)EEPROM或PCI主機CPU來(lái)進(jìn)行設置。在串行EEPROM初始化時(shí),PCI9050反饋給PCI總線(xiàn)RETBY信號。
(2)復位
PCI總線(xiàn)的RST#信號有效將引起整個(gè)PCI9050復位,輸出LRESET#局部復位信號。PCI總線(xiàn)上的主控設備也可以通過(guò)設置寄存器中的軟件復位比特來(lái)對PCI9050進(jìn)行復位,但是主控設備只能訪(fǎng)問(wèn)配置寄存器,而不能訪(fǎng)問(wèn)局部總線(xiàn)。PCI9050會(huì )一直保持這種復位狀態(tài)直到PCI主控設備清除軟件復位比特。
(3)串行存儲器接口(EEPROM)
復位后,PCI9050開(kāi)始讀串行EEPROM。START為0表示EEPROM存在,PCI9050用它來(lái)進(jìn)行配置。若讀出的第一個(gè)字不是FFFF,那么就認為EEPROM是非空的,繼續進(jìn)行操作。串行EEPROM是按重要性順序先后配置信息的。
PCI總線(xiàn)上的主機可以對EEPROM進(jìn)行讀寫(xiě),寄存器位[29:24]控制著(zhù)PCI9050的管腳,對EEPROM位進(jìn)行讀寫(xiě)。將重載配置寄存器位CNTRL[29]置1可以用串行EEPROM重新配置PCI9050。
(4)訪(fǎng)問(wèn)內部寄存器
PCI9050提供一系列的內部寄存器來(lái)為總線(xiàn)接口設計與實(shí)現提供最大的靈活性。寄存器分為兩類(lèi):PCI配置寄存器和局部配置寄存器。主要有以下幾種:
l設備與廠(chǎng)商寄存器,它用來(lái)標識設備類(lèi)別及生產(chǎn)廠(chǎng)家。
l狀態(tài)寄存器,它包含與PCI總線(xiàn)有關(guān)的事件。
l命令寄存器,控制設備對PCI訪(fǎng)問(wèn)的響應。
l分類(lèi)碼元寄存器,它用來(lái)標識設備的一般功能。
l局部配置寄存器存儲器訪(fǎng)問(wèn)的PCI基地址寄存器:系統BIOS利用此寄存器為PCI9050局部配置寄存器的存儲器訪(fǎng)問(wèn)分配一段PCI地址空間,范圍為128字節,初始化時(shí),主機對寄存器寫(xiě)入FFFFFFFF,讀回FFFFFF70,以確定其占用空間為128字節。
l局部配置寄存器I/O訪(fǎng)問(wèn)的PCI基地址寄存器:系統BIOS利用此寄存器為PCI9050局部配置寄存器的I/O訪(fǎng)問(wèn)分配一段PCI地址空間,范圍為128字節,初始化時(shí),主機對寄存器寫(xiě)入FFFFFFFF,讀回FFFFFF71,以確定其占用空間為128字節。
l局部地址空間0(地址空間1,2,3類(lèi)似)訪(fǎng)問(wèn)的PCI基地址寄存器:系統BIOS利用此寄存器為PCI9050局部地址空間0的訪(fǎng)問(wèn)分配一段PCI地址空間。初始化時(shí),主機對寄存器寫(xiě)入FFFFFFFF,讀回數值來(lái)確定它的范圍。
對PCI9050寄存器進(jìn)行讀寫(xiě)操作的單位可以是字節,字,長(cháng)字。PCI9050的存儲器訪(fǎng)問(wèn)可以是突發(fā)的或非突發(fā)的。
(5)直接數據轉換操作
PCI主控設備能夠直接對局部總線(xiàn)上的設備進(jìn)行讀寫(xiě)操作。PCI9050內的配置寄存器控制局部地址空間的重新映射。雙向FIFO引起局部和PCI總線(xiàn)上高性能的突發(fā)。
直接從操作:PCI9050支持突發(fā)式內存映射傳輸和單周期的內存或I/O映射傳輸。映射在PCI內存和I/O空間中的地址由PCI基址寄存器設置。而且,局部映射寄存器允許將PCI地址空間轉換為局部地址空間。
4.PCI9050使用時(shí)應該注意的問(wèn)題
9050內部的寄存器是通過(guò)外部串行EEPROM上電加載的。9050會(huì )自動(dòng)根據該EEPROM的狀態(tài)來(lái)決定其內部寄存器的值。如果EEPROM內部沒(méi)有燒寫(xiě)為有效值,應保證其開(kāi)始48位全為“1”,否則,系統上電時(shí)會(huì )出錯。
9050有5個(gè)本地空間,用戶(hù)可根據實(shí)際的需要來(lái)進(jìn)行配置,并不是要用到所有的。當將本地空間配置成I/O時(shí),對該空間的讀寫(xiě)只能單次進(jìn)行。如果配置成存儲器模式,用戶(hù)會(huì )有多種接入模式,大大提高了速度。
突發(fā)模式是為了提高本地總線(xiàn)操作速度而設計的。在該模式期間,9050只提供一次傳輸開(kāi)始和終止信號。開(kāi)始信號有效時(shí),地址將以本地時(shí)鐘的頻率遞增,可以利用BTERM#引腳是否有效來(lái)中止突發(fā)操作。
還有一點(diǎn)需要說(shuō)明的是,Pentium系列的CPU,不支持突發(fā)讀操作,只可能產(chǎn)生單次讀操作。用戶(hù)如果需要在PCI總線(xiàn)上實(shí)現突發(fā)操作,應該選用支持DMA傳輸的芯片,比如PCI9054。但是PCI9050會(huì )把PCI總線(xiàn)上的多次單次讀操作轉化為突發(fā)操作。
5.基于PCI9050的PCI接口設計
下面給出的是一個(gè)利用PCI9050做接口的PCI插卡。在用戶(hù)電路上,采用MT90820做交換,實(shí)現數字電路的轉接和復接。具體電路如下圖所示。
(1)硬件設計:
接口芯片PCI9050主要包括PCI總線(xiàn)信號接口和局部總線(xiàn)接口。硬件電路分為三個(gè)部分。第一部分是9050和PCI插槽間的連接信號線(xiàn)。這些信號包括地址數據復用信號AD[31:0],總線(xiàn)命令信號C/BE[3:0]#和PCI協(xié)議控制信號PAR、FRAME#、IRDY#、TRDY#、STOP#、IDSEL、DEVSEL#、PERR#、SERR#。第二部分是與串行EEPROM的連線(xiàn)。這里有四根信號線(xiàn):EESK、EEDO、EEDI、EECS,串行EEPROM的數據可以提前燒好,也可以在線(xiàn)燒寫(xiě)。第三部分就是9050與應用電路的連接。在這個(gè)例子里,它和MT90820相連,包括LA地址總線(xiàn),LAD數據總線(xiàn),LBE#字節使能信號,LW/R讀寫(xiě)信號等。
(2)軟件設計:
程序主要分為兩個(gè)部分。一部分為PCI9050各個(gè)配置寄存器賦值并初始化,還有一部分為主程序,任務(wù)就是把PCM鏈路上的信號經(jīng)過(guò)MT90820交換矩陣后,再通過(guò)PCI9050送到CPU。
6.結束語(yǔ)
由于PCI總線(xiàn)數據吞吐量大,傳輸速率高,所以現在PCI總線(xiàn)已經(jīng)慢慢取代了ISA總線(xiàn)成為主流。當然,PCI總線(xiàn)協(xié)議要復雜的多,接口設計難度也就增大了。目前,設計PCI接口有兩種方法。一種是使用ALTERA,XILINX等公司的FPGA系列并使用他們的元件庫,這種方式需要用戶(hù)直接面對復雜的PCI協(xié)議,開(kāi)發(fā)周期長(cháng),難度大;還有一種就是利用我們上面介紹的PCI接口芯片,設計起來(lái)就要簡(jiǎn)單的多,因此得到了廣泛的應用。
評論