加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 1、Camera歷史文章:《Camera | 1.Camera基礎(chǔ)知識》
    • 攝像頭常用術(shù)語
    • 一、基礎(chǔ)概念
    • 二、MIPI協(xié)議
    • 三、CSI
    • 四、物理層 DPHY
    • 五、MIPI協(xié)議在手機中應(yīng)用
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

Camera | 2.MIPI、CSI基礎(chǔ)

2023/01/12
6229
閱讀需 26 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

第一時間看干貨文章

1、Camera歷史文章:《Camera | 1.Camera基礎(chǔ)知識》

上一篇我們講解了camera的一些基礎(chǔ)概念和知識。我們說了,現(xiàn)在的手機由于高分辨率的要求,現(xiàn)在基本上都是基于MIPI、CSI協(xié)議來實現(xiàn)的,

本篇講解MIPI、CSI的一些基礎(chǔ)知識。

攝像頭常用術(shù)語

下面這些術(shù)語是camera驅(qū)動中經(jīng)常用到的縮略語。

AE(Auto Exposure):自動曝光。
AF(Auto Focus)???:自動對焦。
AWB(Auto White Balance):自動白平衡。
3A ?:指自動曝光(AE)、自動對焦(AF)和自動白平衡(AWB)算法。
Async Sub Device:在Media Controller結(jié)構(gòu)下注冊的V4L2異步子設(shè)備,
例:Sensor、MIPI DPHY。
Bayer Raw(或Raw Bayer)??:Bayer是相機內(nèi)部的原始圖片,一般后綴為.raw。
.raw格式內(nèi)部的存儲方式有:RGGB、BGGR、GRBG等。
CIF ????:Rockchip芯片中的VIP模塊,接收Sensor數(shù)據(jù)并保存到內(nèi)存中,
僅轉(zhuǎn)存數(shù)據(jù),無ISP功能。
DVP(Digital Video Port)??:一種并行數(shù)據(jù)傳輸接口。
Entity ?:Media Controller架構(gòu)下的各節(jié)點。
Frame ??:幀。
HSYNC ??:行同步信號,HSYNC有效時,接收到的信號屬于同一行。
IOMMU(Input Output Memory Management Unit):Rockchip芯片中的
IOMMU模塊,用于將物理上分散的內(nèi)存頁映射成CIF、ISP可見的連續(xù)內(nèi)存。
IQ(Image Quality)?:指為Bayer Raw Camera調(diào)試的IQ xml,用于3A tunning。
ISP(Image Signal Processing)?:圖像信號處理。
Media Controller :Linux內(nèi)核中的一種媒體框架,用于拓撲結(jié)構(gòu)的管理。
MIPI-DPHY ????:Rockchip芯片中符合MIPI-DPHY協(xié)議的控制器。
MP(Main Path):Rockchip芯片ISP驅(qū)動的一個輸出節(jié)點,一般用來拍照和抓取Raw圖。
PCLK(Pixel Clock)?:指Sensor輸出的Pixel Clock。
Pipeline ?????????:Media Controller架構(gòu)的各Entity之間相互連接形成的鏈路。
SP(Self Patch)????:Rockchip芯片ISP驅(qū)動的一個輸出節(jié)點。
V4L2(Video4Linux2)???:指Linux內(nèi)核的視頻處理模塊。
VICAP(Video Capture)?:視頻捕獲。
VIP(Video?Input?Processor):在Rockchip芯片中,曾作為CIF的別名
VSYNC ?:場同步信號,VSYNC有效時,接收到的信號屬于同一幀。

一、基礎(chǔ)概念

1. MIPI

MIPI:移動產(chǎn)業(yè)處理器接口(Mobile Industry Processorinterface)是MIPI聯(lián)盟發(fā)起的為移動應(yīng)用處理器制定的開放標(biāo)準(zhǔn)。

https://www.mipi.org

MIPI聯(lián)盟即移動產(chǎn)業(yè)處理器接口(MIPI)聯(lián)盟,由美國德州儀器(TI)、 意法半導(dǎo)體(ST)、 英國ARM和芬蘭諾基亞(Nokia)4家公司共同成立, 旨在定義并推廣用于移動應(yīng)用處理器接口的開放標(biāo)準(zhǔn)。

