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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 一種基于FPGA的PXA270外設(shè)時序轉(zhuǎn)換接口設(shè)計(jì)

          一種基于FPGA的PXA270外設(shè)時序轉(zhuǎn)換接口設(shè)計(jì)

          作者: 時間:2009-09-24 來源:網(wǎng)絡(luò) 收藏

          1 引言
          ARCNET協(xié)議應(yīng)用于高速動車組列車通信網(wǎng)絡(luò)時,產(chǎn)生中央控制單元處理器與專用協(xié)議控制器件COM20020相連的時序不匹配問題,若用通用數(shù)字電路模塊進(jìn)行時序轉(zhuǎn)換,需占用專門的資源(CPU時間片)對 COM20020的寄存器、數(shù)據(jù)包緩沖區(qū)進(jìn)行低速讀寫訪問(對COM20020的相鄰兩次讀操作相隔至少300 ns),這樣將增加處理器的負(fù)擔(dān)?;谶@種現(xiàn)狀,提出一種基于的PXA270時序轉(zhuǎn)換接口設(shè)計(jì)方案,以為橋梁進(jìn)行時序轉(zhuǎn)換,并增加存儲器直接訪問DMA(Direct Memory Aeeess)功能,即自動完成數(shù)據(jù)包的收發(fā)工作,PXA270則只需高速讀寫訪問FPGA中的同步雙口RAM。

          本文引用地址:http://www.ex-cimer.com/article/191920.htm

          2 時序轉(zhuǎn)換接口整體設(shè)計(jì)
          2.1 FPGA對外接白
          采用FPGA連接PXA270處理器與以解決PXA270處理器與直接連接時的時序不匹配問題。如圖1所示,F(xiàn)PGA從PXA270處理器獲得地址總線(ADDRBUS[17..14], ADDRBUS[9..0]),片選信號(SYSCS5),讀允許(SYSOE),寫允許(SYSWE),并提供雙向數(shù)據(jù)端口DATABUS[7..0] (可根據(jù)實(shí)際應(yīng)用修改為32位或16位等),中斷(interrupt);同時,F(xiàn)PGA向COM20020提供特定的總線接口,包括 COM20020_DS,COM20020_CS,COM20020_DIR,COM20020_DATABUS [7..0],COM20020_ADDRBUS[2..0]等。

          2.2 內(nèi)部功能實(shí)現(xiàn)
          PXA270和外設(shè)之間的連接是將FPGA中的雙口RAM作為數(shù)據(jù)中轉(zhuǎn)站,以此間接相連。該設(shè)計(jì)由以下4個功能模塊組成。
          (1)PXA270對外設(shè)指定寄存器單次寫操作PXA270先將所要寫的數(shù)據(jù)送人雙口RAM,然后PXA270向FPGA的命令寄存器寫入對該外設(shè)指定寄存器的單次寫指令,然后FP-GA根據(jù)接收到的命令將RAM中的數(shù)據(jù)輸出到外設(shè)數(shù)據(jù)總線,同時給出對外設(shè)的寫時序。


          上一頁 1 2 3 4 下一頁

          關(guān)鍵詞: FPGA 270 PXA 外設(shè)

          評論


          相關(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); })();