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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于nRF24L01和Actel FPGA的智能探測系統(tǒng)設(shè)計

          基于nRF24L01和Actel FPGA的智能探測系統(tǒng)設(shè)計

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

            2.2 Core 80515架構(gòu)

            Core 8051S是Actel公司推出的基于APB3總線的8051lP核,兼容8051的全部指令,同時又具備許多51所沒有的獨特功能:

            (1)具有可配置的JTAG接口調(diào)試功能,可利用Flash_Pro下載器作為其調(diào)試工具;優(yōu)化指令執(zhí)行速度,內(nèi)部設(shè)置流水線,可實現(xiàn)單個時鐘周期執(zhí)行一條指令,且是普通51的12倍。

           ?。?)采用APB3外設(shè)總線結(jié)構(gòu)和SER寄存器內(nèi)存映射方式管理外設(shè),將外部擴展的64 KB數(shù)據(jù)空間中的最高4 KB作為APB3外設(shè)的寄存器內(nèi)存映射地址,每個APB3外設(shè)占據(jù)256 B的地址,因此最多可添加16個外設(shè)。

           ?。?)使用CoreConsole軟件以圖形化界面的方式添加Core8051S以及其他外設(shè),既直觀又方便。

            圖3是以CoreConsole開發(fā)的、基于Core805lS和APB3總線的50PC系統(tǒng)的典型架構(gòu)。該軟件的開發(fā)流程與Altera公司基于NIOS Ⅱ處理器的soPc開發(fā)流程類似,同時又具有其獨特優(yōu)勢:在系統(tǒng)不復(fù)雜、控制部分遠多于計算處理時,使用Core805⊥s可靈活迅速地進行開發(fā),通過安裝ISA—Actel5 1為Keil提供調(diào)試驅(qū)動可直接使用Keil編寫代碼并進行在線程序調(diào)試,而優(yōu)化后的指令執(zhí)行速度可滿足大部分應(yīng)用的要求。

          圖3 CoreConsole下基于Core8051S的開發(fā)實例

            本系統(tǒng)設(shè)計步驟:

           ?。?)利用CoreConsole以圖形化方式設(shè)計片上系統(tǒng)所需的總線及外設(shè),包括SPI、PWM、GP10、UART等模塊;配置各模塊與APB3總線之間的連接關(guān)系,正確分配外設(shè)地址;然后生成.Ⅴ文件導(dǎo)人Actel集成開發(fā)環(huán)境Libero。

            (2)使用Libero的Flash Memory System Builder將Fu_S10n內(nèi)部的Flash模塊配置為Core8051S的外部程序空問。如果有必要還可以將Fusi。n StartKit開發(fā)板上的SRAM作為Core8051S的外部數(shù)據(jù)空間使用。

            (3)將工程編譯綜合后下載到開發(fā)板上,通過Keil編寫程序并進行調(diào)試。



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