PCI9030及其PCI總線(xiàn)接口電路設(shè)計(jì)
局部總線(xiàn)采用8位數(shù)據(jù)總線(xiàn),使用片選信號(hào)CSO和CS1,通用接口信號(hào)GPIO0和GPIO1。一般情況,所要實(shí)現(xiàn)的功能電路會(huì)需要一定的邏輯控制,所以 PCI9030提供的局部總線(xiàn)接口信號(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ò)的電阻接地。
局域總線(xiàn)根據(jù)局域總線(xiàn)時(shí)鐘信號(hào)運(yùn)行,并產(chǎn)生必要的內(nèi)部時(shí)鐘信號(hào)。該時(shí)鐘與PCI時(shí)鐘異步運(yùn)行。
BCLK0可以提供PCI緩沖時(shí)鐘,當(dāng)其滿(mǎn)足應(yīng)用要求時(shí),可以省去本地時(shí)鐘芯片,否則需外接本地時(shí)鐘信號(hào)產(chǎn)生芯片。
在對(duì)E2PRoM編寫(xiě)配置信息前,插入PCI板卡,BD_SEL需要上拉再接地才能進(jìn)入系統(tǒng),所以通過(guò)跳線(xiàn)接地,方便板卡調(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板卡;然后就可以觀(guān)察PCI配置寄存器(PCR)和局部配置寄存器(LCR)的內(nèi)容;觀(guān)察和修改E2PROM的內(nèi)容。另外,用戶(hù)還可以進(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àn),填寫(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ā)起總線(xiàn)傳輸,沒(méi)有DMA傳輸功能。因此,開(kāi)發(fā)PCI設(shè)備驅(qū)動(dòng)程序WDM主要是實(shí)現(xiàn)對(duì)I/O映射空間和內(nèi)存映射空間的訪(fǎng)問(wèn)。通常利用DriverStudio 提供的KIoRange類(lèi)和KMemoryRange類(lèi)就可以簡(jiǎn)單的實(shí)現(xiàn)。PCI基地址寄存器0專(zhuān)用于對(duì)本地配置寄存器的內(nèi)存訪(fǎng)問(wèn);PCI基地址寄存器1 專(zhuān)用于對(duì)本地配置寄存器的I/O訪(fǎng)問(wèn)。通過(guò)訪(fǎng)問(wèn)本地配置寄存器,可以充分利用PCI9030芯片內(nèi)的資源,包括中斷控制器、GPIO、片選、局部總線(xiàn)可編程讀寫(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總線(xiàn)接口電路的設(shè)計(jì),可以提高開(kāi)發(fā)效率,降低開(kāi)發(fā)成本,同時(shí)驗(yàn)證其可靠性和穩(wěn)定性,為下一步開(kāi)發(fā)PXI總線(xiàn)接口電路打下了良好的基礎(chǔ)。
評(píng)論