2. CSI

MIPI-CSI-2協(xié)議是MIPI聯(lián)盟協(xié)議的子協(xié)議,專門針對攝像頭芯片的接口而設(shè)計。

由于其高速,低功耗的特點,MIPI-CSI2協(xié)議極大的支持了高清攝像頭領(lǐng)域的發(fā)展.

正是由于它的普及,手機上五百萬像素的攝像頭才得以變?yōu)榍爸脭z像頭,該類接口技術(shù)主要掌握在日本東芝,韓國三星以及美國豪威三家公司。

    CSI協(xié)議有兩個版本協(xié)議,分別為CSI-2和CSI-3;CSI-2協(xié)議遵循的物理標(biāo)準(zhǔn)有兩個,分別為C-PHY和D-PHY;CSI-3協(xié)議的物理標(biāo)準(zhǔn)對應(yīng)M-PHY,且應(yīng)用層協(xié)議棧還需要連接Uni-Pro層。

D-PHY與C-PHY區(qū)別:從實用角度來看,主要是數(shù)據(jù)線和時鐘線的區(qū)別,還有傳輸速率,C-PHY通過某些技術(shù)改良,使數(shù)據(jù)傳輸速度更快。

瑞芯微3568用的CSI-2 && D-PHY

所以內(nèi)核中,我們會看到CSI2 和 D-PHY相關(guān)代碼。

二、MIPI協(xié)議

MIPI并不是一個單一的接口或協(xié)議,而是包含了一套協(xié)議和標(biāo)準(zhǔn),以滿足各種子系統(tǒng)獨特的要求。MIPI的標(biāo)準(zhǔn)異常復(fù)雜,包含非常多的應(yīng)用領(lǐng)域。

由上圖可得:

    顯示設(shè)備采用的DSI協(xié)議攝像頭采用的CSI協(xié)議RF IC采用的DigRF協(xié)議存儲設(shè)備采用的UFS

1. DCS(Display Command Set)

用于顯示模塊命令模式下的標(biāo)準(zhǔn)化命令集;

2. DBI, DPI (Display Bus Interface, Display Pixel Interface)

DBI:與具有顯示控制器和幀緩沖器的顯示模塊的并行接口。DPI:與顯示模塊的并行接口,不帶顯示控制器或幀緩沖器。

3. DSI, CSI (Display Serial Interface, Camera Serial Interface)

DSI:主機處理器與顯示模塊之間的高速串行接口;CSI:主機處理器與攝像頭模塊之間的高速串行接口;

4. D-PHY

為DSI(顯示屏)和CSI-2(攝像頭)提供物理層通路定義。

5. M-PHY

為DigRF、CSI-3、UFS、LLI、SSIC、M-PCIE提供物理層通路定義。

目前比較成熟的接口應(yīng)用有**DSI(顯示接口),和CSI(攝像頭接口)**,都具有比較復(fù)雜的協(xié)議結(jié)構(gòu),下圖表示某一個SOC可以作為一個CSI的接收器,同時也可以作為一個DSI的輸出器。

其物理層使用到了D-PHY,目前新的物理層C-PHY也逐漸被采用,我們常說的Camera I2C接口在MIPI中有專門的一個CCI(Camera Control Interface)來對應(yīng)。

三、CSI

根據(jù)層級,CSI協(xié)議分為五層:

