聯(lián)系我們
Contact Us公司總機(jī):020-8998-6280
技術(shù)熱線:020-3893-9734
技術(shù)郵箱:support@tronlong.com
銷售郵箱:sales@tronlong.com
實(shí)測(cè)2400+MB/s!全國產(chǎn)ARM與FPGA PCIe3.0高速通信方案,基于RK3588J + FPGA
2025/03/10
引言
在當(dāng)今數(shù)字化高速發(fā)展的時(shí)代,通信技術(shù)的重要性不言而喻。屏幕前的你,你是否因?yàn)橥ㄐ欧桨傅母哐舆t和高成本苦惱不已?迫切希望能找到一種既能滿足高帶寬需求,又能靈活適配多種場(chǎng)景的解決方案?以下介紹基于瑞芯微RK3588J + 紫光同創(chuàng)Titan-2 FPGA的PCIe3.0通信方案,輕松實(shí)現(xiàn)全國產(chǎn)ARM與FPGA的高速通信,通信難題迎刃而解!
測(cè)試數(shù)據(jù)匯總
直觀感受方案對(duì)比,先看一組令人驚艷的測(cè)試數(shù)據(jù):
表 1
PCIe總線介紹
PCIe,即PCI-Express(peripheral component interconnect express)是一種高速串行計(jì)算機(jī)擴(kuò)展總線標(biāo)準(zhǔn)。它就像是計(jì)算機(jī)系統(tǒng)的 “高速公路”,主要作用是擴(kuò)充計(jì)算機(jī)系統(tǒng)總線數(shù)據(jù)吞吐量,以及提高設(shè)備通信速度。
PCIe3.0是PCI-Express技術(shù)的第三代標(biāo)準(zhǔn),更具備顯著的性能提升。與PCIe2.1相比,PCIe3.0的每Lane速率從5.0Gbps提高至8.0Gbps,并采用更高效的128b/130b編碼方式。這意味著,在高速數(shù)據(jù)傳輸場(chǎng)景中,PCIe3.0能夠提供更出色的性能表現(xiàn),并且保持了向下的兼容特點(diǎn)。
圖 1
DMA技術(shù)介紹
DMA(Direct Memory Access,直接內(nèi)存訪問)是一種讓硬件外設(shè)直接與存儲(chǔ)器進(jìn)行數(shù)據(jù)交換的技術(shù),無需CPU參與數(shù)據(jù)傳輸過程。
在使用非DMA方式進(jìn)行數(shù)據(jù)傳輸時(shí),外設(shè)與內(nèi)存之間的數(shù)據(jù)搬運(yùn)需要依靠CPU來完成。這意味著每次數(shù)據(jù)傳輸都需要CPU的介入,導(dǎo)致CPU資源占用較高,并且數(shù)據(jù)傳輸速度相對(duì)較低。
使用DMA方式進(jìn)行數(shù)據(jù)傳輸時(shí),外設(shè)可以直接與內(nèi)存進(jìn)行數(shù)據(jù)交換。減少了CPU的介入和中斷處理,數(shù)據(jù)傳輸過程更加流暢和高效。
圖 2
RK3588J + FPGA典型應(yīng)用領(lǐng)域
案例演示
為了簡(jiǎn)化描述,本文僅摘錄部分方案功能描述與測(cè)試結(jié)果,詳細(xì)產(chǎn)品資料請(qǐng)掃描文末二維碼下載。
開發(fā)環(huán)境
Windows開發(fā)環(huán)境:Windows 7 64bit、Windows 10 64bit
Linux開發(fā)環(huán)境:VMware16.2.5、Ubuntu20.04.6 64bit
U-Boot:U-Boot-2017.09
Kernel:Linux-5.10.160、Linux-RT-5.10.160
LinuxSDK:rk3588-buildroot-2021.11-sdk-[版本號(hào)]
(基于rk3588_linux_release_v1.2.1_20230720)
硬件平臺(tái):創(chuàng)龍科技TL3588F-EVM工業(yè)評(píng)估板(基于瑞芯微RK3588J + 紫光同創(chuàng)Titan-2)
案例功能
案例主要演示ARM端通過PCIe Gen3接口進(jìn)行循環(huán)數(shù)據(jù)讀寫測(cè)試,計(jì)算并輸出讀寫速率的最大值、最小值及平均值。
程序原理流程圖如下所示:
案例測(cè)試
評(píng)估板上電,請(qǐng)先加載運(yùn)行FPGA端可執(zhí)行程序。案例需在ARM端啟動(dòng)內(nèi)核前運(yùn)行FPGA的程序,加載完FPGA端可執(zhí)行程序后,需將評(píng)估板軟重啟。
將案例可執(zhí)行程序和驅(qū)動(dòng)程序拷貝至文件系統(tǒng)任意目錄下,加載驅(qū)動(dòng)程序后,執(zhí)行如下命令,查看PCIe BAR空間地址。從下圖可見,PCIe BAR空間映射至0xf0400000地址,大小為128KByte,并查看PCIe設(shè)備連接狀態(tài)。
Target# lspci -s 0000:01:00.0 -vv
在可執(zhí)行程序所在目錄下,執(zhí)行如下命令運(yùn)行應(yīng)用程序,測(cè)試完成后,程序?qū)?huì)打印最終測(cè)試結(jié)果,包含讀寫速率的最大值、最小值及平均值信息。
Target# ./pcie_bdma_transfer_demo -c 64 -s 0x20000
圖 6
參數(shù)解析:
-s:設(shè)置傳輸數(shù)據(jù)大小(本次測(cè)試為0x20000,即128KByte);
-c:設(shè)置循環(huán)讀寫次數(shù);
表 2
查看更多RK3588J + FPGA相關(guān)的案例演示,各位工程師可以掃描下方二維碼下載,快來試試吧!

服務(wù)熱線