Rockchip RK3399 - DRM eDP介绍

Rockchip RK3399 - DRM驱动程序》》我们已经介绍过了,RK3399有两个VOP,均可以支持HDMIeDPDPMIPI DSI0MIPI DSI1显示接口,由于此时我手里正好有一块友善7寸高清电容触摸显示屏(型号为HD702EeDP接口),因此本节我们选择eDP作为分析的对象。

一、eDP介绍

1.1 概述

eDP全称(Embedded DisplayPort))嵌入式显示接口,它是一种基于DisplayPort架构和协议的一种内部数字接口。可以用较简单的连接器以及较少的引脚来传递高分辨率信号,且能够实现多数据同时传输。

eDP协议是针对DP(Display Port)应用在嵌入式方向架构和协议的拓展,所以eDP协议完全兼容DP协议。

相对于DVI/HDMI来说,eDP具有高带宽、整合性好、相关产品设计简单,该接口已广泛应用于笔记本电脑、平板电脑、手机等其它集成显示面板和图像处理器的领域。

eDP接口降低设备复杂性,支持关键跨行业应用程序的必要功能,并提供性能可伸缩性,以支持具有更高颜色深度、刷新率和显示分辨率的下一代显示器。

eDP是被设计来取代比较旧的数字视频传送接口,如LVDS,尤其在全高清PHD(1920x10801920x1200)或超过FHD解析度的面板上。

1.1.1 版本变更
年份版本介绍
2011.08eDP1.3支持RBR(Reduced Bit Rate)1.62Gbps/lane
支持HBR(High Bit Rate)2.7Gbps/lane
可选HBR2 5.4Gbps/lane
2014.03eDP1.4支持RBR(Reduced Bit Rate)1.62Gbps/lane
支持HBR(High Bit Rate)2.7Gbps/lane
支持HBR2 5.4Gbps/lane
2015.01eDP1.4a支持RBR(Reduced Bit Rate)1.62Gbps/lane
支持HBR(High Bit Rate)2.7Gbps/lane
支持HBR2 5.4Gbps/lane
支持HBR3 8.1Gbps/lane
支持YCbCr4:2:0 and RAW
2015.10eDP1.4b支持RBR(Reduced Bit Rate)1.62Gbps/lane
支持HBR(High Bit Rate)2.7Gbps/lane
支持HBR2 5.4Gbps/lane
支持HBR3 8.1Gbps/lane
支持YCbCr4:2:0 and RAW
1.1.2 术语

在介绍eDP时,我们会提到大量的专业术语:

  • HDCPHigh-bandwidth Digital Content Protection版权保护相关的,通过IIC获取;
  • EDIDExtended Display Identification Data扩展显示标识数据,包含有关显示器及其性能的参数,包括供应商信息、最大图像大小、颜色设置、厂商预设置、频率范围的限制以及显示器名和序列号的字符串等;
  • HDPHot Plug Detect热插拔检测;
  • SourceA device with an eDPoutput
  • SinkA device with an eDPinput
1.2 eDP框图

eDP系统架构由source端和sink端组成:source是指发送eDP信号的一侧,sink是指接收eDP信号的一侧。

以上是eDP的结构图,从中我们大致可以看出eDP信号的组成部分:

  • 主要通道(Main Link):用来传输各种类型的视频数据和音频数据;
    • 1-4lanes组成,每条lane都是一对差分线;这些数据线是单向的,从source指向sink
    • 每对差分线采用交流耦合技术,发送端与接收端可以具有不同的共模电压,因此可以把接口做的更小;
    • 数据采用ANXI 8B/10B编码方式,eDP1.4中每条lane的速率最大为5.4Gbps,最小为1.62Gbps
    • 每条数据都是数据线,没有时钟线,减小了EMI
  • 辅助通道(AUX);
    • 用于传输小带宽需求的数据,链路管理和设备控制;
    • 采用交流耦合差分传输方式,是一条双向半双工传输通道 ;
    • 采用ManchesterII编码 ;
    • 提供1Mbps的传输速率和15m的传输距离 ;
    • 低延时,每个传输任务都有时间要求小于500us
    • 该通道提供Link ServicesDevice Services;具体来说它与EDIDDPCD存储器相连,并通过总线方式读写。
      • EDID为显示标识数据,用于存储显示器的相关参数;
      • DPCDeDP接口配置数据,与链路管理层相连,用于链路层面的配置;
  • 热插拔(HPD):该项功能在eDP中是可选的。与DP一样,eDP支持与此信号相关的所有功能,包括中断以及链路故障通知。如果不使用HPD功能,source端可以通过轮询的sink方式来检查链路的完整性,但是这种方式会增加source的功耗,所以还是推荐使用HPD的方式。

此外,对于1.2及以上版本、Backlight control背光控制是可选的,

1.2.1 eDP接口

eDP接口通常使用FPC接口,如下图所示:

NanoPC-T4开发板为例,连接器型号: I-PEX-20455-030E30PIN

