實時通信方案 圖 1 中斷響應(yīng)到PCIe通信過程 AMP + GPIO中斷技術(shù)-協(xié)同運作 AMP即Asymmetric Multi-Processing,(非對稱多處理架構(gòu)),多個核心相對獨立運行不同的操作系統(tǒng)或裸機應(yīng)用程序,如Linux+RTOS/裸機組合。系統(tǒng)需要一個主核心統(tǒng)籌全局,各處理器核心相互隔離,擁有獨立內(nèi)存,既能各自執(zhí)行不同任務(wù),又可實現(xiàn)核間通信。 圖 2 GPIO中斷技術(shù)通過硬件級事件觸發(fā)機制,當(dāng)GPIO引腳電平變化,能夠立即中斷處理器當(dāng)前任務(wù),在工業(yè)控制信號采集、緊急按鍵處理等對實時性要求嚴(yán)苛的場景中表現(xiàn)卓越。當(dāng)AMP架構(gòu)與GPIO中斷技術(shù)實現(xiàn)強強聯(lián)合,既能充分發(fā)揮主核調(diào)度與從核實時響應(yīng)優(yōu)勢,又可以大幅度提升系統(tǒng)計算的性能與實時性。 DMA技術(shù)-加速數(shù)據(jù)傳輸 DMA技術(shù)(Direct Memory Access,直接內(nèi)存訪問)允許硬件外設(shè)直接與存儲器進行數(shù)據(jù)交換,全程無需CPU參與數(shù)據(jù)傳輸。 使用非DMA方式進行數(shù)據(jù)傳輸時,外設(shè)與內(nèi)存之間的數(shù)據(jù)搬運需要依靠CPU來完成。這意味著每次數(shù)據(jù)傳輸都需要CPU的介入,導(dǎo)致CPU資源占用較高,并且數(shù)據(jù)傳輸速度相對較低。而采用DMA方式進行數(shù)據(jù)傳輸,外設(shè)可直接與內(nèi)存進行數(shù)據(jù)交換,減少了CPU介入與中斷處理,數(shù)據(jù)傳輸更流暢高效。 圖3 RK3568J + FPGA典型應(yīng)用場景 圖4 本文主要介紹基于RK3568J + FPGA的PCIe實時通信案例,適用開發(fā)環(huán)境如下。 Windows開發(fā)環(huán)境:Windows 7 64bit、Windows 10 64bit Linux開發(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) 案例說明 案例通過PCIe DMA在FPGA端(PCIe EP)與ARM端(PCIe RC)之間建立高速數(shù)據(jù)傳輸通道,由FPGA端按鍵觸發(fā)GPIO中斷啟動數(shù)據(jù)傳輸,動態(tài)調(diào)整1KByte、16KByte、32KByte、64KByte數(shù)據(jù)量并統(tǒng)計傳輸速率、延遲及誤碼率。 圖5 案例演示請參考產(chǎn)品資料完成U-Boot鏡像、內(nèi)核鏡像替換,加載FPGA可執(zhí)行程序,并將amp.img鏡像固化至評估板。 按下評估板FPGA端的USER3按鍵(KEY7),程序運行一次。 如下圖所示,使用示波器測量FPGA GPIO(黃色波形)中斷觸發(fā)至ARM GPIO(藍(lán)色波形)輸出高電平的實際耗時,可看到FPGA GPIO信號上升沿至ARM GPIO信號上升沿的時間間隔約為4us,即FPGA GPIO中斷響應(yīng)時間約為4us。 圖6 RS232 UART0串口終端將打印GPIO中斷次數(shù)、GPIO中斷響應(yīng)到啟動PCIe DMA的耗時、PCIe平均讀寫速率、PCIe讀寫耗時、誤碼率等相關(guān)信息,如下圖所示。圖7 從上圖RS232 UART0串口終端的打印信息可知,F(xiàn)PGA GPIO中斷響應(yīng)到啟動PCIe DMA的最大耗時為4us。 |