上一章讲述了 display-port 的硬件连接 , 今天来说说协议层
图中可以看到,最底层是物理层,上层是连接服务层,提供的服务包括同步数据传输服务,aux链接服务,aux设备数据传输服务,在设备端也一样,但是两者完成的功能不同,主机端服务主要用于完成数据打包,填充,数据的多路分离(也就是将一个数据包分在几个lane上传输)以及数据编码,在设备端方向完成解包,去填充,多路数据合成,反编码,以及从数据包中恢复时钟.
在应用层,要完成视频流的管理,解码等操作和硬件连接的管理
在终端中,在数据流之外还需要实现两个服务,一个叫DPCD,保存disport的配置数据描述当前连接的相关信息如链路是否同步等,便于连接的恢复,还有一个叫做EDID,用于将视频流表现到屏幕上
链路层主要实现两项功能:时钟同步数据串流传输服务和链路与设备服务。其中,时钟同步数据串流传输服务保证了视频、音频数据串流透过一定的规则从主链路传输到终端,以使终端设备能够正确恢复和识别原始数据和时钟信号;链路与设备服务透过读取终端设DPCP和EDID,识别其工作能力和状态,分别在链路级和设备级配置和维护传输。DisplayPort的链路层的主要特点是微封包架构(Micro-PacketArchitecture)传输
微封包架构
在DisplayPort的主链路上,所有的视频、 音频数据串流都被封包化为微封包,这些微封包称为传输单元。每一个传输单元都由64个字符组成。如果被传输的数据串流小于64个字符,DisplayPort会自动将它补足为64个。另外,在数据编码规则上,DP采用了ansi8b/10b计数,说明如下
另外,dp的数据传输格式为lsbfrist
每一包数据指示一帧,每帧中包含有一些特殊符号,代表着数据的控制信息(行,场等)
如下图
另外,因为通道可配置为1 2 4lane的,所以像素平均分配到几个通道上,分配关系如下
传输数据的格式如下
四个字节的banking_start信息
四个字节的mvid信息 标识有效视频信号的个数,为四可以保证四通道分裂的时候每个通道都有一个vid
四个字节maud信息,标识有效音频信号的位置标记
四个字节的bank_end
开始传输数据(前面的相当于一部分时钟同步)
数据传输分裂示意图
具体设计到不同颜色深度不同颜色格式的数据格式,请查阅协议手册