PCI9030及其PCI總線接口電路設計
局部總線采用8位數(shù)據(jù)總線,使用片選信號CSO和CS1,通用接口信號GPIO0和GPIO1。一般情況,所要實現(xiàn)的功能電路會需要一定的邏輯控制,所以 PCI9030提供的局部總線接口信號通常會引入FPGA/CPLD中,并實現(xiàn)控制邏輯以簡化電路。實例中采用EPM7128SQC100-10實現(xiàn)局部控制邏輯。
串行E2PROM接口部分采用93LC66B芯片,寫數(shù)據(jù)信號(EEDI)和讀數(shù)據(jù)信號(EEDO)需要接上拉電阻。
另外,還有一些問題需要注意。如果不用邊界掃描應將TDI和TDO連接起來。
在非熱插拔系統(tǒng)中,應將PCI9030的CPCISW引腳通過的電阻接地。
局域總線根據(jù)局域總線時鐘信號運行,并產(chǎn)生必要的內(nèi)部時鐘信號。該時鐘與PCI時鐘異步運行。
BCLK0可以提供PCI緩沖時鐘,當其滿足應用要求時,可以省去本地時鐘芯片,否則需外接本地時鐘信號產(chǎn)生芯片。
在對E2PRoM編寫配置信息前,插入PCI板卡,BD_SEL需要上拉再接地才能進入系統(tǒng),所以通過跳線接地,方便板卡調(diào)試。
PCI連接器上的兩個引腳PRSNT1和PRSNT2應根據(jù)實際最大功耗進行設置,具體設置見表1。
4 板卡調(diào)試
通常使用PLXmon軟件對板卡進行調(diào)試。在硬件沒有錯誤,E2PROM內(nèi)容配置正確的情況下,將板卡插入PCI插槽,啟動PLXmon后會自動識別已插入的PCI板卡;然后就可以觀察PCI配置寄存器(PCR)和局部配置寄存器(LCR)的內(nèi)容;觀察和修改E2PROM的內(nèi)容。另外,用戶還可以進行內(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類和設備接口、選擇讀寫存取方式、中斷資源、根據(jù)需要添加控制碼等。在生成驅(qū)動程序基本框架后,就要根據(jù)實際需求添加功能代碼。由于PCI9030為從設備芯片,不能主動發(fā)起總線傳輸,沒有DMA傳輸功能。因此,開發(fā)PCI設備驅(qū)動程序WDM主要是實現(xiàn)對I/O映射空間和內(nèi)存映射空間的訪問。通常利用DriverStudio 提供的KIoRange類和KMemoryRange類就可以簡單的實現(xiàn)。PCI基地址寄存器0專用于對本地配置寄存器的內(nèi)存訪問;PCI基地址寄存器1 專用于對本地配置寄存器的I/O訪問。通過訪問本地配置寄存器,可以充分利用PCI9030芯片內(nèi)的資源,包括中斷控制器、GPIO、片選、局部總線可編程讀寫選通定時等。
編寫完基本代碼后,編譯即可生成*.sys和*.inf文件。根據(jù)需要可對*.inf文件做適當修改并拷貝到*.sys文件所在的文件夾中,即可安裝驅(qū)動程序。
6 結 語
正確的硬件電路連接是PCI板卡其他工作的基礎和保證,否則會導致PCI板卡根本上的失敗。E2PROM的配置是PCI板卡能否正常工作的關鍵,一點小的問題都會導致板卡不能正確識別和工作。調(diào)試工具和驅(qū)動軟件的選擇也應根據(jù)實際需要進行選擇,以提高開發(fā)效率,縮短開發(fā)時間。
這里利用接口芯片實現(xiàn)PCI總線接口電路的設計,可以提高開發(fā)效率,降低開發(fā)成本,同時驗證其可靠性和穩(wěn)定性,為下一步開發(fā)PXI總線接口電路打下了良好的基礎。
評論