??DisplayPort(簡稱DP)是一個由PC及芯片制造商聯盟開發,視頻電子標準協會(VESA)標準化的數字式視頻接口標準。該接口免認證、免授權金,主要用于視頻源與顯示器等設備的連接,并也支持攜帶音頻、USB和其他形式的數據。
??eDP ( Embedded DisplayPort )協議是針對DP(Display Port)應用在嵌入式方向架構和協議的拓展,所以eDP協議完全兼容DP協議。eDP多用做平板,筆記本電腦的液晶顯示屏的接口。
??DP具有三大基本架構包含影音傳輸的主要通道(Main Link)、輔助通道(AUX)、與熱插拔(HPD)。
Main Link:用來傳輸各種類型的視頻數據和音頻數據,Main Link由1~4對差分線構成,這些數據線是單向的,從source指向sink。Main Link具體需要幾對數據線,取決于屏幕的分辨率和顏色位數。
AUX:是一條獨立雙向半雙工的傳輸通道,它也是一對差分信號線。其數據傳輸速率1Mbps,用來傳輸配置參數與指令。該通道提供Link Services和Device Services。具體來說它與EDID及DPCD存儲器相連,并通過總線方式讀寫。其中EDID為顯示標識數據,用于存儲顯示器的相關參數。DPCD為DP接口配置數據,與鏈路管理層相連,用于鏈路層面的配置。
HPD:該項功能是可選的,實現中斷以及鏈路故障通知。
1.AUX硬件電路
??顯卡,顯示器,部分eDP屏的接口中AUX通道采用這種電路。發送端P端下拉到地,N端上拉到DP_PWR(一般3.3V)。接收端P端上拉到2.5~3.3V,N端下拉到地。
??實測接收端電容前波形:
??接收端電容后波形:
??SoC芯片,大部分eDP屏的接口中AUX通道采用這種電路。傳輸通道無上下拉。
??實測接收端波形:
2. DP AUX狀態機
??DP的輔助通道是雙向半雙工通道。Source源端是主設備(called AUX CH Requester) ,Sink接收端是從設備(called AUX CH Replier) 。
??AUX CH DPTX 狀態機如圖所示。
??AUX CH DPRX 狀態機如圖所示。
??當源端發送一個請求傳輸,終端就響應一個回復傳輸。
??DPTX進入S2狀態,處于“Talk Mode”,必須發送Request命令。
??發送Request命令后,DPTX進入S3狀態,處于“Listen Mode”,等待DPRX回復命令。回復接收完回到S2狀態。如果在400us內沒收到回復,也回到S2狀態。
??DPRX進入D1狀態,處于“Listen Mode”,必須等待一個Request命令。
??接收到Request命令后,DPRX進入D2狀態,處于“Talk Mode”,發送回復命令,回復完成后回到D1狀態。此外必須在300us內發送回復,如果超時也回到D1狀態。
3. AUX傳輸原理和波形
??DP AUX通道采用mancheter II編碼傳輸。
??如圖,mancheter II編碼內含一個自建時鐘,用兩位表示一位,比如‘10’(由高到低)表示1,‘01’(由低到高)表示0。
??AUX傳輸分為4個階段:
(1)預充電:以曼徹斯特II碼連續傳輸10到16個0
(2) AUX SYNC:以曼徹斯特II碼連續傳輸16個0,然后進入SYNC END,連續傳輸2位高電平和2位低電平(實測AUX_CH_n端波形是AUX_CH_p端波形相反)
(3) 發送數據:發送的數據量是字節8bit的整數倍
(4) AUX STOP:連續傳輸2位高電平和2位低電平,在STOP后立即釋放AUX CH
??需要注意的是SYNC END和SYNC STOP是連續兩個高電平,兩個低電平,這在Manchester II code里是非法的,接收端必須能識別出來。
??AUX交互過程,每次傳輸都是先由Source端先按上述4個階段發送命令,地址或數據,然后再由Sink端按上述4個階段發送響應或數據。
4.AUX傳輸命令
??從Source端發起的事務稱為請求事務,從Sink端返回的事務稱為回復事務。所有事務必須發送”AUX SYNC”命令為開頭,以’AUX STOP’命令作為結束。
??傳輸時,一個4-bits命令COMM3:0先發送,接著發送一個20位的地址ADDR19:0,DisplayPort 功能、狀態和控制功能直接映射到 20 位地址空間。在命令和地址傳輸之后,必須傳輸數據字節,支持burst模式,最大為16bytes。
??傳輸類型主要分兩種,一種是Native AUX傳輸,另一種是I2C-over-AUX傳輸。由發請求事務時COMM3:0的bit3決定。
4.1命令COMM3:0定義
(1)請求事務定義:
? bit 3 = Native AUX or I2C_over_AUX
?? 0= I2C_over_AUX
?? 1= Native AUX
? bits2:0 = 請求類型
?? 000 寫
?? 001 讀
(2)回復事務定義:
? bits1:0
?? 00 = AUX_ACK
???對寫事務而言,所有數據字節已經寫入
???對讀事務而言,接下來準備回復讀請求。當并非所有字節都可用時,DPRX可以在發送請求的數據字節總數發送‘STOP’。
?? 01=AUX_NACK
???對寫事務而言,
?????AUX NACK 后面必須跟一個數據字節“M”,其中“M”表示成功寫入的數據字節數。
?????當 DPTX 正在寫入 DPRX 不支持的 DPCD 地址時,DPRX 應回復 AUX NACK ,并且“M”等于 0。
???對讀事務而言,
?????DPRX 接收到對不受支持的 DPCD 的AUX 讀取請求地址時,必須回復 AUX ACK 并且數據設為零,而不是回復 AUX NACK
?? 10=AUX_DEFER
???未準備好寫入/讀取回復, DPTX 可以稍后重試。
??11 = reserved
4.2 Native AUX 請求傳輸規則
寫請求示例波形
讀請求示例波形
(1)寫請求事務
??對于寫入事務 (COMM3:0 = 1000),請求事務的字節數 = LEN7:0+1,寫完數據后即‘STOP’
(2)讀請求事務
??對于讀取事務 (COMM3:0 = 1001),在LEN7:0后立即‘STOP’
4.3 Native AUX 回復傳輸規則
寫回復示例波形
讀回復示例波形
(1)對寫請求的回復事務必須以下列三個條件之一結束:
(a)DPRX 已收到寫入請求,并已完成寫入。 DPRX必須回復AUX _ACK
(b)DPRX 已收到寫入請求,但尚未完成寫入。 DPRX必須回復 AUX_NACK,然后,寫入的數量字節 M 作為 DATA0_7:0。
(c)DPRX 已收到寫入請求,但尚未準備好接收寫入請求。DPRX必須回復 AUX_DEFER。
(2)對讀取請求的回復事務必須以以下四個條件之一結束:
(a)DPRX已收到讀取請求,但尚未準備好回復讀取的數據。 必須通過發送 AUX DEFER 作為第一個 COMM3:0 來結束事務。
(b)DPRX已收到讀取請求并準備就緒。 必須通過發送 AUX_ ACK 作為第一個命令來回復,發回請求的字節數.
(c)DPRX接收到一個讀取請求,并且已準備好一些(M + 1 個字節)但不是全部請求的數據字節。 必須通過發送 AUX_ACK 作為第一個命令來回復,發回可以回復的字節數
(d)DPRX已收到 N 個字節的讀取請求并準備就緒。 必須以 AUX _ACK 作為第一個命令進行回復,發回請求的字節數。
4.4 I2C-over-AUX傳輸
??發請求事務時COMM3:0的bit3為0,則表示該請求是I2C-over-AUX傳輸。其他bit定義如下圖。
??DP協議上規定了I2C-over-AUX傳輸的命令,這個指令相對比較靈活的。因為I2C傳輸過程較長,會涉及多個字節傳輸。DP協議中提供了一些傳輸示例,如下圖所示。
??因此在COMM3:0中會有bit2(MOT bit)指示是否在I2C傳輸過程中。bit2為1表示在I2C傳輸過程中,如果是最后一個字節傳輸結束,bit2需為0。
??I2C-over-AUX傳輸命令仍是COMM3:0表示,只是緊跟的4bit固定為0,不再是地址的一部分。I2C傳輸的地址是16bit。I2C回復與Native AUX回復類似,但請求命令COMM3:0種類更多,以下是常見的幾種。
(1)COMM3:0 = 0100(十進制4),I2C寫,MOT bit為1,請求中帶length
(2)COMM3:0 = 0100(十進制4),I2C寫,MOT bit為1,請求中無length
(3)COMM3:0 = 0101(十進制5),I2C讀,MOT bit為1,請求中帶length
(4)COMM3:0 = 0101(十進制5),I2C讀,MOT bit為1,請求中無length
(5)COMM3:0 = 0001(十進制1),I2C讀,MOT bit為0,請求中無length