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