博客專(zhuān)欄

EEPW首頁(yè) > 博客 > ARM+FPGA低成本通信方案!輕松實(shí)現(xiàn)GPMC并口“小數(shù)據(jù)-低時(shí)延,大數(shù)據(jù)-高帶寬”

ARM+FPGA低成本通信方案!輕松實(shí)現(xiàn)GPMC并口“小數(shù)據(jù)-低時(shí)延,大數(shù)據(jù)-高帶寬”

發(fā)布人:xiaomaidashu 時(shí)間:2023-10-13 來(lái)源:工程師 發(fā)布文章

圖片

GPMC并口簡(jiǎn)介


GPMC(General Purpose Memory Controller)是TI處理器特有的通用存儲(chǔ)器控制器接口,支持8/16bit數(shù)據(jù)位寬,支持128MB訪問(wèn)空間,最高時(shí)鐘速率133MHz。GPMC是AM62x、AM64x、AM437x、AM335x、AM57x等處理器專(zhuān)用于與外部存儲(chǔ)器設(shè)備的接口,如:(1)FPGA器件(2)ADC器件(3)SRAM內(nèi)存(4)NOR/NAND閃存
圖片圖 1 GPMC功能框圖
圖片

GPMC并口3大特點(diǎn)


(1)小數(shù)據(jù)-低時(shí)延
在工業(yè)自動(dòng)化控制領(lǐng)域中,如工業(yè)PLC、驅(qū)控一體控制器、運(yùn)動(dòng)控制器、CNC數(shù)控主板、繼電保護(hù)設(shè)備、小電流接地選線等,極其注重精確性與快速性,GPMC并口“小數(shù)據(jù)-低時(shí)延”的特點(diǎn)顯得格外耀眼,能夠很好地提高數(shù)據(jù)傳輸效率,降低傳輸成本。
(2)大數(shù)據(jù)-高帶寬大數(shù)據(jù)時(shí)代對(duì)能源電力領(lǐng)域的數(shù)據(jù)量傳輸、數(shù)據(jù)處理等方面提出了更高的要求。GPMC提供了最大的靈活性,以支持四個(gè)可配置片選中不同的時(shí)序參數(shù)和位寬配置。可根據(jù)外部設(shè)備的特點(diǎn),使用最佳的片選設(shè)置??赏ㄟ^(guò)配置GPMC接口的時(shí)序參數(shù)和不同工作模式,最大速率可超過(guò)100MB/s。因此,GPMC“大數(shù)據(jù)-高帶寬”的特點(diǎn)在能源電力領(lǐng)域扮演著重要角色。
(3)低成本-低功耗“低成本、低功耗、高性能”是如今智能設(shè)備發(fā)展趨勢(shì),GPMC并口相對(duì)于PCIe串行接口,成本更低、功耗更低。兩者都為常用的通信接口,均可滿足高速通信要求,但在與FPGA通信的時(shí)候,用戶往往更喜歡選用GPMC并口,因?yàn)椋?、使用低成本FPGA即可實(shí)現(xiàn)高速通信,而具備PCIe接口的FPGA成本則成倍增長(zhǎng)。2、具備PCIe接口的FPGA功耗往往較大,而低成本FPGA功耗較小。一般而言,低功耗器件的使用壽命也將更長(zhǎng)。
圖片

AM62x基于GPMC的ARM+FPGA通信方案


Tronlong創(chuàng)龍科技,贊44(立即點(diǎn)擊,1分鐘了解AM62x最新工業(yè)處理器平臺(tái))
圖片

基于CPU直接訪問(wèn)方式


以AM62x為例,通過(guò)GPMC接口與FPGA連接,采用CPU直接訪問(wèn)方式讀取FPGA端的數(shù)據(jù),寫(xiě)速度可達(dá)15.501MB/s,讀速度可達(dá)5.744MB/s。

此方式適合“小數(shù)據(jù)-低時(shí)延”場(chǎng)合。
圖片圖 2 CPU直接訪問(wèn)方式測(cè)試結(jié)果
程序流程說(shuō)明:(1)ARM端通過(guò)GPMC總線將數(shù)據(jù)寫(xiě)入FPGA BRAM;(2)ARM端通過(guò)GPMC總線從FPGA BRAM讀取數(shù)據(jù);(3)判斷寫(xiě)入與讀取數(shù)據(jù)的正確性,并計(jì)算讀寫(xiě)速率。
基于UDMA訪問(wèn)方式以AM62x為例,通過(guò)GPMC接口與FPGA連接,采用UDMA的方式讀取FPGA端的數(shù)據(jù),寫(xiě)速度可達(dá)73.90MB/s,讀速度可達(dá)77.47MB/s,實(shí)際上通過(guò)配置GPMC接口的時(shí)序參數(shù)和不同工作模式,最大速率可超過(guò)100MB/s。
此方式適合“大數(shù)據(jù)-高帶寬”場(chǎng)合。
圖片圖 3 UDMA訪問(wèn)方式測(cè)試結(jié)果
備注:由于測(cè)試受線材限制影響,因此測(cè)得誤碼率會(huì)過(guò)高。
圖片

程序流程說(shuō)明


ARM端:(1) 采用UDMA方式;(2)將數(shù)據(jù)寫(xiě)入至dma_memcpy驅(qū)動(dòng)申請(qǐng)的連續(xù)內(nèi)存空間(位于DDR);(3)配置UDMA,如源地址、目標(biāo)地址、傳輸?shù)臄?shù)據(jù)大小等;(4)寫(xiě)操作:通過(guò)ioctl函數(shù)啟動(dòng)UDMA,通過(guò)GPMC總線將數(shù)據(jù)搬運(yùn)至FPGA BRAM;(5)程序接收驅(qū)動(dòng)上報(bào)input事件后,將通過(guò)ioctl函數(shù)獲取UDMA搬運(yùn)數(shù)據(jù)耗時(shí),并計(jì)算UDMA傳輸速率(即寫(xiě)速率);(6)讀操作:通過(guò)ioctl函數(shù)啟動(dòng)UDMA,通過(guò)GPMC總線將FPGA BRAM中的數(shù)據(jù)搬運(yùn)至dma_memcpy驅(qū)動(dòng)申請(qǐng)的連續(xù)內(nèi)存空間;(7)程序接收驅(qū)動(dòng)上報(bào)input事件后,將數(shù)據(jù)從內(nèi)核空間讀取至用戶空間,然后校驗(yàn)數(shù)據(jù),同時(shí)通過(guò)ioctl函數(shù)獲取UDMA搬運(yùn)數(shù)據(jù)耗時(shí),并計(jì)算UDMA傳輸速率(即讀速率)。
FPGA端:(1)根據(jù)ARM端GPMC時(shí)序解析數(shù)據(jù),對(duì)FPGA內(nèi)部BRAM資源進(jìn)行訪問(wèn)。BRAM的地址位寬為10bit,數(shù)據(jù)位寬為16bit,內(nèi)存空間大小為2KByte(1024 x 16bit)。
圖片圖 4 程序流程圖


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: ARM FPGA

相關(guān)推薦

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

關(guān)閉