2. 触摸屏技术基础
触摸屏是人机交互的核心部件,在 RGB 接口 LCD 系统中通常作为独立外设挂接在 I²C 或 SPI 总线上。本章从物理原理、电气接口和协议三个层面剖析电阻式与电容式触摸屏,为后续逻辑分析仪抓取触摸数据打下基础。
2.1 电阻式触摸屏原理
电阻式触摸屏由两层透明导电薄膜(ITO)组成,中间由微小绝缘隔点分隔。当外力按压上层薄膜使其与下层接触时,形成分压回路,通过测量 X/Y 方向的电压比例即可定位触点。
关键物理特性: 电阻屏是压力感应型,支持手指、手套、触笔操作,成本低但透光率约 75%–80%,不支持多点触控。
2.2 电容式触摸屏原理
电容式触摸屏利用人体与 ITO 电极之间的寄生电容变化来检测触摸。自电容方案测量单电极对地电容,互电容方案测量行列交叉点的耦合电容变化,后者是实现多点触控的主流技术。
| 对比项 | 自电容(Self-Capacitance) | 互电容(Mutual-Capacitance) |
|---|---|---|
| 测量对象 | 单电极对地电容 | 行列交叉点耦合电容 |
| 多点触控 | 支持有限(鬼点问题) | 真多点,无鬼点 |
| 扫描方式 | 逐行/逐列扫描 | 逐交点扫描 |
| 灵敏度 | 较高,适合大尺寸 | 更高,适合小间距 |
| 典型应用 | 单点触控、触控按键 | 智能手机、平板 |
调试提示: 电容屏控制器(如 FT5x06、GT911)通常内置电容数字转换电路,通过 I²C 或 SPI 直接输出坐标数据。逻辑分析仪抓取时重点关注 I²C 起始条件、设备地址和寄存器地址,而非模拟电容波形。
2.3 触摸屏接口:I²C 与 SPI
嵌入式系统中触摸屏控制器几乎全部采用 I²C 或 SPI 与主控通信。下表列出两种接口在触摸场景下的典型差异:
| 参数 | I²C | SPI |
|---|---|---|
| 信号线 | SDA、SCL(2 线 + GND) | MOSI、MISO、SCLK、CS(4 线 + GND) |
| 速率 | 标准 100 kHz / 快速 400 kHz / 高速 3.4 MHz | 典型 1–10 MHz,最高可达 50 MHz |
| 从机选择 | 7 位或 10 位设备地址 | 片选 CS 低电平有效 |
| 数据方向 | 半双工(主写/主读分时) | 全双工(MOSI/MISO 同时传输) |
| 典型触摸 IC | FT5x06、GT911、CST816 | TSC2046、ADS7846(电阻屏) |
| 逻辑分析仪关注点 | 起始条件、设备地址 + R/W、ACK/NACK | CS 下降沿、时钟极性和相位、字节顺序 |
2.3.1 I²C 触摸读取流程
- 起始条件: SCL 高电平时 SDA 由高变低。
- 发送设备地址 + 写位: 例如 0x38 << 1 | 0 = 0x70,等待 ACK。
- 发送寄存器地址: 例如 0x02(触摸状态寄存器),等待 ACK。
- 重复起始条件: 切换为读方向。
- 发送设备地址 + 读位: 0x38 << 1 | 1 = 0x71,等待 ACK。
- 读取数据字节: 主控产生时钟,从机发送数据,主控每字节后发 ACK。
- 停止条件: SCL 高电平时 SDA 由低变高。
逻辑分析仪配置建议: 采样率设为 I²C 时钟的 4 倍以上(如 400 kHz 时钟用 2 MHz 采样),触发条件设为 SDA 下降沿(起始条件),解码协议选择 I²C,即可自动解析地址、数据和 ACK。
2.3.2 SPI 触摸读取流程
- 拉低 CS: 选中从机。
- 发送命令字节: 例如 0x90(差分模式 + 通道选择),同时 MISO 返回无效数据。
- 发送 2 个 dummy 字节: 等待 ADC 转换完成,同时 MISO 返回 12 位或 16 位触摸数据。
- 拉高 CS: 结束本次传输。
// SPI 读取 TSC2046 触摸坐标示例(伪代码)
uint16_t read_touch_tsc2046(uint8_t channel_cmd) {
uint8_t tx_buf[3] = {channel_cmd, 0x00, 0x00};
uint8_t rx_buf[3] = {0};
HAL_GPIO_WritePin(CS_GPIO, CS_PIN, GPIO_PIN_RESET);
HAL_SPI_TransmitReceive(&hspi1, tx_buf, rx_buf, 3, HAL_MAX_DELAY);
HAL_GPIO_WritePin(CS_GPIO, CS_PIN, GPIO_PIN_SET);
// 12 位数据拼接:rx_buf[1] 高 8 位,rx_buf[2] 高 4 位
return ((uint16_t)rx_buf[1] << 4) | (rx_buf[2] >> 4);
}
常见调试陷阱: SPI 时钟极性(CPOL)和相位(CPHA)必须与触摸 IC 数据手册一致。TSC2046 通常使用模式 0(CPOL=0, CPHA=0)或模式 1(CPOL=0, CPHA=1)。逻辑分析仪抓取时先确认 CS 有效期间 SCLK 空闲电平及数据采样沿,否则解码会错位。
2.4 触摸屏接口对比总结
| 维度 | 电阻式(SPI 典型) | 电容式(I²C 典型) |
|---|---|---|
| 物理原理 | 压力接触分压 | 人体电容耦合 |
| 多点触控 | 不支持 | 支持(互电容) |
| 接口速率 | SPI 1–10 MHz,数据吞吐高 | I²C 400 kHz–3.4 MHz,适合小数据量 |
| 坐标输出 | 原始 ADC 值,需主控滤波 | 芯片内滤波后输出,含触摸 ID 和事件 |
| 逻辑分析仪关注点 | CS 时序、SCLK 模式、ADC 数据拼接 | 设备地址、寄存器地址、连续读长度 |