HDMI分配器的设计与实现
HDMI(高清晰度多媒体接口)是由日立、松下、飞利浦、Silicon Image、索尼、汤姆逊和东芝7家公司成立的HDMI组织制定的专用数字视频/音频传输标准。HDMI是针对下一代多媒体影音设备所开发的传输接口,适用于数字家电的数字电视、DVD播放机、DVD录放机、PVR、机顶盒及其他数字视听产品。其最大特色是该接口可以在一根传输电缆内传送无压缩的音频信号及高分辨率视频信号。随着带HDMI接口的终端产品的增加,在酒吧和卖场等一些公共场合需要类似以前AV格式的音视频分配器产品。本文中详细介绍了如何利用ANX9011和ANX9030来设计一进四出的HDMI分配器。
HDMI接口及系统概述
目前消费者正受到各种AV连接数过于庞大的困扰。HDMI接口可以用单一的连线取代众多的影音连线,简洁又方便。目前HDMI接口已经有成为数字影音产品的必配接口之一的趋势。
HDMI接口主要有三个通信通道,接口示意图如图1所示。TMDS通道:负责所有音频和视频数据的传输。辅助数据,如AVI InfoFrame、Audio InfoFrame等也是通过TMDS通道。DDC通道:HDMI源端,通过这个通道来读取接收端(Sink)的E-EDID数据结构,进而得知接收端内含的机能与特性。CEC通道:这是一个可选项(Option),它提供更高层次的使用方式让消费者使用,例如自动设定的细节、单键播放或是遥控相关的事。
图1 HDMI接口示意图
在某些情况下,HDMI的源端会使用到AVI InfoFrame与Audio InfoFrame。AVI InfoFrame所包含的信息是为了实现与达成显示模式自动化(Display Mode Automation)而规划的一种方法或机制,如比色法、显示比例、像数重复因数等。Audio InfoFrame信息包含通道数、代码类型、采样尺寸、采样频率等信息。
E-EDID是增强型扩充显示器识别数据(Enhanced Extended Display Identification Data Standard)的简称。源装置使用DDC(Display Data Channel)来读取终端接收显示装置的E-EDID,以确认终端显示装置的设定与功能。
HDCP数字内容保护则是英特尔开发的为HDMI提供高带宽数字内容保护的解码技术。配备了HDCP解码技术的HDMI就不会受到信号加密的限制,可以接受全部格式的高清信号。
HDMI分配器系统结构及芯片特点
HDMI分配器系统结构如图2所示。
图2 HDMI分配器系统框图
HDMI分配器工作原理如下:当HDMI输入端口接收到HDMI的视频输入信号后,转换为内嵌行场同步的Y/Cb/Cr信号,送到HDMI的发送芯片。HDMI的发送芯片把Y/Cb/Cr信号转换为HDMI发送出去。这时四个HDMI端口同时有信号输出,同时带有信号的复制和增强功能。单片机通过I2C总线控制各个芯片的初始化以及状态机的变化,完成EDID的读取和HDCP的校验等工作。
HDMI的收发IC目前有很多。在本方案中选择ANALOGIX公司的ANX90xx系列IC是因为该产品基于Wide Eye信号恢复技术,从而能够提供高性能的传输或接收能力。该系列芯片可以支持远大于HDMI标准定义的15m的HDMI线缆高速信号传输。其实际的支持距离已经超过了50m。超强的驱动传输能力允许客户使用廉价的线缆(如UTP等)来进行高速多媒体信号的传输,同时还保证了极低的误码率。ANX90xx系列芯片具有很强的音视频处理能力。该系列芯片能以最高165Mpix/s的速率传输高达24位信息数据,使整个处理频宽接近4Gb/s。它支持RGB与多种模式YCbCr之间的转换,支持HDTV(最高支持1080p)和PC(最高支持16001200@85Hz)应用,还支持8通道24位高精度数字音频输出,提供I2S和S/PDIF标准输出接口。它不仅能够满足目前最先进的应用,还具备一定的扩展能力。
ANX9011是带Wide Eye恢复功能的单端口HDMI接收IC,支持链路速率达1.65Gb/s,支持HDMI1.2、HDCP 1.1和DVI1.0标准。由于具有Wide Eye功能,能够支持长电缆和低误码率。
ANX9030是带HDCP、兼容HDMI1.2的发送IC。可支持像数速率达165Mpix/s。对720P和1080i模式,其功耗仅为300mW。
设计注意事项
HDMI的接口IC有四种电源:AVDD33、DVDD33、AVDD18和DVDD18。+3.3V电源用于IO口的供电,+1.8V用于内核和逻辑的供电。两个+3.3V的电源能作为一组,两个 +1.8V的电源能作为另一组。上电时基本的上电顺序为:先上两个+3.3V的电源,然后上两个+1.8V的电源。上电时序如图3所示。上电时序如果反相会引起芯片进入未知状态。最差能接受的情况为+3.3V和+1.8V同时供电。
图3 ANX9011和ANX9030上电时序图
在一些恶劣的条件下,在电源上升完成前,由于电源问题,电源线上有一个大的噪声,如图4所示。如果复位脚没有拉到地或者没有驱动到低,噪声将耦合到复位脚。这将使芯片进入未知状态或者可能损坏一些芯片内部可编程的电路。因此,复位脚必须在电源稳定后为低且保持100ms。
图4 复位时序
正常的RC电路可能不太满足这个要求,推荐使用一些低成本的上电复位IC。
IC的每一个电源引脚都应该有一个0.1μF的去耦电容,且PCB布板的时候要尽量的靠近IC的电源引脚。
HDMI接口在使用中经常会热插拔,因此需要ESD保护。使用ESD二极管来保护电路不被损坏,但是它们也给保护线路带来一些电容。4对TMDS线运行在很高的速率上,因此这4对线有阻抗控制的要求,规定阻抗为100Ω,误差为15%。在这四对线上加了保护二极管后,差分阻抗会有一些偏移。如果没有阻抗补偿,可能会超出误差范围。不过,SEMTECH公司最新推出的Rclamp0524 ESD保护二极管等产品不需要在PCB LAYOUT的时候加阻抗补偿。
ANX9011提供I2C从接口和MCU通信,设备的I2C地址由复位引脚的上升沿采样DEVAD输入脚的电平决定。当DEVAD为高时,I2C地址为0X62/0X6A,当DEVAD为低时,I2C地址为0X60/0X68,TEST_EN脚必须接地。ANX9030的I2C地址由41引脚DEV_ADDR_SEL在复位的上升沿时的电平决定。若为高I2C地址为0X76/0X7E,当为低时I2C地址为0X72/0X7A。24引脚R_BIAS需用680Ω的电阻上拉,21引脚RSV_L用4.7kΩ的电阻接地。
在PCB LAYOUT时请注意差分阻抗为100Ω,单端的时钟线阻抗为50Ω。差分对的两对线之间的长度差值应该在10密耳以内,不同的差分对之间的长度差值应该在250密耳以内。推荐使用4层或4层以上的PCB板。这样系统可以运行在一个稳定的环境。
系统测试标准和方法
由于HDMI生产厂家有许多,为了保证消费者所买回去的HDMI产品能与其他的HDMI产品配合工作,需要进行兼容性测试(CTS)。各授权测试中心(ATC)也相应的建立起来,按照CTS规范进行测试。
HDMI CTS要求四种类型的设备进行测试:源设备(如DVD、STB)、接收设备(如LCD_TV)、线缆和中继设备。本方案适用于中继设备的测试标准。在中继设备测试中也应该同时满足源设备和接收设备的测试标准。
本产品在1080P状态下的测试眼图如图5所示。
图5 源端1080P状态下测试眼图
在HDMI测试中,HDCP测试也应引起大家的注意。几乎所有具有HDMI特性的系统也都具有HDCP特性。在具体使用中,当出现互操作的测试问题时,往往不是与HDMI相关,而是与HDCP有关。
系统软件实现
本方案中选用STC公司的STC89LE516RD+,其工作频率为0~80MHz,内部FLASH的储存空间为63Kb,RAM的空间为1280字节。使用KEIL C51编程,系统软件可以分为两个部分,一个是ANX9011的初始化的处理和ANX9011的状态机的变化,另一个是ANX9030的初始化的处理和ANX9030的状态机的变化。主循环程序如下。
void main(void){
Init_mcu();
Init_9011();
Init_9030();
while(1){
ANX9011_IntProcess ();
ANX9011_TimerProcess ();
ANX9030_Interrupt_Process();
ANX9030_Timer_Process ();
}
}
1 ANX9011的初始化
在ANX9011的复位电路的上升沿,DEVAD_CLK48B引脚的状态决定ANX9011的I2C地址。假定此引脚为低,I2C地址为0X60和0X68被选择。
首先确认ANX9011存在且能正常工作,代码如下。
c1 = 0;
while (1){
HDMIRX_reset_pin = 0;
delay_ms(10);
HDMIRX_reset_pin = 1;
delay_ms_(10);
c = i2c_read_P0_reg(0x02, c1);
if ((c == 0) (c1 == 0x21)) {
c = i2c_read_P0_reg(0x03, c1);
if (c == 0) (c1 == 0x90))
break;
}
}
如ANX9011存在,且能正常工作,开始初始化。
2 ANX9030的初始化
在ANX9030的复位电路的上升沿,DEV_ADDR_SEL引脚的状态决定ANX9030的I2C地址。假定此引脚为低,I2C地址为0x72和0x7A被选择。
首先确认ANX9030存在且能正常工作,代码如下:
while (1) {
ANX9030_Resetn_Pin = 0;
delay_ms(2);
ANX9030_Resetn_Pin = 1;
delay_ms(2);
c = ANX9030_i2c_read_p0_reg(ANX9030_DEV_IDL_REG, c1);
if ((c == 0) (c1 == 0x30)) {
c = ANX9030_i2c_read_p0_reg(ANX9030_DEV_IDH_REG, c1);
if((c == 0) (c1 == 0x90))
break;
}
}
ANX9030在上电复位后,除了像素时钟检测(CKDT)和热插拔检测(HPDT)功能外,ANX9030的大部分功能处于待机状态。软件需要正确的配置其他寄存器。
总结
目前市场上需要的HDMI分配器都需要带信号复制和增强功能。据笔者所知,在市场上出售的HDMI分配器中,较少采用HDMI信号直接分两路的方案。一般都采用HDMI的接收器加上几个HDMI的发送器来完成。随着HDMI市场的成熟,此类产品的需求量会逐渐增加。本文详细说明HDMI分配器的系统结构、芯片特点、设计注意事项和HDMI分配器的测试方法及系统软件设计思路,可作为广大音视频工程师的参考资料。
评论