名稱 解釋
Application 應(yīng)用層 處理原始圖像數(shù)據(jù)的各種算法模塊
Packing Formats 組包層 負責(zé)將數(shù)據(jù)按照一定的次序,切割成8bite數(shù)據(jù)
Low Level Protocaol 協(xié)議層 為新生成的數(shù)據(jù)加上爆頭包尾,形成符合協(xié)議要求的數(shù)據(jù)流
Lane Management 通道管理層 將生成的數(shù)據(jù)流按照一定次序和要求,進行讀寫管理,輸出數(shù)據(jù)流
PHY Layer PHY層 生成MIPI最后的信號波形
Pixel 像素數(shù)據(jù) 經(jīng)過圖像模塊處理過的數(shù)據(jù)流,或者原始的圖像數(shù)據(jù)流
Data 傳輸數(shù)據(jù) 經(jīng)過MIPI模塊切割或者加上包頭包尾數(shù)據(jù)
Control 控制信號 模塊間的控制數(shù)據(jù)流
Transmitter 發(fā)送端 包括了MIPI數(shù)組部分,轉(zhuǎn)接板等實現(xiàn)MIPI信源傳輸?shù)牟糠?/td>
Receiver 接收端 包括了轉(zhuǎn)接板和商用接收端模塊,負責(zé)解析收到的MIPI信源

工作順序:

    將原始的圖像數(shù)據(jù)在應(yīng)用層做相應(yīng)的圖像處理,包括白平衡/噪聲去除和色彩還原等;將處理的數(shù)據(jù)進入組包層做數(shù)據(jù)分割以及重組,然后將其傳輸給底層協(xié)議層;底層協(xié)議層會根據(jù)數(shù)據(jù)類型產(chǎn)生包頭,根據(jù)數(shù)據(jù)內(nèi)容產(chǎn)生構(gòu)成包圍的校驗序列,再將包頭、數(shù)據(jù)本身和包尾組成起來發(fā)送給通道管理層;通道管理層模塊按照通道的選通情況,合理分配數(shù)據(jù)到每個通道,之后數(shù)據(jù)經(jīng)過數(shù)模轉(zhuǎn)換進入到物理層傳輸;接收端在收到物理層數(shù)據(jù)后,再按照之前的逆序解包出原始的圖像數(shù)據(jù)。

1. 應(yīng)用層(Application Layer)

該層主要用于不同場景對數(shù)據(jù)的處理過程,對于發(fā)送方,多為camera生成數(shù)據(jù),對于接收方,多為SOC對數(shù)據(jù)進行處理。

2. 協(xié)議層(Protocol Layer)

CSI-2協(xié)議可以使用SOC上的一個物理接口實現(xiàn)多條數(shù)據(jù)流的傳輸。協(xié)議層規(guī)定了如何對多條數(shù)據(jù)流進行標(biāo)記和交織,從而使每條數(shù)據(jù)流能夠正確地重建。

1)像素字節(jié)轉(zhuǎn)換層(Pixel/Byte Packing/Unpacking Layer)

CSI-2能夠支持多種多樣的像素格式,對于發(fā)送方,在數(shù)據(jù)發(fā)送之前,需要根據(jù)像素格式,將像素數(shù)據(jù)轉(zhuǎn)換為對應(yīng)的字節(jié)流;對于接收方,在將數(shù)據(jù)提供給應(yīng)用層之前,需要將字節(jié)流數(shù)據(jù)轉(zhuǎn)換為像素數(shù)據(jù)。

2)低級協(xié)議層(Low Level Protocol)

LLP指的是SoT與EoT之間的數(shù)據(jù)包字節(jié)流協(xié)議,LLP的最小單元為字節(jié)。

3)Lane管理器(Lane Management)

為了適應(yīng)不同場景下對帶寬的要求,CSI-2規(guī)定了Lane的數(shù)量是可拓展的。因此,在面臨多Lane同時傳輸時,發(fā)送方需要對字節(jié)流進行公平分流(distributor),接收方則需要對多Lane數(shù)據(jù)進行合并(merger)。

3. 物理層(PHY Layer)

PHY層指定了傳輸媒介,在電氣層面從串行bit流中捕捉“0”與“1”,同時生成SoT與EoT等信號。CSI的硬件部分包括C-PHY、D-PHY,實際上使用的主要是D-PHY。

四、物理層 DPHY

D-PHY 描述了一同步、高速、低功耗、低代價的PHY。

D-PHY的最初版本設(shè)計目標(biāo)是500M bits/s,而D是羅馬數(shù)字的500,故而叫D-PHY。

