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等處理器專用于與外部存儲(chǔ)器設(shè)備的接口,如:
(1)FPGA器件
(2)ADC器件
(3)SRAM內(nèi)存
(4)NOR/NAND閃存
圖 1GPMC功能框圖
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)椋?/p>
1、使用低成本FPGA即可實(shí)現(xiàn)高速通信,而具備PCIe接口的FPGA成本則成倍增長(zhǎng)。
2、具備PCIe接口的FPGA功耗往往較大,而低成本FPGA功耗較小。一般而言,低功耗器件的使用壽命也將更長(zhǎng)。
基于CPU直接訪問(wèn)方式
以AM62x為例,通過(guò)GPMC接口與FPGA連接,采用CPU直接訪問(wèn)方式讀取FPGA端的數(shù)據(jù),寫速度可達(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ù)寫入FPGA BRAM;
(2)ARM端通過(guò)GPMC總線從FPGA BRAM讀取數(shù)據(jù);
(3)判斷寫入與讀取數(shù)據(jù)的正確性,并計(jì)算讀寫速率。
基于UDMA訪問(wèn)方式
以AM62x為例,通過(guò)GPMC接口與FPGA連接,采用UDMA的方式讀取FPGA端的數(shù)據(jù),寫速度可達(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ù)寫入至dma_memcpy驅(qū)動(dòng)申請(qǐng)的連續(xù)內(nèi)存空間(位于DDR);
(3)配置UDMA,如源地址、目標(biāo)地址、傳輸?shù)臄?shù)據(jù)大小等;
(4)寫操作:通過(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傳輸速率(即寫速率);
(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程序流程圖
-
FPGA
+關(guān)注
關(guān)注
1625文章
21620瀏覽量
601231 -
ARM
+關(guān)注
關(guān)注
134文章
9027瀏覽量
366475 -
通信
+關(guān)注
關(guān)注
18文章
5949瀏覽量
135782
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論