聯(lián)系我們
Contact Us公司總機(jī):020-8998-6280
技術(shù)熱線:020-3893-9734
技術(shù)郵箱:support@tronlong.com
銷售郵箱:sales@tronlong.com
國產(chǎn)RK3568J基于FSPI的ARM+FPGA通信方案分享
2024/01/30
近年來,隨著中國新基建、中國制造2025規(guī)劃的持續(xù)推進(jìn),單ARM處理器越來越難勝任工業(yè)現(xiàn)場的功能要求,特別是如今能源電力、工業(yè)控制、智慧醫(yī)療等行業(yè),往往更需要ARM + FPGA架構(gòu)的處理器平臺(tái)來實(shí)現(xiàn)例如多路/高速AD采集、多路網(wǎng)口、多路串口、多路/高速并行DI/DO、高速數(shù)據(jù)并行處理等特定功能,因此ARM + FPGA架構(gòu)處理器平臺(tái)愈發(fā)受市場歡迎。
圖1 ARM + FPGA典型應(yīng)用場景
ARM+FPGA架構(gòu)能帶來性能、成本、功耗等綜合比較優(yōu)勢,ARM與FPGA即可各司其職,各自發(fā)揮原本架構(gòu)的獨(dú)特優(yōu)勢,亦可互相協(xié)作處理更復(fù)雜的問題
ARM + FPGA常見的通信方式有PCIe、FSPI、I2C、SDIO、CSI等,今天主要介紹基于FSPI的ARM + FPGA通信方式。
FSPI總線特點(diǎn)介紹
FSPI(Flexible Serial Peripheral Interface)是一種高速、全雙工、同步的串行通信總線,在RK3568處理器中就有ESPI控制器,可用來連接FSPI設(shè)備。它具備如下特點(diǎn):
- 支持串行NOR FLASH、串行NAND FLASH
- 支持SDR模式
- 支持一線、二線以及四線模式
相比PCIe而言,F(xiàn)SPI可較好實(shí)現(xiàn)“小數(shù)據(jù)-低時(shí)延”、“大數(shù)據(jù)-高帶寬”要求。另外,在與FPGA通信的時(shí)候,用戶往往更喜歡選用FSPI接口還有如下原因:
- 使用低成本FPGA即可實(shí)現(xiàn)高速通信,而具備PCIe接口的FPGA成本則成倍增長。
- 具備PCIe接口的FPGA功耗往往較大,而低成本FPGA功耗較小。一般而言,低功耗器件的使用壽命也將更長。
基于FSPI的ARM + FPGA通信實(shí)測數(shù)據(jù)分享
硬件方案一:創(chuàng)龍科技TL3568F-EVM評估板(RK3568J + Logos-2)。
實(shí)測數(shù)據(jù):寫速率20MB/s+,最高24MB/s,誤碼率0%;讀速率26MB/s+,最高30MB/s,誤碼率0%。
TL3568F-EVM評估板簡介:
創(chuàng)龍科技TL3568F-EVM是一款基于瑞芯微RK3568J/RK3568B2四核ARM Cortex-A55處理器 + 紫光同創(chuàng)Logos-2 PG2L50H/PG2L100H FPGA設(shè)計(jì)的異構(gòu)多核國產(chǎn)工業(yè)評估板,由核心板和評估底板組成,ARM Cortex-A55處理單元主頻高達(dá)1.8GHz/2.0GHz。核心板ARM、FPGA、ROM、RAM、電源、晶振、連接器等所有元器件均采用國產(chǎn)工業(yè)級方案,國產(chǎn)化率100%。同時(shí),評估底板大部分元器件亦采用國產(chǎn)工業(yè)級方案。
硬件方案二:創(chuàng)龍科技TL3568-EVM評估板(RK3568) + TLA7-EVM評估板(Artix-7)
實(shí)測數(shù)據(jù):寫速率52.563MB/s,讀速率67.387MB/s,誤碼率高。
備注:由于該測試受限于飛線連接方式,因此在150MHz通信時(shí)鐘頻率下測得誤碼率過高,測試結(jié)果僅供參考。
基于FSPI的ARM + FPGA通信案例詳解
下文主要介紹基于瑞芯微RK3568J(硬件平臺(tái):創(chuàng)龍科技TL3568-EVM評估板)與Xilinx Artix-7(硬件平臺(tái):創(chuàng)龍科技TLA7-EVM評估板)的FSPI通信案例,按照創(chuàng)龍科技提供的案例用戶手冊進(jìn)行操作得出測試結(jié)果。
同時(shí)基于Linux和Linux-RT系統(tǒng)進(jìn)行測試,得到“小數(shù)據(jù)-低時(shí)延”、“大數(shù)據(jù)-高帶寬”的測試數(shù)據(jù)。
spi_rw案例
(1)案例說明
案例功能:ARM端運(yùn)行Linux系統(tǒng),基于FSPI總線對FPGA BRAM進(jìn)行讀寫測試。
ARM端實(shí)現(xiàn)SPI Master功能,原理說明如下:
a)打開SPI設(shè)備節(jié)點(diǎn),如:/dev/spidev4.0。
b)使用ioctl配置FSPI總線,如FSPI總線極性和相位、通信速率、數(shù)據(jù)長度等。
c)選擇模式為單線模式、雙線模式或四線模式。當(dāng)設(shè)置FSPI總線為雙線模式時(shí),發(fā)送數(shù)據(jù)為單線模式,接收數(shù)據(jù)為雙線模式;當(dāng)設(shè)置FSPI為四線模式時(shí),發(fā)送數(shù)據(jù)為四線模式,接收數(shù)據(jù)為四線模式。
d)發(fā)送數(shù)據(jù)至FSPI總線,以及從FSPI總線讀取數(shù)據(jù)。
e)校驗(yàn)數(shù)據(jù),然后打印讀寫速率、誤碼率。
FPGA端實(shí)現(xiàn)SPI Slave功能,原理說明如下:
a)FPGA將SPI Master發(fā)送的數(shù)據(jù)保存至BRAM。
b)SPI Master發(fā)起讀數(shù)據(jù)時(shí),F(xiàn)PGA從BRAM讀取數(shù)據(jù)通過FSPI總線傳輸至SPI Master。