1. D-PHY規(guī)范的2.0版的標(biāo)準(zhǔn):

    在高速模式下的同步傳輸,比特率為80-2300Mb/s,具體取決于設(shè)備和速度等級;TX經(jīng)典配置為一個時鐘Lane和最多四個數(shù)據(jù)Lane組成;Rx經(jīng)典配置為一個時鐘Lane和最多八個數(shù)據(jù)Lane組成;在低功率模式下的異步傳輸,比特率為10Mb/s;物理協(xié)議接口(PPI)連接CSI-2和DSI的應(yīng)用;可選的AXI4-Lite接口,可進行注冊訪問。

上圖表明使用DPHY作為物理層時,Camera與SOC之間的硬件關(guān)系。

MIPI CSI設(shè)備由兩部分構(gòu)成,分別為CCI(Camera Control Interface)和CSI(Camera Serial Interface)。

    CCI:攝像頭控制接口。(在MIPI中,充當(dāng)著控制接口的作用,提供mipi接口sensor的控制傳輸通道)CSI:主機處理器與攝像頭模塊之間的高速串行接口(傳輸圖像數(shù)據(jù))。
    SOC的CCI組件通過I2C完成對Camera的配置,使其輸出mipi信號其中一對Clock+/-則由Clock Lane標(biāo)示,一對DataNBA+/-則由Data Lane標(biāo)示。

兩個Lane的 PHY配置如下圖 :

2. CCI (Camera Control Interface)

CCI是一個雙線、雙向、半雙工、串行接口。是I2C協(xié)議的子集,與I2C基本一致。

CCI是兼容I2C接口的快速模式變體。CCI應(yīng)支持400kHz操作和7位從屬尋址。

對于那些只支持RAW Bayer輸出格式的攝像頭,其CCI地址必須為011011xb(x=0,1);對于其他的攝像頭,其CCI地址必須為011110xb。

CCI可選擇支持速率:1Mbps (Fm+), 12.5Mbps (SDR), or 25Mbps (DDR).

CCI接口命名如下:

    CCI (I2C) :CCI 支持I2CCCI (I3C) :CCI 支持I3CCCI (I3C SDR) :CCI 支持I3C SDRCCI (I3C DDR) :CCI 支持I3C DDRCCI :表示同時支持 CCI (I2C) 和CCI (I3C).

3. DPHY工作于兩種工作模式:

    • HS(High Speed Mode)

 

    • 這種模式用于傳輸高速的數(shù)據(jù)信號,如視頻流;高速模式下,每對Lane都是工作在低電壓擺幅的差分狀態(tài)下,數(shù)據(jù)速率為80Mbps到1500Mbps。LP(Low Power Mode)

 

    這種模式則可以用來傳輸控制信號;低速模式下,每對lane的2根導(dǎo)線都轉(zhuǎn)變?yōu)閱味藸顟B(tài),數(shù)據(jù)速率為10Mbps。

上圖為單個Lane模塊的內(nèi)部組成,包含了CIL(Lane控制器與借口邏輯器),LP驅(qū)動器,HS驅(qū)動器,LP沖突檢測。

CIL負責(zé)控制各個驅(qū)動器的工作狀態(tài),使得Dp、Dn的工作狀態(tài)可以在HS與LP之間進行切換。

處于HS模式下,差分信號電平擺幅約為200mV;處于LP模式下,單端信號電平擺幅約為1.2V。在LP模式下,根據(jù)各個Line的電平可以確定當(dāng)前Lane的State。

Data Lane差分線電平的高低表明了當(dāng)前處于何種狀態(tài),發(fā)送方通過驅(qū)動差分線一系列的狀態(tài)變化,進入不同的工作模式。

    Burst Mode:High-Speed下的唯一模式,高速數(shù)據(jù)傳輸模式,此時各個Lane的Line工作在差分模式Control Mode:Low Power下的一種模式,可以通過變化不同的state進入其他模式。Escape Mode:Low Power下的特殊模式,在這種模式下可以使用一些特別的功能。

4. CSI-2數(shù)據(jù)幀格式

