當(dāng)前位置:首頁 > 公眾號精選 > 全棧芯片工程師
[導(dǎo)讀]來源:公眾號瓜大三哥,版權(quán)歸瓜大三哥所有1MIPI簡介2MIPICSI-2簡介2.1MIPICSI-2的層次結(jié)構(gòu)2.2??CSI-2協(xié)議層2.3??打包/解包層2.4??LLP(LowLevelProtocol)層2.5??通道管理(LaneManagement)層2.6??物理...



來源:公眾號瓜大三哥,版權(quán)歸瓜大三哥所有


1 MIPI簡介2 MIPI CSI-2簡介2.1 MIPI CSI-2 的層次結(jié)構(gòu)2.2    CSI-2協(xié)議層2.3    打包/解包層2.4    LLP(Low Level Protocol)層2.5    通道管理(Lane Management)層2.6    物理層(PHY Layer)3    MIPI CSI2的物理連接4    MIPI CSI2的工作模式5    MIPI CSI2的數(shù)據(jù)包格式5.1    MIPI CSI2的長包格式5.2    MIPI CSI2的短包格式6    基于FPGA的MIPI接口實現(xiàn)6.1    接口描述6.2    模塊分析6.2.1    解串模塊6.2.2    協(xié)議模塊6.2.3    RAW 10bit生成模塊6.3    實例應(yīng)用6.3.1    硬件結(jié)構(gòu)框圖6.3.2    IIC配置6.3.3    實驗結(jié)果7    參考鏈接


1 MIPI簡介

MIPI Mobile Industry Processor Interface(移動行業(yè)處理器接口)的縮寫。MIPI 聯(lián)盟是一個開放的會員制組織。2003年7月,由美國德州儀器(TI)、意法半導(dǎo)體(ST)、英國 ARM 和芬蘭諾基亞(Nokia)4 家公司共同成立。


MIPI 聯(lián)盟旨在推進移動應(yīng)用處理器接口的標準化。MIPI 聯(lián)盟下面有不同的 WorkGroup ,分別定義了一系列的手機內(nèi)部接口標準,比如攝像頭接口 CSI 、顯示接口 DSI 、射頻接口 DigRF 、麥克風(fēng)/喇叭接口 SLIMbus 等。而 MIPI CSI-2 (Camera) and MIPI DSI (Display)則是目前業(yè)界使用最廣的兩個 MIPI 接口標準,而這也是和視頻傳輸相關(guān)的標準,所以本文主要對 CSI-2 攝像頭標準進行介紹。


2 MIPI CSI-2簡介

MIPI CSI(Camera Serial Interface)是由MIPI聯(lián)盟下 Camera 工作組指定的接口標準。CSI-2 是 MIPI CSI 第二版,主要由應(yīng)用層、協(xié)議層、物理層組成,最大支持4通道數(shù)據(jù)傳輸、單線傳輸速度高達1Gb/s。


2.1 MIPI CSI-2 的層次結(jié)構(gòu)

MIPI CSI-2的分層方法有好幾種,根據(jù)MIPI聯(lián)盟的規(guī)范,CSI-2 可分為5層,如圖1所示,分別為:應(yīng)用層、組包/解包層、底層協(xié)議層(Low Level Protocol)、通道管理層和物理層。


圖1協(xié)議結(jié)構(gòu)層次詳細描述如下


名稱 描述
應(yīng)用層 即是處理原始圖像數(shù)據(jù)的各種算法模塊
組包/解包層 負責(zé)將數(shù)據(jù)按照一定的次序,切割成8比特數(shù)據(jù)。
底層協(xié)議層 為新生成的數(shù)據(jù)加上包頭包尾,形成符合協(xié)議要求的數(shù)據(jù)流。
通道管理層 將生成的數(shù)據(jù)流按照一定次序和要求,進行讀寫管理,輸出數(shù)據(jù)流。
物理層 生成MIPI最后的信號波形。

2.2    CSI-2協(xié)議層

CSI-2 協(xié)議層允許多數(shù)據(jù)流(CSI-2TX)共用一個主機處理器端 CSI-2 接收信號接口(CSI-2RX)。協(xié)議層就可以描述有多少數(shù)據(jù)流被標記并組合在一起,指定了多數(shù)據(jù)流怎樣被標記和交叉存取,因此每個數(shù)據(jù)流可以在 SOC 處理器 CSI-2 接收器中被正確的重建,才能把各個數(shù)據(jù)流正確地恢復(fù)出來。


