Control Symbol
协议中也有说到,DP的数据传输是以微包的形式传输的,顾名思义,就是微小包。那什么划分了微包?就是这些control symbol。这些control symbol的插入时序肯定是不能错的,如果出错,receiver端就无法正确解出数据。从目前的我所接触到的信息看来,receiver端完全根据这些control symbol解出数据,vsync和hsync的产生式根据transmitter发送的视频参数属性包重新生成的。
Control Symbol的类型
K码介绍请参考8b10b编码k码
协议中说明,只要receiver使用DPCD 大于等于1.2,就要使用Enhanced Framing mode,在Enhanced Framing 模式下,规定插入规则为
今天被告知,市面上实际上没有支持DP1.2以下版本的屏幕,所以控制器没有必要支持非Enhanced frame模式。
Control Symbol插入时序
这里主要想重点讲一下BS和BE的添加时序,读过DP协议的伙伴都应该发现,在DP协议中并没有明确说BS和BE的插入时序,只是想表格中描述的那样
(1)在垂直显示区域,在每行的最后一个有效像素后插入;
(2)在垂直消隐区和垂直显示区插入的时刻相同。
这两点说的就比较模糊了,难道真的就像这两点一样。后来我读eDP的协议,在自刷新那一章节有一个这样的图
看到这个图我就更模糊了,难道是在所有Hsync起始的地方插入BS+CP+CP+BF吗?
不是的!不是的!不是的!因为这个图的Active Frame在右下角,根本就没有前肩(Hsync前肩)所有BS的位置还是最后一个有效像素后的那一列,而且垂直消隐区也是和垂直显示区对其的。------就是DP协议刚说的那两点。额额额,协议没有骗人,就是说的不太清楚而已。实际项目中DP transmitter 产生的时序就是这样的。
协议要求在无视频传输时,每8192个symbols插入一个BS,这里的symbols个数是以单lane计算的,如果使用加强帧模式,那么每隔8188个symbols插入BS+VBID+MVID+MAUD。
这里还想说一下实现的代码结构。
(1)首先根据时序产生有效像素+secondary 的数据流。
(2)再根据时序在该视频流的基础上插入control symbols