PCI總線接口設(shè)計及專用接口芯片的應(yīng)用
4.4 pci9054與local bus接口
硬件電路第三部分是pci 9054與local端連接。plx9054芯片local端用到的部分引腳信號描述如下。
lhold:申請使用本地總線,輸出信號;lholda:對lhold應(yīng)答,輸入信號;ads:新的總線訪問有效地址的開始,在總線訪問 first clock設(shè)置時,輸出信號: blast:表示為總線訪問的last transfer,輸出信號; lw/r:高電平表示讀操作,低電平表示寫操作,輸出信號。la:地址線。ld:數(shù)據(jù)線。ready:表示總線上讀數(shù)據(jù)有效或?qū)憯?shù)據(jù)完成,用以連接 plx9054等待狀態(tài)產(chǎn)生器,輸入信號。
4.5 寄存器配置
設(shè)計好接口電路后,硬件設(shè)計工作還只完成了一半。由于pci 9054是通用pci接口功能芯片,它的功能還不一定能夠滿足用戶的需求,所以還要進(jìn)行功能寄存器設(shè)置以使接口電路具有特定的功能。寄存器的配置包括 eeprom初始化、local功能寄存器和pci配置寄存器的配置。
(1) eeprom初始化
在計算機的加電自檢期間,pci總線的rst#信號復(fù)位,plx9054內(nèi)部寄存器的默認(rèn)值作為回應(yīng)。plx9054輸出本地lreset#信號并檢測串 行eeprom。如果串行eeprom中的前33個比特不全為1,那么plx9054確定串行eeprom非空,用戶可通過向9054的寄存器cntrl 的29位寫1來加載eeprom的內(nèi)容到plx9054的內(nèi)部寄存器;配置的信息(設(shè)備識別號、供應(yīng)商代碼號、local總線三個空間的大小以及三個空間的基址等)事先要利用編程器寫入配置存儲器中,也可以在p1xsdk中的plxmon下對eeprom進(jìn)行配置。
(2) pci配置寄存器的配置
配置pci配置寄存器比較簡單。主要是填寫生產(chǎn)商id號、器件id號、類碼子系統(tǒng)id號和子系統(tǒng)生產(chǎn)商id號。對于pci 9054,其生廠商id號為10b5,器件id號為9054,子系統(tǒng)號為9054,子系統(tǒng)id號為10b5,類碼號為0680,表示其為橋設(shè)備中的其它橋 設(shè)備類。
(3) 本地配置寄存器的配置
對于本地配置寄存器的配置就是對本地地址空間及其本地總線屬性的配置。這些配置要根據(jù)實際開發(fā)的硬件板卡的硬件資源進(jìn)行配置。設(shè)備人員配置寄存器的任務(wù)就是要把某一段本地地址映射為pci地址,也就是當(dāng)主機cpu要訪問本地地址空間時,要知道其對應(yīng)的pci總線地址。
4.6 驅(qū)動程序的開發(fā)
設(shè)備驅(qū)動程序提供鏈接到pci板卡的軟件接口,文件擴展名為.sys的動態(tài)鏈接庫。在windows98和windows2000中,設(shè)備驅(qū)動程序必須根 據(jù)windows驅(qū)動程序模型(wdm)設(shè)計。設(shè)備驅(qū)動程序的關(guān)鍵是如何完成硬件操作,基本功能是完成設(shè)備的初始化、對端口的讀寫操作、中斷的設(shè)置和響應(yīng) 及中斷的調(diào)用,以及對內(nèi)存的直接讀寫。本設(shè)計應(yīng)用基于vc++的driverworks軟件,只要在它的向?qū)С绦?driverwizard)指引下,根據(jù)硬件的具體情況設(shè)置必要參數(shù)就可以很方便地完成驅(qū)動程序的框架,最后根據(jù)具體的要求添加新的類對象和所需代碼即可。
5 結(jié)束語
隨著數(shù)字技術(shù)的發(fā)展,要求的數(shù)據(jù)傳輸速率將會越來越高。pci9054以其強大的功能,簡單的用戶接口,為pci總線接口的開發(fā)提供了一種簡潔的方法,設(shè)計者只要設(shè)計本地總線接口控制電路,即可實現(xiàn)與pci總線的高速數(shù)據(jù)傳輸。
評論