 图5 差分阻抗计算 从图5中可以得出以下PCB设计参数:差分走线宽度为12.5mil;差分线间距为5mil;差分阻抗约为100Ω。
软件设计
1 HPD操作设计 HPD(Hotplug热插拔)操作设计是HDMI接口软件设计的一个重要环节,它是由接收端设备(Sink)发出的,在与HDMI源端设备(Source)之间建立正式通信的前奏信号。HPD信号电平为高时表示接收端设备已经准备好了,允许源端设备访问接收端设备。
在HPD操作的软件设计中,要考虑如下两个因素。
一是HDMI源端设备输出的电源脚(HDMI接收端插座的第18引脚)的检测。如果HDMI接收端插座的第18引脚为低电平,表示HDMI源端设备未准备好,此时接收端设备应把HPD信号置低电平;如果HDMI接收端插座的第18引脚为高电平,表示HDMI源端设备已准备好,此时接收端设备根据自身的情况可以有选择的将HPD信号置高电平,以通知HDMI源端设备,表明接收端设备也准备好。
二是源端与接收端通信失败下的模拟HPD操作。当HDMI源端与接收端的通信刚建立时可能出现HDCP-KEY读取失败或EDID数据读取错误的情况,造成HDMI工作不正常,此时为了恢复正常的通信,需要进行模拟的HPD操作,即由接收端设备将HPD信号从高电平拉为低电平,HPD低电平持续100ms左右,再拉回高电平,这样源端设备会检测HPD信号的跳变,重新发起读取操作,为建立正常通信做进一步的尝试。这种软件模拟HPD的操作可以在不需要人为热插拔操作的协助下以模拟硬插拔的方式来重建HDMI的正常通信,从而可以消除通信不稳定引起的故障。考虑到以上两个因素,设计者可以很容易地掌握HPD操作的软件设计流程,如图6所示。
 图6 HPD操作的软件设计流程
2 CEC操作设计
CEC(消费类电子控制)操作是HDMI接口的一个重要扩展功能,它采用"一线"(One Wire)通信方式,将HDMI的设备连通起来,使HDMI设备之间的操作简单化。如果PS321采用内置的EDID缓存区来配置,那么PS321的CEC操作设计主要是CEC物理地址的分配,如图7所示。
 图7 CEC物理地址分配
CEC物理地址的分配有两种方式:硬件方式和软件方式。
①硬件方式
当HDMI接收端设备上电后,系统通过I2C将EDID数据包括HDMI端口1的物理地址写入PS321的EDID
缓存区,HDMI 3个端口的物理地址分配如下:端口1默认为1.0.0.0;端口2和端口3的物理地址由PS321
以硬件方式在端口1默认地址的基础上实现"自动加一"操作获得,因此端口2为2.0.0.0;端口3为3.0.0.0。
以硬件方式获得的CEC物理地址是固定的,不能改变,因此HDMI端口2和端口3的物理地址是不能改变的。
硬件方式设置CEC物理地址的流程如图8所示。
 图8 硬件方式设置CEC物理地址的流程图
②软件方式
HDMI端口1的物理地址来自EDID缓存区,是由系统通过I2C将EDID数据包括HDMI端口1的物理地址写入PS321的EDID缓存区,这一点与硬件方式相同。HDMI端口2和3的物理地址存在专门的寄存器中,调用时将其映射到EDID缓存区。以软件方式设置的CEC物理地址可以更改。软件方式设置CEC物理地址的参考流程代码如下:
Set HPD Low //将HPD信号设为低电平 WriteREG(Page0.0x10,0x01) //激活软件方式设置CEC物理地址 Load EDID to PS321 EDID Buffer for HDMI1 //将EDID数据包括HDMI端口1的物理地址写入EDID缓存区 Load CEC Physical Address location to Page0.0x17 //将CEC物理地址的位置写入寄存器0x17 Load CEC Physical Address&checksum for HDMI2 to Page0.0x11~0x13 //将HDMI2物理地址及校验码写入寄存器0x11~0x13 Load CEC Physical Address&checksum for HDMI3 to Page0.0x14~0x16 //将HDMI3物理地址及校验码写入寄存器0x14~0x16 WriteREG(Page0.0x10,0x07) //3个HDMI端口的EDID及CEC物理地址已准备好 Set HPD High //将HPD信号设为高电平
结语
通过PS321的应用设计,可以进一步的了解HDMI开关在软硬件设计方面的设计要点。随着HDMI接口的大量使用以及高清音视频数据流的发展,HDMI开关将开发出集成更多、更新的功能应用,例如,TMDS信号自适应均衡化功能;HDMI-CEC指令接收、解码及发送等功能。 | | | |