2.3    打包/解包層

CSI-2支持多種像素格式圖像應(yīng)用,包括從6位到24位每個像素的數(shù)據(jù)格式。


在發(fā)送端,數(shù)據(jù)由本層被發(fā)送到LLP層(Low Level Protocol)前,本層將應(yīng)用層傳來的數(shù)據(jù)由像素打包成字節(jié)數(shù)據(jù);


在接收端,執(zhí)行相反過程,將LLP層發(fā)來的數(shù)據(jù)解包,由字節(jié)轉(zhuǎn)成像素,然后才發(fā)送到應(yīng)用層。8位每像素的數(shù)據(jù)在本層被傳輸時不會被改變。


2.4    LLP(Low Level Protocol)層

LLP層包括為串行數(shù)據(jù)在傳輸開始(SoT)到傳輸結(jié)束(EoT)之間傳輸事件和傳輸數(shù)據(jù)到下一層,建立位級和字節(jié)級同步的方法。LLP最小數(shù)據(jù)粒度是1字節(jié)。LLP層也包括,每字節(jié)中各位數(shù)值分布解釋,即“端”(Endian)分布。


2.5    通道管理(Lane Management)層

為性能不斷提升,CSI-2 是通道可擴展的。數(shù)據(jù)通道數(shù)目可以是1,2,3,4,這個依賴于應(yīng)用中的帶寬需求。接口發(fā)送端分配(“distributor”功能)輸出數(shù)據(jù)流到一個或更多通道。在接收端,接口從通道收集字節(jié)并將之合并(“merger”功能)成為重新組合的數(shù)據(jù)流,恢復(fù)原始數(shù)據(jù)流序列。


2.6    物理層(PHY Layer)

定義了傳輸介質(zhì) (electrical conductors,導(dǎo)體),輸入/輸出電路信號的電氣特性(electrical parameters)和時鐘機制(時序)。即如何從串行位流(Bit Stream)中獲取“0”和“1”信號。規(guī)范中的這一部分記錄了傳輸介質(zhì)的特性,并依據(jù)時鐘和數(shù)據(jù)通道之間發(fā)信號和產(chǎn)生時鐘的關(guān)系規(guī)定了電學(xué)參數(shù)。


3    MIPI CSI2的物理連接

除地線外,MIPI CSI2一般會有1對I2C通信引腳,1對MIPI差分時鐘引腳和1~4對MIPI差分數(shù)據(jù)信號引腳,如圖2所示。


圖2信號描述如下


名稱 描述
DATA1 /DATA1- MIPI協(xié)議組包生成的差分模擬數(shù)據(jù)信號第1組
DATA2 /DATA2- MIPI協(xié)議組包生成的差分模擬數(shù)據(jù)信號第2組
CLOCK /CLOCK- 協(xié)議組包生成的差分模擬時鐘信號
SCL/SDA IIC控制通道
在典型的應(yīng)用中發(fā)送端在完成對圖像的各種處理后,按照協(xié)議對數(shù)據(jù)進行打包,然后通過差分信號線向接收端傳輸信號,差分信號線一般有一對時鐘差分線和多對數(shù)據(jù)差分線,數(shù)據(jù)差分信號線的數(shù)量與需要傳輸?shù)臄?shù)據(jù)量的要求有關(guān),數(shù)據(jù)量越大多對數(shù)據(jù)線能更容易滿足鏈路的需求。一般情況下兩百萬到五百萬像素的手機使用兩對差分數(shù)據(jù)線,即兩個數(shù)據(jù)通道。而當(dāng)攝像頭像素進一步提高到八百萬甚至一千三百萬時一般會使用四個數(shù)據(jù)通道,即四對差分數(shù)據(jù)線。


與外部進行控制信號交互時,采用的是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)。


4    MIPI CSI2的工作模式

