3、波形与LUT的关系:驱动波形(Waveform)如何通过LUT定义,波形阶段(Phase)概念

3.1 从物理波形到LUT:驱动波形的数字化映射

墨水屏的显示刷新并非像LCD那样瞬间完成,而是依赖一系列精确时序的电压脉冲序列,这一序列被称为驱动波形(Waveform)。驱动波形决定了每个像素从当前灰阶(GSx)过渡到目标灰阶(GSy)时,需要施加何种电压、持续多长时间以及施加几次。

LUT(Look-Up Table,查找表)正是将这一复杂的物理波形过程进行数字化编码的桥梁。驱动芯片通过读取LUT中的条目,逐段生成实际的电压信号。简单来说:LUT是波形的“乐谱”,驱动芯片是“演奏者”。

核心关系: 波形是物理现象,LUT是数字定义。没有LUT,驱动芯片不知道如何产生正确的波形;没有波形,墨水颗粒无法完成正确的粒子运动。
驱动波形到LUT的数字化映射 驱动波形 → LUT 数字化映射 物理驱动波形 电压 / 时间序列 数字化 LUT 表(数字编码) GSx → GSy Phase 0 Phase 1 Phase N 0 → 1 +15V -15V 0V 3 → 7 -15V +15V 0V

3.2 波形阶段(Phase)—— 波形的“乐章章节”

一个完整的驱动波形通常被划分为多个阶段(Phase)。每个Phase代表一个独立的电压施加时段,具有明确的电压极性(正/负/零)和持续时间(时长)。LUT的核心任务之一,就是为每一个Phase定义这两个参数。

典型的墨水屏驱动波形包含以下关键Phase:

Phase 名称 功能描述 典型电压 作用对象
预充(Pre-charge) 消除前一次显示残留电荷,使粒子处于已知初始状态 ±15V 或 ±20V 所有像素
驱动(Drive) 施加主要驱动力,推动黑白粒子向目标位置运动 ±15V 目标灰阶
平衡(Balance) 施加反向短脉冲,防止粒子过度聚集或产生残影 ±5V ~ ±10V 所有像素
保持(Hold) 施加零电压或极低电压,维持当前显示状态 0V 所有像素
开发提示: 并非所有墨水屏驱动都使用完全相同的Phase序列。例如,E Ink Carta 系列通常包含 4~7 个Phase,而一些快速刷新模式可能只使用 2~3 个Phase。修改LUT时,Phase的数量和顺序必须与驱动芯片的时序控制器严格匹配。
典型驱动波形的Phase结构 典型驱动波形 Phase 结构(电压-时间图) 电压 (V) 时间 (t) 0V +15V Phase 0 预充 -15V Phase 1 驱动 +5V Phase 2 平衡 0V Phase 3 保持

3.3 LUT如何定义每个Phase:电压与时长

在LUT的数据结构中,每个Phase通常由两个核心字段定义:

  • 电压等级(Voltage Level):驱动芯片内部通常集成多级电压生成器(如 +15V、-15V、+5V、-5V、0V)。LUT中存储的是电压等级的索引值,而非实际电压值。例如,索引 0x0 可能对应 +15V,0x1 对应 -15V。
  • 持续时间(Duration):以驱动芯片的时钟周期(通常为微秒级)为单位。例如,一个Phase持续 20 个时钟周期,每个周期 10μs,则总时长为 200μs。

以下是一个典型的LUT条目定义示例(伪代码):

// LUT 条目结构定义(以某款驱动芯片为例)
struct LUT_Phase {
    uint8_t voltage_index;  // 电压等级索引 (0x00 ~ 0x0F)
    uint8_t duration;       // 持续时间 (时钟周期数)
};

// 一个完整的灰阶过渡条目(GSx=0 → GSy=15)
struct LUT_Entry {
    struct LUT_Phase phase[4];  // 4个Phase组成一个完整波形
};

// 示例:从全白(0)到全黑(15)的LUT定义
LUT_Entry lut_entry_0_to_15 = {
    .phase[0] = {.voltage_index = 0x00, .duration = 10},  // Phase 0: +15V, 10个周期
    .phase[1] = {.voltage_index = 0x01, .duration = 30},  // Phase 1: -15V, 30个周期
    .phase[2] = {.voltage_index = 0x02, .duration = 8},   // Phase 2: +5V,  8个周期
    .phase[3] = {.voltage_index = 0x03, .duration = 0}    // Phase 3: 0V,   保持
};
常见错误: 修改LUT时,如果Phase的持续时间设置过短,墨水粒子可能来不及完成运动,导致显示对比度不足或出现“鬼影”。反之,持续时间过长会显著增加刷新时间,降低用户体验。通常需要通过实验确定最优时长。

3.4 波形与LUT的协同工作流程

当驱动芯片执行一次像素刷新时,波形与LUT的协同流程如下:

  1. 查表索引:根据像素的当前灰阶(GSx)和目标灰阶(GSy),在LUT中定位到对应的条目。
  2. Phase 0 执行:读取该条目的 Phase 0 数据,获取电压索引和持续时间。驱动芯片输出对应电压,并启动计时器。
  3. Phase 1 ~ N 执行:Phase 0 计时结束后,自动进入 Phase 1,重复读取和执行过程,直到所有Phase完成。
  4. 刷新完成:所有Phase执行完毕后,像素进入保持状态,显示内容稳定。
LUT与波形协同工作流程 LUT 与波形协同工作流程 1. 查表索引 (GSx, GSy) → LUT条目 2. 执行 Phase 0 电压 + 持续时间 3. 执行 Phase 1 电压 + 持续时间 N. 执行 Phase N 直至所有Phase完成 关键说明 每个Phase的电压和 时长完全由LUT 中对应条目决定。 修改LUT即修改 波形行为。

3.5 多Phase设计的必要性:为什么不能只用一段脉冲?

如果只用一段固定电压的脉冲,墨水粒子会因电荷积累而过度聚集,导致显示不均匀、残影严重,甚至损坏屏幕。多Phase设计通过交替正负电压和不同时长,实现了以下目标:

  • 电荷中和:正负电压交替施加,防止粒子在电极上永久吸附。
  • 精确灰阶定位:通过调整驱动Phase的时长,控制粒子移动的距离,从而实现 16 级甚至 32 级灰阶。
  • 残影消除:平衡Phase通过短时反向脉冲,将残留的粒子推回初始位置,减少前一幅图像的“鬼影”。
实战经验: 在开发自定义LUT时,建议先使用示波器抓取原厂LUT生成的波形,分析每个Phase的电压和时长。然后以此为基准,逐步调整驱动Phase的时长来优化刷新速度,或调整平衡Phase的电压来改善残影。每次修改后,务必进行至少 100 次以上的刷新循环测试,验证屏幕的稳定性和寿命。