[color=rgba(0, 0, 0, 0.9)]
CSI(CMOS sensor parallel interfaces)總線是一種用于連接圖像傳感器和處理器的并行通信接口,應(yīng)用于工業(yè)自動化、能源電力、智慧醫(yī)療等領(lǐng)域,CSI總線接口示意圖如下所示(以全志科技T3處理器的CSI0為例)。[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]
圖1
[color=rgba(0, 0, 0, 0.9)]高帶寬:CSI總線支持高速數(shù)據(jù)傳輸,可以滿足多通道高速AD數(shù)據(jù)的傳輸需求。
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]
開發(fā)難度低:CSI總線采用并行數(shù)據(jù)和控制信號分離方式,時序簡單,FPGA端接口開發(fā)難度低。[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]低成本:CSI總線采用并行傳輸方式,F(xiàn)PGA端使用資源少,對FPGA器件資源要求低。
國產(chǎn)
ARM + FPGA架構(gòu)介紹與優(yōu)勢
[color=rgba(0, 0, 0, 0.9)]近年來,隨著中國新基建、中國制造2025規(guī)劃的持續(xù)推進(jìn),單ARM處理器越來越難勝任工業(yè)現(xiàn)場的功能要求,特別是如今能源電力、工業(yè)控制、智慧醫(yī)療等行業(yè),往往更需要ARM + FPGA架構(gòu)的處理器平臺來實(shí)現(xiàn)例如多路/高速AD采集、多路網(wǎng)口、多路串口、多路/高速并行DI/DO、高速數(shù)據(jù)并行處理等特定功能,因此ARM + FPGA架構(gòu)處理器平臺愈發(fā)受市場歡迎。
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]圖2
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]
創(chuàng)龍科技SOM-TLT3F是一款基于全志科技T3四核ARM Cortex-A7處理器 + 紫光同創(chuàng)Logos PGL25G/PGL50G FPGA設(shè)計的異構(gòu)多核全國產(chǎn)工業(yè)核心板,ARM Cortex-A7處理單元主頻高達(dá) 1.2GHz。核心板ARM、FPGA、ROM、RAM、電源、晶振、連接器等所有元器件均采用國產(chǎn)工業(yè)級方案,國產(chǎn)化率100%。
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]
全志T3為準(zhǔn)車規(guī)級芯片,四核ARM Cortex-A7架構(gòu),主頻高達(dá)1.2GHz,支持雙路網(wǎng)口、八路UART、SATA大容量存儲接口,同時支持4路顯示、GPU以及1080P H.264視頻硬件編解碼。另外,創(chuàng)龍科技已在T3平臺適配國產(chǎn)嵌入式系統(tǒng)翼輝SylixOS,真正實(shí)現(xiàn)軟硬件國產(chǎn)化。[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]紫光同創(chuàng)Logos PGL25G/PGL50G FPGA在工業(yè)領(lǐng)域應(yīng)用廣泛,邏輯資源分別為27072/51360,與國外友商產(chǎn)品pin to pin兼容,主要用于多通道/高速AD采集或接口拓展。因其價格低、質(zhì)量穩(wěn)定、開發(fā)環(huán)境易用等優(yōu)點(diǎn),受到工業(yè)用戶的廣泛好評。
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]
圖3 ARM + FPGA典型應(yīng)用領(lǐng)域
國產(chǎn)ARM + FPGA的CSI通信案例介紹
[color=rgba(0, 0, 0, 0.9)]本章節(jié)主要介紹全志科技T3與紫光同創(chuàng)Logos基于CSI的ARM + FPGA通信方案,使用的硬件平臺為:創(chuàng)龍科技TLT3F-EVM工業(yè)評估板。
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]為了簡化描述,正文僅摘錄方案功能描述與測試結(jié)果,詳細(xì)開發(fā)文檔請掃描文末二維碼下載。
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]該案例實(shí)現(xiàn)T3(ARM Cortex-A7)與FPGA的CSI通信功能。案例使用的CSI0總線,最高支持分辨率為1080P@30fps,數(shù)據(jù)位寬為8bit,如下圖所示。CSI0理論傳輸帶寬為:1920 x 1080 x 8bit x 30fps ≈ 59MB/s。
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]圖4
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]功能框圖與程序流程圖,如下圖所示。
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]圖5 功能框圖
[color=rgba(0, 0, 0, 0.9)]
圖6 ARM程序流程圖
[color=rgba(0, 0, 0, 0.9)]ARM端案例csi_test案例說明
[color=rgba(0, 0, 0, 0.9)]
ARM端案例csi_test主要功能如下:(1)基于Linux子系統(tǒng)V4L2;(2)通過CSI總線,采集指定幀數(shù)數(shù)據(jù);(3)計算總耗時;(4)打印平均采集速率,并校驗(yàn)最后一幀圖像的數(shù)據(jù)。
[color=rgba(0, 0, 0, 0.9)]FPGA端案例parallel_csi_tx案例說明
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]FPGA端案例parallel_csi_tx主要功能如下:
[color=rgba(0, 0, 0, 0.9)](1)將測試數(shù)據(jù)(0x00~0xFF)寫入FIFO;
[color=rgba(0, 0, 0, 0.9)](2)從FIFO讀出數(shù)據(jù),按行與幀的方式、1024x512的分辨率,通過CSI總線發(fā)送至ARM端。
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]案例測試演示
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]FPGA程序?qū)SI_PCLK設(shè)置為65MHz,測試數(shù)據(jù)寫入FIFO的時鐘FIFO_WR_CLK設(shè)置為59MHz。由于FPGA端需將數(shù)據(jù)寫入FIFO再從FIFO讀出后發(fā)送,每一行與每一幀之間的間隔時間會受FIFO寫入的速率影響,因此CSI通信的實(shí)際理論傳輸帶寬應(yīng)為:(59MHz x 8bit / 8)MB/s = 59MB/s。從上圖可知,本次實(shí)測傳輸速率約為52.4MB/s,誤碼率為0,接近理論通信速率。
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]圖7