基于PCI9054橋路器的數(shù)據(jù)傳輸?shù)慕涌谶壿嬙O(shè)計(jì)
圖6是借助于Xilinx ISE 9.1i仿真工具對在C模式下的8位本地總線寬度的本地邏輯控制的傳輸時(shí)序仿真結(jié)果舉例。由圖6可知:在寫周期,是把PCI總線端的地址local_adrr[9:2]為8'h00的數(shù)據(jù)寫到輸出端outport0;在讀周期,是把地址為8'h00的數(shù)據(jù)從inportO[2;0]讀入到local_data[0]。
3.2 驅(qū)動程序設(shè)計(jì)
Windriver是Jungo公司生產(chǎn)的一個(gè)設(shè)備驅(qū)動程序開發(fā)組件,開發(fā)者不需熟悉操作系統(tǒng)內(nèi)核即可利用Windriver開發(fā)設(shè)備驅(qū)動程序。整個(gè)驅(qū)動程序中的所有函數(shù)都是在用戶態(tài)下運(yùn)行的,通過與Windriver的.Vxd或者.Sys文件交互來達(dá)到驅(qū)動硬件的目的,大大提高了PCI設(shè)備驅(qū)動程序開發(fā)。
用Windriver開發(fā)驅(qū)動程序的過程大致如下:首先,打開Windriver設(shè)備,查找所要訪問的PCI設(shè)備;然后是枚舉該設(shè)備的資源(包括內(nèi)存、I/O、中斷)并鎖定該設(shè)備的資源,不能被其他程序訪問;在訪問板上的資源之后是解鎖資源;最后是關(guān)閉Windriver設(shè)備。這個(gè)過程是用C語言在VC++6.0開發(fā)環(huán)境下借助于Windriver本身自帶函數(shù)(安裝Windriver之后,在其“Help”中可找出相關(guān)函數(shù)說明)實(shí)現(xiàn)對PCI9054的
初始化。設(shè)備打開,訪問硬件資源,調(diào)用函數(shù)庫,設(shè)備關(guān)閉等操作后。再對源代碼進(jìn)行編譯,鏈接和運(yùn)行成功后,找出產(chǎn)生的5個(gè)文件:wdr-eg.exe,plx9054.inf,windrvr6.sys,plx9054.lib和plx9054.dll,這5個(gè)文件組成了所需的驅(qū)動文件。在板卡成功插入插槽后點(diǎn)擊wdreg.exe成功安裝驅(qū)動程序。
4 結(jié)束語
本文以性價(jià)比較高的PCI9054作為PCI橋路器,給出了橋路器的部分功能介紹、電路設(shè)計(jì)時(shí)需注意的問題及本地總線數(shù)據(jù)傳輸的接口邏輯設(shè)計(jì)。本設(shè)計(jì)降低了PCI總線的復(fù)雜性,輕松實(shí)現(xiàn)了PCI總線端的控制器對本地總線和本地總線外部設(shè)備的工作模式和狀態(tài)的有效檢測,具有極大的應(yīng)用價(jià)值。
評論