<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 一種基于A(yíng)RM和FPGA的環(huán)形緩沖區接口設計

一種基于A(yíng)RM和FPGA的環(huán)形緩沖區接口設計

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

摘要:目前,基于和FPGA架構的嵌入式系統在通信設備中得到廣泛的應用。文章提出了一種基于和FPGA的接口設計方案,從而實(shí)現了和FPGA之間的數據緩沖和速率匹配。實(shí)際測試表明該方案能夠有效地對數據速率進(jìn)行匹配,且具有良好的可擴展性。
關(guān)鍵詞:ARM;;

0 引言
隨著(zhù)嵌入式系統、軟件無(wú)線(xiàn)電和無(wú)線(xiàn)通信的發(fā)展,基于嵌入式系統和軟件無(wú)線(xiàn)電的實(shí)現架構廣泛應用到無(wú)線(xiàn)通信設備中。其中,采用ARM+FPGA的軟件無(wú)線(xiàn)電體系結構來(lái)實(shí)現的通信設備是最近十分流行的一種方案。該方案充分利用ARM CPU靈活便捷的優(yōu)勢,用來(lái)處理用戶(hù)輸入、系統控制、網(wǎng)絡(luò )協(xié)議功能,而利用FPGA卓越的實(shí)時(shí)信號處理優(yōu)點(diǎn),對無(wú)線(xiàn)通信的物理層信號進(jìn)行無(wú)線(xiàn)收發(fā)處理。在這種體系結構中,ARM和FPGA的數據通信信號接口設計是其中十分關(guān)鍵的一個(gè)環(huán)節。由于無(wú)線(xiàn)設備的數據收發(fā)往往具有一定的突發(fā)性,在高速數據收發(fā)情況下,需要設計一種合理的緩沖區進(jìn)行數據傳輸速率的匹配和緩沖。另外,對于A(yíng)RM CPU來(lái)說(shuō),由于CPU往往需要同時(shí)并行處理多種任務(wù),如何盡可能地保證數據的實(shí)時(shí)接收,也是設計中的一個(gè)關(guān)鍵。本文提出了一種基于A(yíng)RM和FPGA的設計結構,能可靠有效地處理好兩者之間數據傳輸速率匹配和緩沖,且具有很好的擴展性。

1 緩沖區接口硬件設計
本方法設計的硬件接口如圖1所示。FPGA作為一個(gè)存儲器外設與ARM連接,采用的是標準的總線(xiàn)接口,由nGCS片選線(xiàn)、雙向數據線(xiàn)DATA、地址線(xiàn)ADDR、以及讀寫(xiě)控制線(xiàn)nOE和nWE等信號線(xiàn)組成。另外,EINT是中斷信號線(xiàn),FPGA發(fā)起中斷向ARM請求處理。

本文引用地址:http://dyxdggzs.com/article/148003.htm

a.jpg



2 緩沖區接口軟件設計
為了設計ARM和FPGA的緩沖區接口,首先要利用圖1中的信號線(xiàn)實(shí)現ARM對FPGA的基本讀寫(xiě)操作,這需要雙方遵循擬定的接口時(shí)序相互配合進(jìn)行,這可以通過(guò)參考相應的ARM內核CPU用戶(hù)手冊,在FPGA端編寫(xiě)相應的接口代碼來(lái)配合ARM CPU2端的讀寫(xiě)時(shí)序實(shí)現。
下面重點(diǎn)介紹環(huán)形緩沖區接口的軟件實(shí)現。
2.1 緩沖區空間設計
如上所述,FPGA是作為ARM的一個(gè)存儲器外設來(lái)設計的。在本方案中,FPGA存儲器空間包括兩個(gè)部分:寄存器空間和數據緩沖區空間。
寄存器空間用于設置各種讀寫(xiě)的參數,包括緩沖區讀寫(xiě)指針、緩沖區忙閑狀態(tài)等;而緩沖區用于大量數據的臨時(shí)存儲,按作用分為發(fā)送緩沖區和接收緩沖區。設計中對所有空間都采用統一編址方式實(shí)現,利用ARM與FPGA之間相連的接口地址線(xiàn)(ADDR)的最高兩位來(lái)區分,例如,00表示寄存器空間,01表示發(fā)送緩沖區空間、10表示接收緩沖區空間,11為保留。
在本文的環(huán)形緩沖區結構設計中,發(fā)送(接收)緩沖區又分為若干大小相同的子緩沖空間,這些子緩沖空間共享同一個(gè)地址空間,由FPGA內部的緩沖區忙閑指示寄存器和子緩沖空間的控制指針來(lái)引導ARM對子緩沖區的讀寫(xiě)。子緩沖空間的控制指針循環(huán)依次變化,數據幀也循環(huán)依次寫(xiě)入指針指向的子緩沖空間或被讀走,這樣就構成了環(huán)形緩沖區。
以實(shí)際項目的設計為例,發(fā)送(接收)緩沖區分別由16個(gè)子緩沖空間組成,每個(gè)子緩沖空間的大小為256雙字節,這16個(gè)子緩沖空間共享一個(gè)地址空間。設計中的接口地址線(xiàn)一共為10位,數據線(xiàn)是16位。每個(gè)數據幀的最大長(cháng)度也設置為256雙字節,以便一個(gè)緩沖區能夠裝滿(mǎn)一個(gè)幀,簡(jiǎn)化緩沖區管理。以發(fā)送緩沖區為例,其結構設計如圖2所示。

b.jpg


盡管設置了16個(gè)子緩沖空間來(lái)應對可能的突發(fā)數據流,為了防止ARM將所有的子緩沖區寫(xiě)溢出,在FPGA內部設置了緩沖區忙閑寄存器指示,當所有的子緩沖空間都寫(xiě)滿(mǎn)后,緩沖區忙閑指示寄存器設置為忙。

fpga相關(guān)文章:fpga是什么



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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>