前 言
近年來,隨著中國新基建,、中國制造2025的持續(xù)推進,,單ARM處理器越來越難勝任工業(yè)現(xiàn)場的功能要求,特別是能源電力、工業(yè)控制,、智慧醫(yī)療等行業(yè)通常需要ARM+FPGA架構(gòu)的處理器平臺來實現(xiàn)特定的功能,,例如多路/高速AD采集、多路網(wǎng)口,、多路串口,、多路/高速并行DI/DO、高速數(shù)據(jù)并行處理等,。
那ARM+FPGA架構(gòu)有什么優(yōu)勢,? ARM:接口資源豐富、功耗低,,擅長多媒體顯示,、邏輯控制等。 FPGA:擅長多通道或高速AD采集,、接口拓展,、高速信號傳輸、高速數(shù)據(jù)并行處理等,。 因此,,ARM+FPGA架構(gòu)能帶來性能、成本,、功耗等綜合比較優(yōu)勢,,ARM與FPGA既可各司其職,各自發(fā)揮原本架構(gòu)的獨特優(yōu)勢,,亦可相互協(xié)作處理更復(fù)雜的問題,。 對于成本不敏感且通信速率要求的較高分立式ARM+FPGA場合,一般使用PCIe通信接口,。但對成本敏感的分立式ARM+FPGA場合,,PCIe通信接口則令FPGA芯片成本高居不下。
對于能源電力,、工業(yè)控制等眾多工業(yè)領(lǐng)域,,真正需要的是性能與成本均具有競爭力的方案,既要求能做到ARM與FPGA的高速通信,,又要做到成本最優(yōu),,并且最好能基于國產(chǎn)方案。
在這種需求背景下,,創(chuàng)龍科技提供了基于國產(chǎn)ARM與低成本FPGA高速通信的3種方案,。
* 硬件平臺介紹(全志科技T3/A40i) 創(chuàng)龍科技TLT3-EVM/TLA40i-EVM是一款基于全志科技T3/A40i處理器設(shè)計的4核ARM Cortex-A7國產(chǎn)工業(yè)評估板,每核主頻高達1.2GHz,,由核心板和評估底板組成,。T3與A40i兩者pin to pin兼容。
評估板接口資源豐富,引出雙路網(wǎng)口,、雙路CAN,、雙路USB、雙路RS485等通信接口,,板載Bluetooth、WIFI,、4G(選配)模塊,,同時引出MIPI LCD、LVDS LCD,、TFT LCD,、HDMI OUT、CVBS OUT,、CAMERA,、LINE IN、H/P OUT等音視頻多媒體接口,,支持雙屏異顯,、Mali400 MP2 GPU,1080P@45fps H.264視頻硬件編碼,、1080P@60fps H.264視頻硬件解碼,,并支持SATA大容量存儲接口。 核心板采用100%國產(chǎn)元器件方案,,并經(jīng)過專業(yè)的PCB Layout和高低溫測試驗證,,穩(wěn)定可靠,可滿足各種工業(yè)應(yīng)用環(huán)境,。評估底板大部分元器件均采用國產(chǎn)方案,,方便用戶快速進行產(chǎn)品方案評估與技術(shù)預(yù)研。
本文主要介紹T3/A40i與紫光同創(chuàng)PGL25G/Xilinx Spartan-6基于SPI,、SDIO,、CSI的3種高速通信方案,最高通信速率可達到55.1MB/s,。
備注:目前,,創(chuàng)龍科技已推出T3/A40i+PGL25G全國產(chǎn)一體化工業(yè)核心板方案,國產(chǎn)化率100%(連接器亦為國產(chǎn)),,
圖 3 T3/A40i+PGL25G全國產(chǎn)工業(yè)核心板 (國產(chǎn)化率100%)
1 spi_rw案例
1.1 案例說明
案例功能:主要演示T3/A40i(ARM Cortex-A7)與PGL25G/Spartan-6(FPGA)處理器之間的SPI通信,。
ARM端實現(xiàn)SPI Master功能
a.打開SPI設(shè)備節(jié)點,如:/dev/spidev0.0,。 b.使用ioctl配置SPI總線,,如SPI總線極性和相位、通信速率、數(shù)據(jù)字長度等,。 c.選擇模式為單線模式或雙線模式,。當SPI總線為雙線模式時,發(fā)送數(shù)據(jù)是單線模式,,接收數(shù)據(jù)是雙線模式,。 d.發(fā)送數(shù)據(jù)至SPI總線,并從SPI總線讀取數(shù)據(jù),。(備注:如單次傳輸數(shù)據(jù)大于64Byte,,驅(qū)動程序?qū)詣訂⒂肈MA傳輸功能。) e.打印發(fā)送和接收速率,。 f.校驗讀寫數(shù)據(jù),,然后打印誤碼率。
FPGA端實現(xiàn)SPI Slave功能 a.FPGA將SPI Master發(fā)送的2KByte數(shù)據(jù)保存至BRAM,。 b.SPI Master發(fā)起讀數(shù)據(jù)時,,F(xiàn)PGA從BRAM讀取2KByte通過SPI總線傳輸給SPI Master。 c.當SPI總線為雙線模式,,接收數(shù)據(jù)支持雙線模式,,而發(fā)送數(shù)據(jù)不支持雙線模式。
圖 4 ARM端程序流程圖
測試結(jié)果 (1)SPI單線模式 根據(jù)官方數(shù)據(jù)手冊,,SPI總線通信時鐘頻率理論值最大為100MHz,。本次測試指定SPI總線通信時鐘頻率為最大值100MHz,則SPI單線模式理論速率為:(100000000/1024/1024/8)MB/s ≈ 11.92MB/s,。實測SPI單線模式寫速率為:10.924MB/s,,SPI單線模式讀速率為:10.924MB/s。 (2)SPI雙線模式 根據(jù)官方數(shù)據(jù)手冊,,SPI總線通信時鐘頻率理論值最大為100MHz,。本次測試指定SPI總線通信時鐘頻率為最大值100MHz,則SPI單線模式理論速率為:(100000000/1024/1024/8)MB/s ≈ 11.92MB/s,;則SPI雙線模式理論速率為:(100000000/1024/1024/4)MB/s ≈ 23.84MB/s,。本次實測SPI單線模式寫速率為11.631MB/s,SPI雙線模式讀速率為17.807MB/s,。
2 rt_spi_rw案例 2.1 案例說明
案例功能:基于Linux-RT系統(tǒng),,演示T3/A40i(ARM Cortex-A7)與PGL25G/Spartan-6(FPGA)處理器之間的SPI通信(單線模式)。
ARM端實現(xiàn)SPI Master功能 a.打開SPI設(shè)備節(jié)點,。如:/dev/spidev0.0,。 b.使用ioctl配置SPI總線。如SPI總線極性和相位,、通信速率,、數(shù)據(jù)字長度等,。 c.創(chuàng)建實時線程。 d.發(fā)送數(shù)據(jù)至SPI總線,,以及從SPI總線讀取數(shù)據(jù),。 e.打印發(fā)送、接收的速率和傳輸耗時,。 f.校驗讀寫數(shù)據(jù),,然后打印誤碼率。 FPGA端實現(xiàn)SPI Slave功能 a.FPGA將SPI Master發(fā)送的2KByte數(shù)據(jù)保存至BRAM,。 b.SPI Master發(fā)起讀數(shù)據(jù)時,,F(xiàn)PGA從BRAM讀取2KByte通過SPI總線傳輸給SPI Master。
圖 5 ARM端程序流程圖
測試結(jié)果
?。?)非輪詢方式 根據(jù)官方數(shù)據(jù)手冊可知,SPI總線通信時鐘頻率理論值最大為100MHz,。本次測試指定SPI總線通信時鐘頻率為最大值100MHz,,則理論速率為:(100000000/1024/1024/8)MB/s ≈ 11.92MB/s。實測傳輸4Byte數(shù)據(jù)的最小耗時為49us,,最大耗時為662us,,平均耗時為227us;寫速率為0.017MB/s,,讀速率為0.017MB/s,。 (2)輪詢方式 根據(jù)官方數(shù)據(jù)手冊可知,SPI總線通信時鐘頻率理論值最大為100MHz,。本次測試指定SPI總線通信時鐘頻率為最大值100MHz,,則理論速率為:(100000000/1024/1024/8)MB/s ≈ 11.92MB/s。實測傳輸4Byte數(shù)據(jù)的最小耗時為14us,,最大耗時為59us,,平均耗時為14us;寫速率為0.239MB/s,,讀速率為0.239MB/s,。
3 sdio_test案例
3.1 案例說明
案例功能:演示T3/A40i(ARM Cortex-A7)與PGL25G/Spartan-6(FPGA)處理器之間的SDIO通信。
ARM端實現(xiàn)SDIO Master功能 a.打開SDIO設(shè)備節(jié)點,,如:/dev/generic_sdio0,。 b.發(fā)送數(shù)據(jù)至SDIO總線,以及從SDIO總線讀取數(shù)據(jù),。 c.打印發(fā)送和接收速率,。 d.校驗讀寫數(shù)據(jù),然后打印誤碼率,。
FPGA端實現(xiàn)SDIO Slave功能 a.FPGA將SDIO Master發(fā)送的2KByte數(shù)據(jù)保存至BRAM,。 b.SDIO Master發(fā)起讀數(shù)據(jù)時,,F(xiàn)PGA從BRAM讀取2KByte通過SDIO總線傳輸給SDIO Master。
圖 6 ARM端程序流程圖
測試結(jié)果
本次測試指定SDIO總線通信時鐘頻率為25MHz(最高50MHz),,則理論通信速率為:(25 x 4 / 8)MB/s = 12.5MB/s,。實測寫速率為5.113MB/s,讀速率為5.440MB/s,,誤碼率為0.0%,。
4 csi_test案例
4.1 案例說明
案例功能:演示T3/A40i(ARM Cortex-A7)與PGL25G/Spartan-6(FPGA)處理器之間的CSI通信案例。
ARM端功能
a)基于Linux子系統(tǒng)V4L2,。 b)通過CSI總線,,采集指定幀數(shù)數(shù)據(jù)。 c)計算總耗時,。 d)打印平均采集速率,,并校驗最后一幀圖像的數(shù)據(jù)。 FPGA端功能 a)將測試數(shù)據(jù)(0x00 ~ 0xFF)寫入FIFO,。 b)從FIFO讀出數(shù)據(jù),,按行與幀的方式、1024 x 512的分辨率,,通過CSI總線發(fā)送至ARM端,。 使用的CSI總線為CSI0,最高支持分辨率為1080P30,,數(shù)據(jù)位寬為8bit,。功能框圖與程序流程圖,如下圖所示,。
圖 7 功能框圖
圖 8 ARM端程序流程圖
測試結(jié)果
FPGA端將CSI_PCLK設(shè)置為65MHz,,測試數(shù)據(jù)寫入FIFO的時鐘FIFO_WR_CLK設(shè)置為59MHz。由于FPGA端需將數(shù)據(jù)寫入FIFO再從FIFO讀出后發(fā)送,,每一行與每一幀之間的間隔時間會受FIFO寫入的速率影響,,因此CSI通信的實際理論傳輸帶寬應(yīng)為:(59MHz x 8bit / 8)MB/s = 59MB/s。實測傳輸速率為55.1MB/s,,誤碼率為0.0%,。
更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<<