Camera mipi通信協(xié)議

和你一起終身學(xué)習(xí),這里是程序員Android
經(jīng)典好文推薦,通過閱讀本文,您將收獲以下知識點:
一、mipi協(xié)議介紹
MIPI(移動行業(yè)處理器接口),是Mobile Industry Processor Interface的縮寫。MIPI移動行業(yè)處理器接口)是MIPI聯(lián)盟發(fā)起的為移動應(yīng)用處理器制定的開放標(biāo)準(zhǔn)。分別定義了一系列的手機內(nèi)部接口標(biāo)準(zhǔn),比如攝像頭接口CSI、顯示接口DSI,其中CSI(Camera Serial Interface)是由MIPI聯(lián)盟下Camera工作組指定的接口標(biāo)準(zhǔn)。CSI-2是MIPI CSI第二版,主要由應(yīng)用層、協(xié)議層、物理層組成,最大支持4通道數(shù)據(jù)傳輸、單線傳輸速度高達(dá)1Gb/s。
二、mipi CSI-2 的分層結(jié)構(gòu)
CSI-2可分為5層,分別為:應(yīng)用層、組包/解包層、底層協(xié)議層(Low Level Protocol)、通道管理層和物理層 。
分層結(jié)構(gòu)中涉及到的名詞解釋:
| 名稱 | 解釋 |
|---|---|
| 應(yīng)用層 | 即是處理原始圖像數(shù)據(jù)的各種算法模塊 |
| 組包/解包層 | 負(fù)責(zé)將數(shù)據(jù)按照一定的次序,切割成 8 比特數(shù)據(jù)。 |
| 底層協(xié)議層 | 為新生成的數(shù)據(jù)加上包頭包尾,形成符合協(xié)議要求的數(shù)據(jù)流。 |
| 通道管理層 | 將生成的數(shù)據(jù)流按照一定次序和要求,進(jìn)行讀寫管理,輸出數(shù)據(jù)流。 |
| 物理層 | 生成 MIPI 最后的信號波形。 |
| 像素數(shù)據(jù) | 經(jīng)過圖像模塊處理過的數(shù)據(jù)流,或者原始圖像的數(shù)據(jù)路。 |
| 傳輸數(shù)據(jù) | 經(jīng)過MIPI模塊切割或者加上包頭包尾的數(shù)據(jù)。 |
| 控制信號 | 模塊間的控制數(shù)據(jù)流 |
| 發(fā)送端 | 包括了 MIPI 數(shù)字部分,轉(zhuǎn)接板等實現(xiàn)MIPI 信源傳輸?shù)牟糠帧?/td> |
| 接收端 | 包括了轉(zhuǎn)接板和商用接收端模塊,負(fù)責(zé)解析收到的 MIPI 信源。 |
詳細(xì)的來說,鏈路的工作順序如下:
首先原始的圖像數(shù)據(jù)會在應(yīng)用層做相應(yīng)的圖像處理,包括白平衡、噪聲去除、色彩還原等。
處理過后的數(shù)據(jù)進(jìn)入組包層做數(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)換進(jìn)入物理層傳輸,接收端在收到物理層的數(shù)據(jù)后,再按照之前的逆序解包出原始的圖像數(shù)據(jù)。
三、mipi CSI-2 的物理連接
除地線外,MIPI CSI-2一般會有1對I2C通信引腳,1對MIPI差分時鐘引腳和1~4對MIPI差分?jǐn)?shù)據(jù)信號引腳。
CSI2涉及到的各個引腳解釋:
| 名稱 | 解釋 |
|---|---|
| DATA 1+ / DATA 1- MIPI | 協(xié)議組包生成的差分模擬數(shù)據(jù)信號第二組 |
| DATA 2+ / DATA 2- MIPI | 協(xié)議組包生成的差分模擬數(shù)據(jù)信號第一組 |
| CLOCK+ / CLOCK- MIPI | 協(xié)議組包生成的差分模擬時鐘信號 |
| SDA I2C | 數(shù)據(jù)信號線 |
| SCL I2C | 時鐘信號線 |
在典型的應(yīng)用中發(fā)送端在完成對圖像的各種處理后,按照協(xié)議對數(shù)據(jù)進(jìn)行打包,然后通過差分信號線向接收端傳輸信號,差分信號線一般有一對時鐘差分線和多對數(shù)據(jù)差分線,數(shù)據(jù)差分信號線的數(shù)量與需要傳輸?shù)臄?shù)據(jù)量的要求有關(guān),數(shù)據(jù)量越大多對數(shù)據(jù)線能更容易滿足鏈路的需求。一般情況下兩百萬到五百萬像素的手機使用兩對差分?jǐn)?shù)據(jù)線,即兩個數(shù)據(jù)通道 。而當(dāng)攝像頭像素進(jìn)一步提高到八百萬甚至一千三百萬時一般會使用四個數(shù)據(jù)通道,即四對差分?jǐn)?shù)據(jù)線。
與外部進(jìn)行控制信號交互時,采用的是I2C接口,在MIPI的發(fā)送端使用的是I2C, 從端的 IP,MIPI CSI-2接口的控制寄存器連接I2C的從端,這樣外部接收裝置可以通過I2C去配置MIPI發(fā)送端的內(nèi)部寄存器,以此改變MIPI CSI-2接口內(nèi)部狀態(tài)機的持續(xù)時間和最后輸出數(shù)據(jù)時的通道數(shù),又或者在調(diào)試過程中讀出這些寄存器,去做相應(yīng)的檢查,以判斷發(fā)送端的工作狀態(tài),再通過接收端的現(xiàn)象來分析發(fā)送端是否工作在正常的狀態(tài)。
四、MIPI CSI2的工作模式
MIPI信號的傳輸有兩種工作模式:高速模式和低功耗模式:
1、HS 高速傳輸模式:
高速數(shù)據(jù)傳輸,信號為差分信號,電平范圍為100mv-300mv,傳輸速度范圍是80-1000Mbps。在該模式下傳輸時,當(dāng)差分線正端收到1.2V信號,負(fù)端收到0V信號時,這時接收端識別為1,反之為0。
2、LP 低功耗模式:
用于傳輸控制指令,異步傳輸,信號線為單端,電平范圍是0-1.2V,沒有用時鐘線,時鐘是通過兩個數(shù)據(jù)線異或而來的,速度只有10Mbps。在該模式下傳輸時,當(dāng)正端接收到300mV,負(fù)端接收到100mV時接收端識別為1,反之則識別為0。
五、mipi傳輸時序
其中MIPI的傳輸時序如下,對應(yīng)得時間需要符合規(guī)范要求,否則可能會出現(xiàn)MIPI信號無法識別的問題,通??梢酝ㄟ^修改settle time(40-85)和trail time(24~39)來調(diào)整:

