在MIPI协议族中,除了DSI(用于显示),CSI(用于摄像头),还有几个概念会经常涉及到,这里把他们提出来说一说,免得有误区;
MIPI DPI的全称为Display Pixel interface,是用于主机到显示设备的一种数据传输标准(一般为csi_tx或者dsi_controller的数据输入接口);显示设备的话,分为很多种不同的类型,有的显示设备本身内部不带Framebuffer,那么就需要主机不停的给显示设备送数据;还有的显示设备,它内部集成了Framebuffer,主机只需要发送一帧的数据过去,然后主机就可以休息了,显示设备控制芯片那端的Framebuffer会自动的按照刷新率往显示上送;
DPI的主要使用场景,就在不断的往显示设备送数据,即,显示设备端没有Framebuffer的情况;
我们来看一下DPI的接口信号定义:
左边是我们的CPU的DPI控制器,右边是显示设备的控制器;
右边上面是供电口,暂时不管他,没有在本次讨论范围之内;
我们可以看到,Host给Display Module之间的通信,是通过单向的很多信号实现的;这个信号看卡里怎么这么像我们的VGA或者LCD的信号呢?的确是这样。
可以看到,我们的数据信号可以是16bit/18bit/24bit;
像素时钟取决于具体要显示的内容,比如你要传一个720p@16fps的RGB565,那么像素时钟就可以计算出来;
既然DPI的时序和VGA,以及LCD是一致的,那么这里不多介绍,直接把DPI的Timing贴上来;
除了时序,还有一点需要注意的地方,Color coding,也就是当在使用16bit/18bit/24bit来传输像素RGB数据的时候,几根线上的RGB通道是如何进行排序的?
这里引出了16bit的CFG1,CFG2,CFG3,以及18bit的CFG1,CFG2的配置;