Granite River Labs, GRL
Nicole Lan 藍婉甄
MIPI CSI-2 最初於2005年推出,為行動裝置所使用的標準化相機介面規格,全名為MIPI Camera Serial Interface 2。MIPI CSI-2提供高頻寬、低耗電與低電磁干擾的功能,因其易用性且支持高性能應用,包含 1080p、4K、8K 或更高的視頻以及高解析度攝影,現已成為應用最廣泛的嵌入式攝像頭和成像介面。
MIPI CSI-2的層級架構
MIPI CSI-2定義了傳輸端和接收端之間的數據傳輸和控制介面,主要可以分為三個層級,如圖(1)所示:
- 實體層(PHY Layer):定義傳輸媒介、電器特性及時鐘機制等,包含兩種高速串列數據傳輸介面,分別為D-PHY及C-PHY。
- 協定層(Protocol Layer):主機處理器上的單個介面可以啟用多個數據串流,定義如何標記和交錯多個串流,以便接收端正確重建資料。
- 應用層(Application Layer):定義數據串流更高級別的編碼與分析。
圖(1) CSI-2 層定義表
(來源:MIPI Alliance Specification for Camera Serial Interface 2, Version 4.0)
本篇文章將著重於MIPI CSI-2協定層的介紹,協定層又可分為三個子層級,由下往上依序分別為:
- 通道分配(Lane Management):CSI-2可支援通道擴展以提高性能,傳輸端依據頻寬需求將數據串流分配到一個或多個通道,接收端合併資料並恢復原始序列。
- 低層協定(Low Level Protocol):將傳輸起始至結束之間的數據串流組合成不同形式的封包,此部分會於文章後面進行著重說明。
- 像素/位元組打包/解包(Pixel/Byte Packing/Unpacking):CSI-2支援不同像素格式的圖像應用,傳輸端將來自應用層的像素打包成位元組,接收端接受來自低層協定的位元組後解包為像素。
低層協定Low Level Protocol
以下將會針對協定層當中的低層協定來進行詳細的說明。低層協定全名為Low Level Protocol,簡稱為LLP,定義兩種封包結構,分別為長封包與短封包,其中長封包用作影像數據傳輸,短封包則是用作數據輔助描述。如圖(2)所示,每個封包的傳輸起始 (Start of Transmission, SoT) 都是從低功率狀態 (Low Power State, LPS) 退出,而每個封包的傳輸結束 (End of Transmission, EoT) 便會回到低功率狀態。
圖(2) 底層協定封包概述
(來源:MIPI Alliance Specification for Camera Serial Interface 2, Version 4.0)
D-PHY / C-PHY長短封包結構
接下來將分別介紹長短封包於實體層D-PHY及C-PHY中的結構。D-PHY長封包由三個部分所組成:封包標頭(Packet Header, PH)、封包數據 (Packet Data) 以及封包結尾 (Packet Footer, PF)。封包標頭包含四個子項目,請參考圖(3):
- 8-bit Data ID: 由2-bit VC (Virtual Channel)及6-bit DT (Data Type)所組成,其中VC為Virtual Channel ID的最低有效位。
- 16-bit Word Count: 定義封包標頭和封包結尾間的資料個數,即為資料長度。
- 2-bit VCX (Virtual Channel Extension): 為Virtual Channel ID的最高有效位。
- 6-bit ECC (Error Correction Code): 錯誤更正碼。
上述所提及的Virtual Channel ID以及Data Type會於文章後面進行說明。D-PHY長封包的封包數據為傳輸的資料內容,即影像的YUV或RGB資料,長度為封包標頭中的Word Count x 8 bits。封包結尾則為16-bit Checksum (核對和)。
圖(3) D-PHY物理層選擇,長封包結構 (D-PHY Physical Layer Option)
(來源:MIPI Alliance Specification for Camera Serial Interface 2, Version 4.0)
C-PHY長封包由四個部分所組成:封包標頭(Packet Header, PH)、封包數據(Packet Data)、封包結尾(Packet Footer, PF)以及填充內容(Filler)。封包標頭包含五個子項目,且相同結構會重複兩次,請參考圖(4):
- 5-bit RES (Reserved Field): 保留欄位。
- 3-bit VCX (Virtual Channel Extension): 為Virtual Channel ID的最高有效位。
- 8-bit Data ID: 由2-bit VC (Virtual Channel)及6-bit DT (Data Type)所組成,其中VC為Virtual Channel ID的最低有效位。
- 16-bit Word Count: 定義封包標頭和封包結尾間的資料個數,即為資料長度。
- 16-bit PH Checksum: 封包標頭核對和。
C-PHY長封包的封包數據以及封包結尾與D-PHY相同。填充內容為非必要結構,在封包結尾之後所插入的字節,以確保每個實體層通道傳輸相同數量的 16位字組。
圖(4) C-PHY物理層選擇,長封包結構 (C-PHY Physical Layer Option)
(來源:MIPI Alliance Specification for Camera Serial Interface 2, Version 4.0)
D-PHY與C-PHY的短封包只有包含長封包的標頭,Word Count字段由短封包數據代替,為資料欄位(Data Field),會依據不同的Data Type定義相對應的內容。請參考圖(5)及圖(6):
圖(5) D-PHY物理層選擇,短封包結構 (D-PHY Physical Layer Option)
(來源:MIPI Alliance Specification for Camera Serial Interface 2, Version 4.0)
圖(6) C-PHY物理層選擇,短封包結構 (C-PHY Physical Layer Option)
(來源:MIPI Alliance Specification for Camera Serial Interface 2, Version 4.0)
Virtual Channel ID / Data Type
最後將針對前面所提及的Virtual Channel ID與Data Type進行介紹。Virtual Channel ID的功能為在交錯的數據串流中提供單獨的邏輯通道,接收端從傳入的數據封包標頭中提取虛擬通道標識,並將交錯的影像數據串流解多工至其適當的通道。其中,D-PHY 最多可支持16條虛擬通道,有效的通道標識為 0-15;C-PHY最多可支持32條虛擬通道,有效的通道標識為0-31。請參考圖(7):
圖(7) 邏輯通道框圖(接收端)
(來源:MIPI Alliance Specification for Camera Serial Interface 2, Version 4.0)
Data Type定義資料的格式和內容,最多支持 64 種數據類型,範圍從0x00-0x3F。其中,0x00-0x0F定義短封包類型,0x10-0x3F則定義長封包類型,請參考表(1):
表(1)數據類型
MIPI CSI-2將在多領域中擴張攝像設備的範圍
MIPI CSI-2可實施於任何單攝像頭或多攝像頭設備,除了傳統的行動裝置之外,還可應用於虛擬實境、無人機、物聯網、醫療、工業系統、汽車等設備,極大化擴展其運用範圍。
參考文獻:
MIPI Alliance Specification for Camera Serial Interface 2 (CSI-2), Version 4.0, 26 September, 2021
作者:
GRL資深測試工程師藍婉甄Nicole Lan
擁有五年DP測試經驗,擅長DP、HDR、MIPI等介面測試。GRL技術文章作者及講師。