CSI-2的數(shù)據(jù)包有兩種:長幀和短幀。無論長幀還是短幀,幀開頭都是SoT,幀結(jié)尾都是EoT。在兩次HS傳輸過之間,插入的是LP狀態(tài),一般是LP11等Control狀態(tài),當(dāng)然也可以進入Escape狀態(tài)、進入LPDT或者是進入UPLS。

1) 長幀結(jié)構(gòu)如下

以DPHY為例來分析具體的協(xié)議格式,DPHY長包主要由包頭、包負載、包尾三部分組成,具體如下圖:

長幀包括32bit的包頭(Packet Head,PH)、有效數(shù)據(jù)填充以及16bit的包尾(Packet Foot,PF)。

    PH包括:

數(shù)據(jù)標(biāo)識(Data Identity,DI):1個字節(jié),包括VC(Victual Channel)低兩位和DT(Data Type)的低六位;數(shù)據(jù)計數(shù)(Word Count,WC):2個字節(jié)。從PH結(jié)尾到PF的開頭中間的填充數(shù)據(jù)的長度,單位為字節(jié)。接收端通過WC來判斷報的結(jié)尾位置。錯誤檢測(ECC):1個字節(jié)。包括VC的高兩位,與DI中的VC低兩位構(gòu)成4bit虛擬通道標(biāo)識;低6位為糾錯碼,采用Hamming(漢明碼)的方式,用來糾正PH中一位的錯誤或者發(fā)現(xiàn)兩位的錯誤;

有效數(shù)據(jù)填充:長度=WC*8bit。低位在前,對內(nèi)容沒有任何限制(0~65535字節(jié))。

PF包括:檢驗(CHECKSUM):兩個字節(jié)。低位在前,CHECKSUM采用CCITT的16-bit的CRC校驗,即X16+X12+X5+X0。CRC只能檢測出一個或多個錯誤,并不能糾正錯誤。

2) 短幀結(jié)構(gòu)如下:

DI:1個字節(jié),包括VC的低兩位,和DT(5:0);

短包數(shù)據(jù)域:2個字節(jié),如果該短幀為Data Type的幀同步(Frame Synchronization),則數(shù)據(jù)域表示幀數(shù);如果短幀的Data Type為行同步(Line Synchronization),則數(shù)據(jù)域表示行數(shù)。

錯誤檢測(ECC):1個字節(jié),包括VC的高兩位和六位糾錯碼。

數(shù)據(jù)類型

    數(shù)據(jù)類型表明了負載數(shù)據(jù)的格式和內(nèi)容,上文提到,根據(jù)長短包的不同,數(shù)據(jù)類型共有8種不同的分類。短包數(shù)據(jù)類型的詳細信息在上文已經(jīng)介紹了,這里說明下長包的5種數(shù)據(jù)類型,詳見下表:

數(shù)據(jù)類型舉例:

比如YUV420格式:4:2:0表示2:1的水平取樣,垂直2:1采樣(每四個Y共用一組UV分量)
數(shù)據(jù)格式如圖所示:

關(guān)于DPHY層,我們并不需要關(guān)注太多,就像網(wǎng)卡的PHY層一樣,我們只需要知道,通過CCI接口發(fā)送配置信息給Camera,通過CSI接口傳輸數(shù)據(jù)。

五、MIPI協(xié)議在手機中應(yīng)用

1. mipi插槽

MIPI攝像頭:

通常手機不會設(shè)計這個擴展槽,一般都會直接在板子上預(yù)留小的排線接口,直接將攝像頭模組插上去即可。

2. MIPI接口的手機內(nèi)部功能框圖

在手機內(nèi)部,各個部件與MIPI協(xié)議棧的關(guān)系如下圖:

其中攝像頭通過CSI與處理器相連。

我們再細化下攝像頭與cpu的模塊圖【以瑞芯微rk3568為例】:

