可重编程的 DisplayPort 固件
扫描二维码
随时随地手机看文章
DisplayPort在计算机行业中正在变得日益普及。它是一种免专利费的数字显示接口标准,有替代模拟VGA的可能。随着越来越多的计算机开始支持DisplayPort,显示器、电视、投影仪和所有其他拥有DVI、HDMI、LVDS或VGA接口的外围设备对DisplayPort接口的需求也在增长。
大多数现有的DVI和HDMI接口都是专门设计用于双模式DisplayPort源的电平转换电路。不过,双通道DVI、LVDS和VGA接口均需要协议转换。例如,对于VGA接口,视频信号必须从高速数字信号转换为低速模拟信号,这使得VGA接口成为一种非常复杂的设备。通常,协议转换DisplayPort接口中的固件引擎掌管着这种转换。
固件在协议转换型DisplayPort接口中的作用
固件是驱动着协议转换的芯片中的引擎。几项重要的任务取决于由固件所实现的状态机。当电缆接口插入到信号源时,只有经过几个重要的步骤之后,视频才能成功地传输到“接收端”(或接收机)并正确显示。固件掌管着以下几件事情:
● 通过一种叫做HPD(热插拔检测)的信号和一种叫做AUX CH(备用信道)的边带信道,建立起与信号源的通信;
● 完成链路训练;
● 在实际传输中,监测主链路中的错误;
● 从接收端读取EDID信息,并传递给信号源;
● 转换HPD信息,并将其返回信号源;
DisplayPort信号源内部有自己的状态机,用于和接收端对话。电缆接口的固件必须正确地与信号源交互,以确保正确的操作。图1所示的状态图用于在DisplayPort 1.1a规范中所推荐的链路训练。注意,规范中给出的所有固件指南都只是推荐,而并不一定就是实施或实现该功能的唯一途径。提供图像源的不同供应商会以自己的方式来实现这些细节,这就会造成互操作性问题。
图1 DisplayPort 1.1a规范中推荐的链路训练状态机
当前的业界难题
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接口内部固件的灵活性。
图2 通过AUX端口进行Flash编程
今天,市场上现有的大多数DisplayPort转VGA的接口解决方案都通过使用ROM或者通过将确定的固件转换成硬件,实现了某种确定的固件。NXP PTN3392是一个值得关注的例外,它的内部有一块集成的闪存,可以使用新的固件联机进行重编程。它不需要任何附加硬件,编程是通过DisplayPort的AUX信道完成的(如图2所示)。上面提到的3种案例分析都可以通过这种设备来加以解决/支持。这种方法解决了在这个领域中出现的互操作性问题,简化了接口制造商的工作,并为最终客户提供了无缝式的体验。