MIPI(移動行業(yè)處理器接口)是Mobile Industry Processor Interface的縮寫,是MIPI聯(lián)盟發(fā)起的為移動應(yīng)?處理器制定的開放標(biāo)準。MIPI采?高速串行接口傳輸數(shù)據(jù),滿?高分辨率攝像頭的傳輸需求,采用串行接口方便PCB布局布線,提高信號完整性,也有利于減小PCB面積。MIPI接口的攝像頭一般體積較小,適合于小型的嵌入式設(shè)備,比如手機和行車記錄儀等,同時也廣泛應(yīng)用到AI端上推理設(shè)備。本文以百度的端上推理設(shè)備EdgeBoard作為原型來介紹MIPI相關(guān)技術(shù)的開發(fā)。如果用戶購買EdgeBoard,出廠的鏡像中帶有MIPI的功能,只需再購買推薦的MIPI攝像頭,即可實現(xiàn)即插即用。
MIPI介紹
MIPI接口分為兩類,一是DSI (Display SerialInterface),提供處理器和顯示模組之間的高速串行接口;二是CSI (Camera Serial Interface),提供處理器和攝像模組之間的高速串行接口。本文將要介紹的是CSI-2。
MIPI信號采用低壓差分信號進行傳輸,具有傳輸速率快,抗干擾能力強的特點。MIPI的傳輸模式分為低速信號模式和高速信號模式,低速信號用于控制命令(10 MHz),高速信號用于數(shù)據(jù)傳輸(80Mbps -1Gbps/lane)。時鐘處于非連續(xù)工作狀態(tài),根據(jù)傳輸狀態(tài)進行時鐘的切換,這樣可以極大地降低功耗。關(guān)于D-PHY可參考MIPI Alliance Specification for D-PHY。
MIPI最多可支持4通道數(shù)據(jù),同時配有IIC總線進行配置,收發(fā)接口如下圖:
MIPI協(xié)議也是采用類似于以太網(wǎng)協(xié)議結(jié)構(gòu),采用分層設(shè)計的思想,分為PHY Layer,Protocal Layer和Application Layer。
MIPI傳輸?shù)膱笪闹卸x了圖像數(shù)據(jù)的類型/格式(Data type),這些類型/格式方便在調(diào)試的時候確定鏈路是否工作正常,常用的Data Type如下圖,比如YUV的數(shù)據(jù)格式的標(biāo)示符是0x18到0x1F,期間的數(shù)值定義了具體的格式,比如YUV422,YUV444等,具體可參考MIPI Alliance Specification for CameraSerial Interface 2。
硬件相關(guān)
MIPI 電平
MIPI的電平標(biāo)準分為LP (Low Power)模式和HP(High Power)模式,LP模式下高電平最大值1.3V,最小1.1V,典型值為1.2V,HP模式下共模電平200mv,擺幅200mV。
D-PHY
1、Ultrascale系列的FPGA使用MIPI_PHY_DCI 的電平,digitalcontrol impedence,如果是mipi的數(shù)據(jù)率很高時,比如lane rate高于1000Mbps,需要開啟100R的termination。
2、如果使用K7系列的芯片,由于其不支持MIPI_PHY_DCI電平,可以通過LVDS電平轉(zhuǎn)換而來,可以參考Xilinx的官方文檔D-PHY solutionsXAPP894,提供了完整D-PHY層的解決方案。
Note1:對于Vivado 2018.2以下的版本,如果MIPI線速率很高,比如1500Mbps,需要在xdc約束文件中添加termination約束,針對Ultrascale芯片,做以下操作:
MIPI引腳分配和BANK電壓
1. EdgeBoard中使用的是Xilinx Ultrascale+系列的MPSoC,MIPI 的IO必須放置在HP Bank。
2. MIPI_PHY_DCI的電平對Bank的要求苛刻,Bank的VCCO必須設(shè)定為1.2V,同時BANK的VREF推薦端接240R。如果Bank中有其他電平標(biāo)準,比如1.8V的電平,在implementation過程中會報錯。
3. MIPI-CSI-RX IP帶有Pin assignment的功能,可進行引腳分配的驗證,參考后文的MIPI IP 配置。
Layout
D-PHY的標(biāo)準規(guī)定總的傳輸延遲不能超過2 ns,對應(yīng)到FR4材質(zhì)的PCB最大的走線長度是25cm到30cm,包括從發(fā)送端到接收端,這決定了MIPI支持的傳輸距離在30cm左右,參考AN-1337D-PHY。同時PCB走線必須匹配100歐姆的端接。
EdgeBoard的MIPI
EdgeBoard的MIPI最多支持4通道,可以根據(jù)需要選擇性使用,用戶通過排線與EdgeBoard連接即可,注意排線不要過長,最好小于10cm。
開發(fā)Vivado
Vivado工具中的視頻IP也是在逐步開發(fā)完善中,其中難免會遇到各種意想不到的bug,不過好在Xilinx的官方論壇維護地很好,只要發(fā)帖提問,短時間內(nèi)就會得到專門技術(shù)人員的回答,同時針對出現(xiàn)的Bug,Xilinx官方也會定期發(fā)布相應(yīng)的patch,Video論壇中積攢的各種帖子也為后續(xù)的開發(fā)者提供了解決問題的途徑。
1. 如果使用2017版本的Vivado,MIPI CSI RX IP不能處理MIPI鏡頭時鐘缺失的問題,參考AR70581。解決該問題,參考AR70530打patch,patch打成功之后,在Vivado軟件界面提示AR70530。如果使用2018之后的版本,則不存在這個問題,不需要打patch。
2. MIPI-CSI-RX license 需要購買才能使用,功能驗證階段可以在Xilinx官網(wǎng)申請Evaluation license,但是用evaluation license生成的bit文件,會間歇性停止工作,無法用到真正的產(chǎn)品里面。License申請參考下文申請Xilinx Evaluation License
3. Github也有開源的MIPI CSI2 IP,該IP針對Xilinx 7 Series FPGA,可以支持到4K的分辨率,采用VHDL開發(fā),但僅支持4通道的MIPI攝像頭。
4. 推薦使用2018.3及以上的版本進行MIPI的開發(fā)。
MIPI IP的配置
1. 根據(jù)MIPI攝像頭的參數(shù)進行基本的設(shè)置,主要包括顏色格式、通道數(shù)、線速率等。其中線速率最好高于MIPI攝像頭的速率,在MIPI IP的內(nèi)部有一個FIFO緩沖數(shù)據(jù),MIPI IP讀出速率高于MIPI鏡頭的寫入速度,可以確保不丟幀。
2. 在硬件設(shè)計之前就需要進行引腳驗證,由于MIPI對于引腳要求相對苛刻,謹慎為好。
MIPI 后續(xù)處理IP
前面的MIPI IP只是負責(zé)從前端攝像頭拿到數(shù)據(jù),還需要其他IP進行后續(xù)的處理才能得到完整的視頻。
Demosaic
也稱之為interolation,通過相鄰像素的色彩經(jīng)過插值算法構(gòu)建出一副標(biāo)準色彩的圖像,實現(xiàn)Bayer到RGB的轉(zhuǎn)換。
攝像頭的感光sensor輸出的每個像素不是標(biāo)準的RGB,每個像素只是三原色中的一種,后期通過插值算法恢復(fù)出RGB標(biāo)準顏色,該方法由柯達科學(xué)家Bayer博士提出,該方法被稱之為Bayer濾色。
感光sensor內(nèi)部帶有color filter array(濾色鏡),通過放置不同的原色的filter過濾出單個像素的顏色,每個像素是單個的色彩(RGB中的一種),也稱之為RAW數(shù)據(jù),后端ISP中通過插值算法恢復(fù)到標(biāo)準的RGB。下圖是兩種濾色方法,一種是RGB,一種是CMY(印刷四分色模式)。
NOTE:使用Demosaic IP時,需要制定sensor的左上角的第一個像素是什么顏色,不同的sensor起始像素顏色不同。在Demosaic的 BAYER_PHASE (0x0028) Register 中進行設(shè)定,參考文檔SensorDemosaic。
IP 配置如下:設(shè)定每個時鐘的像素個數(shù),像素數(shù)據(jù)寬度以及分辨率。
Gamma Correcttion
Gamma矯正的目的是將線性亮度信號或者RGB編碼矯正成適合顯示器顯示的非線性數(shù)據(jù)。IP使用Gamma LUT,該IP免費,具體配置見下圖。
Video Process Subsystem
Video process subsystem IP具有視頻處理的多種功能,針對MIPI可以使用color space conversion,實現(xiàn)YUV444或者RGB色彩的矯正,提升視覺效果。
注:以上的IP設(shè)置均基于Vivado 2017.4版本,2018及以上版本會略有不同,根據(jù)我們的開發(fā)經(jīng)驗,推薦使用2018.3版本。
EdgeBoard中MIPI攝像頭數(shù)據(jù)流
EdgeBoard中MIPI攝像頭數(shù)據(jù)流如下圖,當(dāng)用戶購買EdgeBoard后,然后搭配我們推薦的MIPI攝像頭,即可做到即插即用。
關(guān)鍵寄存器
Xilinx MIPI IP和D-PHY對于開發(fā)者來說是黑盒子,如果開發(fā)中遇到問題,只能通過寄存器的方式來跟蹤問題,現(xiàn)介紹一些關(guān)鍵的寄存器。通過跟蹤這些寄存器的狀態(tài),可以定位排查問題。
D-PHY關(guān)鍵寄存器
首先是判斷D-PHY的工作狀態(tài),在MIPI IP設(shè)置中需要Enable D-PHY Register Interface。
1. Control Register
1. 查看D-PHY是否已經(jīng)使能
2. CL_STATUS Register(CL -> Clock Lane)
1. 查看clock lane是否處于stop狀態(tài)
2. 查看通道是否完成初始化
3. 查看工作模式
3. DL_STATUS Register (DL -> Data Lane)
1. 查看data lane是否處于stop狀態(tài)
2. 查看通道是否完成初始化
3. 查看工作模式
CSI2-RX 關(guān)鍵寄存器
1. Core Configuration Register
1. Enable core
2. Protocal Configuration Register
1. Lane number:硬件沒問題的話,可以看到MIPI攝像頭使用的通道數(shù)
3. Core Status Register
1. 統(tǒng)計收到的packet
4. 查看FIFO是否滿,如果數(shù)據(jù)及時讀出,是不會出現(xiàn)滿的情況
5. Interrupt Status Register
1. 這是排查問題的重要寄存器,各種問題引起的中斷都會寫入到該寄存器中
6. 如果出現(xiàn)ECC的錯誤,大概率是硬件信號完整性問題
7. Generic short Packet Register
1. 查看圖像格式,在該寄存器能看到對的Data Type,基本可以說明硬件設(shè)計沒問題
8. Clock Lane Information Register
1. 查看 clock的工作狀態(tài)
9. Lane Information Register
1. 查看每個lane的工作狀態(tài),每個lane不是始終處于工作狀態(tài),也會處于inactive狀態(tài)
附:申請Xilinx Evaluation License
1. 首先需要有一個Xilinx官方賬號,然后進入到Evaluation License網(wǎng)址進行申請,申請界面如下:
2. 點擊search now,輸入mipi關(guān)鍵字,勾選MIPI RX
3. EvaluationLicense需要綁定主機的MAC地址,點擊 GenerateNode-Locked License,然后設(shè)置需要綁定的MAC地址
4. 很快在個人注冊的郵箱里會收到Xilinx官方發(fā)布的lic文件,將其導(dǎo)入到Vivado工具即可。
NOTE:EvaluationLicense僅限于測試MIPI IP和MIPI攝像頭的工作狀態(tài),不可用于發(fā)布產(chǎn)品,其內(nèi)部帶有計數(shù)器,連續(xù)使用幾小時后會停止工作。
審核編輯:湯梓紅
-
接口
+關(guān)注
關(guān)注
33文章
8575瀏覽量
151015 -
攝像頭
+關(guān)注
關(guān)注
59文章
4836瀏覽量
95599 -
MIPI
+關(guān)注
關(guān)注
11文章
310瀏覽量
48613 -
EdgeBoard
+關(guān)注
關(guān)注
0文章
10瀏覽量
2850
原文標(biāo)題:快速掌握MIPI開發(fā)攻略
文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論