MIPI DSI 屏幕目前广泛应用于手机、平板等产品中,尤其是高清屏幕基本都是采用 MIPI DSI 接口,比如 1080P、2K 级的屏幕。
一般低端 ARM 芯片,会提供 RGB 接口来驱动 LCD,中高端 ARM 芯片会提供 MIPI DSI 接口。
DSI 全称是 Display Serial Interface
MIPI:Mobile Industry Processor Interface,移动产业处理器接口
MIPI DSI(显示屏接口)
MIPI CSI(摄像头接口)
MIPI I3C
MIPI RFFE(射频前端控制接口)
MIPI SPMI(系统电源管理接口)
MIPI 主要有四个方向的协议:
1、Multimedia,多媒体
2、Control&Data,控制和数据
3、Chip-to-Chip Inter Process Communications
4、Debug&Trace,调试和追踪
多媒体部分我们用的最多就是 DSI 和 CSI,DSI 应用于屏幕,CSI 用于摄像头。对应的物理层协议有 A-PHY、C-PHY、D-PHY、M-PHY。
D-PHY:目前用的最多的接口,不管是摄像头还是屏幕,D-PHY 接口为 1/2/4lane(lane 可以理解为通道,也就是 1/2/3/4 通道,每个通道 2 条差分线),外加一对时钟线,数据线和时钟线都是差分线,为电流驱动型,不同版本的 D-PHY 速度不同。D-PHY 最多 10 根线,有专门的时钟线来进行同步。
C-PHY:随着屏幕和摄像头的分辨率以及帧率越来越高,D-PHY 的带宽越来越不够用。C- PHY 应运而生,C-PHY 接口是 1/2/3 Trio,每个 Trio 有 3 根线,最高 9 根线,没有专用的时钟线了。C-PHY 目前在高端旗舰手机芯片中可能会用到。
A-PHY:主要为汽车自动驾驶而生,目前汽车自动驾驶发展非常迅猛, ADAS(高级驾驶员辅助系统)摄像头于车载娱乐屏幕越来越多,分辨率也越来越高,而且车载摄像头和娱乐屏幕分布比较分散,到主控的距离一般比较长。但是 C-PHY 和 D-PHY 的距离太短,最多不超过 15CM,显然不适合用在当今高度智能化的车载领域。A-PHY 于 2020 年 9 月发布,用于长距离、超高速的汽车应用中,比如 ADAS、自动驾驶系统 (ADS)、车载信息娱乐系统 (IVI)和其他环绕传感器。
M-PHY:目前主要用在 USF 存储中。
MIPI DSI 接口分为数据线和时钟线,均为差分信号。数据线可选择 1/2/3/4 lanes,时钟线有一对,最多 10 根线。MIPI DSI 以串行的方式发送指令和数据给屏幕,也可以读取屏幕中的信息。很明显,如果屏幕的分辨率和帧率越高,需要的带宽就越大,就需要更多的数据线来传输图像数据,对于小尺寸的屏幕,可以使用 2 lanes 来驱动。MIPI DSI 最常用的就是 2 lanes 和 4 lanes。
MIPI DSI 一共有四层,从上往下依次为:应用层、协议层、通道管理层、物理层
1、应用层
应用层处理更高层次的编码,将要显示的数据打包进数据流中,下层会处理并发送应用层的数据流。发送端将命令以及数据编码以 MIPI DSI 的格式,接收端则将接收到的数据还原为原始的数据。
2、协议层
协议层主要是打包数据,在原始的数据上添加 ECC 和校验和等东西。应用层传递下来的数据会打包成两种格式的数据:长数据包和短数据包。发送端将原始数据打包好,添加包头和包尾,然后将打包好的数据发送给下层。接收端接收到下层传来的数据包以后执行相反的操作,去除包头和包围,然后使用 ECC 进行校验接收到的数据,如果没问题就将解包后的原始数据交给应用层。
3、链路层
链路层负责如何将数据分配到具体的通道上,MIPI DSI 可以支持 1/2/3/4 Lane,采用几通道取决于你的实际应用,如果带宽需求低,那么 2 Lane 就够了,带宽高的话就要 4 Lane。协议层下来的数据包都是串行的,如果只有 1 Lane 的话,那就直接使用这 1 Lane 将数据串行的发送出去。如果是 2/4 Lane,如下图:
如果要发送的数据和通道数不是整数倍数,那么先发送完的数据通道就进入 EOT(End of Transmission)模式。
上图的上半部分是整数倍传输,2 条通道一起结束,进入 EoT 模式。下半部分是非整数倍传输,其中 Lane 1 先传输完,所以 Lane 1 先进入 EoT 模式。同理,3/4 Lane 也一样。
在接收端执行相反的操作,将 Lane 上的数据整理打包成串行数据上报给上层:
4、物理层
物理层就是最底层了,完成 MIPI DSI 数据在具体电路上的发送与接收,与物理层紧密相关的就是 D-PHY。物理层规定了 MIPI DSI 的整个电气属性,信号传输的时候电压等。
MIPI DSI 的物理层也叫 PHY 层,MIPI 有 C-PHY、D-PHY 等,只是在 MIPI DSI 领域 D-PHY 用的最多,所以这里可以简单的认为 MIPI DSI 物理层说的就是 D-PHY。
D-PHY 是一个源同步、高速、低功耗、低开销的 PHY,特别适合移动领域。D-PHY 主要用于主处理器的摄像头和显示器外设,比如 MIPI 摄像头和屏幕。D-PHY 提供了一个同步通信接口来连接主机和外设,在实际使用中提供一对时钟线以及一对或多对信号线。时钟线是单向的,由主控产生,发送给设备。数据线根据实际配置,可以有 1~4 Lane,只有 Data0 这一组数据线可以是单向也可以是双向的,其他组的数据线都是单向的。
数据链路分为 High-Speed 模式和 Low-Power 模式,也就是常说的 HS 和 LP。HS 模式用来传输高速数据,比如屏幕像素数据。LP 模式用来传输低速的异步信号,一般是配置指令,屏幕的配置参数就是用 LP 模式传输的。HS 模式下每个数据通道速率为 80~1500Mbps,如果使用 deskew 校准,可以到 2500Mbps,最新版本的 D-PHY 支持的速率更高!LP 模式下最高 10Mbps。
D-PHY 信号电平:Lane 分为 HS 和 LP 两种模式,其中 HS 采用低压差分信号,传输速度高,但是功耗大,信号电压幅度 100mv~300mV,中心电平 200mV。LP 模式下采用采用单端驱动,功耗小,速率低(<10Mbps),信号电压幅度 0~1.2V。在 LP 模式下只使用 Lane0,不需要时钟信号,通信过程的时钟信号通过 Lane0 两个差分线异或得到,而且是双向通信。
下图蓝色实线是 LP 模式下的信号波形示例,电压为 0~1.2V。绿色虚线是 LP 模式下信号的高低电平门限。红色实线是 HS 模式下的信号波形示例,中心电平 200mV。
在 MIPI DSI 的链路层有两种模式:video 和 command,这个属于 HOST 端。video 和 command 通常离不开 HS 和 LP 模式,但是 video 和 command 属于 Host 范畴,HS 和 LP 属于 D-PHY 范畴。
command 模式一般是针对那些含有 buffer 的 MCU 屏幕,比如 STM32 单片机驱动 MCU 屏的时候就是 command 模式。当画面有变化的时候,DSI Host 端将数据发给屏幕,主控只有在画面需要更改的时候发送像素数据,画面不变化的时候屏幕驱动芯片从自己内部 buffer 里面提取数据显示,command 模式下需要双向数据接口。一般此种模式的屏幕尺寸和分辨率不大,一般用在单片机等低端领域。
video 模式没有 framebuffer,需要主控一直发送数据给屏幕,和 RGB 接口屏幕类似。但是 MIPI DSI 没有专用的信号线发送同步信息,比如 VSYNC、HSYNC 等,所以这些控制信号和 RGB 图像数据以报文的形式在 MIPI 数据线上传输。基本上我们说的 MIPI 屏就是工作在 video 模式下。
video mode 数据传输有三种时序模式:
Non-Burst Mode with Sync Pulses:外设可以准确的重建原始的视频时序,包括同步脉冲宽度。
Non-Burst Mode with Sync Events:和上面的模式类似,但是不需要精准的重建同步脉冲宽度,取而代之的是发送一个“Sync event”包。
Burst Mode:此模式下发送 RGB 数据包的时间被压缩,这样可以在发送一行数据以后 尽快进入到 LP 模式,以节省功耗。
5、MIPI 屏幕驱动调试
1、必须和 SOC 以及屏幕原厂合作
2、必备逻辑分析仪
3、三大调试内容:1)、屏幕背光调试,PWM 相关知识。2)、向屏幕发送初始化序列,用逻辑分析仪。3)、调试屏幕的 DPI 参数。
本文分享自 嵌入式Linux系统开发 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!