第1章:HDMI信号基础——TMDS差分信号与传输机制
各位工程师朋友,咱们今天聊聊HDMI最核心的东西——TMDS信号。说实话,我入行那会儿第一次看HDMI规范,也被这堆术语搞得头大。但后来在实际调试中,发现只要搞懂了TMDS,HDMI的很多问题就迎刃而解了。
1.1 TMDS差分信号原理
TMDS,全称是Transition Minimized Differential Signaling,翻译过来就是「最小化转换差分信号」。名字挺长,但核心就两个词:差分、最小化转换。
什么是差分信号?
简单说,就是一对线传一个信号。一根线传正相,另一根传反相。接收端把两个信号一减,噪声就被抵消了。我做过一个项目,布线时差分对没等长,结果画面出现雪花——嗯,这就是差分信号没走好的典型症状。
为什么HDMI要用差分?
- 抗干扰能力强——共模噪声被差分接收器自动抑制
- 电压摆幅小——只有400mV左右,功耗低
- 速率高——可以跑到几Gbps
关键参数:TMDS差分阻抗要求100Ω ±15%。我见过太多人忽略这个,结果信号反射严重,眼图惨不忍睹。
1.2 3路数据通道 + 1路时钟通道
HDMI有4对差分线:3对传数据,1对传时钟。你想想看,为什么是3路数据?因为RGB三原色,每路负责一个颜色通道。
工作机制是这样的:
- 数据通道0:传蓝色分量 + 水平同步(HSYNC) + 垂直同步(VSYNC)
- 数据通道1:传绿色分量
- 数据通道2:传红色分量
- 时钟通道:传像素时钟,频率等于像素时钟频率
我记得有一次调试,画面颜色偏紫。查了半天,发现是数据通道2的焊盘虚焊了。红色通道断了,可不就偏紫嘛。
个人经验:时钟通道是命根子。时钟一旦出问题,所有数据都废了。我习惯在PCB设计时,把时钟差分对包地处理,间距拉开至少3倍线宽。
1.3 最小化传输差分信号编码(8b/10b)
8b/10b编码,说白了就是把8位数据变成10位传输。为什么要多此一举?
原因有两个:
- 直流平衡:保证0和1的数量大致相等,避免信号有直流分量
- 时钟恢复:保证有足够的跳变沿,接收端能锁住时钟
编码规则其实不复杂:8位数据拆成3位和5位,分别查表变成4位和6位。加起来就是10位。我刚开始学的时候,觉得这玩意儿挺玄乎。后来自己写了个编码器仿真,发现其实就是个查表操作。
// 8b/10b编码示例(简化版)
// 输入:8位数据 D[7:0]
// 输出:10位编码数据
// 5b/6b编码
case (D[4:0])
5'b00000: encoded_6b = 6'b100111;
5'b00001: encoded_6b = 6'b011101;
// ... 其他编码表
endcase
// 3b/4b编码
case (D[7:5])
3'b000: encoded_4b = 4'b1011;
3'b001: encoded_4b = 4'b1001;
// ... 其他编码表
endcase
// 最终输出
encoded_10b = {encoded_6b, encoded_4b};
避坑指南:我曾经遇到过一个问题,画面偶尔出现横纹。查了三天,发现是编码器在边界条件下跑飞了。8b/10b编码有「运行不一致性」(Running Disparity)的概念,必须保证编码器状态机正确。很多便宜的HDMI芯片在这个地方偷工减料。
1.4 单链路与双链路带宽计算
带宽计算其实很简单,但很多人算错。咱们来捋一捋。
单链路HDMI:
- 像素时钟最高165MHz
- 每通道数据率 = 165MHz × 10bit = 1.65Gbps
- 三通道总带宽 = 1.65Gbps × 3 = 4.95Gbps
- 实际有效数据率 = 165MHz × 8bit × 3 = 3.96Gbps
双链路HDMI:
- 像素时钟最高330MHz
- 每通道数据率 = 330MHz × 10bit = 3.3Gbps
- 三通道总带宽 = 3.3Gbps × 3 = 9.9Gbps
- 实际有效数据率 = 330MHz × 8bit × 3 = 7.92Gbps
| 分辨率 | 刷新率 | 所需带宽 | 链路类型 |
|---|---|---|---|
| 1920×1080 | 60Hz | ~3.2Gbps | 单链路 |
| 1920×1080 | 120Hz | ~6.4Gbps | 双链路 |
| 3840×2160 | 30Hz | ~6.2Gbps | 双链路 |
| 3840×2160 | 60Hz | ~12.4Gbps | HDMI 2.0 |
注意:双链路需要两套TMDS通道,共8对差分线。我见过有人把双链路当成HDMI 2.0,其实不是一回事。双链路是HDMI 1.3时代的产物,现在基本被HDMI 2.0的更高时钟取代了。
知识体系总览
下面这张图,是我自己总结的TMDS信号知识体系。你把它存下来,调试时对照着看,思路会清晰很多。
这张图把TMDS的四个核心知识点串起来了。你调试时遇到问题,先定位是哪个环节出的问题——是差分信号质量不行?还是通道结构有问题?还是编码器跑飞了?或者是带宽不够?
我的习惯:每次拿到新板子,第一件事就是用示波器看TMDS时钟通道的眼图。眼图干净,后面的事就好办。眼图不好,先别急着调软件,把硬件问题解决了再说。
好了,这一章的内容就到这里。TMDS信号是HDMI的基石,搞懂了它,后面的内容学起来就轻松多了。
可可精品资料库