HDMI

定义

HDMI(高清晰度多媒体接口)主要用来传输视频、音频信号,它有type-a/b/c 3种形式的物理接口,最常用的是type-a的,包含19个引脚

引脚号 信号名称 功能描述
1 TMDS Data2+ 视频/音频数据通道2(差分对正极)
2 TMDS Data2- 视频/音频数据通道2(差分对负极)
3 TMDS Data1+ 视频/音频数据通道1(差分对正极)
4 TMDS Data1- 视频/音频数据通道1(差分对负极)
5 TMDS Data0+ 视频/音频数据通道0(差分对正极)
6 TMDS Data0- 视频/音频数据通道0(差分对负极)
7 TMDS Clock+ 像素时钟信号(差分对正极)
8 TMDS Clock- 像素时钟信号(差分对负极)
9 CEC 消费电子控制信号(设备联动控制)
10 HPD (Hot Plug) 热拔插检测(显示器插入时拉高至3.3V/5V)
11-12 SDA/SCL DDC(I2C)通信,用于读取EDID
13 Utility/HEAC+ 保留引脚(部分版本用于音频回传ARC+)
14 +5V Power Source为Sink提供5V电源(最大50mA)
15-16 HEC/HEAC- 保留引脚(HDMI 1.4+用于以太网或ARC-)
17 DDC/CEC Ground 信号地
18 Shield TMDS通道屏蔽层
19 Reserved 保留引脚

关键信号

TMDS(Transition Minimized Differential Signaling)

  • 作用:传输视频、音频和辅助数据
  • 组成:
    • 3组差分对(Data0/1/2) + 1组时钟差分对(Clock)
    • 编码方式:8b/10b(将8位数据转为10位编码,降低直流偏移)

DDC(Display Data Channel)

  • 协议:基于I2C,用于读取显示器的EDID(Extended Display Identification Data)扩展显示标识数据
  • 内容:包含显示器支持的分辨率、色彩空间、音频格式等

CEC(Consumer Electronics Control)

  • 功能:通过单线实现设备联动(如电视开机时自动打开机顶盒)
  • 示例指令:Power OnInput Switch

HPD(Hot Plug Detect)

  • 这个信号作为HDMI Source端判断是否连接HDMI Sink设备,从而是否进行信号传输的依据

  • 触发条件:显示器插入时会拉高Source端的电平,Source端会通过DDC读取显示器的EDID,如果EDID在Source端显卡的工作范围内,则Source端开始在TMDS引脚上传输数据

工作流程

  1. 物理连接:显示器插入后,HPD信号拉高
  2. EDID读取:源设备通过DDC获取显示器参数
  3. 分辨率协商:选择双方支持的最佳模式
  4. HDCP握手(可选):完成内容保护认证
  5. 数据传输:视频/音频通过TMDS通道实时传输

in和out的区别

hdmi通信时,一般2个设备会被分为hdmi-in和hdmi-out,in一般只需要TMDS发送数据、out接收数据。所以有的地方也能看到hdmi-in叫做hdmi-rx;hdmi-out叫做hdmi-tx

SoC内一般in和out是独立的2个IP核,同一个hdmi一般连接到其中一个ip核,所以我们看到的hdmi in/out接口是分开的

  • HDMI-out(TX) IP核
    • 功能:负责视频/音频的TMDS编码(TX)、DDC EDID读取、HPD检测、CEC控制等
    • 典型模块:
      • TMDS TX编码器(3数据通道 + 1时钟通道)
      • DDC主控制器(I2C)
      • PHY接口(可能集成或外挂)
  • HDMI-in(RX) IP核
    • 功能:负责TMDS解码(RX)、DDC EDID提供、HPD触发等
    • 典型模块:
      • TMDS RX解码器(支持自适应均衡)
      • DDC从设备响应
      • 可能集成视频处理单元(如色彩空间转换)

hdmi-in

image-20250715162302245

可以把hdmi-in当成摄像头一样的设备,因为它本身也是一种视频输入设备,并且输入的视频要对接到v4l2框架或者TIF框架

  • 对应代码:
1
kernel-6.1/drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c
  • 设备树:
1
2
3
rk3588-evb7-lp4-v10-hik-p1009.dts	(开发板的配置)
->rk3588-evb7-lp4.dtsi (节点修改)
->rk3588.dtsi (原始节点定义)

EDID

windows如何导出接收到的某个显示器的edid?

  • 先在注册表找到对应的显示设备,然后用下面的指令导出
1
PS C:\Users\liruiqi5\Desktop\edid> reg export "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\LEN60EA\4&247c9d7d&0&UID200195\Device Parameters" C:\Users\liruiqi5\Desktop\edid\LENT2224rA.txt /y

这种方式导出的是EDID1.3格式的(128字节 ),如果要看支持的分辨率,需要导出EDID2.0格式(256字节 )需要用别的软件

HPD