<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 用雙端口RAM實(shí)現(xiàn)與PCI總線接口數(shù)據(jù)通訊

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

          作者: 時(shí)間:2010-04-29 來(lái)源:網(wǎng)絡(luò) 收藏

            2.3控制邏輯

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

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

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

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

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

            參考文獻(xiàn)

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

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

            3 PLX公司.PCI9030Data Book.Version 1.4.May,2002

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

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


          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();