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
(Bridge
orSpace
):Dp
=0
&&Dn
=0
LP-01
(HS-Req
orMark-0
):Dp
=0
&&Dn
=1
LP-10
(LP-Req
orMark-1
):Dp
=1
&&Dn
=0
LP-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-00
1
: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
=16
UI - 时钟波形:
- 首次校准所需时长:
2^15
UI <= Tskewcal
<=100
us - 周期性校准所需时长:
2^10
UI <= Tskewcal
<=10
us
- 首次校准所需时长:
- 注意开头序列(
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
=2
UI =2
Tdata-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
=2
UI =0.5
Tdata-bit
- 正向传输之中一个时钟周期共有
4
个升降沿可供采样,但在反向传输则只使用其中一个边沿。
- 注意概念电路图,时钟仍由主机(接收端)提供,且进行了
11、监管要求
略。
12、内置的高速测试模式(信息拓展)
略。
附录A:PPI的逻辑性描述(信息拓展)
暂不关心。
附录B:互连设计指引(信息拓展)
略。
附录C:8b9b行编码(规范)
暂不关心。