PCI9030及其PCI總線接口電路設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
0 引 言
PXI總線系統(tǒng)的卓越性能和較低的價(jià)格,使得越來(lái)越多從事自動(dòng)測(cè)試的工程技術(shù)人員開(kāi)始關(guān)注PXI的發(fā)展。而PXI總線是PCI總線在儀器領(lǐng)域的擴(kuò)展,可以將PXI總線分為PCI總線和PXI擴(kuò)展的總線兩部分。將進(jìn)行PCI總線接口電路的設(shè)計(jì),從而為設(shè)計(jì) PXI模塊儀器,組建PXI總線自動(dòng)測(cè)試系統(tǒng)做好準(zhǔn)備。
目前,PCI總線接口電路的實(shí)現(xiàn)主要有兩種方案:一是采用一片大容量FPGA/CPLD實(shí)現(xiàn)PCI總線接口邏輯;另一種是采用ASIC芯片完成PCI總線的接口電路。由于PCI總線速度高,協(xié)議復(fù)雜,采用第一種方案雖然應(yīng)用很靈活,但是調(diào)試?yán)щy,開(kāi)發(fā)周期長(zhǎng),而且采用一片工業(yè)級(jí)可用于PCI接口的 FPGA/CPLD完成PCI總線接口功能,遠(yuǎn)比使用PCI接口芯片的成本高。采用第二種方案,功能強(qiáng),價(jià)格低,穩(wěn)定性好,開(kāi)發(fā)周期較短。通過(guò)對(duì)上述兩種接口方案的比較,從綜合開(kāi)發(fā)難度、芯片功能、開(kāi)發(fā)速度和開(kāi)發(fā)經(jīng)費(fèi)等方面考慮,在此采用后一種方案完成PCI總線的接口設(shè)計(jì)。
1 PCI9030芯片及其主要特點(diǎn)
PCI9030是全球最大的PCI接口設(shè)備制造商PLXTechnology于1999年3月推出的全新的32 b/33 MHz PCI目標(biāo)設(shè)備接口芯片。它采用PLX先進(jìn)的SMARTarget技術(shù),不僅為各種應(yīng)用提供了最大的靈活性,而且大大簡(jiǎn)化了系統(tǒng)設(shè)計(jì),具有最高的性價(jià)比,能夠滿足各種應(yīng)用的要求。PLX計(jì)劃用它替代應(yīng)用廣泛的PCI9050和PCI9052。PCI9030主要有以下特點(diǎn);
(1)采用PLX先進(jìn)的SMARTarget技術(shù),完全兼容PCI 2.2協(xié)議規(guī)范,PCI突發(fā)傳輸速率高達(dá)132 MB,/s,是第一個(gè)符合CompactPCI PICMG2.1標(biāo)準(zhǔn)的工業(yè)級(jí)目標(biāo)設(shè)備接口芯片。
(2)支持高達(dá)60 MHz的局部總線操作,突發(fā)傳輸模式下速率可達(dá)240 MB/s,支持PCI目標(biāo)預(yù)取模式、PCI目標(biāo)可編程突發(fā)傳輸、PCI目標(biāo)延遲寫(xiě)模式和PMW(Posted Memory Writes)模式。
(3)資源豐富,應(yīng)用靈活。它支持5個(gè)PCI to Lo-cal地址空間,擁有9個(gè)通用I/O(GPIOs),4個(gè)可編程片選(CS[3…0]),中斷發(fā)生器/控制器,支持 Big/LittleEndian字節(jié)轉(zhuǎn)換,可提供PCI緩沖時(shí)鐘(33 MHz),局部總線可編程讀寫(xiě)選通定時(shí)等。
(4)局部總線的配置可編程,可支持復(fù)用或非復(fù)用模式的8位,16位或32位局部總線。
(5)PCI9030支持3.3 V,5 V電源容錯(cuò),因此在采用5 V電源的CPLD時(shí),不需要進(jìn)行電平轉(zhuǎn)換,可以直接連接,使得電路更加簡(jiǎn)潔。
2 PCI總線接口電路
PCI總線開(kāi)關(guān)模塊是在滿足PCI總線數(shù)據(jù)傳輸協(xié)議的前提下進(jìn)行寫(xiě)數(shù)據(jù)和數(shù)據(jù)回讀,完成PCI總線的基本數(shù)據(jù)傳送。寫(xiě)數(shù)據(jù)時(shí)經(jīng)過(guò)鎖存和繼電器驅(qū)動(dòng)模塊來(lái)驅(qū)動(dòng)繼電器工作,可以通過(guò)數(shù)據(jù)線回讀繼電器的狀態(tài),以判斷數(shù)據(jù)傳輸?shù)恼_性,其原理框圖如圖1所示。
PCI總線接口電路主要分為3個(gè)部分,即PCI總線接口、局部總線接口、串行E2PROM接口,如圖2所示。LCLK通過(guò)500 Ω電阻與BCLK0連接,為PCI9030提供本地時(shí)鐘信號(hào)。局部總線多路復(fù)用和非多路復(fù)用選擇是通過(guò)硬件實(shí)現(xiàn)。這里選用多路復(fù)用,故將PCI9030的 MODE引腳通過(guò)電阻上拉至3.3 V電源。邊界掃描JTAG不使用,PCI9030引腳TRST應(yīng)該通過(guò)電阻接地。
局部總線采用8位數(shù)據(jù)總線,使用片選信號(hào)CSO和CS1,通用接口信號(hào)GPIO0和GPIO1。一般情況,所要實(shí)現(xiàn)的功能電路會(huì)需要一定的邏輯控制,所以 PCI9030提供的局部總線接口信號(hào)通常會(huì)引入FPGA/CPLD中,并實(shí)現(xiàn)控制邏輯以簡(jiǎn)化電路。實(shí)例中采用EPM7128SQC100-10實(shí)現(xiàn)局部控制邏輯。
串行E2PROM接口部分采用93LC66B芯片,寫(xiě)數(shù)據(jù)信號(hào)(EEDI)和讀數(shù)據(jù)信號(hào)(EEDO)需要接上拉電阻。
另外,還有一些問(wèn)題需要注意。如果不用邊界掃描應(yīng)將TDI和TDO連接起來(lái)。
在非熱插拔系統(tǒng)中,應(yīng)將PCI9030的CPCISW引腳通過(guò)的電阻接地。
局域總線根據(jù)局域總線時(shí)鐘信號(hào)運(yùn)行,并產(chǎn)生必要的內(nèi)部時(shí)鐘信號(hào)。該時(shí)鐘與PCI時(shí)鐘異步運(yùn)行。
BCLK0可以提供PCI緩沖時(shí)鐘,當(dāng)其滿足應(yīng)用要求時(shí),可以省去本地時(shí)鐘芯片,否則需外接本地時(shí)鐘信號(hào)產(chǎn)生芯片。
在對(duì)E2PRoM編寫(xiě)配置信息前,插入PCI板卡,BD_SEL需要上拉再接地才能進(jìn)入系統(tǒng),所以通過(guò)跳線接地,方便板卡調(diào)試。
PCI連接器上的兩個(gè)引腳PRSNT1和PRSNT2應(yīng)根據(jù)實(shí)際最大功耗進(jìn)行設(shè)置,具體設(shè)置見(jiàn)表1。
4 板卡調(diào)試
通常使用PLXmon軟件對(duì)板卡進(jìn)行調(diào)試。在硬件沒(méi)有錯(cuò)誤,E2PROM內(nèi)容配置正確的情況下,將板卡插入PCI插槽,啟動(dòng)PLXmon后會(huì)自動(dòng)識(shí)別已插入的PCI板卡;然后就可以觀察PCI配置寄存器(PCR)和局部配置寄存器(LCR)的內(nèi)容;觀察和修改E2PROM的內(nèi)容。另外,用戶還可以進(jìn)行內(nèi)存和I/O端口的讀寫(xiě)。
5 編寫(xiě)WDM驅(qū)動(dòng)程序
在WindowsXP操作系統(tǒng)下編寫(xiě)WDM驅(qū)動(dòng)程序,最常用的開(kāi)發(fā)工具是 DriverStudio和WinDriv-er。在此采用DriverStudio編寫(xiě)PCI板卡的驅(qū)動(dòng)程序。首先,根據(jù)DriverStudio的圖形向?qū)ЫDM功能驅(qū)動(dòng)程序框架,硬件選擇PCI總線,填寫(xiě)Device ID,Ven-dot。ID,子系統(tǒng)ID號(hào)和版本ID號(hào);然后添加所需類(lèi)和資源,包括KIoRange類(lèi)、KMemoryRange類(lèi)和設(shè)備接口、選擇讀寫(xiě)存取方式、中斷資源、根據(jù)需要添加控制碼等。在生成驅(qū)動(dòng)程序基本框架后,就要根據(jù)實(shí)際需求添加功能代碼。由于PCI9030為從設(shè)備芯片,不能主動(dòng)發(fā)起總線傳輸,沒(méi)有DMA傳輸功能。因此,開(kāi)發(fā)PCI設(shè)備驅(qū)動(dòng)程序WDM主要是實(shí)現(xiàn)對(duì)I/O映射空間和內(nèi)存映射空間的訪問(wèn)。通常利用DriverStudio 提供的KIoRange類(lèi)和KMemoryRange類(lèi)就可以簡(jiǎn)單的實(shí)現(xiàn)。PCI基地址寄存器0專用于對(duì)本地配置寄存器的內(nèi)存訪問(wèn);PCI基地址寄存器1 專用于對(duì)本地配置寄存器的I/O訪問(wèn)。通過(guò)訪問(wèn)本地配置寄存器,可以充分利用PCI9030芯片內(nèi)的資源,包括中斷控制器、GPIO、片選、局部總線可編程讀寫(xiě)選通定時(shí)等。
編寫(xiě)完基本代碼后,編譯即可生成*.sys和*.inf文件。根據(jù)需要可對(duì)*.inf文件做適當(dāng)修改并拷貝到*.sys文件所在的文件夾中,即可安裝驅(qū)動(dòng)程序。
6 結(jié) 語(yǔ)
正確的硬件電路連接是PCI板卡其他工作的基礎(chǔ)和保證,否則會(huì)導(dǎo)致PCI板卡根本上的失敗。E2PROM的配置是PCI板卡能否正常工作的關(guān)鍵,一點(diǎn)小的問(wèn)題都會(huì)導(dǎo)致板卡不能正確識(shí)別和工作。調(diào)試工具和驅(qū)動(dòng)軟件的選擇也應(yīng)根據(jù)實(shí)際需要進(jìn)行選擇,以提高開(kāi)發(fā)效率,縮短開(kāi)發(fā)時(shí)間。
這里利用接口芯片實(shí)現(xiàn)PCI總線接口電路的設(shè)計(jì),可以提高開(kāi)發(fā)效率,降低開(kāi)發(fā)成本,同時(shí)驗(yàn)證其可靠性和穩(wěn)定性,為下一步開(kāi)發(fā)PXI總線接口電路打下了良好的基礎(chǔ)。