DisplayPort规范是相当新的,而且正在演化。每种支持DisplayPort的GPU可能都有不同的DisplayPort源实现,这意味着,当协议转换型DisplayPort接口插入到GPU1中时,可能一切正常,但是它或许会因为GPU2的DisplayPort实现而无法用于GPU2。例如:GPU2访问接口的内部寄存器的次序可能与GPU1不相同;或者在GPU输出视频之前,GPU2可能需要某些特定的数据,而GPU1则不需要。
这种情况说明了规范符合性与设备互操作的差别的边界情况,在新标准被采用的初期非常常见。这种问题会逐渐减少,因为在互操作性测试中所积累的知识会帮助标准机构引入新的符合性测试。
另一项不确定因素是当前正在使用的大量不同的旧式显示器和显示板的操作存在差异性。因此,与一种显示器匹配良好的接口可能无法用于另一种显示器,即使是相同的计算机在通过DisplayPort来传输数据。到目前为止,没有任何当前已生效的确定性测试或设计要求能确保接口的互操作性达到100%。
让我们来考虑几个因实现的不同而出现互操作性问题的案例。
几个案例
案例1:图1显示了DisplayPort 1.1a规范所推荐的一种链路训练序列。链路训练序列由两个阶段组成:时钟恢复阶段和符号锁定阶段。推荐的训练序列要求在时钟恢复阶段成功之后再进入符号锁定阶段。
我们曾遇到过信号源不采纳这种推荐的案例。在该案例中,在成功地完成时钟恢复阶段之后,信号源又发起另一个时钟恢复阶段。其结果可能是链路训练失败,因为接口可能会对信号源的工作序列做出不同的假设。为了克服这种互操作性问题:
1、规范可以更具体一些,阐明和/或规定一种特定方式的训练序列,这可能需要在标准机构内部针对规范进行长达数月的协商才能达成一致。
2、可以增加一项符合性测试,其实现需要几个月的时间。
3、一种实际而有效的方式是通过接口固件中的小改动来克服这种差异。最简单的实用方式是增强接口的固件。
案例2:当协议转换型DisplayPort接口另一端的显示器连接或断开连接时,DisplayPort规范要求,接口应当向信号源回送中断。我们发现,有些DisplayPort源驱动希望接口解除认定HPD信号,而不是生成中断,所以VGA接口用于这种源时,运转将不正常。
这一问题的解决方案是,或者升级信号源驱动,或者更换接口中的固件,以适应信号源的这种行为。在2010年3月,NXP公司公布了针对市场上大量产品实现的一份调查。调查发现,被测的4种接口解决方案中的两种不能正确地处理该接口,而根据DisplayPort规范,大多数DisplayPort信号源都不能针对显示器的断开/连接过程给出正确的响应。
为此,VESA增加了符合性测试,针对协议转换型接口的这种特定的显示器探测问题来检查不符合性。调节接口中的固件就是一种实际的解决方案。
案例3:有些DPCD寄存器预留供今后使用,而新的DP源/驱动器可能会在某些时刻访问这些寄存器。因此,固件可能需要升级。例如,下列寄存器预留用于不同的用途:
00090h- 000FFh, 00109h- 001FFh:预留
0x247, 00249h – 0025Fh, 00262h – 0026Fh:预留,用于测试自动化扩展
00280h - 002FF:预留
0x303 0x5FF:预留,用于源设备的特定用法
0x403 0x5FF:预留,用于接收端设备的特定用法
0x503 0x5FF:预留,用于分支设备的供应商特有用法
0x601 0x6ff :预留的寄存器
0x700h 0x67fff:预留的寄存器
可编程性提供了便捷的解决方案
所有这些问题的一种解决方案是协议转换型DisplayPort接口内部固件的灵活性。
今天,市场上现有的大多数DisplayPort转VGA的接口解决方案都通过使用ROM或者通过将确定的固件转换成硬件,实现了某种确定的固件。NXP PTN3392是一个值得关注的例外,它的内部有一块集成的闪存,可以使用新的固件联机进行重编程。它不需要任何附加硬件,编程是通过DisplayPort的AUX信道完成的(如图2所示)。上面提到的3种案例分析都可以通过这种设备来加以解决/支持。这种方法解决了在这个领域中出现的互操作性问题,简化了接口制造商的工作,并为最终客户提供了无缝式的体验。
图2 通过AUX端口进行Flash编程