HDMI协议中如何理解TMDS信号的DC-Balance
如何理解DC-Balance?
TMDS通过异或及异或非等逻辑算法将原始信号数据转换成10位,实现直流平衡(DC-balanced,指在编码过程中保证信道中直流偏移为零,实现不同逻辑电平的匹配,即0和1的数量相等),使信号对传输线的电磁干扰减少,提高信号传输的速度和可靠性。
网上搜到的大部分资料都这么含糊的写!具体怎么理解?
没人看吗?
我讨论的是关于HDMI和DDI的协议,大家都不用这些的吗!?
有个叫“平衡编码”的东西,感觉和这个比较类似,就是在高速信号传输过程中,对0.1个数不对称的信号,进行重新编码,使之对称,这样会减小ISI,优化信号完整性,另外,可以减小共模信号的变化,降低共模辐射。
自己回复自己吧,已经学习到了!文字叙述一下,懒得贴逻辑流程图了。
TMDS编码方式-MHL/HDMI/DVI
TMDS对有效像素数据的编码处理可以认为有两个阶段:第一个阶段是依据输入的8bit像素数据产生跳变最少的9bit代码字;第二阶段是产生一个10bit的代码字,最终的TMDS字符,将维持发送字符总体的DC平衡。
在第一个阶段编码器产生的9bit代码字由“8bit” + “1bit”组成,“8bit”反映输入的8bit数据位的跳变,“1bit”表示用来描述跳变的两个方法中哪一个被使用,无论哪种方法,输出的最低位都会与输入的最低位相匹配。用最低位建立的初值,输出字的余下7bit的产生是按照顺序将输入的每一位与前一导出的位进行XOR或NOR(XNOR)。使用XOR还是XNOR要看哪个方法使得编码结果包含最少的跳变,代码字的第9位用来表示导出输出代码是使用XOR还是XNOR,这9bit代码字的解码方法很简单,就是相邻位的XOR或XNOR操作。
在第二阶段,编码器执行使传输的数据流维持近似的DC平衡处理,这是通过选择性地反转第一阶段产生的9bit代码中的8bit数据位来实现的,第10bit被加到代码字上,表示是否进行了反转处理,编码器是基于跟踪发送流中1和0个数的不一致以及当前代码字1和0的数目来确定什么时候反转下一个TMDS字符。如果太多的1被发送,且输入包含的1多于0,则代码字反转,这个发送端的动态编码决定在接收端可以很简单地解码出来,方法是以TMDS字符的第10bit决定是否对输入代码进行反转。