MIPI D-PHY V2.0协议摘要
1、简介
略。
2、术语
- 需关注的定义:
Master:通信主节点,即发送时钟信号的一侧。与之通信的另一侧则为从(Slave)节点, 只能被动接收时钟信号。Forward Direction:正方向,即数据从主节点流向从节点, 反之则为反方向(Reverse Direction)。Lane:通道、泳道,即传输时钟信号或数据流的通路。Link:链路,1条时钟通道加上至少一条数据通道。Turnaround:反转数据流方向。Escape Mode:不确定应译为转义模式还是逃逸模式,可以肯定这是个可选的操作模式, 在此模式下可发送低速命令,也可以很低的功耗来(异步)传输数据。
- 需关注的缩略词:
BER:Bit Error Rate,误码率。CIL:Control and Interface Logic,控制及接口逻辑。DDR:Double Data Rate,双倍数据速率(因为在时钟信号上升沿和下降沿均会对数据进行采样, 所以速率翻倍)。HS:High-Speed,高速模式,是数据传输的一种模式。与之相关联的有HS-RX(接收端)、HS-TX(发送端)。LP:Low-Power,低功耗模式,主要用于发送控制命令,但亦可传输数据(可选功能)。 与之相关联的有LP-CD(冲突探测)、LPDT(数据传输)、LP-RX(接收端)、LP-TX(发送端)。UI:Unit Interval,单位时间间隔。ULPS:Ultra-Low Power State,超低功耗状态。
3、参考材料
略。
4、概览
-
高速率、低功耗、低损耗,尤其适合移动设备,主要面向摄像头和显示屏,但也可用作其他场景。
-
主从结构、源同步(
Source Synchronous)。 -
时钟信号是单向的,数据流支持单向也支持双向。
-
HS用于传输数据,使用的是低摆幅(Low-Swing)、差分(Differential)信号;LP用于控制,使用的是单端(Single-Ended)信号且摆率和电流应受限。 - 建议的
HS速率:[80Mbps, 1.5Gbps]。(1.5Gbps, 2.5Gbps]:需要配备Deskew Calibration(即抗扭斜校准或时滞校准)机制。(2.5Gbps, 4.5Gbps]:需要配备Equalization(即均衡化或负载均衡)机制。
-
LP最大速率为10 Mbps。 - 除了
5.5节明确提及的功能之外,协议文档里的其他功能点都是必需的。
5、架构
-
HS使用低摆幅电压信号,例如200 mV;LP使用大摆幅电压信号,例如1.2V。 - 每个通道模块(
Lane Module)包含3种共享一组差分线的子功能模块HS-*X、LP-*X和LP-CD,并且:- 既可只包含
RX或TX,也可同时包含两者,但RX与TX只能互斥运行。 - 若
HS功能不启用,则其应处于高阻态。 HS-RX和LP-RX、HS-TX和LP-TX有关联,须同时实现。RX端的LP-RX需要一直激活以便监测链路状态, 但TX端的LP-TX却仅在驱使链路进入低功能状态时才激活。LP-CD仅在同时包含RX和TX功能时才需要实现。
- 既可只包含
- 主从关系:
主:提供CLK,充当数据源(Source),是正方向的CLK/DATA发送者或反方向的DATA接收者。从:接收CLK,充当数据槽(Sink),是正方向的CLK/DATA接收者或反方向的DATA发送者。
-
时钟信号的生成和
PPI(PHY Protocol Interface)的简介见5.3和5.4节。 - 通用的通道模块逻辑框图见
5.6节。注意HS和LP子模块共享引脚总线, 以及模块内部的序列化、时滞校准(Deskew Calibration)、状态机、错误检测等子单元。
6、全局操作(重点)
- 数据结构:
- 以字节为基本单位。
- 不对字节序作限制,决定采取大端还是小端字节序的是更上一层的协议层。
- 不强制要求使用行编码。若使用,则应符合
附录C的规范。 - 不对数据进行缓冲,若有缓冲的需要则应由更上一层的协议层在其内部实现。
- 通道状态与引脚电平的对应关系:
HS:由于采用的是差分信号,所以Dp和Dn引脚电平必须不同。 共有2种通道状态:HS-0:Dp=0&&Dn= 1HS-1:Dp= 1 &&Dn=0
LP:采用单端信号,所以Dp和Dn引脚的电平组合共有4种, 亦即共有4种通道状态:LP-00(BridgeorSpace):Dp=0&&Dn=0LP-01(HS-ReqorMark-0):Dp=0&&Dn=1LP-10(LP-ReqorMark-1):Dp=1&&Dn=0LP-11(always as Stop):Dp=1&&Dn=1
- 重点解释:
- Stop状态最为特殊:当此状态持续至少一个特定时长,
则链路状态机一定会转换为停止状态,无论之前处于什么状态!
Stop状态对于数据通道和时钟通道的意义都是作为一种通用的待命状态(
Standby State)。 - 所有
HS-*仅对高速模式有意义,且在此模式下LP-RX会将HS-*视为LP-00,即Stop。 - 所有
LP-*仅对低功耗模式有意义,且低功耗模式又可细分为2类(对数据通道而言), 即控制模式(Control Mode)和转义模式(Escape Mode),不同模式下LP-*的含义也不同, 例如:LP-00在控制模式下是Bridge(桥接)状态,而在转义模式下则是Space(空白)状态。 - 在低功耗操作模式下的交互中,可通过对
Dp和Dn电平进行异或操作来还原时钟信号, 由此可推导出以下事实:- 低功耗操作模式可使用异步传输,不需要用到时钟线。
- 在发送某个请求(例如
Escape request、Turnaround request)时,LP-*序列之中相邻两个项各自的Dp与Dn异或运算得到的结果必然不一样。
- Stop状态最为特殊:当此状态持续至少一个特定时长,
则链路状态机一定会转换为停止状态,无论之前处于什么状态!
Stop状态对于数据通道和时钟通道的意义都是作为一种通用的待命状态(
- 操作模式:
- 控制模式(
Control Mode):- 进入:
LP-11 - 退出:当发出某项请求时,具体序列详见后面。
- 反转请求(
Turnaround Request):- 进入:
LP-11->LP-10->LP-00-> LP-10 ->LP-00 - 退出:无
- 进入:
- 进入:
- 高速模式(
High-Speed Mode):- 进入:
LP-11->LP-01->LP-00 - 退出:
LP-11
- 进入:
- 转义模式(
Escape Mode):- 进入:
LP-11->LP-10->LP-00-> LP-01 ->LP-00 - 退出:
LP-11
- 进入:
- 控制模式(
- 高速数据传输:
Payload:- 范围为
[1, N]字节,其中N没有硬性要求,可根据器件特性和使用场景来决定。
- 范围为
SoT(Start-of-Transmission):- 注意涉及到上一节进入高速模式所需的序列,以及每个状态项需要维持的时长。
- 然后,
TX端还会插入一个同步头(Leader)比特流00011101,RX端则会在识别到后6位011101时完成同步逻辑,并开始接收实际载荷数据(Payload Data)。 - 多个通道会同时开始。
- 详情见
6.4.2节。
EoT(End-of-Transmission):- 注意涉及到上一节退出高速模式所需的序列(仅一个
LP-11),以及每个状态项需要维持的时长。 - 在
LP-11之前还有同步尾(Trailer)比特流,流中每个比特值是一样的, 均与最后一个载荷比特相反。比特流应持续Ths-trail。 - 多个通道不一定会同时结束,因每个通道分摊到的数据量不一定一样。
- 详情见
6.4.3节。
- 注意涉及到上一节退出高速模式所需的序列(仅一个
Data Burst:- 描述一次完整的高速数据传输过程,包括前面的
SoT和EoT。 - 详细时序图和状态机见
6.4.4节。
- 描述一次完整的高速数据传输过程,包括前面的
- 流向反转(
Turnaround):- 仅数据传输方向反转,主从关系、时钟信号仍不变。
- 详细时序图和状态机见
6.5节。
- 转义模式(
Escape Mode):Spaced-One-Hot编码规律:分为One-Hot(即Mark-0或Mark-1)和Space两个阶段,则有:0:LP-01->LP-001:LP-10->LP-00
- 由
Spaced-One-Hot编码规律可知:- 能通过对
Dp和Dn进行异或运算还原出时钟信号,所以不必依赖时钟通道, 属于异步通信。 - 等效的时钟频率可变,且允许以很低的频率来发送比特流。
- 由于
Space的存在,比特率等于时钟频率(即不再是双倍速率,即DDR), 且两个阶段都是Space时,链路就处于暂停(Pause)的状态(可用于低功耗数据传输场景, 即LPDT)。 - 在退出之前(即发送
LP-11)只有一个Mark-1(即LP-10)而无Space()即LP-00)。
- 能通过对
- 转义条目(
Escape Entries):Low-Power Data Transmission(LPDT):低功耗数据传输。Ultra-Low Power State(ULPS):超低功耗状态。Reset-Trigger:重置-触发。HS Test Mode:高速测试模式。
- 状态机见
6.6.4节。
- 高速时钟:
- 为便于理解,可认为时钟通道与单向数据通道类似——在此基础上再去分清两者的若干区别:
- 实际时序不同。
- 时钟通道传输的是时钟信号,数据通道则传输的是数据——废话。
- 数据通道有转义模式(
ULPS是该模式下的一个条目),而时钟通道则无此模式, 但必须支持ULPS。
- 始于
Stop状态,也终于Stop状态。 - 由协议层通过
PPI来控制时钟通道,当无数据传输时,时钟通道应处于Stop状态。 - 当时钟通道处于低功耗模式时,就算即将有高速数据传输,也应延迟, 直到时钟通道切回高速模式。
- 时钟通道在进入和退出高速模式时,都会伴随着偶数个
HS-0。 - 时序图和状态机见
6.7节。
- 为便于理解,可认为时钟通道与单向数据通道类似——在此基础上再去分清两者的若干区别:
- 超低功耗时钟:
- 状态机见
6.8节。
- 状态机见
- 全局操作时序参数:
- 基本上是时间参数,例如:T
hs-prepare、Ths-settle、Ths-trail等。 - 详见
6.9节。
- 基本上是时间参数,例如:T
- 初始化:
- 所有通道须同时初始化。
- 主:第一个
Stop状态持续超过Tinit。 - 从:在主机第一个
Stop之后才初始化。 - T
init的长短依赖于协议(protocol-dependent),且主机和从机的长短可以不一样, 但均应大于等于100 us。 - 其余内容见
6.11节。
- 时滞校准(
Deskew Calibration):- 何时需要:
> 1.5 Gbps时强制,否则可选。- 若需要的话,仅第
1次强制,后续周期性操作可选(也适用于<= 1.5 Gbps的情况)。 - 当发生状态切换(例如从
ULPS切到HS)时,也是可选,只要恢复时的数据速率不发生变化。
- 时序:
- 同步序列头:全1,持续时间:T
skewcal-sync=16UI - 时钟波形:
- 首次校准所需时长:
2^15UI <= Tskewcal<=100us - 周期性校准所需时长:
2^10UI <= Tskewcal<=10us
- 首次校准所需时长:
- 注意开头序列(
Start-of-Skew)和结尾序列(End-of-Skew), 并且在结尾序列之后要返回LP-11(即Stop状态)。
- 同步序列头:全1,持续时间:T
- 时钟频率:
[data_rate / 20, data_rate / 2] - 其余内容见
6.12节。
- 何时需要:
- 全局操作流程图:
- 分为数据通道和时钟通道的状态转换图。
- 详见
6.13节。
- 时间参数的依赖关系:
- 即哪些参数以
UI为单位,哪些参数使用普通时间单位,或两者皆涉及。 - 详见
6.14节。
- 即哪些参数以
- 不同协议版本的互通性:
- 例如
V2.0的TX与V1.2的RX通信时,速率如何。 - 详见
6.15节的表格。
- 例如
7、错误检测
- 总线争用错误(
Bus Contention):- 如果总线的一端是仅支持单向传输,另一端支持双向传输,那么双向传输的部分特性会禁用, 否则容易引发死锁。
- 在正常的操作中,除了特定的状态转换期间,任何时刻应有一端且仅有一端对通道总线进行驱动, 否则可能引发非预期的状态,导致总线未被驱动或同时被两端驱动,这就出现了总线争用错误。
- 所有支持双向
LP的通道模块都应该包含争用探测功能单元来探测以下状况:- 两端以相反的
LP电平进行驱动:可通过LP-CD和LP-RX功能单元来探测。 - 一端以
LP高电平进行驱动,另一端以HS低电平进行驱动:可通过LP-RX来探测。
- 两端以相反的
- 上面涉及到的电气特性详见第
9章。
- 序列错误(
Sequence Errors):SoT:HS的SoT前导序列可能(may)仍可用,但载荷数据不保证百分百正确。SoT Sync:连SoT也损坏。EoT Sync:最后一个传输比特不符合字节边界条件。仅用于LP-11。Escape Mode Entry Command:当接收端无法识别Entry Command时。LP Transmission Sync:LP数据传输时,末尾数据不符合字节边界条件。False Control:- 当
LP-Req(即LP-10)后面不是Escape Mode或Turnaround序列时; - 或者
HS-Req(即LP-01)后面不是Bridge(即LP-00)状态时。
- 当
- 协议层看门狗定时器(
Protocol Watchdog Timers,绝大部分是超时类错误):HS-RX超时。HS-TX超时。Escape Mode超时。Escape Mode Silence超时。Turnaround错误。
8、互连配置和通道配置
包括匹配阻抗、频率范围、S参数模板等。暂略。
9、电气特性
应用软件通常不关心。略。
10、高速模式下的数据及时钟时序(重点)
-
DDR:在时钟信号的上升、下降沿均对数据进行采样,所以有:Tddr-period=2UI =2Tdata-bit -
正交(
Quadrature):即时钟波形和数据波形的相位相差90度, 类似sin(x)和cos(x)的关系。 - 正向传输(
Forward Transmission):- 注意概念电路图,在发送端的时钟通道和数据通道接到同一个
PLL, 且这两种通道的中间链路和接收端结构也一样, 所以接收端能直接使用时钟信号来对数据进行采样, 但反向传输则不然,详见后文。 - 主要时间参数的定义(不考虑
Deskew和Equalization):- T
setup:建立时间,指明DATA至少在CLK升降沿来临时多久之前就应准备好。 - T
hold:保持时间,指明DATA在CLK升降沿到来后至少还应保持多久。 - T
skew:偏移误差,是实际DATA时序领先或延后于理想DATA时序的允许偏差量。
- T
- 不同数据速率对于时间参数的要求:
[80Mbps, 1Gbps]:对Tsetup、Thold、Tskew有要求,详见10.2.1.1小节。(1Gbps, 1.5Gbps]:对Tsetup、Thold、Tskew有要求,详见10.2.1.2小节。(1.5Gbps, 4.5Gbps]:对Tskew、Jitters、BER有要求,详见10.2.1.3小节。
SSC(Spread Spectrum Clocking,扩频时钟):用于抑制低频调制波的尖峰边沿。略。- 眼图(
Eye Diagram):衡量信号串扰程度。略。
- 注意概念电路图,在发送端的时钟通道和数据通道接到同一个
- 反向传输(
Reverse Transmission):- 注意概念电路图,时钟仍由主机(接收端)提供,且进行了
2分频, 传输到从机(发送端)后还要经过一个D触发器(边沿触发), 因此最终数据速率只有正向速率的1/4,亦即有:Tddr-period=2UI =0.5Tdata-bit - 正向传输之中一个时钟周期共有
4个升降沿可供采样,但在反向传输则只使用其中一个边沿。
- 注意概念电路图,时钟仍由主机(接收端)提供,且进行了
11、监管要求
略。
12、内置的高速测试模式(信息拓展)
略。
附录A:PPI的逻辑性描述(信息拓展)
暂不关心。
附录B:互连设计指引(信息拓展)
略。
附录C:8b9b行编码(规范)
暂不关心。