一、8x60平台显示系统硬件模块讲解
上图取自8x60硬件的架构图,都是和显示比较相关的部分,其中最主要的就是MDP,同时为了兼容各种显示接口,8x60又集成了MIPI、HDMI的transmitter以及TV Encoder。这样一来,可以支持多种显示设备,如下:
1.MIPI接口的LCD
2.RGB接口的LCD
3.LVDS接口的LCD(需外加一颗Transmitter)
4.电视(模拟接口)
5.HDMI TV(无须外接Transmitter,8x60内部集成)
图中绿色部分为Graphics模块,这部分和显示没有直接联系,主要是对显示的数据进行2D、3D处理,为OpenGL提供硬件支持,后面也会有详细介绍。
下面就详细的讲解一个上述的各个模块:
MDP4.1
8x60上MDP的版本已经升级到了4.1,主要的改动是对多接口的支持以及内部数据处理管道的提升,另外在性能上(如PCLK)也有所提高(支持大尺寸屏幕)。
首先来看一下对于接口的支持,MDP4.1允许同时支持最多3个输出设备,如下图所示:
Primary display可以是MIPI接口的LCD或是RGB接口的LCD;
External display可以是支持HDMI的显示设备或是DSUB显示设备(模拟信号)或是普通电视机(NTSC/PAL模拟信号);
Second display可以是手机上的小屏,接口为EBI。
数据管道部分,MDP4.1由原来的一个PPP(Pixel Process Pipe)管道增加到目前的4个overlay pipe(layer),如图中所示,其中2个VG(Video/Graphics)pipe,2个RGB pipe。VG管道支持YUV或是RGB数据的处理;RGB pipe只能处理RGB数据。另外,VG1和RGB1的数据经过mixer1混合后送到Primary display的接口,而VG2和RGB2的数据经mixer2混合后送到External display的接口;EBI的接口和overlay没有关系,是单独的一个DMA layer。
为了支持高分辨率的显示设备,MDP4.1的性能也比之前提升很多。
A)MIPI DSI
最高支持4-lanes DSI,速率高达800Mbps/Lane,支持最大分辨率为WXGA(1280*800)
B)RGB
PCLK最高达103MHZ,支持最高分辨率为WSXGA(1440*900) 60HZ,可以外接LVDS屏幕。
Note:7x30上PCLK最大为75MHZ,无法支持大尺寸的LVDS屏幕
C)HDMI
支持1080p(1920*1080)24-bit color 60HZ
D)支持NTSC/PAL TV OUT
E)EBI
支持分辨率最大为QVGA(320*240)。
F)支持Blending
G)支持Scale:0.125~20x
H)支持数据格式转换
I)Rotator
该模块不在MDP内部,MDP4.1没有rotate的能力,在MDP外部有一个HW rotator,任何需要rotate的数据在送往MDP之前都必须送到HW rotator进行处理
Note:MDP4.1移除了对MDDI接口的支持(个人认为应该是支持MDDI接口的大尺寸屏幕比较少)
HDMI
8x60内部集成了一个HDMI的transmitter,可以直接输出HDMI信号,无须像7x30或是8x50那样需要外接一颗transmitter。8X60上支持的版本为HDMI1.3及HDCP1.3.
上图是HDMI的模块图,可以分2部分来看,上半部分为控制部分-DDC通道,使用的就是I2C的协议,可以完成HDCP(High -bandwidth Digital Content Protection),其中GPIO172为HPD pin,专门用来检测HDMI设备的;下半部分为数据通道,主要是encoder,负责把RGB信号和音频信号(PCM)转换成HDMI总线上的TMDS信号。
Graphics
8x60上Graphics由之前的adreno205升级到目前的adreno220,内置2个2D engine-Z180和一个3D engine-Z470,主要是performance的改进,处理能力提升到88M Triangles/s,支持最高分辨率为WSXGA。该部分主要为OpenGL、OpenVG等硬件方案提供支持,后续在SW中会继续介绍。