新聞中心

EEPW首頁 > 網(wǎng)絡(luò)與存儲 > 設(shè)計(jì)應(yīng)用 > 用雙端口RAM實(shí)現(xiàn)與PCI總線接口的數(shù)據(jù)通訊

用雙端口RAM實(shí)現(xiàn)與PCI總線接口的數(shù)據(jù)通訊

作者:姚利民 孫逢春 李軍求 張承寧 時(shí)間:2008-05-28 來源:電子技術(shù)應(yīng)用 收藏

  (3)配置片選信號控制寄存器

本文引用地址:http://m.butianyuan.cn/article/83198.htm

  該寄存器的地址范圍和基地址必須與LAS0RR或LAS0BA所定義 的范圍和空間相對應(yīng)??筛鶕?jù)PCI 9030提供的配置寄存器的方法確定CS0BASE的數(shù)值:板卡的2KB空間可以用十六進(jìn)制表示為800H,將800H右移一位得到400H,然后將基地址加到400H左邊的任何一位中。因?yàn)樗捎玫幕刂窞?0004000H,所以得到的值為00004400H;又因?yàn)榈?位為片選使能位,應(yīng)該設(shè)置為1。所以最終確定的數(shù)值為00004401H。

  由于局部總線采用8位的寬度,將工作方式定義在不使能突發(fā),不預(yù)取,配置總線區(qū)域描述寄存器的數(shù)值確定為400140A2H。另外,還要根據(jù)要求設(shè)置CNTRL寄存器控制PCI 9030的工作狀態(tài),確定為18784500H。當(dāng)所有這些數(shù)據(jù)都配置完成后,便可將這些數(shù)據(jù)按照加載順序?qū)懭氪蠩2PROM中,從而完成整個(gè)系統(tǒng)的配置。

  通過這幾個(gè)寄存器的配置,一個(gè)局部地址空間便可以確定下來。在系統(tǒng)上電后,系統(tǒng)BIOS根據(jù)這幾個(gè)寄存器的內(nèi)容將板卡上2KB的空間重映射到PCI空間中,使主機(jī)可以像訪問自己的地址空間一樣訪問板卡上的。

  2.3 控制邏輯

  對于雙口同一個(gè)地址單元,不能同時(shí)進(jìn)行讀或?qū)懖僮鳎珒蛇呥B接的主控芯片,都可以對其進(jìn)行讀、寫操作,因此必須解決地址競爭問題。本系統(tǒng)中,使用XILINX公司的XC9536芯片完成PCI局部總線的譯碼和控制電路。由于系統(tǒng)控制計(jì)算主要在中完成,上位機(jī)只起監(jiān)控和數(shù)據(jù)保存作用,因此規(guī)定對雙口RAM的操作優(yōu)先于PCI 9030;同時(shí)也參與了片外程序存儲器Flash和數(shù)據(jù)存儲器RAM的地址譯碼,控制邏輯用公式表示為:

         

  3 設(shè)備驅(qū)動程序設(shè)計(jì)

  設(shè)備驅(qū)動程序開發(fā)工具通常有DDK、VtoolsD、WinDrvr等。為加快開發(fā)速度,采用JUNDO公司的WinDrvr開發(fā)設(shè)備驅(qū)動程序。其使用簡單,支持多種操作系統(tǒng)。

  采用Windrvr開發(fā)PCI橋接設(shè)備的驅(qū)動程序有兩種方法。一種Wizard開發(fā)向?qū)亲詣由沈?qū)動程序框架代碼,然后根據(jù)實(shí)際需要,加入定制功能。這種方法生成的代碼較多,程序較復(fù)雜。另一種是在Vc++創(chuàng)建工程中直接利用Windrvr的API函數(shù)生成驅(qū)動程序,比在Wizard生成的框架代碼上修改更為靈活。本文采用后一種方法。以下是用Windrvr開發(fā)PCI9030橋芯片的驅(qū)動代碼,只要稍加改動就可以作為其他PCI芯片驅(qū)動程序的一部分,例如PCI9050、PCI9052等。程序中出現(xiàn)的變量名都由其名稱反映含義,具體可以參見Windrvr設(shè)計(jì)文檔說明。

        

  至此獲得了本地端映射到用戶的內(nèi)存地址,調(diào)用讀寫函數(shù)就可以對本地芯片進(jìn)行操作。

  參考文獻(xiàn)

  1 鄧曉勇,韓 燮,毛 明.利用FPGA實(shí)現(xiàn)與接口的數(shù)據(jù)通信[J].華北工學(xué)院學(xué)報(bào),2002;23(6):436~439

  2 陳利學(xué),孫 彪,趙玉連等.微機(jī)總線與接口設(shè)計(jì)[M].成都:電子科技大學(xué)出版社,1998

  3 PLX公司.PCI 9030 Data Book.Version 1.4.May,2002

  4 劉 巍.一種快速開發(fā)PCI橋設(shè)備驅(qū)動程序的方法.現(xiàn)代雷達(dá),2002;(2):39~40

  5 黃 殉,孫政順.利用WinDriver開發(fā)PCI設(shè)備驅(qū)動程序.電子技術(shù)應(yīng)用,2001;27(3):15~16


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