D-PHY有兩種傳輸模式。


  • HS 高速傳輸模式,用于傳輸突發(fā)數(shù)據(jù),同步傳輸,信號為差分信號,電平范圍為100mv-300mv,傳輸速度范圍是80-1000Mbps。在該模式下傳輸時,當(dāng)差分線正端收到 1.2V 信號,負端收到 0V信號時,這時接收端識別為 1。反之為0。


  • LP 低功耗模式,用于傳輸控制指令,異步傳輸,信號線為單端,電平范圍是0-1.2v,沒有用時鐘線,時鐘是通過兩個數(shù)據(jù)線異或而來的,速度只有10Mbps。在該模式下傳輸時,當(dāng)正端接收到300m V,負端接收到100m V 時接收端識別為1,反之則識別為0。


5    MIPI CSI2的數(shù)據(jù)包格式

MIPI CSI2是一個面向字節(jié)的,基于包的協(xié)議;它支持任意大小的數(shù)據(jù)通過短包和長包格式傳輸。各個包之間由EOT-LPS-SOT序列隔開,如圖所示。


LLP包有兩種:長包和短包。每個包的傳輸以SoT(start of transmission)開始,EoT(end of transmission)結(jié)束,中間間隙是LPS(Low Power State低功耗狀態(tài))。


5.1    MIPI CSI2的長包格式

MIPI CSI2的長包主要有包頭、數(shù)據(jù)包和包尾三部分構(gòu)成。而包頭又可細分為:數(shù)據(jù)標識(data identifier)、數(shù)據(jù)包大?。╳ord count)和錯誤校驗碼(ECC)構(gòu)成如下圖所示。


其中,數(shù)據(jù)標識大小為1字節(jié),包含虛擬數(shù)據(jù)通道號[7:6]和數(shù)據(jù)類型[5:0]。
數(shù)據(jù)包大小為2字節(jié),其內(nèi)容為傳送數(shù)據(jù)的長度,以“字”為單位。
錯誤校驗碼大小為1字節(jié),負責(zé)對數(shù)據(jù)包的傳輸錯誤進行檢查及糾錯。
數(shù)據(jù)包可以傳送數(shù)據(jù)的大小為0~65535字節(jié)。
包尾大小為2字節(jié),是數(shù)據(jù)負荷的檢查和。


5.2    MIPI CSI2的短包格式

與長包相比,短包沒有數(shù)據(jù)包和包尾。數(shù)據(jù)標識DI中的數(shù)據(jù)類型在0x00到0x0F之間。WC字段是短包的數(shù)據(jù)域,這個數(shù)據(jù)可由用戶定義。ECC采用的是Hamming Code的方式,能對1bit錯誤進行糾錯,2bit錯誤進行檢查,如下圖所示。


短包只是將長包中的WC的位置作為包的數(shù)據(jù)域,也就是說,短包每次最多只能發(fā)兩個字節(jié)的數(shù)據(jù)。和長包一致,同樣需要先發(fā)LSB,再發(fā)MSB。應(yīng)當(dāng)注意的是,短包一般是用來發(fā)送同步控制信號的,一般不建議使用短包來發(fā)送用戶數(shù)據(jù)。
同步信號的類型如下:


而當(dāng)Data Type為0x08到0x0F時,則為Generic Short Packet Code,即可發(fā)送用戶自定義數(shù)據(jù)。


比如下面的例子,短包發(fā)幀同步信號,長包發(fā)數(shù)據(jù)。


6    基于FPGA的MIPI接口實現(xiàn)

6.1    接口描述

源碼請看【資料獲取


