4. TMDS链路结构:3个数据通道+1个时钟通道
好,咱们今天聊聊TMDS的物理链路结构。说白了,它就是一条高速公路——3条数据车道加1条时钟车道。我在做HDMI接口设计时,经常被问到:“为什么非要3个通道?2个不行吗?”嗯,这个问题问得好,咱们慢慢拆解。
4.1 通道角色分配
TMDS链路由4对差分信号组成:
- 3个数据通道:Channel 0、Channel 1、Channel 2
- 1个时钟通道:Clock Channel
每个通道都是独立的差分对。你想想看,3个数据通道并行工作,每个通道负责传输不同的数据流。时钟通道则像乐队的指挥,告诉所有数据通道“现在该敲哪个音符”。
关键点:时钟通道的频率是像素时钟的1/10。比如1080p@60Hz的像素时钟是148.5MHz,那TMDS时钟就是14.85MHz。这个比例关系我建议你记牢,调试时经常要用到。
4.2 数据映射规则
每个数据通道传输的内容是有严格分工的。我刚开始接触时也搞混过,后来画了张图才理清楚。
咱们用一张SVG图来展示这个映射关系:
4.3 通道0:蓝色通道 + 同步信号
Channel 0负责传输蓝色分量,同时还要捎带两个同步信号——HSYNC(行同步)和VSYNC(场同步)。
为什么把同步信号放在蓝色通道?我记得第一次看到这个设计时也觉得奇怪。后来查了资料才明白:人眼对蓝色最不敏感,把同步信号塞进蓝色通道,对画质的影响最小。这个设计思路,说白了就是“把不重要的东西放在最不敏感的通道上”。
实战经验:我在调试4K@60Hz时遇到过一个问题——画面偶尔出现水平撕裂。排查了半天,最后发现是Channel 0的同步信号时序有毛刺。用示波器抓了一下,果然HSYNC的上升沿抖动超过了100ps。后来在PCB布局上把Channel 0的走线缩短了30%,问题就解决了。
4.4 通道1:绿色通道 + 控制信号
Channel 1负责绿色分量,外加两个控制信号CTL0和CTL1。绿色分量在RGB中占比最重——人眼对绿色最敏感,所以绿色通道的带宽需求也最大。
CTL0和CTL1在视频消隐期传输,用来传递一些辅助信息。比如在HDMI中,这两个信号被用来传输音频数据包和辅助数据。
4.5 通道2:红色通道 + 控制信号
Channel 2负责红色分量,外加CTL2和CTL3。红色通道的结构和绿色通道基本对称。
你可能会问:为什么控制信号要分散在三个通道里?嗯,这是为了平衡每个通道的数据量。如果所有控制信号都挤在一个通道里,那个通道的编码效率就会下降。3个通道平均分担,整体效率最高。
4.6 时钟通道:链路的“心跳”
时钟通道是TMDS链路中最特殊的一个。它不传输数据,只传输时钟信号。这个时钟的频率是像素时钟除以10。
为什么是除以10?因为每个像素的8位数据经过8b/10b编码后变成10位,所以时钟频率降为1/10。这个比例关系,我建议你刻在脑子里——调试时经常要用到。
注意:时钟通道的抖动指标非常严格。我曾经在一个项目中,因为时钟通道的PCB走线绕了个弯,导致时钟抖动超标,整个链路无法锁定。后来把走线改成直线,问题就解决了。所以,时钟通道的走线一定要短、要直、要远离干扰源。
4.7 数据映射的完整流程
咱们把整个流程串起来看:
- 像素数据输入:每个像素的R、G、B各8位,共24位数据
- 通道分配:R→Channel 2,G→Channel 1,B→Channel 0
- 控制信号插入:HSYNC/VSYNC→Channel 0,CTL0/CTL1→Channel 1,CTL2/CTL3→Channel 2
- 8b/10b编码:每个通道的8位数据编码为10位
- 并行传输:3个通道同时发送10位数据
- 时钟同步:时钟通道提供同步信号,频率为像素时钟/10
这个流程看起来简单,但每个环节都有坑。我建议你在做设计时,先用逻辑分析仪抓一下每个通道的数据,确认映射关系是否正确。我曾经因为一个引脚分配错误,把红色和蓝色通道搞反了,结果画面颜色完全不对——人脸是蓝色的,天空是红色的。嗯,这种低级错误,犯过一次就不会再犯了。
4.8 通道间的时序关系
3个数据通道必须严格对齐。也就是说,同一个像素的R、G、B数据要在同一时刻到达接收端。如果某个通道的走线长了那么一点点,就会导致颜色错位。
我在做HDMI 2.0设计时,遇到过一个问题:4K分辨率下,画面边缘有彩色条纹。排查后发现是Channel 2的走线比Channel 0长了15mm,导致红色分量比蓝色分量晚到了约100ps。在4K@60Hz下,一个像素的周期只有约6.7ns,100ps的偏差已经足够产生可见的色差了。
解决办法?把三个通道的走线长度控制在±5mm以内。这个经验值我建议你记下来——走线等长是TMDS设计的基本功。
| 参数 | 最小值 | 典型值 | 最大值 | 说明 |
|---|---|---|---|---|
| 通道间延迟差 | - | < 50ps | 100ps | 超过此值可能出现色差 |
| 时钟抖动 | - | < 50ps | 100ps | 超过此值可能导致失锁 |
| 走线长度差 | - | < 5mm | 10mm | PCB设计时的经验值 |
好了,TMDS的链路结构就讲到这里。3个数据通道加1个时钟通道,每个通道各司其职,配合起来才能完成高速数据传输。下一节咱们聊聊8b/10b编码的具体实现——那才是TMDS的精髓所在。
一句话总结:TMDS链路就是3条数据车道+1条时钟车道,数据按颜色分量分配到3个通道,时钟频率是像素时钟的1/10。记住这个结构,后面的内容就好理解了。