Fork me on GitHub
0%

MIPI && D-PHY

MIPI基础

image

简介

  • 含义:MIPI(Mobile Industry Processor Interface)移动行业处理器接口
  • MIPI联盟:一家开放的会员制组织,2003年7月,由TI、ST、ARM、Nokia四家公司共同成立。
  • MIPI协议:MIPI协议本质是多个协议族,随着MIPI的规范的不断的更新改进,目前较为成熟的接口包括摄像头接口CSI、显示接口DSI,而对于其中每一种又分别在物理层和协议层做出了相应的规范。该协议最初制定目的是把手机内部各种接口(显示屏、摄像头、射频等)标准化,减少手机设计的复杂度和增加设计的灵活性。

专有名词

  • DCS:Display Command Set,显示命令集合。用于显示模块命令模式下的标准化命令集

  • DBI:Display Bus Interface,显示总线接口。与具有显示控制器和帧缓冲器的显示模块的并行接口

  • DPI:Display Pixel Interface,显示像素接口。与显示模块的并行接口,不带显示控制器或帧缓冲器

  • DSI:Display Serial Interface,显示串行接口。主机处理器与显示模块之间的高速串行接口

  • CSI:Camera Serial Interface,相机串行接口。主机处理器与摄像头模块之间的高速串行接口

  • PHY:Physical,物理层。物理层规范了传输介质、电气特性、IO电路、和同步机制。通俗地说,就是指定物理层构建的规则,比如指定如何拿到数据、怎样编码、转化成怎样的电信号、通过多少根/组通道送出去等等。

    • C-PHY:100Mbits/s,C是罗马数字(拉丁文数字)中100
    • D-PHY: 500Mbits/s,D是罗马数字(拉丁文数字)中500
    • M-PHY:1000Mbits/s,M是罗马数字(拉丁文数字)中1000
  • APPI:Abstracted PHY-Protocol Interface,抽象物理协议接口

  • PPI:PHY-Protocol Interface, 物理协议接口

  • SoT:Start of Transmission,传输开始

  • EoT:End of Transmission,传输结束

MIPI层次

本部分文字说明均来自官方文档说明

image

DSI

  • PHY layer

    PHY 层指定传输介质(电导体)、输入/输出电路和从串行比特流中捕获“1”和“0”的时钟机制。 规范的这一部分记录了传输介质的特性、信号的电气参数以及时钟和数据通道之间的时序关系。

    传输开始 (SoT) 和传输结束 (EoT) 的信令机制以及可以在传输和接收 PHY 之间传送的其他“带外”信息被指定。 位级和字节级同步机制作为 PHY 的一部分包含在内。

  • Lane Management Layer

    DSI 通过通道扩展以提高性能。 根据应用的带宽要求,数据信号的数量可以是 1、2、3 或 4。 接口的发送端将输出数据流分配到一个或多个通道(“分配器”功能)。 在接收端,接口从通道收集字节并将它们合并到一个重新组合的数据流中,恢复原始流序列(“合并”功能)。

  • Protocol Layer

    在最低级别,DSI 协议规定了通过接口的位和字节的顺序和值。 它指定如何将字节组织成称为数据包的定义组。 该协议定义了每个数据包所需的标头,以及如何生成和解释标头信息。 接口的发送端将报头和错误检查信息附加到正在发送的数据上。 在接收方,标头被剥离并由接收方中的相应逻辑解释。 错误检查信息可用于测试传入数据的完整性。 DSI 协议还记录了如何标记数据包以使用单个 DSI 将多个命令或数据流交织到不同的目的地。

  • App Layer

    该层描述了数据流中包含的数据的更高级别的编码和解释。 根据显示子系统架构,它可能包含具有规定格式的像素,或由显示模块内的显示控制器解释的命令。 DSI 规范描述了像素值、命令和命令参数到数据包组件中字节的映射。 (DCS specification文档)

