PCI總線接口設(shè)計(jì)及專用接口芯片的應(yīng)用
1 引言
本文引用地址:http://www.ex-cimer.com/article/201609/303361.htm隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展和普及,數(shù)據(jù)采集系統(tǒng)迅速得到了廣泛的應(yīng)用。數(shù)據(jù)采集系統(tǒng)性能的好壞主要取決于它的精度和速度。在保證精度的條件下,應(yīng)用盡可能高的采樣速度,以滿足對信號(hào)的實(shí)時(shí)采集和實(shí)時(shí)處理;而要實(shí)現(xiàn)高速數(shù)據(jù)采集,不僅需要高性能的adc等設(shè)備,而且需要高速的數(shù)據(jù)傳輸。目前isa總線己經(jīng)逐 漸退出了歷史舞臺(tái),開發(fā)基于pci總線的數(shù)據(jù)采集卡己經(jīng)是勢在必行。
2 pci總線接口概述
pci總線的信號(hào)線包括32根地址數(shù)據(jù)復(fù)用線、仲裁、接口控制線、總線命令字節(jié)允許復(fù)用線和系統(tǒng)復(fù)位等。在進(jìn)行基本的數(shù)據(jù)傳輸操作時(shí),數(shù)據(jù)線先出現(xiàn)地址, 同時(shí)總線命令出現(xiàn)在c/be〔3:0〕上,設(shè)備根據(jù)這些命令判斷所要進(jìn)行的操作,在接下來的數(shù)據(jù)節(jié)拍中傳輸數(shù)據(jù),如果傳送或接收方?jīng)]有準(zhǔn)備好,那么就插入等待周期。pci總線的其它操作還有設(shè)備選擇、配置周期和中斷應(yīng)答等。
pci總線協(xié)議復(fù)雜,需要在外部設(shè)備和pci總線之間增加一個(gè)接口電路。接口電路實(shí)現(xiàn)比較困難,目前實(shí)現(xiàn)pci接口的方法主要有:利用cpld或fpga 可編程邏輯器件和利用專門的pci接口芯片等多種方法實(shí)現(xiàn)。pci接口芯片具有設(shè)計(jì)簡單、功能強(qiáng)大、可靠性好等特點(diǎn),從而大大減少了開發(fā)人員的工作量。在 實(shí)際工作中我們綜合各方面的因素,在本文選擇了pci9054。
3 pci9054芯片
3.1 pci總線通用接口芯片簡介
pci9054是plx公司生產(chǎn)的pci總線通用接口芯片,采用先進(jìn)的plx數(shù)據(jù)管道結(jié)構(gòu)技術(shù),符合pciv2.1和v2.2規(guī)范;提供了兩個(gè)獨(dú)立的可編 程dma控制器;每個(gè)通道均支持塊和分散/集中的dma方式;在pci總線端支持32位/33mh;本地端(local bus)可以編程實(shí)現(xiàn)8,16,32位的數(shù)據(jù)寬度;傳輸速率最高可達(dá)132mb/s;本地總線端時(shí)鐘最高可達(dá)50mhz支持復(fù)用/非復(fù)用的32位地址數(shù) 據(jù)。pci9054的內(nèi)部結(jié)構(gòu)框圖如圖1所示。
圖1 pci9054內(nèi)部結(jié)構(gòu)框圖
由圖1可知,pci9054提供了pci、eeprom、local總線三個(gè)接口。pci9054作為一種橋接芯片在pci總線和local總線之間提供 傳遞消息,既可以作為兩個(gè)總線的主控設(shè)備去控制總線,也可以作為兩個(gè)總線的目標(biāo)設(shè)備去響應(yīng)總線。
pci9054有6個(gè)零等待可編程fifo存儲(chǔ)器(fifos)。它們分別完成pci發(fā)起讀、寫操作,pci目標(biāo)讀、寫操作和dma讀、寫操作。由于 fifo存儲(chǔ)器的存在,數(shù)據(jù)可以大量突發(fā)傳輸而不丟失。這樣不僅滿足實(shí)時(shí)性要求,同時(shí)可以根據(jù)用戶的需要采用與pci時(shí)鐘異步的本地頻率。串形 eeprom(serial eeprom)是用來在開機(jī)時(shí)初始化配置內(nèi)部寄存器的。內(nèi)部寄存器(internal regi- sters)標(biāo)識(shí)地址映射關(guān)系以及pci端和本地端工作狀態(tài)。fifo和內(nèi)部寄存器在計(jì)算機(jī)主機(jī)或者本地端都是統(tǒng)一編址的,用戶可以從兩端通過編程訪問它 們的每一個(gè)字節(jié)。
3.2 數(shù)據(jù)傳輸模式
pci9054的數(shù)據(jù)傳輸模式靈活多樣,包括直接主模式(pci master)、直接從模式(pci target)、dma模式。
數(shù)據(jù)傳輸模式的選擇主要是要根據(jù)硬件設(shè)計(jì)者對硬件設(shè)計(jì)的需求而定的。當(dāng)硬件設(shè)計(jì)者選擇由pci發(fā)起控制的時(shí)候,則pci9054應(yīng)該為pci的工作目標(biāo), 這時(shí)應(yīng)選擇pci 9054的工作方式為pci從模式。當(dāng)硬件設(shè)計(jì)者選擇本地端發(fā)起控制的時(shí)候,pci9054成為主控設(shè)備,而pci則成為pci9054的工作目標(biāo),這種 情況下應(yīng)選擇pci9054的工作方式為pci主模式。在數(shù)據(jù)進(jìn)行dma傳輸時(shí),pci9054對pci端和local端都是主控設(shè)備,本身具有dma控 制器完全可以脫離pc機(jī)進(jìn)行dma控制,此時(shí)pci9054工作在dma傳輸模式。
3.3 本地總線工作方式
pci9054本地總線可工作在m,c,j三種模式。
m模式是專為motorola公司的mcu設(shè)計(jì)的工作模式。c模式下9054芯片通過片內(nèi)邏輯控制將pci的地址線和數(shù)據(jù)線分開,很方便地為本地工作時(shí)序 提供各種工作方式,一般較廣泛應(yīng)用于系統(tǒng)設(shè)計(jì)中。j模式是一種沒有l(wèi)ocal master的工作模式,它的好處是地址數(shù)據(jù)線沒有分開,嚴(yán)格仿效pci總線的時(shí)序。pci9054的工作方式可利用模式選擇引腳加以選擇,對于 176pin-pqfp封裝的9054芯片模式選擇引腳為pin156(mode1)和pin 157(modeo)。只要將這兩個(gè)腳接地便可選擇了c模式;兩個(gè)腳都接 則選擇了m模式;pin156接地,pin157接則選擇了j模式。
4 利用pci9054進(jìn)行pci接口電路的設(shè)計(jì)
4.1 接口電路的硬件結(jié)構(gòu)圖如圖2所示:
圖2 硬件結(jié)構(gòu)圖
4.2 pci9054與pci bus接口
硬件接口電路的第一部分是9054與pci插槽間的連接信號(hào)線。這些信號(hào)包括地址數(shù)據(jù)復(fù)用信號(hào)ad[31:0],總線命令信號(hào) c/be[3:0]和pci 協(xié)議控制信號(hào)par,frame#,irdy#,trdy#,stop#,idsel,devsel#等。電路連接中將彼此對應(yīng)的信號(hào)線連接在一起即可。在pci總線信號(hào)中,除了rst#,inta#~intd#之外,其它所有信號(hào)都在時(shí)鐘上升沿被采樣。每個(gè)信號(hào)都有相對于時(shí)鐘前沿的建立和保持時(shí)間。在此期間,不允許有信號(hào)跳動(dòng)。該時(shí)間一過,信號(hào)的變化就無關(guān)緊要了。這種建立和保持時(shí)間對于不同的信號(hào)其情形是不同的。對于ad[31:0]、par和 idsel來說,只有在一定的時(shí)鐘邊沿上才有上述時(shí)間的要求。對于 lock#,irdy#,trdy#,frame#,devsel#,stop#,req#, gnt#,serr#和perr#這些信號(hào)在每個(gè)時(shí)鐘前沿都有建立和保持時(shí)間。對于c/be[3:0]#在傳輸總線命令時(shí),要在frame#第一次建立時(shí) 對應(yīng)的時(shí)鐘邊沿上遵守建立和保持時(shí)間的關(guān)系。若傳輸字節(jié)使能信號(hào)時(shí),要在完成一個(gè)地址期或數(shù)據(jù)期之后的每一個(gè)時(shí)鐘邊沿保證相應(yīng)的建立和保持時(shí)間。
4.3 pci9054與eeprom接口
各種接口芯片都需要外接串行eeprom芯片來加載配置數(shù)據(jù)。對于串行eeprom芯片,需要根據(jù)接口芯片數(shù)據(jù)手冊中給出的生產(chǎn)廠家及型號(hào)選擇,這里選擇 microchip technology公司的 93lc46b。pci9054提供4個(gè)管腳與串行eeprom相連接,它們分別是eedi,eedo,eesk, eecs,對應(yīng)于93lc46b的di, d0, sk, cs這4個(gè)管腳,這4對管腳直接相連就可以。另外93lc46b的vcc管腳需要接+5v電源,gnd接地。因?yàn)樾枰獙Υ衑eprom進(jìn)行寫操作,串行 eeprom應(yīng)處于可編程而且非保護(hù)狀態(tài),所以pe接高電平而pre接低電平。93lc46的技術(shù)手冊規(guī)定兩個(gè)管腳上拉和下拉的電阻應(yīng)為10k左右。
評論