7.HDMI接口
CEC(消费电子控制)频道是可选的。通过CEC通道,可以实现音视频设备之间的一些高级控制功能,如支持视频源与数字电视的双向通信,实现同时上电、自动上电、自动信号路由、远程控制等功能。
图1 HDMI系统结构图
电子EDID数据结构
E-EDID是由VESA定义的数据结构,是针对PC显示器的优化显示格式数据规范。它存储在监视器专用的EEPROM存储器中,数据结构为128字节。PC主机和显示器通过DDC通道访问存储器中的数据,以确定显示器的显示属性,如分辨率、宽高比和其他信息。HDMI采用了这种数据结构。在HDMI规范中,同样的例子使用DDC通道访问EDID存储器来确定显示设备的功能和属性。
根据HDMI规范,EDID的第一个128字节必须是符合EDID1.3的数据结构,第二个128字节必须是符合EIA/CEA-861B的CEA EDID时序扩展数据结构。
blogs.com/TaigaCon/p/3840653.html
HDMI(高清多媒体接口)主要用于传输高清音视频信号。
HDMI引脚:
HDMI有五种引脚类型:A、b、c、d和e,目前市场上最常见的引脚类型是A型:
在…之中
传输过程:
HDMI TMDS传输的数据有三种(包括Hsync和Vsync,共四种):
HDMI数据传输有三个通道:TMDS0、TMDS1和TMDS2,每个通道的传输流程都是一样的:
如果8位数据进入TMDS编码器,得到一个抗干扰性强的10位TMDS信号,然后序列化输出;接收端接收到串行HDMI信号后,对信号进行恢复,得到10比特的TMDS信号,最后由TMDS解码器对原始的8比特数据进行解码。
整个传输过程如下:
如果传输视频数据且格式为RGB,则三个通道的所有24位输入将被占用,其中通道0[7:0]用于传输B,通道1[7:0]用于传输G,通道2[7:0]用于传输R..
如果传输数据岛,它占用三个通道* * * 10位输入,通道0[3:2]用于传输数据岛报头,通道1[0:3]和通道2[0:3]用于传输数据岛内容。
如果发送前同步码,它将占用1,2 * * 4位输入的两个通道。通道1[1:0]和通道2[1:0]分别是CTL 0、CTL 1、CTL 2和CTL 3,用于判断下一步。
对于Hsync和Vsync,它将占用通道0的两个位输入,通道0[0]为Hsync,通道0[1]为VSync。
传输周期:
HDMI的TMDS数据传输可以分为三个传输周期:
Hsync、Vsync在控制周期内传输,前同步码在周期的最后阶段传输。
数据岛期间会传输数据岛(包),也会有Hsync和Vsync。
视频数据(视频像素数据)在视频数据周期期间传输。
一帧的总周期如下:
三个传输周期的转换如下:
左侧是控制周期,传输Hsync、Vsync和前同步码。
中间是数据岛期,传输Hsync、Vsync,以及两个包头和包(每32个时钟一个包);另外,数据岛的两端都会使用保护带对数据岛的数据进行保护和隔离,因为这个阶段传输的大部分数据都是非常重要的,比如图像的分辨率,决定了后期视频数据的显示方式。
右边是视频数据岛,传输视频像素数据。在这一时期的开始,还有警卫乐队。
数据岛分组结构
所有数据岛分组具有32个时钟脉冲的周期,即每32个时钟脉冲发送一个分组。
以上图为例,
包头是BCH块4,由信道0[2]发送。32clk表示有32位,也就是44字节。前三个字节是包头,最后一个字节是校验码。
该数据包为BCH块0,1,2,3,分别由信道1和信道2 * * *的8条线路传输,* * *的校验码为24字节和6字节。
奇偶校验码用于检查HDMI线缆在传输过程中是否存在错误。如果包在HDMI接收端检查错误,如果只有一位错误,可以纠正,超过1位的错误将被判定为无效包(因为HDMI一直在发送数据,不可能重发错误包?)
所以在接收端,拆包后需要取出每个BCH块的校验位进行校准。
有各种类型的数据包,请参阅HDMI规格了解详情。
音频时钟
音频的采样率为44100,48000,192000等。它是多种多样的。在HDMI传输中,音频是PCM级别(未压缩)的传输,PCM数据分散在各个包中。为了得到每个音频帧的数据,还需要知道音频的采样率。HDMI指定音频的传输模式:
音频采样率fs重建取决于以下主要参数:
TMDS钟
同CARPAL TUNNEL SYNDROME
普通
在发送设备侧,已知参数包括采样率fs、视频时钟(TMDS时钟)和预设参数n,并且发现CTS:
CTS=N?fTMDS128×fx
在接收设备侧,可以通过硬件设备获得TMDS时钟,N通过音频包与CTS一起传输,找到fs:
128?fs=N×fTMDSCTS
为了保持接收端fs的稳定性和准确性,需要进行锁相,即利用VCO(压控振荡器)产生合适的频率,然后利用PFD(鉴频鉴相器)锁定频率。
1.首先,由于VCO有一个最佳工作区,比如(200MHz~500MHz),为了保证VCO处于最佳工作频率,我们可以从后面推回,先将输出fa128相乘。
fvco=fa128×S×S2
由于只有几个fa128 (44.1k,48k等。),S和S2都可以轻松获得。
2.那么,为了更快的频率匹配,就需要对最近的频率fx(即晶振时钟fcrystal)或fv(像素时钟)进行分频,还要对fvco进行分频,使两个趋势相等。对于细微的差别,可以用D代码来纠正。
fvcoM=fxK
3.最后做PFD锁相。
4.步骤2和3中的反馈操作循环进行,最终可以得到一个相对稳定的fvco。
最终获得
fa128=fvcoS×S2
热插拔
HotPlug就是热插拔,当接口接通后,可以判断设备是否存在,以便后续工作。
HDMI源设备将监控接收设备的热插拔端口。如果Hotplug高,证明设备可以工作,然后读取DCC。如果为低,则证明设备断开。
HDMI规定当HDMI的5v管脚断电时,需要读取DCC,也就是需要保证Hotplug为高。
热插拔连接:
它由一个5v引脚供电。当5V电源断开时,5V电压将被注入HDMI HPD和热插拔。此时,HPD检测到5V电压(高),可以过来读取EDID。但是,这种方式有一个缺点。5V电压会影响热插拔。一旦热插拔引脚无法承受5V电压的充电,就会被刺穿,那么HPD只能检测低。
额外的GPIO引脚和晶体管用于控制HDMI HPD是0还是1。如果HDMI0_HPD_CTL输出0,则晶体管关闭,HDMI0_HPD检测到高电平。如果HDMI0_HPD_CTL输出1,则晶体管开启,HDMI0_HPD检测到低电平。
HDMI接收器
比如电视是HDMI的接收端,那么HDMI的接收端就需要做一些事情。
HDMI可以通过三个通道接收TMDS数据,即TMDS时钟、热插拔和用于DCC传输的I2C引脚。我已经谈到了TMDS数据和设置热插拔,然后我将分析TMDS时钟。
TMDS时钟是像素时钟,即一个像素所使用的时钟频率。TMDS时钟通过clk引脚传输到接收端,但是接收端不知道发送端发送的TMDS时钟的频率是多少,所以需要通过Phy(HDMI硬件频率设置部分?)进行锁相。但是由于HDMI的带宽很宽(480P@60Hz是25.2MHz,1080P@60Hz是162MHz,甚至高达340MHz),一般的VCO(压控振荡器,电压控制产生的频率)无法覆盖这么大的范围,所以需要设置Phy:
首先检测输入频率落在哪个频段,然后根据不同的频段进行不同的设置。
用电视产生的晶体振荡器来计数,就知道TDMS钟了。
fcrystal=count×fTMDS
或者使用1024 TMDS时钟来计算晶体振荡器的数量。
1024×ft MDS =计数×f晶体
由于视频信号在TMDS编码后从RGB 8位变为10位,然后被串行化,因此实际用于接收TMDS数据的时钟应为:
fReceiveClock=10×fTMDS
另外,ReceiveClock可以用TMDSClock作为参考,用硬件锁相来获得,而不是直接用上面的乘法。
收到接收时钟后,您可以设置PLL的频率,然后对三个通道进行采样以获得TMDS数据。
定时检测
接收端仍然需要定时检测,因为如果设备可以支持(比如色度),HDMI可以自由替换定时,当定时被替换时,接收端需要重置Phy。因此,有必要通过检测频率的变化来检测定时是否被替换。一般会有一个中断服务(或循环)线程来检测频率的变化。一旦频率改变,该过程将通知复位Phy,以确保HDMI的正确操作。
HDMI版权内容保护HDCP
通过DDC的HDCP传输
HDCP主要用于保护有版权的视频。例如,如果蓝光DVD播放器可以播放蓝光DVD,并且该DVD已获得HDCP的授权,而您现在想将DVD图像导出到电视,但电视尚未获得HDCP的授权,则电视可能无法播放图像,或者播放质量可能会下降。比如有雪,图像会从1080p变成480p,或者没有声音。
HDCP通过两台设备之间的交互进行认证,认证过程如下。
1.发射器将发送一个密钥An(64位)和Aksv(密钥选择向量40位)给接收器。
2.在接收到An之后,接收机还将向发射机发送Bkvs和中继器(指示设备B是否是中继器设备)。
3.发射器启动HDCP认证码算法:
为了理解算法,我们首先需要知道ksv是用来做什么的。
在每个HDMI设备内部,将保存40组64位密钥,key[40]。
Kvs有40位,每一位都是一个索引。当kvs的某一位n为1时,密钥[n]将被取出。
将所有键[n]相加得到km,
4.接收器也可以做HDCP认证码算法,这一步得到公里。'
5.发射器和接收器都将使用km\km '来执行hdcpBlkCipher,并获得R0和R0 '的值。
6.100 ms后,接收器将R0 '发送给发送器进行比较,如果相等,则认为认证完成。当然,km = km’可以保证R0 = R0’。
7.之后发送端和接收端会每帧运行一次hdcpBlockCipher,但参数是最后生成的ks和m,生成的新参数是Ks,m和t。
8.在第128帧,另一个r = t。
9.在第一次通信间隔2秒后,再次进行认证。
10.后续步骤7、8和9用于迭代认证。
另外,HDMI从1.1开始支持更快更频繁的认证方式。
是上层设备通信图的下半部分。
1.在16的每一个倍数帧中,与当前帧的通道0的0像素进行异或T,得到Pj。
2.通道0的0像素到达接收端后,也与接收端的T '异或,得到P' J。
3.接收方将P'j发送给发送方,与Pj进行比较,如果相同,则通过认证。
了解HDCP对处理HDMI异常现象很有帮助。比如不时出现雪花,可能是信号不好,导致Channel0的0像素错误,所以第二阶段认证有时可能会不成功。...
HDMI接收器一般流程
HDCP
HDCP是高带宽数字内容保护,TMDS信号应由HDCP加密,以确保数字信号不能被轻易复制。
8b/10b
8b/10b是一种数字处理方法,最早由IBM申请专利。现在它的专利已经过了保护期,成为了公共技术。其目的是提高数字信号的抗电磁干扰(EMI)能力,提高信号的精度。简单来说,工作模式就是对8个0和65438+个0组成的数字信号进行重新编码,前5个重组为6个,后3个重组为4个。在这种转换之后,八个一组的数字信号被转换成10的一组。传输完成后,接收机反编译并恢复数字信号。