csi_4lane_raw10 #(
.series("7SERIES")
) inst (
.ref_clock_in(ref_clock_in),
.reset(reset),
.mipi_phy_if_clk_hs_n(mipi_phy_if_clk_hs_n),
.mipi_phy_if_clk_hs_p(mipi_phy_if_clk_hs_p),
.mipi_phy_if_clk_lp_n(mipi_phy_if_clk_lp_n),
.mipi_phy_if_clk_lp_p(mipi_phy_if_clk_lp_p),
.mipi_phy_if_data_hs_n(mipi_phy_if_data_hs_n),
.mipi_phy_if_data_hs_p(mipi_phy_if_data_hs_p),
.mipi_phy_if_data_lp_n(mipi_phy_if_data_lp_n),
.mipi_phy_if_data_lp_p(mipi_phy_if_data_lp_p),
.m_axis_video_aclk(m_axis_video_aclk),
.m_axis_video_aresetn(m_axis_video_aresetn),
.m_axis_video_tready(m_axis_video_tready),
.m_axis_video_tuser(m_axis_video_tuser),
.m_axis_video_tlast(m_axis_video_tlast),
.m_axis_video_tvalid(m_axis_video_tvalid),
.m_axis_video_tdata(m_axis_video_tdata)
);
端口描述如下:(輸入為MIPI接口數(shù)據(jù)流,輸出為axi stream數(shù)據(jù)流


端口 I/O 描述
ref_clock_in I 200M輸入?yún)⒖紩r鐘
reset I 復(fù)位,高有效
mipi_phy_if_clk_hs_n mipi_phy_if_clk_hs_p I HS鏈路差分時鐘
mipi_phy_if_clk_lp_n mipi_phy_if_clk_lp_p I LP鏈路差分時鐘
mipi_phy_if_data_hs_n mipi_phy_if_data_hs_p I HS鏈路差分數(shù)據(jù)
mipi_phy_if_data_lp_n mipi_phy_if_data_lp_p I LP鏈路差分數(shù)據(jù)
m_axis_video_aclk I 視頻輸入時鐘
m_axis_video_aresetn I 視頻輸入復(fù)位,低有效
m_axis_video_tready I 視頻輸入準備信號
m_axis_video_tuser O 視頻輸出的幀開始
m_axis_video_tlast O 視頻輸出行結(jié)尾
m_axis_video_tvalid O 視頻輸出數(shù)據(jù)有效
m_axis_video_tdata O 視頻輸出數(shù)據(jù)

6.2    模塊分析

程序接口如下圖,主要由三個模塊組成:


  • 解串模塊(csi_rx_4_lane_link)


  • 協(xié)議解析模塊(csi_rx_packet_handler)


  • RAW10bit(csi_rx_10bit_unpack)生成模塊


IP
IP層次
IP頂層模塊
IP輸出接口時序

6.2.1    解串模塊

解串模塊主要完成字節(jié)對齊和字對齊,程序結(jié)構(gòu)框圖如下圖所示。


  • csi_rx_hs_clk_phy:


dphy_clk :輸入查分時鐘
reset : 輸入復(fù)位
ddr_bit_clock : 輸出單端時鐘
ddr_bit_clock_b : 輸出反向單端時鐘
byte_clock : 輸出字節(jié)時鐘頻率為輸入頻率的1/4
  • csi_rx_clock_det:檢測外部時鐘是否穩(wěn)定:等待參考時鐘穩(wěn)定200個時鐘周期,并且byte_clock時鐘穩(wěn)定3個時鐘釋放復(fù)位。


  • csi_rx_idelayctrl_gen:idelayctrl配合idelay使用


  • csi_rx_hs_lane_phy:抖動補償和串化


通過控制延時,使得CLK和經(jīng)過IBUFDS的BitClk對齊,從而消除IBUFIO和BUFR還有net的延時。這樣所有的輸入信號都只經(jīng)過了一個IBUFDS,延時相等。對Idelay的控制,可以手動調(diào)節(jié),也可以用自動算法。


  • csi_rx_byte_align:對齊某一字節(jié),相當(dāng)于找同步字


  • csi_rx_word_align:將不同通道之間的字節(jié)對齊到某一個字


6.2.2    協(xié)議模塊

csi_rx_packet_handler,解析數(shù)據(jù)協(xié)議,根據(jù)協(xié)議解出vsync_out,Line_valid,里面包括長短包判斷,ECC校驗產(chǎn)生valid等。


6.2.3    RAW 10bit生成模塊

csi_rx_10bit_unpack:解包為RAW 10bit,如果是8bit則不需要此模塊


6.3    實例應(yīng)用

本次實例是應(yīng)用于xlinx 的xc7z035ffg676上,開發(fā)環(huán)境為vivado 2017.4。


6.3.1    硬件結(jié)構(gòu)框圖

硬件結(jié)構(gòu)框圖如下:主要包括MIPI接口的解碼,外設(shè)IIC配置sensor,GPIO復(fù)位外部Sensor。


6.3.2    IIC配置

Main函數(shù)里面:先進性IIC初始化,GPIO初始化,進行復(fù)位,然后配置Sensor配置。


6.3.3    實驗結(jié)果

可以看到成功解串出來數(shù)據(jù)。



本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