MIPI DSI協議介紹
reference:
- http://www.wangweilin.name/qrx_448.html
- https://blog.csdn.net/qq160816/article/details/19555957
- http://www.elecfans.com/yuanqijian/jiekou/20171113578403.html
- https://blog.csdn.net/caihaitao2000/article/details/80224976
注:CSI的部分等到調試有關的硬件再進行整理。schips,2020.11.22
MIPI標准介紹
對於現代的智能手機來說,其內部要放入太多各種不同接口的設備,給手機的設計和元器件選擇帶來很大的難度。下圖是一個智能手機的例子,可以看到其內部存儲、顯示、攝像、聲音等內部接口都是各不相同的。即使以攝像頭接口來說,不同的攝像頭模組廠商也可能會使用不同的接口形式,這給手機廠商設計手機和選擇器件帶來了很大的難度。
因此,為了建立良好的生態,2003年,由ARM, Nokia, ST ,TI等公司成立的一個聯盟:MIPI聯盟。 MIPI(移動行業處理器接口)是MIPI聯盟發起的為移動應用處理器制定的開放標准。
MIPI(移動行業處理器接口)是Mobile Industry Processor Interface的縮寫。
創建MIPI目的很簡單,為了使手機內部的接口如攝像頭、顯示屏接口、射頻/基帶接口等標准化,從而減少手機設計的復雜程度和增加設計靈活性。
統一接口標准的好處是手機廠商根據需要可以從市面上靈活選擇不同的芯片和模組,更改設計和功能時更加快捷方便;同時帶來了更低功耗、更高數據傳輸率和更小的PCB占位空間,並且專門為移動設備進行的優化,因而更適合手機和智能平板的連接。
MIPI聯盟下面有不同的WorkGroup,分別定義了一系列的手機內部接口標准:比如攝像頭接口CSI、顯示接口DSI、射頻接口DigRF、麥克風/喇叭接口SLIMbus等。
已經完成和正在計划中的規范如下:
隨着飛思卡爾、英特爾、三星和愛立信等重量級廠商的加入,MIPI也逐漸被國際標准化組織所認可 。
MIPI是一個比較新的標准,其規范也在不斷修改和改進,目前比較成熟的接口應用有DSI(顯示接口)和CSI(攝像頭接口)。CSI/DSI分別是指其承載的是針對Camera或Display應用,都有復雜的協議結構。
MIPI CSI和DPI是MIPI標准的一種,因為MIPI在移動領域應用范圍太廣了,各種外圍設備都可以用它來傳輸信息。
所以,MIPI聯盟給不同的外設接口定義了版本名:
- CSI:for Camera
- DPI:for Display。
而且這些標准不單包括物理層的時序定義,還包括上層的傳輸協議/數據處理協議和應用層協議。
MIPI DSI規范
DCS (Display Command Set):DCS是一個標准化的命令集,用於命令模式的顯示模組。
DSI、CSI (Display Serial Interface, Camera Serial Interface。
- DSI 定義了一個位於處理器和顯示模組之間的高速串行接口。
- CSI 定義了一個位於處理器和攝像模組之間的高速串行接口。
D-PHY:提供DSI和CSI的物理層定義
DSI介紹
國際移動行業處理器(MIPI)聯盟正式發布了針對移動電話的顯示器串行接口規范(Display Serial Interface Specification,DSI)。
DSI基於MIPI的高速、低功率可擴展串行互聯的D-PHY物理層規范。基於SLVS的物理層支持高達1Gbps的數據速率,同時產生極小的噪聲。
基於核心D-PHY技術,DSI增加了功能以滿足移動設備顯示子系統的需要,包括低功率模式、雙向通信、16、18和24位像素的本國語言支持,並具備單一接口驅動4塊顯示屏的能力,以及對緩沖和非緩沖面板的支持。
MIPI-DSI是一種應用於顯示技術的串行接口,兼容DPI(顯示像素接口,Display Pixel Interface)、DBI(顯示總線接口,Display Bus Interface)和DCS(顯示命令集,Display Command Set),以串行的方式發送像素信息或指令給外設,而且從外設中讀取狀態信息或像素信息,而且在傳輸的過程中享有自己獨立的通信協議,包括數據包格式和糾錯檢錯機制。
MIPI-DSI具備高速模式和低速模式兩種工作模式,全部數據通道都可以用於單向的高速傳輸,但只有第一個數據通道才可用於低速雙向傳輸,從屬端的狀態信息、像素等格式通過該數據通道返回。時鍾通道專用於在高速傳輸數據的過程中傳輸同步時鍾信號。此外,一個主機端可允許同時與多個從屬端進行通信。
DSI分層結構
DSI分四層,對應D-PHY、DSI、DCS規范、分層結構圖如下:
- PHY 定義了傳輸媒介,輸入/輸出電路和和時鍾和信號機制。
- Lane Management層:發送和收集數據流到每條lane。
- Low Level Protocol層:定義了如何組幀和解析以及錯誤檢測等。
- Application層:描述高層編碼和解析數據流。
物理層
在接收到低速發送請求時,邏輯電路將待發送的指令或數據串行化,並控制輸出高擺幅低功耗電平進行低功耗傳送請求,隨后將指令或數據串行地加載到通道,接收端則識別傳送模式完成串行數據的並行轉換。當接收到高速請求后,電路發送高擺幅低功耗電平進行高速傳送請求,然后將待發送數據經過串行轉換之后驅動差分驅動模塊以低擺幅信號在通道上傳送,接收端則識別高速模式后正確地檢測其同步信號將高速串行數據完成串並轉換成功地接收。除此之外,總線控制權可在主機端與從屬端之間交換,發送端發送放棄總線請求,接收端接收請求之后控制總線發起應答,總的過程為TA(turn around)操作。當主機端需要獲取從屬端接收數據的狀況或者讀取顯示模塊的參數或顯示數據的時候,主機端發起TA操作,在從屬端發送數據完畢之后自動發起TA操作,歸還總線控制權。
按照D-PHY協議,在整個協議的物理層中,在主機端和從屬端之間采用的是同步連接,時鍾通道用於傳送高速時鍾,一個或多個數據通道用於傳送低功耗數據信號或高速數據信號。每一個通道都是利用兩根互連線實現主機端和從屬端的連接,並且支持高速模式和低速ESCAPE模式。在高速模式下,發送端同時驅動該通道僅有的兩根互連線,輸出低擺幅差分信號,例如200mV;低速模式下,發送端分別驅動互連線,各自輸出單端信號,但擺幅相對較大,例如1.2V。兩種模式下的互連線電平如下圖所示。
互連線兩端是驅動單元和接收單元。驅動單元有差分發送模塊(HS_TX)和低功耗單端發送模塊(LP_TX),接收單元有差分接收模塊(HS_RX)、低功耗單端接收模塊(LP_RX)。
差分發送模塊(HS_TX)以差分信號驅動互連線,高速通道上呈現兩種狀態:differential-0和differential-1。低功耗單端發送模塊(LP_TX)獨立地驅動兩根互連線,通道上則有四種不同的狀態:LP00、LP01、LP10和LP11。協議針對線路電平作了具體的定義並設置了三種工作模式:高速模式、控制模式和ESCAPE模式。如下表所示。通道默認為控制模式,線路處於STOP狀態。當通道需要進入高速模式或ESCAPE模式,發送模塊則需驅動線路為LP01或LP10向接收端發送請求。發送完請求序列之后便進行相應工作模式,發送LP11便可退出結束傳送回到STOP控制狀態。接收端需要時刻進行LP-RX接收,偵測線路電平明確通道的工作模式。
物理層釆用1對源同步的差分時鍾和4對差分數據線來進行數據傳輸。時鍾為高速時鍾通道,以DDR(雙邊沿采樣)的方式進行高速數據傳輸,由主機發送至從機。Lane0在HS(高速)模式時為單向數據通道,速度最大為1Gbps;在LP(低功耗)模式時為雙向數據通道,速度最大為10Mbps,主要用於傳輸命令參數以進一步降低功耗。Lane1~Lane3為高速單向數據通道,每天Lane最大提供1Gbps的帶寬,由主機發送至從機。物理層可能包含低功耗發送器(LP-TX)、低功耗接收器(LP-RX)、高速發送器(HS-TX)、高速接收器(HS-RX)。物理層傳輸的都是差分信號,LP模式時電壓擺幅為0-1.2V,此時功耗較小;HS模式時電壓擺幅為100mV-300mV,此時速度較快,功耗較大。
主機與從機之間是以同步方式進行傳輸數據的,並且是DDR模式,即雙邊沿觸發;這樣可以在時鍾頻率不變的情況下將數據傳輸
速率提高一倍,更加有效的利用帶寬資源。主機的物理層將通道管理層分發下來的數據串行地轉換成差分信號送到數據線上,同時產生差分時鍾,每個數據通道是並行發送的,最多為4個通道,最小為1個通道,根據帶寬需要而定。從機的物理層負責從差分串行比特流中捕獲0或1,即Dp比Dn高時為1,Dn比Dp高時為0,然后組成8位數據送到通道管理層。同時還可以從數據包中檢出水平同步信號和垂直同步信號。高速模式時序如下圖1所示,低功耗模式如下圖2所示。從圖中可以看出HS模式時需要依靠高速時鍾,LP模式是不需要高速時鍾,只需差分信號線即可,此時的時鍾由差分線Dp和Dn異或得到。
通道管理層
依據設計所設定N(N最多為4)個數據通道,該層在發送端將需要發送的數據按照通道次序分成N組輸送到相應的數據通道,使其經數據通道同時發送至從屬端。在接收端,該層需要做的是將接收到的N組數據組合在一起恢復成原始的數據序列。
主機的通道管理層負責把協議層的數據分發到每個通道上,發送時的通道分配關系如下圖所示。需要指出的是,每個通道不一定是同時傳輸完成的。相反的,從機的通道管理層負責把物理層送上來的數據組合好。
協議層
信息傳送采用數據包格式,包括長數據包和短數據包。發送數據的時候,將數據按照信息類型及內容進行壓包,完成ECC碼的生成和 CRC碼的添加。接收數據的時候,依據ECC碼和CRC碼就整個數據包進行檢錯糾錯,完成對包頭和數據內容的譯碼並合理輸送到應用層中。
DSI協議是一個基於數據包傳送的通信協議,主機端和顯示模塊之間傳送的命令和數據基本上都以數據包格式進行。DSI所定義的數據包有兩種:端數據包(short packet)和長數據包(long packet)。如下圖所示。短數據包主要用於傳輸命令、讀寫寄存器。長數據包主要用用於傳輸大量圖象數據或部分控制命令。
長數據包長度為665541字節,包括4byte數據包頭、065535byte有效數據、2byte數據包尾。短數據包長度為4byte,只有數據包頭。發送數據的時候,主機的協議層將根據協議進行打包,並生成ECC和CRC添加到數據包里面。相反的,從機的協議層負責把接收到的數據包根據ECC和CRC對數據包進行糾錯,並且把有用數據提取出來送到應用層。
應用層
根據應用模塊的需要,在發送端對發送的命令和數據進行初步編碼轉化為MIPI-DSI所規定的格式,而在接收端則將接收的數據還原為應用模塊所支持的數據格式及時序要求。
應用層模塊直接連接到顯示模塊,負責着與顯示模塊的通信。按照協議要求,接口電路支持命令模式和視頻模式,命令模式則是經過接口轉換之后主機端依然得以"命令+參數"格式對顯示模塊進行讀寫操作,而視頻模式下,主機端可以直接將顯示數據寫入顯示模塊,無需命令操作,實時顯示視頻。該模塊在設計的過程中應支持命令模式和視頻模式。
Command和Video模式
DSI兼容的外設支持Command或Video操作模式,用哪個模式由外設的構架決定。
- Command模式是指采用發送命令和數據到具有顯示緩存的控制器。主機通過命令間接的控制外設。Command模式采用雙向接口。
- Video模式是指從主機傳輸到外設采用時實象素流。這種模式只能以高速傳輸。為減少復雜性和節約成本,只采用Video模式的系統可能只有一個單向數據路徑。