用雙端口RAM實(shí)現與PCI總線(xiàn)接口數據通訊
2.3CPLD控制邏輯
對于雙口RAM同一個(gè)地址單元,不能同時(shí)進(jìn)行讀或寫(xiě)操作,但兩邊連接的主控芯片,都可以對其進(jìn)行讀、寫(xiě)操作,因此必須解決地址競爭問(wèn)題。本系統中,使用XILINX公司的XC9536CPLD芯片完成PCI局部總線(xiàn)的譯碼和控制電路。由于系統控制計算主要在DSP中完成,上位機只起監控和數據保存作用,因此規定對雙口RAM的操作DSP優(yōu)先于PCI9030;同時(shí)CPLD也參與了DSP片外程序存儲器Flash和數據存儲器RAM的地址譯碼,控制邏輯用公式表示為:
3設備驅動(dòng)程序設計
設備驅動(dòng)程序開(kāi)發(fā)工具通常有DDK、VtoolsD、WinDrvr等。為加快開(kāi)發(fā)速度,采用JUNDO公司的WinDrvr開(kāi)發(fā)設備驅動(dòng)程序。其使用簡(jiǎn)單,支持多種操作系統。
采用Windrvr開(kāi)發(fā)PCI橋接設備的驅動(dòng)程序有兩種方法。一種Wizard開(kāi)發(fā)向導是自動(dòng)生成驅動(dòng)程序框架代碼,然后根據實(shí)際需要,加入定制功能。這種方法生成的代碼較多,程序較復雜。另一種是在Vc++創(chuàng )建工程中直接利用Windrvr的API函數生成驅動(dòng)程序,比在Wizard生成的框架代碼上修改更為靈活。本文采用后一種方法。以下是用Windrvr開(kāi)發(fā)PCI9030橋芯片的驅動(dòng)代碼,只要稍加改動(dòng)就可以作為其他PCI芯片驅動(dòng)程序的一部分,例如PCI9050、PCI9052等。程序中出現的變量名都由其名稱(chēng)反映含義,具體可以參見(jiàn)Windrvr設計文檔說(shuō)明。
至此獲得了本地端映射到用戶(hù)的內存地址,調用讀寫(xiě)函數就可以對本地芯片進(jìn)行操作。
參考文獻
1 鄧曉勇,韓燮,毛明.利用FPGA實(shí)現與PCI總線(xiàn)接口的數據通信[J].華北工學(xué)院學(xué)報,2002;23(6):436~439
2 陳利學(xué),孫彪,趙玉連等.微機總線(xiàn)與接口設計[M].成都:電子科技大學(xué)出版社,1998
3 PLX公司.PCI9030Data Book.Version 1.4.May,2002
4 劉巍.一種快速開(kāi)發(fā)PCI橋設備驅動(dòng)程序的方法.現代雷達,2002;(2):39~40
5 黃殉,孫政順.利用WinDriver開(kāi)發(fā)PCI設備驅動(dòng)程序.電子技術(shù)應用,2001;27(3):15~16
評論