(2)測試結(jié)果
ARM通過FSPI總線(四線模式)寫入48Byte隨機(jī)數(shù)據(jù)至FPGA BRAM ,然后讀出數(shù)據(jù)、進(jìn)行數(shù)據(jù)校驗(yàn),同時(shí)打印FSPI總線讀寫速率和誤碼率
最終,本次測試設(shè)置FSPI總線通信時(shí)鐘頻率為24MHz,則四線模式的理論通信速率為:(24000000 / 1024 / 1024 / 8 x 4)MB/s ≈ 11.44MB/s,從下圖可知,本次實(shí)測寫速率為0.048MB/s,讀速率為0.182MB/s,誤碼率為0%。
圖3
備注: 以上案例硬件采用飛線方式進(jìn)行連接,需將FSPI總線通信時(shí)鐘頻率設(shè)置為較低的24MHz,并且需設(shè)置較小的測試數(shù)據(jù)量(會(huì)導(dǎo)致實(shí)測速率偏低),否則會(huì)產(chǎn)生誤碼現(xiàn)象。如使用創(chuàng)龍科技TL3568F-EVM評估版(RK3568J+Logos-2)硬件平臺(tái)進(jìn)行測試,則無誤碼的通信速率將大幅提升。
圖4
備注:由于本次測試受限于飛線連接方式,因此在150MHz通信時(shí)鐘頻率下測得誤碼率過高,測試結(jié)果僅供參考。
rt_spi_rw案例
(1)案例說明
案例功能:ARM端運(yùn)行Linux-RT系統(tǒng),基于FSPI總線對FPGA BRAM進(jìn)行讀寫測試。
ARM端實(shí)現(xiàn)SPI Master功能,原理說明如下:
a)打開SPI設(shè)備節(jié)點(diǎn),如:/dev/spidev4.0。
b)使用ioctl配置FSPI總線,如FSPI總線極性和相位、通信速率、數(shù)據(jù)長度等。
c)選擇模式為單線模式、雙線模式或四線模式。當(dāng)設(shè)置FSPI總線為雙線模式時(shí),發(fā)送數(shù)據(jù)為單線模式,接收數(shù)據(jù)為雙線模式;當(dāng)設(shè)置FSPI為四線模式時(shí),發(fā)送數(shù)據(jù)為四線模式,接收數(shù)據(jù)為四線模式。
d)發(fā)送數(shù)據(jù)至FSPI總線,以及從FSPI總線讀取數(shù)據(jù)。
e)校驗(yàn)數(shù)據(jù),然后打印讀寫速率、誤碼率。
FPGA端實(shí)現(xiàn)SPI Slave功能,原理說明如下:
a)將SPI Master發(fā)送的數(shù)據(jù)保存至BRAM。
SPI Master發(fā)起讀數(shù)據(jù)時(shí),F(xiàn)PGA從BRAM讀取數(shù)據(jù)通過FSPI總線傳輸至SPI Master。

圖5 ARM端程序流程圖
(2)測試結(jié)果
ARM通過FSPI總線寫入4Byte隨機(jī)數(shù)據(jù)至FPGA BRAM,然后讀出數(shù)據(jù)、進(jìn)行數(shù)據(jù)校驗(yàn),同時(shí)打印FSPI總線讀寫速率和誤碼率。最終,本次測試設(shè)置FSPI總線通信時(shí)鐘頻率為24MHz,則SPI四線模式理論通信速率為:(24000000 / 1024 / 1024 / 8 x 4)MB/s ≈ 11.44MB/s。
從下圖可知,本次實(shí)測寫速率為0.179MB/s,發(fā)送最大耗時(shí)為46us,最小耗時(shí)為20us,平均耗時(shí)為20us,誤碼率為0%;讀速率為0.187MB/s,發(fā)送最大耗時(shí)為46us,最小耗時(shí)為19us,平均耗時(shí)為40s,誤碼率為0%。
圖6
備注:以上案例硬件采用飛線方式進(jìn)行連接,需將FSPI總線通信時(shí)鐘頻率設(shè)置為較低的24MHz,并且需設(shè)置較小的測試數(shù)據(jù)量(會(huì)導(dǎo)致實(shí)測速率偏低),否則會(huì)產(chǎn)生誤碼現(xiàn)象。如使用創(chuàng)龍科技TL3568F-EVM評估板(RK3568J + Logos-2)硬件平臺(tái)進(jìn)行測試,則無誤碼的通信速率將大幅提升。
如需購買瑞芯微RK3568J工業(yè)評估板,請登錄創(chuàng)龍科技天貓旗艦店:tronlong.tmall.com!
瑞芯微RK3568J技術(shù)交流群:567208221,歡迎加入!
更多全國產(chǎn)RK3568J工業(yè)核心板產(chǎn)品資料可長按二維碼識別下載
亦可添加如下客服微信進(jìn)行咨詢
(即刻添加,馬上咨詢)

服務(wù)熱線