基於AM62x GPMC並口的ARM+FPGA低成本通訊方案

创龙科技-黄工發表於2024-07-15

GPMC並口簡介

GPMC(General Purpose Memory Controller)是TI處理器特有的通用儲存器控制器介面,支援8/16bit資料位寬,支援128MB訪問空間,最高時鐘速率133MHz。GPMC是AM62x、AM64x、AM437x、AM335x、AM57x等處理器專用於與外部儲存器裝置的介面,如:

(1)FPGA器件

(2)ADC器件

(3)SRAM記憶體

(4)NOR/NAND快閃記憶體

基於AM62x GPMC並口的ARM+FPGA低成本通訊方案

GPMC並口3大特點

(1)小資料-低時延

在工業自動化控制領域中,如工業PLC、驅控一體控制器、運動控制器、CNC數控主機板、繼電保護裝置、小電流接地選線等,極其注重精確性與快速性,GPMC並口“小資料-低時延”的特點顯得格外耀眼,能夠很好地提高資料傳輸效率,降低傳輸成本。

(2)大資料-高頻寬大資料時代對能源電力領域的資料量傳輸、資料處理等方面提出了更高的要求。GPMC提供了最大的靈活性,以支援四個可配置片選中不同的時序引數和位寬配置。可根據外部裝置的特點,使用最佳的片選設定。可透過配置GPMC介面的時序引數和不同工作模式,最大速率可超過100MB/s。因此,GPMC“大資料-高頻寬”的特點在能源電力領域扮演著重要角色。

(3)低成本-低功耗“低成本、低功耗、高效能”是如今智慧裝置發展趨勢,GPMC並口相對於PCIe序列介面,成本更低、功耗更低。兩者都為常用的通訊介面,均可滿足高速通訊要求,但在與FPGA通訊的時候,使用者往往更喜歡選用GPMC並口,因為:1、使用低成本FPGA即可實現高速通訊,而具備PCIe介面的FPGA成本則成倍增長。2、具備PCIe介面的FPGA功耗往往較大,而低成本FPGA功耗較小。一般而言,低功耗器件的使用壽命也將更長。

基於CPU直接訪問方式

以AM62x為例,透過GPMC介面與FPGA連線,採用CPU直接訪問方式讀取FPGA端的資料,寫速度可達15.501MB/s,讀速度可達5.744MB/s。

此方式適合“小資料-低時延”場合。

基於AM62x GPMC並口的ARM+FPGA低成本通訊方案

程式流程說明:

(1)ARM端透過GPMC匯流排將資料寫入FPGA BRAM;(2)ARM端透過GPMC匯流排從FPGA BRAM讀取資料;(3)判斷寫入與讀取資料的正確性,並計算讀寫速率。

基於UDMA訪問方式

以AM62x為例,透過GPMC介面與FPGA連線,採用UDMA的方式讀取FPGA端的資料,寫速度可達73.90MB/s,讀速度可達77.47MB/s,實際上透過配置GPMC介面的時序引數和不同工作模式,最大速率可超過100MB/s。

此方式適合“大資料-高頻寬”場合。

基於AM62x GPMC並口的ARM+FPGA低成本通訊方案

備註:由於測試受線材限制影響,因此測得誤位元速率會過高。

程式流程說明

ARM端

(1) 採用UDMA方式;

(2)將資料寫入至dma_memcpy驅動申請的連續記憶體空間(位於DDR);

(3)配置UDMA,如源地址、目標地址、傳輸的資料大小等;

(4)寫操作:透過ioctl函式啟動UDMA,透過GPMC匯流排將資料搬運至FPGA BRAM;

(5)程式接收驅動上報input事件後,將透過ioctl函式獲取UDMA搬運資料耗時,並計算UDMA傳輸速率(即寫速率);

(6)讀操作:透過ioctl函式啟動UDMA,透過GPMC匯流排將FPGA BRAM中的資料搬運至dma_memcpy驅動申請的連續記憶體空間;

(7)程式接收驅動上報input事件後,將資料從核心空間讀取至使用者空間,然後校驗資料,同時透過ioctl函式獲取UDMA搬運資料耗時,並計算UDMA傳輸速率(即讀速率)。

FPGA端:

(1)根據ARM端GPMC時序解析資料,對FPGA內部BRAM資源進行訪問。BRAM的地址位寬為10bit,資料位寬為16bit,記憶體空間大小為2KByte(1024 x 16bit)。

基於AM62x GPMC並口的ARM+FPGA低成本通訊方案

基於AM62x GPMC並口的ARM+FPGA低成本通訊方案

相關文章