一、BYTE_CLK(字节时钟)
作用:并行接口(PPI)的字节级参考时钟,用于内部并行数据的采样、组帧、跨时钟域处理。
关系
- 串行比特时钟(Bit Clock):D-PHY 差分线上真实的高速时钟(如 1Gbps Lane → 1GHz Bit Clock)
- BYTE_CLK = Bit Clock / 8(8bit 模式)
- BYTE_CLK = Bit Clock / 16(16bit 模式)
意义
- 8:1 模式:1 个 BYTE_CLK 周期发 8 bit 串行数据
- 16:1 模式:1 个 BYTE_CLK 周期发 16 bit 串行数据
- FPGA/SoC 内部逻辑都工作在 BYTE_CLK,而非高频串行时钟
二、D-PHY 时序参数(TLPX、THS-PREPARE、THS-ZERO、THS-TAIL、THS-EXIT)
先记住两个状态
- LP-11:差分线空闲、低功耗(P=1,N=1)
- HS-0 / HS-1:高速差分信号(HS-0 = P-low, N-high;HS-1 = P-high, N-low)
1. TLPX(Low-Power Exchange Duration)
- 定义:低功耗状态(LP)下,一个基本位的持续时间
- 单位:ns(固定值,常见 40~60ns,典型 50ns)
- 作用:
- 所有 LP 模式时序(如 LP-01、LP-00、LP-10)的基准单位
- 例如:THS-PREPARE = 4×TLPX 或 5×TLPX
- 意义:保证低功耗状态切换有足够稳定时间
2. THS-PREPARE(HS Prepare Time)
- 定义:进入高速前,LP-00 状态的持续时间
时序:LP-11 → LP-01 → LP-00(THS-PREPARE) → 进入 HS
- 典型值:4×TLPX ~ 5×TLPX
- 作用:
- 给接收端 提前建立 HS 接收偏置、均衡、时钟恢复
- 让差分线从低功耗切换到高速驱动,稳定电平、消除毛刺
3. THS-ZERO(HS Zero Time)
- 定义:发送同步字前,强制发送 HS-0 的时间
时序:LP-00 → HS-0(THS-ZERO) → HS Sync 序列 → 数据
- 典型值:105ns + 6×UI(UI = 1/BitRate,如 1Gbps → 1ns)
- 作用:
- 接收端 CDR(时钟数据恢复)锁相、锁定频率
- 让差分线从单端 LP 平滑过渡到差分 HS,建立稳定差分眼图
4. THS-TAIL / THS-TRAIL(HS Trail Time)
- 定义:高速数据最后一位结束后,继续保持 HS 驱动的时间
时序:最后一位数据 → HS 尾(THS-TAIL) → 回到 LP-11
- 典型值:max(8×UI, 60ns + 4×UI)
- 作用:
- 保证最后几个比特被可靠采样
- 防止高速关断瞬间产生振铃、过冲、干扰
- 让差分线平稳退出高速模式
5. THS-EXIT(HS Exit Time)
- 定义:从 HS 模式回到 LP-11 后,必须保持 LP-11 的最短时间
- 典型值:100ns(常见)
- 作用:
- 防止频繁切换 HS/LP 导致信号不稳定
- 给 PHY 电路放电、恢复低功耗偏置
- 避免下一次传输时前一次的 HS 信号干扰
三、完整时序流程(速记)
发送端一次 HS 传输的完整时序:
- LP-11(空闲)
- LP-01(TLPX)
- LP-00(THS-PREPARE)
- HS-0(THS-ZERO)
- HS Sync + 数据
- HS-Tail(THS-TAIL)
- 回到 LP-11
- 保持 LP-11(THS-EXIT)
四、工程要点
1. 这些参数由谁决定?
- MIPI D-PHY Spec 规定最小值(v1.2/v2.1)
- 实际由 SoC、FPGA PHY IP、驱动代码 配置
- 必须 发送端(TX)与接收端(RX)时序匹配
2. 为什么要严格遵守?
- 不满足 → CDR 锁不住、丢包、花屏、噪声、通信失败
- 速率越高(>1Gbps)→ 时序越敏感
3. 如何计算?
- TLPX:一般固定 50ns
- UI(Unit Interval) = 1 / Lane 速率(1Gbps → 1ns)
- THS-PREPARE = 5×TLPX
- THS-ZERO = 105ns + 6×UI
- THS-TAIL = max(8×UI, 60+4×UI)
- THS-EXIT = 100ns