CSI-2

  • PHY layer:同DSI

  • Protocol Layer:指定如何标记和交错多个数据流,以便可以正确地重建每个数据流。

    • 像素/字节打包/解包层(Pixel/Byte Packing/Unpacking Layer)

    CSI-2 支持具有从每像素 6 到 24 位的不同像素格式的图像应用程序。 在发送器中,该层在将数据发送到低级协议层之前将来自应用层的像素打包成字节。 在接收器中,该层在将数据发送到应用层之前将来自低级协议层的字节解压缩为像素。 该层以不变的方式传输每像素八位数据。

    • 低级协议层(Low Level Protocol)

    低级协议 (LLP) 包括为 SoT(传输开始)和 EoT(传输结束)事件之间传输的串行数据建立 bit508 级和字节级同步以及将数据传递到下一层的方法。 LLP 的最小数据粒度是一个字节。 LLP 还包括字节内位值解释的分配,即“Endian”分配。

    • 通道管理层(Lane Management ):同DSI
  • APP layer:该层描述了更高级别的数据编码和解释包含在数据流中。 CSI-2 规范描述了像素值到字节。

差分/单端信号

  • 单端信号:单端信号是相对于差分信号而言的,单端输入指信号有一个参考端和一个信号端构成,参考端一般为地端
  • 差分信号:两根线上都传输信号,这两个信号的振幅相等,相位相反(大小等、方向反),也称差模信号
  • 共模信号:两个信号振幅相等,相位相同(干扰信号)

image

如上图所示,左侧为差分信号,右侧为单端信号。对于差分信号V+电流流向地、V-电流由地流出。对于同一个地来讲,如果存在共模误差,两根线都有做差值就抵消掉了,对于电磁干扰由于相位相反磁场抵消。因此差分信号特点:易分辨小信号,抗干扰能力强;但同时由于使用了两根线成本较高

PHY

简介

PHY层规范了传输介质、电气特性、IO电路、和同步机制。通俗地说,就是指定物理层构建的规则,比如指定如何拿到数据、怎样编码、转化成怎样的电信号、通过多少根/组通道送出去等等。通过标准化不同制造商的产品之间的接口来降低移动设备的设计成本,从而缩短产品上市时间。

区别

image

D-PHY

D-PHY 描述了一种源同步、高速、低功耗、低成本的 PHY,特别适用于移动应用。

概念

Lane

Lane本意是航道、车道,在这里我们可以将其引申为两个模块间传输数据的通道。

对于一组信号来讲,主从端(收发端)各有一个Lane模块,并且模块间使用一组差分信号进行连接,也就是2条line即V+ 、V-。而Lane模块和中间的连线作为整个物理层核心,共同构成了完整的数据数据传输通道。

D-PHY协议规定了必须拥有一条时钟通道(Clock Lane:Clock+、Clock-)和一条或者多条数据通道(Data Lane:D+、D-)

配置

  • 主从模式(master提供时钟)

  • 时钟通道 Clock Lane:单向由master至slave

  • 数据通道 Data Lane:数据可单向、可双向(半双工),其中token控制了传输方向,并且当在反向传输数据的时候(Slave To Master),带宽只有正向传输(Master To Slave)的四分之一

架构

image

上图是通用通道模块架构,为了通用性和层次抽象,将LP、HS都做了双向的展示。而在实际设计或者开发中,根据实际需求只设计或配置单项传输都是ok的

传输模式

  • 高速模式(High Speed,HS)

    High-Speed 也叫 Burst Mode,用于高速的数据传输,其实就是图像数据传输;在这种模式下,吞吐率可以达到 2500 Mbps,也就是 2.5Gbps/per Lane;

  • 低速模式(Low Power,LP)

    Low-Power 模式用于一些控制信息,比如,传一些指令之类的;在这种模式下的最大速率是 10Mbps;

    data lane差分线电平的高低表明了当前处于何种状态,发送方通过驱动差分线一系列的状态变化,进入不同的工作模式

无论是HS模式还是LP模式,都采用LSB fisrt、MSB last的传输方式。两种模式的结合保证了MIPI总线在需要传输大量数据(如图像)时可以高速传输,而在不需要大数据量传输时又能够减少功耗。

image

HS模式 LP模式
传输模式 低压差分信号传输 单端信号传输
信号电平 100mV ~ 300mV 0 ~ 1.2V
传输速度 80Mbps ~ 1Gbps(v1.0)
80Mbps ~ 1.5Gbps(v1.1)
2.5Gbps(v1.2)
10Gbps ~ 14Gbps(v3.0)
<10Mbps
功耗