1.2.2 引脚分布

eDP连接器主要是20PIN30PIN40PIN

1.3 性能计算方法
1.3.1 Lanerate的需求计算

以标准时序1920x1080@60Hz为例;

{ DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 148500, 1920, 2008,
			   2052, 2200, 0, 1080, 1084, 1089, 1125, 0,
			   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }

其中:

  • htotal:2200
  • vtotal:1125
  • filed rate:60Hz

那么像素时钟频率:$$PCLK=2200*1125*60=148.5MHz$$

如果传输像素单元为24bpp,则其传输带宽为:$$148.5MHz*24bpp=3.564Gbps$$

eDP 1.4支持最大单lane 5.4Gbps,其传输有效数据带宽为:$$5.4Gbps*0.8(8/10B的编码)=4.32Gbps$$

结论:单lane 5.4Gbps即可满足传输需求。

1.3.2 基本传输单元(TU)插入空闲字符数

为了避免link带宽过载,数据的打包速率只能等于或者小于link symbol的速率,如果是小于的情况,则需要传输空闲字符,空闲字符放在FSFE之间。

一个基本传输单元具有32~64link symbol,而且在传输过程中不能改变。

假如显示规格为1920x1080@ 60Hz24bppstrm_clk=148.5MHz,采用2.7Gbps4lane传输,TU的大小固定为64。

\[Packt data rate=148.5*24/8/4=111.375MHz \]
\[平均每个TU中有效数据的个数=(111.375M/270M)64=26.4 \]

所以单laneTU的大小为64active symbol27个。

1.4 电路原理图

接下来我们看一下我们使用的NanoPC-T4开发板eDP接线原理图。

1.4.1 RK3399
1.4.2 eDP接口侧

eDP 30PIN接口引脚定义以及与RK3399连接信息如下:

Pin#AssignmentDescriptionRK3399
1GNDSignal ground
2EDP_TX3NeDP data lane 3 negative outputEDP_TX3N
3EDP_TX3PeDP data lane 3 positive outputEDP_TX3P
4GNDSignal ground
5EDP_TX2NeDP data lane 2 negative outputEDP_TX2N
6EDP_TX2PeDP data lane 2 positive outputEDP_TX2P
7GNDSignal ground
8EDP_TX1NeDP data lane 1 negative outputEDP_TX1N
9EDP_TX1PeDP data lane 1 positive outputEDP_TX1P
10GNDSignal ground
11EDP_TX0NeDP data lane 0 negative outputEDP_TX0N
12EDP_TX0PeDP data lane 0 positive outputEDP_TX0P
13GNDSignal ground
14EDPAUXPeDP CH-AUX positive differential outputEDPAUXP
15EDPAUXNeDP CH-AUX negative differential outputEDPAUXN
16GNDSignal ground
17VCC3V3_SYS3.3V Power output for logic
18VCC3V3_SYS3.3V Power output for logic
19I2C4_SDA3V I2C data signal, Connect to touch panelGPIO1_B3/I2C4_SDA
20I2C4_SCL3V I2C clock signal, Connect to touch panelGPIO1_B4/I2C4_SCL
21GPIO1_C4_TP_INT3V interrupt input, Connect to the interrupt output of touch panelGPIO1_C4/I2C8_SDA
22GPIO1_B5_TP_RST3V output for reseting touch panel, Connect to the reset input of touch panelGPIO1_B5
23PWM0_BL3V PWM output, for LCD backlight dimming. pulled up to VCC3V3_SYS on LCD side.GPIO4_C2/PWM0/VOP0_PWM/VOP1_PWM
24GPIO4_D5_LCD_BL_EN3V output for turning on/off the LCD backlightGPIO4_D5
25GNDBacklight ground
26GNDBacklight ground
27GNDBacklight ground
28VCC12V0_SYS12V Power output for Backlight Power
29VCC12V0_SYS12V Power output for Backlight Power
30VCC12V0_SYS12V Power output for Backlight Power

除了之前我们介绍的lanesAUX引脚外,这里还多出了如下引脚:

  • I2C4_SDAI2C4_SCL:我所使用是友善7寸高清电容触摸屏,在此处触摸数据使用的I2C进行通信(通常触摸屏数据采用的是I2C/AUX两种选项);

  • GPIO1_C4_TP_INT:触摸面板中断引脚,默认高电平,发生触摸后该引脚会发送一个低电平的脉冲信号;

  • GPIO1_B5_TP_RST:触摸面板的复位引脚,配置触摸芯片时会用到;

  • PWM0_BLPWM输出,用于控制LCD背光的亮度;

  • GPIO4_D5_LCD_BL_ENLCD背光使能;

  • 1718引脚的VCC3V3_SYS3.3V Power output for logicLCD逻辑电路供电;

  • 282930引脚得VCC12V0_SYS12V Power output for Backlight Power,为LCD背光电源;

1.4.3 电源信号

