Android Qcom LCD display 学习
Posted bobuddy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Qcom LCD display 学习相关的知识,希望对你有一定的参考价值。
MIPI(Mobile Industry Processor Interface)
MIPI官方网站
MIPI各种介绍博客Felix大神
MIPI-DSI 三种 Video Mode 理解
android Camera的基础理论和工作原理
目前接触到的MIPI协议主要有两个应用,CSI(Camera Serial Interface,摄像头串行接口)和DSI(Display Serial Interface,显示串行接口),这两个协议共用一种物理层协议D-PHY。DSI区别于CSI在于DSI协议中不存在CCI,且Data Lane0可以是双向的(Bidirectional)
DSI (Display Serial Interface)
D- PHY的物理层定义了HS( High Speed )和LP( Low Power )两种传输模式
HS模式:低压查分信号 功耗大 高速率 ( 80M -1Gbps ) 信号幅值 ( 100mv-300mv )
通道状态是差分的0或1,定义P比N高时定义为1,P比N低时定义为0,此时线上典型电压为差分200mv
LP模式:单端信号 功耗小,速率低 ( < 10Mbps ) 信号幅值 (0-1.2V ),只用lane0传输数据和时钟,双向数据传输
链路层的模式主要分为 Command模式 和 Video模式 两种,传输按照DCS显示控命令集,在上一节中有说明一些datatype。
链路层选择Command模式时,物理层可以为HS模式,也可以为LP模式;当应用处理器向显示设备发送命令时,显示设备需要返回对应的相关数据,所以在此模式下需要双向的数据通道,即需要Data Lane支持Bidirectional模式。
链路层选择Video模式时,物理层只能选择HS模式,当需要显示视频或图像数据时在此模式下传输,MIPI的DSI协议规定,对于那些只支持视频模式的DSI系统(即不支持命令模式),Data Lane也可以是单向的,即Unidirectional。需要注意的是,Bidirectional的DSI接口一般也仅仅是Data Lane0支持双向通信,其余的Data Lane仍然应当是Unidirectional的。
Video Mode Timing
为了使能Video模式Host需要发送各种不同的包到panel用来设置开始和结束的Porch.以下是Video模式中用到的数据包:上图顶部有圆弧的代表数据包,长方形的代表时序的状态。
• VSS: DSI Sync Event Packet: V Sync Start
• VSE: DSI Sync Event Packet: V Sync End
• BLLP: DSI Packet: Arbitrary sequence of non-restricted DSI packets or Low Power Mode incluing optional BTA.
• HSS: DSI Sync Event Packet: H Sync Start
• HAS: DSI Blanking Packet: Horizontal Sync Active or Low Power Mode, No Data
• HSE: DSI Sync Event Packet: H Sync End
• HFP: DSI Blanking Packet: Horizontal Front Porch or Low Power Mode
• HBP: DSI Blanking Packet: Horizontal Back Porch or Low Power Mode
• RGB: DSI Packet: Arbitrary sequence of pixel stream and Null Packets
• LPM: Low Power Mode incuding optional BTA
Video模式又分三种子模式: (1)Non-burst Mode Sync pulses (2)Non-burst Mode Sync event (3)Burst mode
以下为上述三种video mode下的数据传输时序图:
Non-Busrt Mode with Sync Pluses: 该模式主要是用于发送DPI(Display Pixel Interface)类型的数据,可以精确地控制原始视频的时序(包括同步脉冲的宽度),可基于各种不同的同步数据包来做数据同步。这种数据包括:重构,时间校准等;因此每一个Sync Start都必须都要有一个唯一的Sync End与之对应。
Non-burst Mode Sync event: 与第一种模式很像,但这种模式不会发重构和时间校准的数据包,只发送一种叫做”Sync event”的包,可以认为是上一种模式的的简化。由于不需要精确控制时序事件的宽度,所以只有Sync Start,而没有Sync End。
Burst mode: 相比于Non-Burst Mode with Sync Events模式,可以更快完成一帧(或一行)图像像素的传输,使用的是经过时序压缩的数据格式(Time-compressed burst format),因此可以留出更多的时间用来传送其他的数据,从而降低系统的功耗。
DataSheet Packets
下述为查阅某LCD IC Datasheet中的传输模式
dtsi
qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
qcom,mdss-dsi-h-sync-pulse = <0>; //主要用于描述sync_pulse模式的
xml
<DSITrafficMode>1</DSITrafficMode>
以上是关于Android Qcom LCD display 学习的主要内容,如果未能解决你的问题,请参考以下文章
Qcom android L ro.sf.lcd_density属性修改