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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 工程師深談ARM+FPGA的設(shè)計架構(gòu)

          工程師深談ARM+FPGA的設(shè)計架構(gòu)

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

            最近學習了+的設(shè)計架構(gòu),結(jié)構(gòu)的通信大致可以分為兩種:

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

            一種是數(shù)據(jù)量小、通信速率要求不高的情況,可以考慮采用SPI、IIC等差UN星通信方式。都帶有相關(guān)的SPI通信控制器等,在ARM端直接對相關(guān)的SPI通信控制器操作就可以了。而這一端可作為SPI從,按照SPI協(xié)議的時序?qū)懞脧脑O(shè)備接口,這個工作量沒有多大,所以相對都比較容易。

            另一種是數(shù)據(jù)量大、通信速率要求較高的情況,就要采用并行總線的方式了。這時把FPGA當做ARM的一個片外的SRAM訪問就可以,可以在FPGA內(nèi)部生成一個雙口RAM,輸出的數(shù)據(jù)總線管腿直接連接到ARM的并行總線的數(shù)據(jù)總線上,雙口RAM一端的地址總線也一樣直接連接到ARM的并行總線中的地址總線。這樣就可以實現(xiàn)FPGA從DPRAM一端讀寫,ARM從DPRAM的另一端讀寫的功能了,當然還需要其他一些使能或片選的控制信號。這里FPGA一側(cè)較好實現(xiàn),而ARM一側(cè)需要開發(fā)SRAM(FPGA)驅(qū)動,這個還沒有實際做過,所以沒有把握。

            NXP的ARM即LPC系列的并行總線稱之為外擴地址與數(shù)據(jù)總線,由EMC(外部存儲器控制器)控制,通過對EMC寄存器的控制就可以實現(xiàn)在外擴地址和數(shù)據(jù)總線上的數(shù)據(jù)收發(fā)。若是采用LPC系列ARM加一片F(xiàn)PGA,實現(xiàn)他們通信的關(guān)鍵應(yīng)該在于這個EMC寄存器的控制,不知道按照一定的順序操作這個寄存器組寫出來的數(shù)據(jù)收發(fā)程序是不是就可以稱之為所謂的驅(qū)動,求大神解釋。

            TI的ARM或DSP都有一個GPMC(通用內(nèi)存控制器),它類似于LPC的EMC,是TI的芯片中用于與外部存儲設(shè)備如NORFLASH、NANDFLASH、SRAM等通信的一個借口。對于這個同樣也有上邊的那個疑問。

            三星的S5PV210則是有一組并行總線接口,稱之為SROM,同樣也有一個SROM控制器,支持外擴的NORFALSH、NANDFLASH、SRAM 等,應(yīng)該也類似于LPC系列的EMC。我通過對這個控制寄存器的操作就可以實現(xiàn)對外部SRAM(FPGA)的讀寫,不知道這樣理解對不對。

            還有一個疑問就是,如果有操作系統(tǒng),再要實現(xiàn)ARM和FPGA的通信是不是就沒有這樣簡單了?在沒有操作系統(tǒng)時,我僅僅對某個相關(guān)的控制寄存器操作就可以實現(xiàn),這時就不可行了?這些都是以后要弄明白的。調(diào)研了這么長時間,始終沒有著手找找現(xiàn)有的資源,寫寫程序做一下這個通信,感覺還是沒有理解到位。果真是什么東西都要實踐一下才能理解深刻。手頭有一塊LPC2478($11.0980)的ARM加FPGA的板子,但沒有操作系統(tǒng)或者只有UC/OSII,不知道跟ARM有操作系統(tǒng)如Linux時,有什么區(qū)別。先上手做一做吧。



          關(guān)鍵詞: FPGA 智能硬件 ARM

          評論


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