Lane状态描述

在 High-Speed 模式下,Lane 上传输的是差分信号;

在 Low-Power 模式下,Lane 上的 2 根线是独立的信号,不再是差分的含义了;

image

数据Lane操作模式

在正常操作期间,数据通道将处于控制或高速模式。

高速模式(High-Speed Mode)

高速数据传输以突发(burst)方式发生。传输从停止状态开始,并以停止状态结束。在突发之间的中间时间内,数据通道应保持停止状态,除非通道上出现 turnaround 或 escape 请求。在HS 数据突发期间,时钟通道应处于高速模式,为从端提供 DDR 时钟

image

传输开始(SOT)至 传输结束 (EOT)序列:

  • 驱动 停止 状态(LP-11)
  • 驱动 HS-Rqst 状态持续TLPS时间 (LP-01)
  • 驱动 Bridge 状态持续HS-PREPARE时间(LP-00)
  • 同时启用高速驱动器和禁用低功耗驱动器
  • 驱动 HS-0 持续THS-ZERO时间
  • 采样开始!!!
  • ……
  • 完成有效载荷数据的传输
  • 在最后一个有效载荷数据位之后立即切换差分状态并保持该状态一段时间 THS-TRAIL
  • 禁用 HS-TX,启用 LP-TX,并驱动停止状态 (LP-11) 一段时间 THS-EXI

控制模式(Control Mode)

low power下的一种模式,可以通过变化不同的state进入其它模式。这个目前没有看到更多相关资料。

双向数据传输 Data Lane Turnaround

image

D-PHY双向通道支持TurnAround操作,即反转操作双向传输。虽然数据反向传输但是master/slave角色不变,master向slave去读数据。这个过程是在控制模式下执行的!!!

流程:

  • 驱动停止状态 LP11
  • 驱动 LP-Rqst 状态 (LP-10) 持续 TLPX 时间
  • 驱动桥态 (LP-00) 时间 TLPX 时间
  • 驱动 LP-10 状态 TLPX 时间
  • 驱动桥态 (LP-00) 时间 TTA-GO时间
  • 停止驱动线路并使用其 LP-RX 观察线路状态以查看确认Wait ACK(接收 LP-00)
  • 接收 LP-10
  • 接收 LP-11

逃逸模式(Escape mode)

low power下的特殊模式,在这种模式下可以使用一些特别的功能。在这种模式下,可以进入一些额外的功能:LPDT(低功耗数据传输模式), ULPS(超低功耗模式)、Trigger。一旦进入Escape mode模式,发送端必须发送1个8-bit的命令来响应请求的动作(对于Escape Mode流程来讲,最终需要发送一个Entry Command,而Table 8就是3个命令)

  • 进入Escape Mode流程:LP-11、LP-10、LP-00、LP-01、LP-00、[Entry Command]
  • 退出Escape Mode流程:LP-00、LP-10、LP-11

image

LPDT

image

这个模式下呢,数据可以在低速情况下进行传输,Lane 可以暂停发送

RESET

image

Calibration校准

当以高于 1.5 Gbps 的速度运行或更改为超过 1.5 Gbps 的任何速率时,应在正常操作中的高速数据传输之前发送初始去偏移序列。对于周期性去偏移校准,发送器应在发送 deskew序列之前完成当前突发

当以 1.5 Gbps 或以下速率运行时,初始去偏移序列的传输是可选的。周期性去偏移是可选的,与数据速率无关。当改变状态时,例如从 ULPS 到 HS,任何去偏移序列的传输都是可选的,前提是 HS 操作以先前已传输初始去偏移序列的速率恢复。

时钟Lane操作模式

image

High Speed

启动高速时钟传输的过程:

  • 驱动停止状态 (LP-11)
  • 驱动 HS-Req 状态 (LP-01) 时间 TLPX
  • 驱动桥状态 (LP-00) 时间 TCLK-PREPARE
  • 启用高速驱动器并同时禁用低功耗驱动器。驱动 HS-0 一段时间 TCLK-ZERO
  • 在任何数据通道启动之前,在 TCLK-PRE 时间段内驱动高速时钟信号,Data Lane开始工作

