惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
博客园 - 司徒正美
博客园 - 【当耐特】
爱范儿
爱范儿
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
人人都是产品经理
人人都是产品经理
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
大猫的无限游戏
大猫的无限游戏
月光博客
月光博客
宝玉的分享
宝玉的分享
V
V2EX
S
SegmentFault 最新的问题
V
Visual Studio Blog
阮一峰的网络日志
阮一峰的网络日志
Martin Fowler
Martin Fowler
Jina AI
Jina AI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园_首页
L
LangChain Blog
D
Docker
腾讯CDC

博客园 - longyue

[BF学院_卷1] -- 第30讲:mixTable() 总结 —— Mixer 完整控制模型 [BF学院_卷1] -- 第29讲:applyMixToMotors() —— 最终 Motor Output 生成 [BF学院_卷1] -- 第28讲:applyMixerAdjustment() —— 为什么 Mixer 需要重新分配控制权限 [BF学院_卷1] -- 第27讲:PID Output 如何进入 Mixer —— 从控制需求到 motorMix [BF学院_卷1] -- 第26讲:calculateThrottleAndCurrentMotorEndpoints() —— Mixer 如何确定油门基础范围 [BF学院_卷1] -- 第25讲:mixTable() 总览 —— Mixer 在控制循环中的位置 [BF学院_卷1] -- 第24讲:mixer_init.c —— 飞控启动时如何准备 Mixer [BF学院_卷1] -- 第23讲:Mixer 数学模型 —— motorMixer_t 如何形成 Motor Output [BF学院_卷1] -- 第22讲:Betaflight 如何描述 Mixer —— mixer.h 数据结构 [BF学院_卷1] -- 第21讲:四旋翼为什么可以通过电机控制姿态 —— Mixer 背后的物理基础 [BF学院_卷1] -- 第20讲:从 PID Output 到 Motor Command(电机指令)——为什么飞控需要 Mixer [BF学院_卷1] -- 第19讲:PID Controller(PID控制器)——飞控到底如何理解误差并控制飞机? [BF学院_卷1] -- 第18讲:PID Controller 的最后一环——为什么飞控还需要 Feedforward(前馈控制)? [BF学院_卷1] -- 第17讲:D Term(微分控制项)——飞控如何提前感知运动变化? [BF学院_卷1] -- 第16讲:I Term(积分控制项)——飞机为什么总是差一点? [BF学院_卷1] -- 第14讲:Rate Error(角速度误差)——PID 真正控制的到底是什么? [BF学院_卷1] -- 第15讲:P Term(比例控制项)——飞控是如何利用误差开始控制飞机的? [BF学院_卷1] -- 第13讲:Outer Loop 的终点——为什么还要读取 Current Angular Rate(当前角速度)? [BF学院_卷1] -- 第十二讲:Yaw Compensation(偏航补偿) [BF学院_卷1] -- 第12讲脚本 [BF学院_卷1] -- 第十一讲:Current Angular Rate(当前角速度)——飞控怎样知道飞机现在转得有多快? [BF学院_卷1] -- 第十讲:Angle Error(姿态角误差)如何变成 Desired Angular Rate(目标角速度) [BF学院_卷1] -- 第九讲:Current Angle(当前姿态角)遇见 Target Angle(目标姿态角) [BF学院_卷1] -- 第八讲:飞手打杆以后,飞控首先得到什么? [BF学院_卷1] -- 第七讲:为什么 Pitch Flip 只在 180° 看起来正确 [BF学院_卷1] -- 第7讲脚本 [BF学院_卷1] -- 第6讲:为什么 Pitch Flip 会骗人 [BF学院_卷1] -- 第6讲脚本 [BF学院_卷1] -- 第五讲:第一次修正——Pitch Flip 为什么看起来有效 [BF学院_卷1] -- 第5讲脚本 - longyue
[音视频 - MIPI] MIPI 时序参数的解释
longyue · 2026-04-07 · via 博客园 - longyue

一、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 传输的完整时序:

  1. LP-11(空闲)
  2. LP-01(TLPX)
  3. LP-00(THS-PREPARE)
  4. HS-0(THS-ZERO)
  5. HS Sync + 数据
  6. HS-Tail(THS-TAIL)
  7. 回到 LP-11
  8. 保持 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