本文以x86平台第八代CPU(CoffeeLake)为例,说明x86上面的显示接口。
本文内容来自x86芯片手册,Wikipedia和其它网站,加上一些自己的理解,可能不能保证完全准确,如有错误请见谅。
术语说明
DDI: Digital Display Interface。这是x86 CPU内部的显示接口的叫法,在它外边还有电路来最终合成我们会用到的HDMI,DP等等,如下图红框所示:
可以看到CoffeeLake CPU内部支持3个DDI。
DP: DisplayPort。一种数字信号显示接口标准。也没有特别好说明的,算是目前比较新的显示标准(2006年第一版),支持的带宽也最大。它对应的物理接口大致长这样:
或者是mini版:
eDP: embeded DisplayPort。它是一种内部的数字信号传输接口标准,它是基于DP的。只不过DP基本上用来传输显示信号,eDP甚至还可以用来传递其它芯片与芯片之间的信号,不过这也不再我们讨论的范围,常用的作为显示传输的就是笔记本中的图形芯片与显示器之间的图像传递。由于没有外部接口,没有图。
HDMI:High Definition Multimedia Interface。它是数字化的视频和声音的传递接口标准,目前最新的HDMI标准已经到2.1了。它对应的物理接口大概长这样:
可以看到它有不同的类型,事实上很多的接口都有不同的类型。
DVI:Digital Visual Interface。它也是一种显示接口标准,跟HDMI不同的是它不会传输音频,且数字和模拟两种信号都支持(分为几种类型DVI-A只支持模拟,DVI-D只支持数字,DVI-I两者都支持)。相同点也很多,甚至部分是兼容HDMI的(于是出现了一种DVI和HDMI兼容的配置方案)。它对应的接口大致长这样:
VGA:Video Graphics Array。也是一种显示标准,跟前面的那些很大的不同点在于它使用的是模拟信号,它是一种比较老的显示标准(1987年提出的),基本上只能支持的1080P的显示,再高基本上就不支持了。它对应的物理接口大概长这样(公口):
或者这样(母口):
HDCP:High-bandwidth Digital Content Protection。HDCP不是一个独立的显示接口,它的作用是保护数据传输过程中的非法复制,它不在本文的讨论范围。
从CPU出来的DDI可以被配置成DP,HDMI和DVI,通常通过Intel提供的VBT来进行配置。
VBT是一个二进制文件,通过Intel提供的VBT配置工具可以修改其配置,以符合实际的硬件设计。
本文接下来的内容主要介绍DP,HDMI和DVI的基本结构。
DisplayPort
DP的结构如下图所示:
它由三组信号组成分别是:
Main Link:用来传递实际的音频和视频数据;
AUX通道:用来传递用于链接和控制的命令;
Hot-Plug Detect:用来处理热插拔。
HDMI
HDMI的结构如下图所示:
它有三组通信信号,分别是:
TMDS:用于传递音频、视频以及控制和状态数据,它分为数据和时钟两种通道;
DDC:用于获取设备的能力集合特性;
CEC:可选的,用于自定义控制的。
另外HDMI也有Hot-Plug Detect信号用于处理热插拔。
DVI
前文已经说过,DVI也HDMI有很多相似之处,这里DVI也使用了TMDS用来传递数据(但是不包括音频)。
且DVI没有使用CEC。