MIPI接口在系統(tǒng)的實現(xiàn)如上圖所示,

    1. 通常一個camera的模組如圖所示,通常包括Lens、Sensor、CSI接口等,其中CSI接口用于視頻數(shù)據(jù)的傳輸;SoC的Mipi接口對接Camera,并通過I2C/SPI控制camera模組;MIPI DPHY提供了4 Lane的Rx接口,由Sensor提供Clock,并通過四條數(shù)據(jù)Lane輸入圖像數(shù)據(jù);DPHY與CSI-2 Host Contrller之間通過PPI(PHY-Protocol Interface)相連,該接口包括了控制,數(shù)據(jù),時鐘等多條信號CSI-2 Host Contrller通過PPI接口收到數(shù)據(jù)后進行解析,完成后通過IDI(Image Data Interface)或者IPI(Image Pixel Interface)輸出到SoC的其他模塊(VICAP或ISP,rk3568是送至VICAP模塊);ISP將處理過的圖片輸出到MP主通道或SP自身通道,SP一般用來預(yù)覽圖片,SP圖片的最大分辨率比MP低;SoC通過APB Slave總線控制CSI-2 Host Contrller的相關(guān)寄存器。
ISP含義

ISP(Image Signal Processor),即圖像信號處理器,用于處理圖像信號傳感器輸出的圖像信號。

它在相機系統(tǒng)中占有核心主導(dǎo)的地位,是構(gòu)成相機的重要設(shè)備。ISP 通過一系列數(shù)字圖像處理算法完成對數(shù)字圖像的效果處理。

瑞芯微rk3568平臺的ISP2.1 處理圖像數(shù)據(jù)的基本流程如下:

ISP 包括:

    MIPI serial camera interface(MIPI)RAW ProcessingRGB ProcessingYUV ProcessingMemory Interface(MI)

MI接口如下:

一般抓圖的順序:

    攝像頭的初始化(輸出格式、分辨率、輸出速率)使能攝像頭接入主控板卡中的物理通道使能主控板卡中的ISP(圖像信號處理模塊)、并讓ISP知道當(dāng)前有效接入的攝像頭是哪一個(因為可以多個接入,但只能一個有效)。告訴ISP輸進來的數(shù)據(jù)如何處理(顏色空間轉(zhuǎn)換、縮放、裁剪、旋轉(zhuǎn)等)、經(jīng)由那個通道輸出到內(nèi)存/顯存(MP主通道、SP自身通道)。輸出到內(nèi)存

3. Camera-OV13850內(nèi)部結(jié)構(gòu)

下面看一款攝像頭模組OV13850的內(nèi)部結(jié)構(gòu)圖:

定時脈沖發(fā)生器輸出時鐘來訪問成像陣列的行,預(yù)先填充電荷并且按順序?qū)?shù)組的行進行采樣。

在預(yù)先填充電荷和采樣的時間間隔內(nèi),每個像素點的電荷曝光時減少入射光。

這是在滾動快門的體系結(jié)構(gòu)的曝光時間。

曝光時間通過調(diào)整預(yù)先填充電荷和采樣之間的時間間隔控制。

在每一行的像素數(shù)據(jù)采樣后,通過模擬電路(AMP)進一步處理:糾正偏移量和將數(shù)據(jù)乘以相應(yīng)的增益。

模擬處理后通過10位ADC的輸出數(shù)組中的每個像素的數(shù)據(jù)。

ISP(image sensor processor)通過圖像輸出接口單元,經(jīng)過MIPI接口(MCP/MDP)將圖像數(shù)據(jù)發(fā)送出去。

好了,本文暫時講到這里,

后面會繼續(xù)更新幾篇Camera文章。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

公眾號『一口Linux』號主彭老師,擁有15年嵌入式開發(fā)經(jīng)驗和培訓(xùn)經(jīng)驗。曾任職ZTE,某研究所,華清遠見教學(xué)總監(jiān)。擁有多篇網(wǎng)絡(luò)協(xié)議相關(guān)專利和軟件著作。精通計算機網(wǎng)絡(luò)、Linux系統(tǒng)編程、ARM、Linux驅(qū)動、龍芯、物聯(lián)網(wǎng)。原創(chuàng)內(nèi)容基本從實際項目出發(fā),保持原理+實踐風(fēng)格,適合Linux驅(qū)動新手入門和技術(shù)進階。