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