Clock和data中體現(xiàn)差分,即低位先出,故如此表示,差分信號P高N低表1,P低N高表0。
現(xiàn)在對mipi大概有點小小的概念了。再給你看看她的照片,保證你喜歡。MIPI 輸出長什么樣?
mipi 的美顏照片
幀頭標(biāo)識、幀尾標(biāo)識(分別由vsync上升下降沿生成)
行頭標(biāo)識、行尾標(biāo)識(分別由hsync上升下降沿生成)
有效數(shù)據(jù)長包。包含行標(biāo)識,所以可以省略line_sync短包
相對于并口傳輸,即是將vsync、hsync與數(shù)據(jù)共通道復(fù)用傳輸。
總之一句話,能用軟件解決的一定不要動硬件,能動手的一定不要動嘴。人生哲理。
什么?不要看PS過的照片!好吧,下面發(fā)個素顏照。
是不是美如畫。
而mipi的信號符合其通信協(xié)議,規(guī)定其起始電壓在1.1~1.3V,等等,如下圖(我比較懶,不服來辯)。這是其電氣要求。
然后軟件方面,如下圖:
MIPI 數(shù)據(jù)長包內(nèi)容
| 名詞 | 解釋 |
|---|---|
| 字節(jié)(byte) | 基本傳輸單元,每個byte中有8位(bit) |
| Sync dyte | 來同步數(shù)據(jù)開始,告知接下來為有效數(shù)據(jù) |
| DATA TYPE | 該包傳輸?shù)氖鞘裁锤袷降臄?shù)據(jù)YUV422(1E)/RAW8(2A)/RAW10(2B) |
| WC(16bits) | PAYLOAD中的byte數(shù)量(即輸出窗口的1行中有多少個字節(jié),也即列數(shù)。注意raw10為列數(shù)的1.25倍,raw12為列數(shù)的1.5倍) |
| ECC | 校驗datatype和wc是否出錯 |
| Payload | image data |
| CSC | PAYLOAD數(shù)據(jù)傳輸校驗 |
六、MIPI CSI2的數(shù)據(jù)包格式
MIPI CSI2是一個面向字節(jié)的,基于包的協(xié)議;它支持任意大小的數(shù)據(jù)通過短包和長包格式傳輸。各個包之間由EOT-LPS-SOT序列隔開,MIPI CSI2的數(shù)據(jù)包如圖所示。
LLP包有兩種:長包和短包。每個包的傳輸以SoT(start of transmission)開始,EoT(end of transmission)結(jié)束,中間間隙是LPS(Low Power State低功耗狀態(tài))。
6.1 MIPI CSI2的長包格式
MIPI CSI2的長包主要有包頭、數(shù)據(jù)包和包尾三部分構(gòu)成。而包頭又可細(xì)分為:數(shù)據(jù)標(biāo)識(data identifier)、數(shù)據(jù)包大小(word count)和錯誤校驗碼(ECC)構(gòu)成。MIPI CSI2的長包數(shù)據(jù)格式如圖所示。
其中,
數(shù)據(jù)標(biāo)識大小為1字節(jié),包含虛擬數(shù)據(jù)通道號[7:6]和數(shù)據(jù)類型[5:0]。
數(shù)據(jù)包大小為2字節(jié),其內(nèi)容為傳送數(shù)據(jù)的長度,以“字”為單位。
錯誤校驗碼大小為1字節(jié),負(fù)責(zé)對數(shù)據(jù)包的傳輸錯誤進(jìn)行檢查及糾錯。
數(shù)據(jù)包可以傳送數(shù)據(jù)的大小為0~65535字節(jié)。
包尾大小為2字節(jié),是數(shù)據(jù)負(fù)荷的檢查和。
6.2 MIPI CSI2的短包格式
與長包相比,短包沒有數(shù)據(jù)包和包尾。數(shù)據(jù)標(biāo)識DI中的數(shù)據(jù)類型在0x00到0x0F之間。WC字段是短包的數(shù)據(jù)域,這個數(shù)據(jù)可由用戶定義。ECC是校驗碼,能對1bit錯誤進(jìn)行糾錯,2bit錯誤進(jìn)行檢查,如圖所示。
?
友情推薦:
至此,本篇已結(jié)束。轉(zhuǎn)載網(wǎng)絡(luò)的文章,小編覺得很優(yōu)秀,歡迎點擊閱讀原文,支持原創(chuàng)作者,如有侵權(quán),懇請聯(lián)系小編刪除,歡迎您的建議與指正。同時期待您的關(guān)注,感謝您的閱讀,謝謝!
點個在看,方便您使用時快速查找!