(1) VCC12V0_SYS:系统电源,开发板输入电源;

(2) VCC3V3_SYS:由VCC12V0_SYS经过NB680GD降压开关模块转换器输出得到固定3.3V电压;

(3) VCC0V9_S3:由PMIC_SLEEP_H(连接RK3399GPIO1_A5/AP_PWROFF,这个应该是处理器睡眠引脚,处理器工作时电源有效)引脚控制的;

  • PMIC_SLEEP_H为低电平,Q16 N MOS管导通、VCC0V9_S3输出为0.9V
  • PMIC_SLEEP_H为高电平,Q16 MOS管截止、VCC0V9_S3输出为0V

二、eDP进阶

2.1 eDP触摸功能

当前市面上使用的触摸屏一般都使用了I2C接口,当然也有SPIUSB等接口。同时支持多点触摸,那什么是多点触摸呢?顾名思义,多点触摸技术指的是允许用户同时通过多个手指来控制图形界面的一种技术,与多点触摸技术相对应的当然就是单点触摸。具体可以参看我们之前介绍的《Rockchip RK3399 - USB触摸屏接口驱动》。

2.1.1 HD702介绍

HD702是友善之臂设计开发并生产的一款7寸高清电容触摸显示模块,分辨率为1280 x 800,支持触摸,背光可调(通过一线通讯),其接口适用于友善之臂出品的4412/4418/6818等系列ARM主控板,可支持Linux, Android等嵌入式系统,并且驱动开源。

而我们使用的是带有eDP接口的HD702,因此其型号被定义为HD702E,其采用I2C接口进行触摸数据传输。

2.1.2 I2C触摸原理

首先,需要了解I2C触摸屏的工作原理。I2C触摸屏是一种通过I2C接口连接到SoC的输入设备,它的工作原理类似于普通的触摸屏。一般来言,I2C触摸屏内部驱动板都会有一个触摸IC,比如FT5426

  • 此芯片一端连接触摸屏的模拟信号,对触摸动作采样然后AD转换;
  • 另一端通过I2C连接SoC,即将AD转换后的数据通过I2C接口发给SoC

对于I2C接口触摸屏来说:

  • 所谓的触摸驱动本质上就是I2C设备驱动;
  • 触摸IC提供了中断信号引脚,当检测到触摸信息后就会触发中断,那么就要在中断处理程序里来读取触摸信息;得到的是触摸位置绝对信息以及触摸屏是否有按下;
2.1.3 数据格式

鼠标、键盘、触摸屏均数据HID(Human Interface Devices)设备,所以触摸屏连接的源端设备的系统软件和固件必须支持HID规范。

触摸屏采集的数据必须以HID格式上报,由HID报告描述符定义。

触摸屏source端设备必须具备的条件:

  • 可以接收到触摸的标准数据;
  • 可以解析触摸数据;
  • IRQ_HPD中断进程在一个成比例的速率下与他的触摸设备相同;

触摸屏sink端:

  • 有传感器可以产生原始的触摸数据;
  • 有一个格式化器,可以将原始数据转换成标准的协议形式数据;
  • 可以将每个原始数据转换成标准数据之后传输到source端;

这里说的标准数据,指的就是符合HID描述符描述的数据格式,具体可以参考我之前介绍的《HID报告描述符》。

2.1.4 数据通信

当选择触摸屏幕时,触摸屏source端可以发起OutputFeature Reports, 触摸屏sink端可以发起InputFeature Reports

触摸屏sink端可以通过AUX_CH传输触摸数据也可以通过I2C进行数据传输。需要保证触摸屏传输的数据支持HID协议规范。

下图是触摸屏source端和sink端的通信;

2.2 eDP屏幕接通数据流

上电之后,eDP source端和sink端数据流如下:

  1. sink端通过HPDsource端发射一个脉冲信号,告诉source端有设备接入;
  2. source端通过AUX通道读取sink端的DPCD接收能力字段;
  3. sink端使用DPCD接收能力字段进行应答;
  4. source端通过AUX通道读取sink端得EDIDEDID用来表示sink能够显示的画面的能力、参数等等,具体可以参考:《EDID》;
  5. sink端通过AUX应答EDID
  6. 写入DPCD链路配置路段;
  7. source端设备启动Link Trainingsink端可进行时钟恢复和均衡化;
  8. source端读取DPCD链路和sink端的状态;
  9. sink端回应DPCD链路和sInk端的状态,如果Main-link不稳定,返回步骤7;
  10. source端发送MSA(主流属性)数据;
  11. source端发送视频数据;

具体流程如下图所示:

具体时序如下图所示:

参考文章

[1] DP/eDP协议学习--协议简介

[2] eDP接口的LCD屏简述

[3] 输入子系统–电容触摸驱动实验

[4] RK3568J edp屏幕点亮 时序调试总结

[5] DisplayPort连接握手时序

[6] AIO-3566JD4 LCD使用

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Graceful_scenery

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值