将时钟通道切换到低功耗模式的过程:

  • 驱动高速时钟信号(切换 HS-0/HS-1)
  • 最后一个数据通道进入低功耗模式
  • 继续驱动高速时钟信号一段时间 TCLK-POST 并以 HS-0 状态结束
  • 驱动 HS-0 一段时间 TCLK-TRA
  • 禁用 HS-TX,启用 LP-TX,并驱动停止状态 (LP-11) 一段时间 THS-EXI

Low Power(ULPS)

传输过程:

  • LP-11,TX-Stop
  • LP-10,TX-ULPS-Rqst
  • LP-00,TX-ULPS
  • LP-10,TX-ULPS-Exit

状态机

image

检测(P50)

存在三种不同的机制来检测链路故障。总线争用和 错误检测功能包含在 D-PHY 中。这些功能应该检测许多典型故障。然而,有些故障无法在 D-PHY 内检测到,需要协议级解决方案。

争用检测

序列错误检测

• SoT Error
• SoT Sync Error
• EoT Sync Error
• Escape Entry Command Error
• LP Transmission Sync Error
• False Control Error

协议看门狗定时器(资料性)

Q&A

  1. mipi csi 如何理解虚拟通道?

在MIPI CSI(Camera Serial Interface)中,虚拟通道(Virtual Channel)是一种用于在单个物理通道上传输多个数据流的机制。

MIPI CSI标准允许将单个物理通道划分为多个虚拟通道,每个虚拟通道可以独立传输不同的数据流或数据类型。通过虚拟通道的使用,可以实现并行传输多个数据流,提高带宽利用率和系统的灵活性。

在MIPI CSI中,虚拟通道的数量和配置是根据具体的应用需求进行定义和配置的。每个虚拟通道可以传输不同的图像数据流,例如主摄像头数据、辅助摄像头数据、深度图像数据等。此外,还可以使用虚拟通道传输其他与图像相关的数据,如元数据、时间戳、图像标签等。

通过虚拟通道的使用,可以灵活地组织和传输多种类型的数据,从而满足不同应用场景下的需求。例如,在多摄像头系统中,可以使用不同的虚拟通道将各个摄像头的数据进行分离和传输。

需要注意的是,虚拟通道的使用需要在发送方和接收方之间进行协商和配置,以确保数据能够正确地路由到相应的虚拟通道。因此,在实际应用中,需要遵循MIPI CSI标准并进行正确的配置和处理,以实现数据的正确传输和解析。

总而言之,MIPI CSI中的虚拟通道是一种在单个物理通道上传输多个数据流的机制,通过划分和配置虚拟通道,可以实现并行传输不同类型的数据,提高带宽利用率和系统的灵活性。

  1. mipi ULPS和LPDT的区别?

    在MIPI(Mobile Industry Processor Interface)标准中,ULPS(Ultra Low Power Save)和LPDT(Low Power Data Transmission)是两种不同的低功耗模式,用于在移动设备中实现节能和延长电池寿命。

    1. ULPS(Ultra Low Power Save):ULPS是一种更为极端的低功耗模式,旨在将设备的功耗降至最低限度。在ULPS模式下,设备的电源消耗极低,主要通过减少电压和关闭非必要的模块来实现。这可能包括关闭不使用的传感器、降低主频、进入深度睡眠状态等措施。ULPS模式通常用于极端低功耗要求的场景,例如待机模式或长时间不使用时的电源管理。
    2. LPDT(Low Power Data Transmission):LPDT是一种在数据传输过程中实现低功耗的模式。在LPDT模式下,数据传输过程中采用一些技术手段来降低功耗,如降低传输速率、减少电压、采用更节能的传输协议等。LPDT模式在需要进行数据传输的同时,尽量减少功耗的消耗。这种模式适用于需要在传输数据的同时保持较低功耗的场景,例如实时数据传输、图像传输等。

    需要注意的是,ULPS和LPDT都是根据MIPI标准中的要求和规范来定义的,具体实现和支持程度可能因设备和厂商而有所不同。在实际应用中,设备制造商根据具体需求和硬件能力,选择和实现适当的低功耗模式以平衡性能和功耗之间的关系,以提供更长的电池寿命和更好的用户体验。

参考资料