近年來(lái),隨著中國(guó)新基建、中國(guó)制造 2025 規(guī)劃的持續(xù)推進(jìn),單 ARM 處理器越來(lái)越難勝任工業(yè)現(xiàn)場(chǎng)的功能要求,特別是如今能源電力、工業(yè)控制、智慧醫(yī)療等行業(yè),往往更需要 ARM + FPGA 架構(gòu)的處理器平臺(tái)來(lái)實(shí)現(xiàn)例如多路 / 高速 AD 采集、多路網(wǎng)口、多路串口、多路 / 高速并行 DI/DO、高速數(shù)據(jù)并行處理等特定功能,因此 ARM + FPGA 架構(gòu)處理器平臺(tái)愈發(fā)受市場(chǎng)歡迎。
ARM + FPGA 架構(gòu)能帶來(lái)性能、成本、功耗等綜合比較優(yōu)勢(shì),ARM 與 FPGA 既可各司其職,各自發(fā)揮原本架構(gòu)的獨(dú)特優(yōu)勢(shì),亦可相互協(xié)作處理更復(fù)雜的問(wèn)題。
ARM + FPGA 常見(jiàn)的通信方式有 PCIe、FSPI、I2C、SDIO、CSI 等,今天主要介紹基于 FSPI 的 ARM + FPGA 通信方式。
FSPI 總線特點(diǎn)介紹
FSPI(Flexible Serial Peripheral Interface) 是一種高速、全雙工、同步的串行通信總線,在 RK3568 處理器中就有 ESPI 控制器,可用來(lái)連接 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 成本則成倍增長(zhǎng)。
-具備 PCIe 接口的 FPGA 功耗往往較大,而低成本 FPGA功耗較小。一般而言,低功耗器件的使用壽命也將更長(zhǎng)。
基于 FSPI 的 ARM + FPGA 通信實(shí)測(cè)數(shù)據(jù)分享
硬件方案一:創(chuàng)龍科技 TL3568F-EVM 評(píng)估板 (RK3568J + Logos-2)。
實(shí)測(cè)數(shù)據(jù):寫速率 20MB/s+,最高 24MB/s,誤碼率 0%;讀速率 26MB/s+,最高 30MB/s,誤碼率 0%。
TL3568F-EVM 評(píng)估板簡(jiǎn)介:
創(chuàng)龍科技 TL3568F-EVM 是一款基于瑞芯微 RK3568J/RK3568B2 四核 ARM Cortex-A55 處理器 + 紫光同創(chuàng) Logos-2 PG2L50H/PG2L100H FPGA 設(shè)計(jì)的異構(gòu)多核國(guó)產(chǎn)工業(yè)評(píng)估板,由核心板和評(píng)估底板組成,ARM Cortex-A55 處理單元主頻高達(dá) 1.8GHz/2.0GHz。核心板 ARM、FPGA、ROM、RAM、電源、晶振、連接器等所有元器件均采用國(guó)產(chǎn)工業(yè)級(jí)方案,國(guó)產(chǎn)化率 100%。同時(shí),評(píng)估底板大部分元器件亦采用國(guó)產(chǎn)工業(yè)級(jí)方案。
硬件方案二:創(chuàng)龍科技 TL3568-EVM 評(píng)估板 (RK3568) + TLA7-EVM 評(píng)估板 (Artix-7)
實(shí)測(cè)數(shù)據(jù):寫速率 52.563MB/s,讀速率 67.387MB/s,誤碼率高。
備注:由于該測(cè)試受限于飛線連接方式,因此在 150MHz 通信時(shí)鐘頻率下測(cè)得誤碼率過(guò)高,測(cè)試結(jié)果僅供參考。
基于 FSPI 的 ARM + FPGA 通信案例詳解
下文主要介紹基于瑞芯微 RK3568J(硬件平臺(tái):創(chuàng)龍科技 TL3568-EVM 評(píng)估板)與 Xilinx Artix-7(硬件平臺(tái):創(chuàng)龍科技 TLA7-EVM 評(píng)估板)的 FSPI 通信案例,按照創(chuàng)龍科技提供的案例用戶手冊(cè)進(jìn)行操作得出測(cè)試結(jié)果。
同時(shí)基于Linux和Linux-RT系統(tǒng)進(jìn)行測(cè)試,得到 “小數(shù)據(jù) - 低時(shí)延”、“大數(shù)據(jù) - 高帶寬” 的測(cè)試數(shù)據(jù)。
spi_rw 案例
(1)案例說(shuō)明
案例功能:ARM 端運(yùn)行Linux 系統(tǒng),基于 FSPI 總線對(duì) FPGA BRAM 進(jìn)行讀寫測(cè)試。
ARM 端實(shí)現(xiàn) SPI Master 功能,原理說(shuō)明如下:
a) 打開(kāi) SPI 設(shè)備節(jié)點(diǎn),如:/dev/spidev4.0。
b) 使用 ioctl 配置 FSPI 總線,如 FSPI 總線極性和相位、通信速率、數(shù)據(jù)長(zhǎng)度等。
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 功能,原理說(shuō)明如下:
a) FPGA 將 SPI Master 發(fā)送的數(shù)據(jù)保存至 BRAM。
b) SPI Master 發(fā)起讀數(shù)據(jù)時(shí),F(xiàn)PGA 從 BRAM 讀取數(shù)據(jù)通過(guò) FSPI 總線傳輸至 SPI Master。
圖 2ARM 端程序流程圖
(2)測(cè)試結(jié)果
ARM 通過(guò) FSPI 總線(四線模式)寫入 4Byte 隨機(jī)數(shù)據(jù)至 FPGA BRAM,然后讀出數(shù)據(jù)、進(jìn)行數(shù)據(jù)校驗(yàn),同時(shí)打印 FSPI 總線讀寫速率和誤碼率。
最終,本次測(cè)試設(shè)置 FSPI 總線通信時(shí)鐘頻率為 24MHz,則四線模式的理論通信速率為:(24000000 / 1024 / 1024 / 8 x 4)MB/s ≈ 11.44MB/s,從下圖可知,本次實(shí)測(cè)寫速率為 0.048MB/s,讀速率為 0.182MB/s,誤碼率為 0%。
圖 3
備注:以上案例硬件采用飛線方式進(jìn)行連接,需將 FSPI 總線通信時(shí)鐘頻率設(shè)置為較低的 24MHz,并且需設(shè)置較小的測(cè)試數(shù)據(jù)量(會(huì)導(dǎo)致實(shí)測(cè)速率偏低),否則會(huì)產(chǎn)生誤碼現(xiàn)象。如使用創(chuàng)龍科技 TL3568F-EVM 評(píng)估板 (RK3568J + Logos-2) 硬件平臺(tái)進(jìn)行測(cè)試,則無(wú)誤碼的通信速率將大幅提升。
若設(shè)置 FSPI 總線通信時(shí)鐘頻率為 150MHz,ARM 通過(guò) FSPI 總線寫入 1MByte 隨機(jī)數(shù)據(jù)至 FPGA BRAM,然后讀出數(shù)據(jù),循環(huán) 100 次,不做數(shù)據(jù)檢驗(yàn),最后打印 FSPI 總線讀寫速率和誤碼率。
最終,本次測(cè)試設(shè)置 FSPI 總線通信時(shí)鐘頻率為 150MHz,則 FSPI 四線模式理論通信速率為:(150000000 / 1024 / 1024 / 8 x 4) MB/s ≈ 71.53MB/s。從下圖可知,本次實(shí)測(cè)寫速率為 52.563MB/s,讀速率為 67.387MB/s,比較接近理論通信速率。
圖 4
備注:由于本次測(cè)試受限于飛線連接方式,因此在 150MHz 通信時(shí)鐘頻率下測(cè)得誤碼率過(guò)高,測(cè)試結(jié)果僅供參考。
rt_spi_rw 案例
(1)案例說(shuō)明
案例功能:ARM 端運(yùn)行Linux-RT 系統(tǒng),基于 FSPI 總線對(duì) FPGA BRAM 進(jìn)行讀寫測(cè)試。
ARM 端實(shí)現(xiàn) SPI Master 功能,原理說(shuō)明如下:
a) 打開(kāi) SPI 設(shè)備節(jié)點(diǎn),如:/dev/spidev4.0。
b) 使用 ioctl 配置 FSPI 總線,如 FSPI 總線極性和相位、通信速率、數(shù)據(jù)長(zhǎng)度等。
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 功能,原理說(shuō)明如下:
a) 將 SPI Master 發(fā)送的數(shù)據(jù)保存至 BRAM。
SPI Master 發(fā)起讀數(shù)據(jù)時(shí),F(xiàn)PGA 從 BRAM 讀取數(shù)據(jù)通過(guò) FSPI 總線傳輸至 SPI Master。
圖 5ARM 端程序流程圖
(2)測(cè)試結(jié)果
ARM 通過(guò) FSPI 總線寫入 4Byte 隨機(jī)數(shù)據(jù)至 FPGA BRAM,然后讀出數(shù)據(jù)、進(jìn)行數(shù)據(jù)校驗(yàn),同時(shí)打印 FSPI 總線讀寫速率和誤碼率。最終,本次測(cè)試設(shè)置 FSPI 總線通信時(shí)鐘頻率為 24MHz,則 SPI 四線模式理論通信速率為:(24000000 / 1024 / 1024 / 8 x 4)MB/s ≈ 11.44MB/s。
從下圖可知,本次實(shí)測(cè)寫速率為 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è)置較小的測(cè)試數(shù)據(jù)量(會(huì)導(dǎo)致實(shí)測(cè)速率偏低),否則會(huì)產(chǎn)生誤碼現(xiàn)象。如使用創(chuàng)龍科技 TL3568F-EVM 評(píng)估板 (RK3568J + Logos-2) 硬件平臺(tái)進(jìn)行測(cè)試,則無(wú)誤碼的通信速率將大幅提升。
審核編輯 黃宇
-
FPGA
+關(guān)注
關(guān)注
1629文章
21736瀏覽量
603385 -
ARM
+關(guān)注
關(guān)注
134文章
9097瀏覽量
367555 -
通信
+關(guān)注
關(guān)注
18文章
6032瀏覽量
135993 -
總線
+關(guān)注
關(guān)注
10文章
2881瀏覽量
88085 -
創(chuàng)龍科技
+關(guān)注
關(guān)注
2文章
131瀏覽量
7725 -
RK3568
+關(guān)注
關(guān)注
4文章
514瀏覽量
5051
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論