Rockchip RK3399 - DRM HDMI介绍
----------------------------------------------------------------------------------------------------------------------------
开发板 :NanoPC-T4
开发板
eMMC
:16GB
LPDDR3
:4GB
显示屏 :15.6
英寸HDMI
接口显示屏
u-boot
:2023.04
linux
:6.3
----------------------------------------------------------------------------------------------------------------------------
在《Rockchip RK3399 - DRM
驱动程序》我们已经介绍过了,RK3399
有两个VOP
,均可以支持HDMI
、eDP
、DP
、MIPI DSI0
、MIPI DSI1
显示接口,本节我们选择HDMI
作为分析的对象。
一、HDMI
介绍
1.1 概述
HDMI
全称(High Definition Multimedia Interface
)高清多媒体接口,支持在单线缆上传输全数字高清视频和多声道音频。
HDMI
基于TMDS
协议传输,主要用于DVD
, 机顶盒等音视频source
到TV
,显示器等sink
设备的传输。
HDMI
向下兼容DVI
,但是DVI
(数字视频接口)只能用来传输视频,而不能同时传输音频,这是两者最主要的差别。
1.1.1 版本变更
HDMI 1.0
版本于2002
年发布,最高数据传输速度为5Gbps
;
HDMI 1.1
版本版本2004
年5月分布,新增对DVD
音频的支持;
HDMI 1.2
版本于2005
年8
月推出,很大程度上解决了HDMI 1.1
支持的分辨率较低、同电脑设备兼容性较差等问题。1.2
版像素时钟运行频率达到165MHz
,数据量达到4.95 Gbps
,因此可以实现1080P
。可以认为1.2
版解决的是电视的1080P
和电脑的点对点问题。
2006
年6
月HDMI 1.3
更新,带来最大的变化是将单链接带宽频率提升到340MHz
,也就能让这些液晶电视获得10.2Gbps
的数据传输量,1.3
版的线是有4对传输通道组成,其中1对通道是时钟通道,另外3对是TMDS
通道(最小化传输差分信号),他们的传输速度分别为3.4GBPS
。那么3对就是3*3.4=10.2GPBS
更是能将HDMI 1.1、1.2
版本所支持的24
位色深大幅扩充至30
位、36
位及48
位(RGB
或YCbC
r);
HDMI 1.4
版本已经可以支持4K
了,但是受制于带宽10.2Gbps
,最高只能达到3840×2160
分辨率和30FPS
帧率;
HDMI 2.0
的带宽扩充到了18Gbps
,支持即插即用和热插拔,支持3840×2160
分辨率和50FPS
、60FPS
帧率。同时在音频方面支持最多32
个声道,以及最高1536kHz
采样率。HDMI 2.0
并没有定义新的数据线和接头、接口,因此能保持对HDMI 1.x
的完美向下兼容,现有的二类数据线可直接使用。HDMI 2.0
并不会取代HDMI 1.x
,而是基于后者的增强,任何设备要想支持HDMI 2.0
必须首先保证对HDMI 1.x
的基础性支持。
HDMI 2.0a
的变化并不大,它的主要更新只有一个地方,那就是加入了对HDR
格式传输的支持,能够显著增强图像质量。
HDMI 2.0b
兼容所有HDMI
之前的规格版本,与HDMI 2.0a
并没有太大区别。
而2017
年发布的HDMI 2.1
标准的理论带宽可达48Gbps
。
1.1.2 术语
在介绍HDMI
时,我们会提到大量的专业术语:
HDCP
:High-bandwidth Digital Content Protection
版权保护相关的,通过IIC
获取;EDID
:Extended Display Identification Data
扩展显示标识数据,包含有关显示器及其性能的参数,包括供应商信息、最大图像大小、颜色设置、厂商预设置、频率范围的限制以及显示器名和序列号的字符串等;DDC
:Display Data Channel
显示数据通道,其实就是IIC
通道,用来获取EDID
、HDCP
密钥等内容;HDP
:Hot Plug Detect
热插拔检测;CEC
:Consumer Electronics Control
用户电气控制,CEC
可以控制从设备的一些状态,即遥控器功能;TMDS
:Transition Minimized Differential Signaling
最小化传输差分信号,一种差分传输技术;HEAC
:HDMI Ethernet and Audio Return Channel
以太网和音频返回,HEAC
需要额外的phy
才能支持;Source
:A device with an HDMI output
;Sink
:A device with an HDMI input
;CTS
:Compliance Test Specification
。
1.2 HDMI
框图
HDMI
系统架构由source
端和sink
端组成:source
是指发送HDMI
信号的一侧,sink
是指接收HDMI
信号的一侧。
以上是HDMI
的结构图,从中我们大致可以看出HDMI
信号的组成部分:
-
四路差分信号,包括三路
TMDS Data
信号和一路TMDS Clock
信号。TMDS
信号不仅仅用于传输video
信号,还传输audio
和辅助信息; -
一个
DDC
通道用于在source
端和sink
端交换状态, 用于告知source
端,sink
端具体可以接收什么样的数据; -
HDP
用于热插拔检测, 连接好过后sink
端会发送一个拉高的信号,source
端在接收到信号过后会向sink
端开始发送数据; -
CEC
是用户电气控制,一般用作遥控;CEC
是HDMI
可选协议; -
HEAC
以太网和音频返回;HEAC
是HDMI
可选协议;
因此,我们可以推断出:
- 要想传输音视频,只需要
TMDS
信号即可; - 要想使用遥控器,需要
CEC
; - 要想做到分辨率自适应屏幕,需要
DDC
; - 要支持热插拔,需要实现
HPD
;
1.2.1 物理结构
HDMI
有A
、B
、C
、D
、E
五种引脚类型,目前常用的是Type A
:
其中:
A
:HDMI Type A
接口共有19pin
,宽度为13.9
毫米,厚度为4.45
毫米;B
:HDMI Type B
接口采用29pin
,宽度21
毫米;C
:HDMI Type C
常称为Mini HDMI
,它主要是为小型设备设计的;D
:HDMI Type D
是最新的接口类型,尺寸进一步缩小;E
:主要用于车载娱乐系统的音视频传输。由于车内环境的不稳定性,HDMI Type E
在设计上具备抗震性、防潮、耐高强度、温差承受范围大等特性;
1.2.2 引脚分布
其中HDMI Type A
接口引脚分布如下:
其中:
- 1-9:是
TMDS data
传输用到的引脚,共有三组; 10-12
:是TMDS clock
传输用到的引脚,共有一组;- 13:
CEC
引脚; - 14:保留;
- 15,16:
DDC
的引脚,DDC
是基于I2C
协议传输,故引脚为SCL
和SDA
; - 17:
DDC/CEC
地; - 18:
5V
电源; - 19:
HPD
引脚,用于热插拔检测;
1.3 TMDS
协议
TMDS
(Transition TYPE_Cmized Differential Signaling
)最小化传输差分信号。是美国Silicon Image
公司开发的一项高速数据传输技术。
TMDS
差分传输技术使用两个引脚来传输一路信号,利用这两个引脚间的电压差的正负极性和大小来决定传输数据的数值(0 或 1)。
TMDS
传输系统分为两个部分:发送端source
和接收端sink
。TMDS
链路包括3个传输数据的通道和1个传输时钟信号的通道;
- 发送端对这些数据进行编码和并/串转换,再将数据分别分配到独立的传输通道发送出去;
- 接收端接收来自发送端的串行信号,对其进行解码和串/并转换,然后发送到显示器的控制端;
1.3.1 TMDS
链路
TMDS
链路如下图所示:
首先我们从图上一眼看过去就可以分为两半边,左边是源,右边是接收,可以分别看作发送与接收端。
从发送端左边看,分别有蓝、绿、红三个数据通道,加一个时钟通道(像素时钟);
(1) 时钟通道:主要就是为了将我们传输数据与接收数据都匹配在同一时钟下,使整个系统同步在时钟网络,不容易出错;
(2) 数据通道:分别有蓝、绿、红三个数据通道;
-
每个通道都有一个
8
位的像素位传输颜色数据信息; -
每个通道都有一个两比特的数据位宽;
-
在蓝色通道中用于传输
HSYNC
、VSYNC
; -
在绿色通道中用于传输
CTL0、CTL1
; -
在红色通道中用于传输
CTL2
、CTL3
;
-
-
每个通道都有一个4比特的数据位宽用于传输我们的音频信号;
(3) 编码阶段:Encoder
是编码,将8bit video
的并行数据变成了10bit
的串行数据,通过串行传到我们的接收端,这要求我们的串行数据速率是实际像素时钟速率的10倍。在接收端与发送端相反,我们需要将串行数据转换为并行数据并进行解码恢复信号。
此外TMDS
不仅仅是对video
进行编码,还包括audio
和控制信号。
1.3.2 TMDS
传输周期
TMDS
链路将数据传输分为了3个阶段:
Video Data Period
:顾名思义,这个阶段用于传输实际有效的视频图像数据,sourc
端给sink
端发送图像数据,sink
端显示;Data Island Period
:这个阶段用于传输音频或者辅助数据等;Control Period
:当没有视频图像数据和音频数据,或者辅助数据的时候,都处于这个阶段;
TMDS
传输四种类型数据:
Control
:控制信号,主要用于控制接下来传输的是Data Island
还是Video Data
;通过Channel1
和2
的D[1:0]
传输,占用4bit
;Data Island
:数据包,各种类型的包信息,包括音频数据包(通过3个Channel
的D[3:0]
传输,占用12bit
)、辅助数据包等;Video Data
:视频像素数据,HDMI
可以传输RGB
和YUV
两种格式的像素数据;比如R,G,B
分别通过Channel2,1,0
传输,每个颜色8bit
,共24bit
;HSYNC
,VSYNC
:使用Channel0
的D[1:0]
传输,占用2bit
;
举了个例子,以720x480p
的图像帧为例:
上图:
- 蓝色部分是
Data Island Period
; - 深灰色部分是有效的图像数据
Video Data Period
; - 浅灰色是
Control Period
;
可以看到,在有效图像部分,是720x480
的宽度;没有传送Data Island Period
的时候,都在传送Control Period
;
左边是Control period
:传输有HSYNC
、VSYNC
与Preamble
。
Channel0
传输HSYNC
,VSYNC
;Channel1[1:0]
和Channel2[1:0]
传输Preamble
,用来判断接下来输入的是Video Data
还是Data Island
;
中间是Data Island period
:传输有HSYNC
、VSYNC
,以及两个Packet Header
与Packet
,占用三通道共12bit
输入;
Channel0[3:2]
用于传输Data Island Header
(包头);Channel1[3:0]
与Channel2[3:0]
用于传输Data Island Content
(包内数据);
右边是Video Data period
:视频信号经过编码生成三路TMDS
数据通道,共24
位视频流数据,输入到HDMI Tx
中。24位像素的视频信号通过TMDS
通道传输,将每通道8位信号转换为10位,在每个10位像素周期传送一个最小化的信号序列,视频信号将被调制为TMDS
信号传送出去。
(1) Control Period(preamble)
在Data Island
或者Video Data
传输周期之前,每一个TMDS
通道包含2bit
的控制数据,一共6位控制数据。
TMDS Channel | D0 | D1 |
---|---|---|
0 | HSYNC | VSYNC |
1 | CTL0 | CTL1 |
2 | CTL2 | CTL3 |
每个TMDS
通道使用了D[1:0]
共2bit
,采用2bit
到10bit
的编码方式。在每个Control Period
的最后阶段,CTL0
、CTL1
、CTL2
、CTL3
组成的文件头说明下一个周期是Data Island
还是Video Data
;
CTL0 | CTL1 | CTL2 | CTL3 | 数据周期类型 |
---|---|---|---|---|
1 | 0 | 0 | 0 | Video Data |
1 | 0 | 1 | 0 | Data Island |
(2) Video Data Period
Video Data Period
用来传输视频线的像素,每个 Video Data Period
以报文头为前导,在报文头之后,视频数据周期以两个字符开始,做为视频前导保护边界。对于数据周期,没有末尾保护边界。
(3) Data Island Period
Data Island
用来携带音频和辅助数据的报文。辅助数据包括Info frame和
其他用于音视频信息描述的数据。每个Data Island
以2个字符长度的前导保护边界开始,并以2个字符宽度的末尾保护边界结束。
Channel0 | Bit0 | HSYNC |
---|---|---|
Channel0 | Bit1 | VSYNC |
Channel0 | Bit2 | packet header |
Channel1 | Bit3:0 | packet |
Channel2 | Bit3:0 | packet |
1.4 电路原理图
接下来我们介绍NanoPC-T4
开发板HDMI
接线原理图。
1.4.1 RK3399
侧
RK3399
有一个HDMI
显示接口(HDMI TX
);
-
支持
HDMI 2.0a
; -
支持
4K@60Hz
显示; -
支持
HDCP 1.4/2.2
。
电路接线图如下:
HDMI_AVDD_0V9_1
、HDMI_AVDD_0V9_1
电源由VCCA0V9_S3
提供,可以看做是常供电。
HDMI_AVDD_1V8
由VCC1V8_S3
供电,同样可以看做是常供电;
1.4.2 HDMI
接口侧
其中:
DDC_SCL
:连接到RK3399
的GPIO2_B0/VOP_CLK/CIF_VSYNC/I2C7_SC
引脚;DDC_SDA
:连接到RK3399
的GPIO2_A7/VOP_D7/CIF_D7/I2C7_SDA
;PORT_CEC
:连接到RK3399
的GPIO4_C7/HDMI_CECINOUT/EDP_HOTPLUG
;
1.4.3 电源信号
电源VCCA0V9_S3
由RT9041B-10GE
提供的,这是一款稳压器IC
,其输入端为VCC3V3_S5
,RT9041B-10GE
由VCC1V8_S3
使能,VCC1V8_S3
作为使能引脚EN
的输入端;因此VCCA0V9_S3
可以看做是常供电,更多内容可以参考《Rockchip RK3399 - USB
基础》;
二、EDID
2.1 概述
EDID
:全称是Extended Display Identification Data
(外部显示设备标识数据);VGA
、DVI
的EDID
由主块128字节组成,HDMI
的EDID
增加扩展块(128字节),扩展块的内容主要是和音频属性相关的,DVI
和VGA
没有音频,HDMI
自带音频,扩展块数据规范按照CEA-861x
标准定义,未来可能增加到512
或256
的整数倍。
其中包含有关显示器及其性能的参数,包括供应商信息、最大图像大小、颜色设置、厂商预设置、频率范围的限制以及显示器名和序列号的字符串等等。形象地说,EDID
就是显示器的身份证、户口本、技能证书等证件的集合,目的就是告诉别人我是谁,我从哪来,我能干什么。
EDID
并非古而有之,在古老的CRT
时期是没有EDID
这个概念的,那为什么后来会有呢?
因为随着显示设备的发展,显示器的种类越来越多,模拟的、数字的、普屏的、宽屏的、17
寸、19
寸、22
寸……这让PC
傻了眼,分辨率和时序的种类太多了,而每种显示器又不可能支持所有的分辨率,那怎么知道该给显示器一个什么样的分辨率啊?显示出的效果是最佳效果吗?
不仅如此,随便输出一个分辨率还有损坏显示器硬件的可能,这可太危险了。于是,EDID
临危受命,担当起显示器和PC
之前的传话筒。
-
“
PC
你好,我是A
显示器,我能显示N
种分辨率,最佳分辨率是XXX
”。 -
“显示器你好,收到你的信息,现在就按最佳分辨率给你输出”。
这下大家明白了吧,EDID
就是为了能让PC
或其他的图像输出设备更好的识别显示器属性而出现的。
需要注意的是:EDID
信息是通过DDC
通道传输的,并且每个显示器可能有多个EDID
.
现在的显示器功能很强大,通常都提供多种视频接口,常见的有DVI
、VGA
、HDMI
、Display Port
等,由于每种接口的特性和带宽不同,使得不同接口的EDID
也不同。使用哪个接口,PC
读到的就是哪个接口的EDID
。
2.2 主块详解
考虑到EDID
信息字节太多,我们不可能将所有字节表示的含义介绍一遍。这里我们我们仅仅挑选一些重要的字节进行介绍;
2.2.1 Header
在EDID
的开头八个字节为EDID
的开始标志,简称头,固定为:
0H | 01H | 02H | 03H | 04H | 05H | 06H | 07H |
---|---|---|---|---|---|---|---|
00 | FF | FF | FF | FF | FF | FF | 00 |
2.2.2 Vendor
/ Product Identification
这十个字节表示产品ID和制造商信息。详细如下:
08H |
09H |
0AH |
0BH |
0CH |
0DH |
0EH |
0FH |
10H |
11H |
---|---|---|---|---|---|---|---|---|---|
制造商名称 |
产品代码 |
产品序列号 |
制造周 |
制造年份 |
制造商名称:3个字母组成,基于压缩的ASCII码见下表,例如“00001=A”… …”11010=Z”。这两字节排列如下:
地址 | 位 | |||||||
bit1 | bit2 | bit3 | bit4 | bit5 | bit6 | bit7 | bit8 | |
08H | - | (4 | 3 | 2 | 1 | 0) | (4 | 3 |
字符1 | 字符2 | |||||||
09H | 2 | 1 | 0) | (4 | 3 | 2 | 1 | 0) |
字符2 | 字符3 |
A | B | C | D | E | F | G | H | I | J | K | L | M |
00001 | 00010 | 00011 | 00100 | 00101 | 00110 | 00111 | 01000 | 01001 | 01010 | 01011 | 01100 | 01101 |
N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
01110 | 01111 | 10000 | 10001 | 10010 | 10011 | 10100 | 10101 | 10110 | 10111 | 11000 | 11001 | 11010 |
产品代码:固定为4位16进制数,即两个字节,为客户提供,直接填写。
产品序列号:即产品的流水号(数值型),直接转成16进制或以ASCII格式转换。序列号也可用字符型,在后面DTD部分定义。
生产周:即在当年中的生产周,范围1~52,注意0为无效值。
生产年份:规定1990开始计算,即1990年为0,然后递增计算。
2.2.3 EDID Structure Version
/ Revision
字节 | EDID版本及修改 | 备注 |
---|---|---|
12H | 版本号 | |
13H | 修改号 |
2.2.4 Basic Display Parameters
/ Features
5 | 字节 | 基本的显示参数/特征 | |
---|---|---|---|
14H | 1 | 视频信号定义 | 见下表 |
15H | 1 | 最大水平图像尺寸 | cm |
16H | 1 | 最大垂直图像尺寸 | cm |
17H | 1 | 显示传输特性(Gamma) | (gamma x 100)-100,[1.00→3.55] |
18H | 1 | 电源管理标准(DPMS) | 见下表 |
视频信号定义:
字节 |
位 |
类型 |
详细描述 |
|
---|---|---|---|---|
14H |
7 |
模拟/数字信号 |
模拟= 0,数字= 1 |
|
如bit7=0,即模拟信号,bit6~0定义如下: |
||||
6 |
信号电平[6:5] |
参阅下列定义。 Bit6 Bit5 Operation 0 0 0.700,0.300(1.000Vp-p) 0 1 0.714,0.286(1.000Vp-p) 1 0 1.000,0.400(1.400Vp-p) 1 1 0.700,0.000(0.700Vp-p) |
||
5 |
||||
4 |
setup |
一般为0 |
||
3 |
同步输入支持[3] |
如果设置1, 支持同步分离信号; |
||
2 |
同步输入支持[2] |
如果设置1, 支持同步复合信号(在水平同步行信号上); |
||
1 |
同步输入支持[1] |
如果设置1, 支持同步SOG信号; |
||
0 |
同步输入支持[0] |
如果设置1, 场同步扫描起点,脉冲须在复合同步信号或同步SOG信号被使用; |
||
如bit7=1,即数字信号,bit6~0定义如下: |
||||
6-1 |
保留 |
|||
0 |
DFP 1.x |
If set = 1, Interface is signal compatible with VESA DFP 1.x TMDS CRGB, 1 pixel / clock, up to 8 bits / color MSB aligned,DE active high |
电源管理标准(DPMS
):
字节 |
位 |
特点支持 |
详细描述 |
---|---|---|---|
18H |
7 |
Standby待机 |
是否支持Standby功能 |
6 |
Suspend挂起 |
是否支持Suspend功能 |
|
5 |
Active Off/Very Low Power |
是否支持Off Mode功能 |
|
[4:3] |
显示类型[4:3] |
Bit4 Bit3 解释 0 0 黑白/灰度显示 0 1 RGB颜色显示 1 0 非RGB多彩色显示,如RGY 1 1 没有定义 |
|
2 |
标准默认颜色空间sRGB |
如果置1,显示将使用默认的颜色空间sRGB作为基色 |
|
1 |
推荐分辨率模式 |
如果置1,推荐分辨率为第一个详细描述的时序(Detailed Timing) |
|
0 |
支持GTF |
如果置1,支持GTF标准分辨率 |
2.2.5 Color Characteristics
字节 | 颜色特征 | 基于CIE出版15.2测定空间 |
---|---|---|
19H | Red / Green Low Bits红绿场xy坐标低2位值 | Rx1 Rx0 Ry1 Ry0Gx1 Gx0 Gy1 Gy0 |
1AH | Blue / White Low Bits蓝白场xy坐标低2位值 | Bx1 Bx0 By1 By0Wx1 Wx0 Wy1 Wy0 |
1BH | Red_x红场画面x坐标 | Red_x bits 9 →2 |
1CH | Red_y红场画面y坐标 | Red_y bits 9 →2 |
1DH | Green_x绿场画面x坐标 | Green_x bits 9 →2 |
1EH | Green_y绿场画面y坐标 | Green_y bits 9 →2 |
1FH | Blue_x蓝场画面x坐标 | Blue_x bits 9 →2 |
20H | Blue_y蓝场画面y坐标 | Blue_y bits 9 →2 |
21H | White_x白场画面x坐标 | White_x bits 9 →2 |
22H | White_y白场画面y坐标 | White_y bits 9 →2 |
2.2.6 Established Timings
Established Timings
(内建时序,描述了分辨率和刷新率)表示显示器是否支持一些通用时序。若支持,则相应的分辨率位为1。
字节 |
位 |
描述 |
信源 |
---|---|---|---|
23H |
7 |
720 x 400 @ 70Hz |
IBM, VGA |
6 |
720 x 400 @ 88Hz |
IBM, XGA2 |
|
5 |
640 x 480 @ 60Hz |
IBM, VGA |
|
4 |
640 x 480 @ 67Hz |
Apple, Mac II |
|
3 |
640 x 480 @ 72Hz |
VESA |
|
2 |
640 x 480 @ 75Hz |
VESA |
|
1 |
800 x 600 @ 56Hz |
VESA |
|
0 |
800 x 600 @ 60Hz |
VESA |
|
24H |
7 |
800 x 600 @ 72Hz |
VESA |
6 |
800 x 600 @ 75Hz |
VESA |
|
5 |
832 x 624 @ 75H z |
Apple, Mac II |
|
4 |
1024 x 768 @ 87Hz(I) |
IBM |
|
3 |
1024 x 768 @ 60Hz |
VESA |
|
2 |
1024 x 768 @ 70Hz |
VESA |
|
1 |
1024 x 768 @ 75Hz |
VESA |
|
0 |
1280 x 1024 @ 75Hz |
VESA |
|
25H |
7 |
1152 x 870 @ 75Hz |
Apple, Mac II |
6-0 |
保留 |
比如:0x2F 0xCF 0x00
表示的含义如下:
-
640 x 480 @ 60Hz (IBM, VGA)
; -
640 x 480 @ 72Hz (VESA)
; -
640 x 480 @ 75Hz (VESA)
; -
800 x 600 @ 56Hz (VESA)
; -
800 x 600 @ 60Hz (VESA)
; -
800 x 600 @ 72Hz (VESA)
; -
800 x 600 @ 75Hz (VESA)
; -
1024 x 768 @ 60Hz (VESA)
; -
1024 x 768 @ 70Hz(VESA)
; -
1024 x 768 @ 75Hz (VESA)
; -
1280 x 1024 @ 75Hz (VESA)
;
2.2.7 Standard Timings
标准时序是对内建时序的扩充,最多可描述8个时序,每2个字节描述一种时序,这些时序都没有包含Established Timings
中;
字节 |
位 |
描述 |
源 |
---|---|---|---|
26H |
(行有效像素/8)-31 |
||
27H |
7,6 5-0 |
Aspect Ratio Bit7 Bit6 生效 00 1:1 01 4:3 10 5:4 11 16:9 刷新率-60 |
Aspect Ratio=行像素/列像素 范围是;60-123Hz |
28H-29H |
同上 |
同上 |
|
2AH-2BH |
同上 |
同上 |
|
2CH-2DH |
同上 |
同上 |
|
2EH-2FH |
同上 |
同上 |
|
30H-21H |
同上 |
同上 |
|
32H-33H |
同上 |
同上 |
|
34H-35H |
同上 |
同上 |
比如:0x71 0x40
表示的含义如下:
- 行有效像素为:
(0x71+31)*8=1152
; - 宽高比为:
4:3
,所以列有效像素为1152*3/4=864
; - 刷新率为:
0+60=60Hz
;
2.2.8 Detailed Timings
详细时序这个区域可以说是整个EDID
中和我们关系最密切,也是我们需要了解最多和改动最频繁的区域。
它分为4个块(Block),每个块占用18个字节,一共72个字节。
每个块既可以是一个时序说明(Timing
)也可以是一个显示器描述符(Monitor Descriptor
)。
需要注意的是:Block 1
必须是时序说明;
- 对于
EDID
1.4及以上版本,第一个详细时序它描述的是显示器的最佳时序; - 对于
EDID
1.4以下版本,如果字节0x18
位[1]的值为1则表示第一个详细时序它描述的是显示器的最佳时序。
参考文章
[1] [Rockchip_Developer_Guide_HDMI_CN
]
[2] Linux
驱动学习--HDMI
开发(一) 相关协议及传输原理的介绍
[3] LINUX
驱动学习--HDMI
开发(二)HDMI
驱动源码分析(RK
平台)
[4] HDMI
协议介绍
[5] HDMI
接口电路设计
[7] HDMI
接口协议
[8] HDMI
协议1.4 好文推荐!
[11] LVDS+HDMI
输出特殊分辨率800*1280
竖屏
[12] Linux DRM
那些事-HDMI
接口EDID
获取
[13] EDID
的简介和解析