介绍
DSI全称Display Serial Interface,主要用于显示模块的一个接口,它基于MIPI协议而产生,基于MIPI协议的还有CSI(camera serial interface), DBI(display bus interface), DPI(display pixel interface)。相对于一般的RGB接口,DSI有成本低,高速率的优势。在MSM8960平台上,RGB接口已经被移除掉了,留下的只有DSI-4lane, DSI-3lane接口了。如下为简单的主机与显示模块的连接图:
可以看到DSI用的是差分信号传输,一个为clock,其他都为data线,最大为4条lane,具体使用几条lane由项目中显示需要传输的数据量决定,当然,lane使用原则为越少越好,减少布线。
DSI是分层打包传输数据的,如下图:
总共有四层,上面三层是属于DSI的内容,它基于PHY layer而工作。下面以host端为例对描述下每层大概功能,对于client端的动作恰好相反:
- PHY layer:说白了主要是用来捕捉“0” 和“1”串行电平信号的,另外还产生发送data所需要的SOT(Start of transmission)和EOT(End of transmission),后面会说到。具体可以参考mipi spec里的d-phy介绍。
- Lane-management layer: 将PHY搜集的信号做一个合并或分发。
- Protocol Layer: 将字节流打包成DSI packet, 以及产生验证ECC,另外还有错误校验。
- Application Layer: 数据交互,转换pixel data, signal events 和commands为字节流。
DSI模式
DSI支持两种基本操作模式, command mode和video mode。 Video mode表示无论当前显示是否有数据更新,DSI host端一直送数据给panel显示。Command mode表示只要当数据画面有变化时,DSI host端才送数据给panel显示。
上图可以看出,video mode没有framebuffer,需要CPU一直刷新数据。而command mode中,panel driver IC有Ram来存显示的数据做自我刷新。
由于co