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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > MCS-51單片機(jī)與FPGA

          MCS-51單片機(jī)與FPGA

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

          1 單片機(jī)與的接口方式單片機(jī)與的接口方式一般有兩種,即總線方式與獨立方式。MCS-51單片機(jī)具有很強(qiáng)的外部總線擴(kuò)展能力,利用片外三總線結(jié)構(gòu)很容易實現(xiàn)單片機(jī)與的總線接口,而且單片機(jī)以總線方式與FPGA進(jìn)行數(shù)據(jù)與控制信息通信也有許多優(yōu)點:速度快;節(jié)省PLD芯片的I/O口線;相對于非總線方式,單片機(jī)編程簡捷,控制可靠;在FPGA中通過邏輯切換,單片機(jī)易于與SRAM或ROM接口。

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

          單片機(jī)與FPGA以總線方式通信的邏輯設(shè)計,重要的是要詳細(xì)了解單片機(jī)的總線讀寫時序,根據(jù)時序圖來設(shè)計邏輯結(jié)構(gòu),其通信的時序必須遵循單片機(jī)內(nèi)固定的總線方式讀/寫時序。FPGA的邏輯設(shè)計也相對比較復(fù)雜,在程序設(shè)計上必須與接口的單片機(jī)程序相結(jié)合,嚴(yán)格安排單片機(jī)能訪問的I/O空間。單片機(jī)以總線方式與FPGA進(jìn)行數(shù)據(jù)通信與控制時,其通信工作時序是純硬件行為,速度要比前一種方式快得多,另外若在FPGA內(nèi)部設(shè)置足夠的譯碼輸出,單片機(jī)就可以僅通過19根I/O線在FPGA與單片機(jī)之間進(jìn)行通信和控制信息交換,這樣可以節(jié)省FPGA芯片的I/O線。其原理圖如圖1所示。

          2 總線接口邏輯設(shè)計

          2.1 接口設(shè)計思想

          單片機(jī)與CPLD/FPC,A以總線方式通信的邏輯設(shè)計,重要的是要詳細(xì)了解單片機(jī)的總線讀寫時序,根據(jù)時序圖來設(shè)計邏輯結(jié)構(gòu)。MCS-51系列單片機(jī)的時序圖如圖2所示。

          ALE為地址鎖存使能信號,可利用其下降沿將低8位地址鎖存于FPGA中的地址鎖存器(LATCH_ADDRES)中;當(dāng)ALE將低8位地址通過P0鎖存的同時,高8位地址已穩(wěn)定建立于P2口,單片機(jī)利用讀指令允許信號PSEN的低電平從外部ROM中將指令從P0口讀入,由時序圖可見,其指令讀入的時機(jī)是在PSEN的上升沿之前。接下來,由P2口和P0口分別輸出高8位和低8位數(shù)據(jù)地址,并由ALE的下降沿將P0口的低8位地址鎖存于地址鎖存器。若需從FPGA中讀出數(shù)據(jù),單片機(jī)則通過指令“MOVXA,@DPTR”使RD信號為低電平,由P0口將鎖存器中的數(shù)據(jù)讀入累加器A;但若欲將累加器A的數(shù)據(jù)寫進(jìn)FPGA,則需通過指令“MOVx DPTR,A”和寫允許信號WR。這時,DPTR中的高8位和低8位數(shù)據(jù)作為高、低8位地址分別向P2和P0口輸出,然后由WR的低電平并結(jié)合譯碼,將累加器A的數(shù)據(jù)寫入圖中相關(guān)的鎖存器。


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: FPGA

          評論


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