1分鐘學(xué)會(huì )如何提升PCIe通信速率,基于RK3568J + FPGA國產(chǎn)平臺!

發(fā)布時(shí)間:2025-1-25 10:52    發(fā)布者:Tronlong--
測試數據匯總
表 1

PCIe總線(xiàn)介紹
PCIe,即PCI-Express(peripheral component interconnect express)是一種高速串行計算機擴展總線(xiàn)標準。主要用于擴充計算機系統總線(xiàn)數據吞吐量以及提高設備通信速度。

圖 1

DMA技術(shù)介紹
DMA(Direct Memory Access,直接內存訪(fǎng)問(wèn))是一種讓硬件外設直接與存儲器進(jìn)行數據交換的技術(shù),無(wú)需CPU參與數據傳輸過(guò)程。
使用非DMA方式進(jìn)行數據傳輸時(shí),外設與內存之間的數據搬運需要依靠CPU來(lái)完成。這意味著(zhù)每次數據傳輸都需要CPU的介入,導致CPU資源占用較高,并且數據傳輸速度相對較低。
使用DMA方式進(jìn)行數據傳輸時(shí),外設可以直接與內存進(jìn)行數據交換。減少了CPU的介入和中斷處理,數據傳輸過(guò)程更加流暢和高效。

圖 2

RK3568J + FPGA典型應用場(chǎng)景

圖 3

基于RK3568J + FPGA的PCIe通信案例
本文主要介紹基于RK3568J + FPGA的PCIe通信案例,適用開(kāi)發(fā)環(huán)境如下:
Windows開(kāi)發(fā)環(huán)境:Windows 7 64bit、Windows 10 64bit
Linux開(kāi)發(fā)環(huán)境:VMware15.5.5、Ubuntu18.04.4 64bit
U-Boot:U-Boot-2017.09
Kernel:Linux-4.19.232、Linux-RT-4.19.232
LinuxSDK:LinuxSDK-[版本號](基于rk356x_linux_release_v1.3.1_20221120)
硬件平臺:創(chuàng )龍科技TL3568F-EVM工業(yè)評估板
(基于瑞芯微RK3568J + 紫光同創(chuàng )Logos-2)
為了簡(jiǎn)化描述,本文僅摘錄部分方案功能描述與測試結果,詳細產(chǎn)品資料可以通過(guò)公眾號(Tronlong創(chuàng )龍科技)下載。
案例說(shuō)明
ARM端基于PCIe總線(xiàn)對FPGA DRAM進(jìn)行讀寫(xiě)測試。應用程序通過(guò)ioctl函數發(fā)送命令開(kāi)啟DMA傳輸數據后,等待驅動(dòng)上報input事件;當應用層接收到input事件,說(shuō)明DMA傳輸數據完成。
程序流程如下圖所示。

圖 4
(1)ARM端程序原理說(shuō)明如下:
a)采用DMA方式;
b)將數據寫(xiě)至dma_memcpy驅動(dòng)申請的連續內存空間(位于DDR);
c)配置DMA,如源地址、目標地址、傳輸的數據大小等;
d)寫(xiě)操作:通過(guò)ioctl函數啟動(dòng)DMA,通過(guò)PCIe總線(xiàn)將數據搬運至FPGA DRAM;
e)程序接收驅動(dòng)上報input事件后,將通過(guò)ioctl函數獲取DMA搬運數據耗時(shí),并計算DMA傳輸速率(即寫(xiě)速率);
f)讀操作:通過(guò)ioctl函數啟動(dòng)DMA,通過(guò)PCIe總線(xiàn)將FPGA DRAM中的數據搬運至dma_memcpy驅動(dòng)申請的連續內存空間(位于DDR);
g)程序接收驅動(dòng)上報input事件后,將數據從內核空間讀取至用戶(hù)空間,然后校驗數據,同時(shí)通過(guò)ioctl函數獲取DMA搬運數據耗時(shí),并計算DMA傳輸速率(即讀速率)。
(2) FPGA端程序原理說(shuō)明如下:
a)實(shí)現PCIe Endpoint功能;
a)處理PCIe RC端發(fā)起的PCIe BAR0空間讀寫(xiě)事務(wù);
b)將PCIe BAR0讀寫(xiě)數據緩存至FPGA DRAM中。
案例演示
評估板上電啟動(dòng)后,進(jìn)入評估板文件系統執行如下命令,將隨機數據先寫(xiě)入FPGA DRAM,再從FPGA DRAM讀出。測試完成后,程序將會(huì )打印最終測試結果,包含讀寫(xiě)平均傳輸耗時(shí)、讀寫(xiě)平均傳輸速率、讀寫(xiě)錯誤統計等信息。
Target#./dma_memcpy_demo -a 0xf0200000 -s 65536 -c 100 -d /dev/input/event6

圖 5
表 2 測試結果說(shuō)明
到這里,我們的演示步驟結束。想要查看更多瑞芯微RK3568J + FPGA相關(guān)的案例演示,歡迎各位工程師通過(guò)公眾號(Tronlong創(chuàng )龍科技)下載,快來(lái)試試吧!
本文地址:http://selenalain.com/thread-881041-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页