【科普贴】MIPI协议之D-PHY协议详解

这篇具有很好参考价值的文章主要介绍了【科普贴】MIPI协议之D-PHY协议详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、 介绍

MIPI:全称移动行业处理器接口(Mobile Industry Processor Interface)。MIPI是由MIPI联盟发起的为移动应用处理器制定的开放标准。
MIPI可分为物理层和逻辑层两大部分。
MIPI按照物理层(Physical Standard)划分可分为:D-PHY、C-PHY、M-PHY三种。

1、D-PHY MIPI 简介

D-PHY的逻辑层主要是面向摄像头(CSI)、显示屏(DSI)等用途,D-PHY中的D是罗马数字500的意思,D-PHY最初版本是可以支持500Mbits/s。D-PHY采用差分信号传输方式(不全是差分,LP是单端传输),每条lane由2根信号线组成,分别是P和N,clock lane是必不可少的,data lane的数量可以根据数据传输的吞吐率来选择,至少要有一个data lane

2、C-PHY MIPI简介

C-PHY类似于D-PHY,其逻辑层主要也是面向摄像头(CSI)、显示屏(DSI)等用途,C-PHY中的C指的是Channel-limited。C-PHY总共有3条lane,每条lane使用3根信号线,3条信号线彼此差分。C-PHY没有单独的clock,时钟信号是包含在通讯的时序中。

3、M-PHY MIPI简介

M-PHY支持所有芯片到芯片的应用,以及高性能的摄像头和内存应用。M-PHY中支持的芯片到芯片应用协议包括DigRF、LLI,以及用于高性能相机应用的CSI-3等。M-PHY使用嵌入式时钟。当前很少用到,比较超前。
mipi d-phy,通讯协议,驱动开发,嵌入式硬件

二、D-PHY电气特性介绍

D-PHY包含如下几种电气功能:高速发送(HS-TX),高速接收(HS-RX),低功耗发送(LP-TX),低功耗接收(LP-RX),低功耗争用检测(LP-CD)。PHY不需要包含所有的电气功能,我们根据需求来配置它的电气功能。但是任何物理层的电气特性都需要满足这些电气表,下图是全能的电气特性图。
mipi d-phy,通讯协议,驱动开发,嵌入式硬件

D-PHY在使用的过程中,类似于其他总线也有Master和Slave之分,如在用Soc驱动LCD时使用D-PHY MIPI信号,这时Soc就是Master,LCD就是Slave。
Clock 信号是单向信号,只能Master向Slave提供,永远不变。
Data信号可以是单向信号,也可以是半双工信号,即可以反向传输。反向传输的本质其实是通过Master去读Slave里的数据。这种半双工的双向信号的数据传送,在反向传输数据的时候(Slave To Master),带宽只有正向传输(Master To Slave)的四分之一。

三、管脚连接方式

通常按照如下方式进行连接。
mipi d-phy,通讯协议,驱动开发,嵌入式硬件

四、Lane信号幅度和定义

D-PHY Lane 的模式分为了 2 种,分别是High-Speed 和 Low-Power ,在传输的时候,信号的幅值也不一样。
High-Speed 也叫 Burst Mode,用于高速的数据传输,其实就是图像数据传输;在这种模式下,吞吐率可以达到 2500 Mbps,也就是 2.5Gbps/per Lane
Low-Power 模式用于一些控制信息,比如,传一些指令之类的;在这种模式下的最大速率是 10Mbps
mipi d-phy,通讯协议,驱动开发,嵌入式硬件
如上图,HS 代表了 High-Speed,HS模式下,为差分信号传输,信号电平在100mV-300mV(200mV的压摆);LP模式下,Lane上的2根线是独立的信号,不在具有差分的意义,为单端信号传输,以GND作为参考,信号电平在0~1.2V(1.2V压摆)
从上图可以看出,HS差分传输的信号的最大摆幅是小于LP的低电压阈值的,所以LP的接收时钟接收到的是HS信号低。
无论是HS模式还是LP模式,都采用 LSB fisrt,MSB last 的传输方式

五、Lane线上的模式

我们通过spec可知:
Data Lane有High-Speed模式和Low-Power模式。Low-Power模式又分为了Control Mode和Escape Mode,Escape Mode又分为了Trigger、Ultra Low Power State、和Low-Power Data transmission。
Clock Lane有High-Speed模式和Low-Power模式,Low-Power模式有Ultra Low-Power
详细见下框图。
mipi d-phy,通讯协议,驱动开发,嵌入式硬件
那么了解上面的许多模式,MIPI D-PHY如何进入这些模式呢?并且告诉对端我进入了这些模式了呢?

1、状态码(State Code)

MIPI D-PHY通过定义State Code来定义状态转化。
mipi d-phy,通讯协议,驱动开发,嵌入式硬件
HS-0:表示High-Speed模式下,Dp那根线的数据是0,由于High-Speed是差分信号,那么Dn就是1。
HS-1:表示High-Speed 模式下, Dp那根线的数据是1,由于High-Speed是差分信号,那么Dn就是0。
在Low-Power模式下,Lane的2根线是独立的,不代表差分信号,那么2根线就有4种表达方式:
LP-00:表示在Low-Power模式下,Dp那根线的数据是0,Dn那根线的数据是0。
LP-01:表示在Low-Power模式下,Dp那根线的数据是0,Dn那根线的数据是1。
LP-10:表示在Low-Power模式下,Dp那根线的数据是1,Dn那根线的数据是0。
LP-11:表示在Low-Power模式下,Dp那根线的数据是1,Dn那根线的数据是1。

2、D-PHY Data Lane

2.1、High-Speed Data Lane传输
在正常情况下,Data Lane 要么是在Low-Power Mode要么就在High-Speed模式;那么我们如何进入 High-Speed呢?
MIPI的D-PHY规定,一个Data Lane进入 High-Speed的方式为发送一个Start-Of-Transmission Sequence即 SOT 信号,这个 SOT 信号的组成为:
mipi d-phy,通讯协议,驱动开发,嵌入式硬件
即,顺序设置 LP-11、LP-01、LP-00、HS-0、发送 HS Sync 00011101序列,然后发送数据;
发起了 High-Speed Transmission 后,如何停止呢?这里 MIPI 定义了一个叫 End-of-Transmission,即 EOT;相对于发送开始,停止发送的流程比较简单,如下:
mipi d-phy,通讯协议,驱动开发,嵌入式硬件
说白了,就是准备停止的时候,发送 LP-11;
所以呢,整个高速收发的开始和结束的时序图如下所示:
mipi d-phy,通讯协议,驱动开发,嵌入式硬件
在发送端,开始进入 STOP(LP-11),然后通过拉 LP-01、LP-00、HS-0、发送 Sync 字段(HS-00011101)然后就不断的发送差分数据;直到数据发送完毕(如果完毕了),退出 High-Speed 模式,再次进入 Stop State;Stop State 比较关键,最后都是进入 Stop 模式,可以理解为 PHY stand by 了;
2.2、双向传输 Data Lane Turnaround
前面一直说 Data Lane 是双向传输,但是都只看到单向传输的部分,这里就是双向传输了,它被称作Turnaround,这个操作是在Control Mode下完成的,具体流程见下
注意,即便是 Trunaround 了,但是 Master 和 Slave 的角色依然不变;
mipi d-phy,通讯协议,驱动开发,嵌入式硬件
也就是 LP-11、LP-10、LP-00、LP-10、LP-00、Wait ACK(接收 LP-00)、接收 LP-10、接收 LP-11;
它的时序如下:
mipi d-phy,通讯协议,驱动开发,嵌入式硬件
2.3、Data Lane 的 Escape 模式
还记得前面我们讲 High-Speed 和 Low-Power 的时候吗,Low-Power 进而分为了 Control Mode 和 Escape Mode;Control Mode 你可以理解为那些个 LP-00、LP-11等等这些东西,这里我们将展开 Escape Mode;
注意,这里的 Escape 模式,指的是 Data Lane 的,不是 Clock Lane
Escape Mode 是 Low-Power 的一种,针对 Escape Mode 又细分了好几种,于是我们基于之前的介绍,进行扩展:1)Low-Power Data Transmission ,简称为 LPDT,意味在 LP 模式下进行数据传输;2)Ultra-Low Power State:简称为 ULPS,超低功耗状态;3)Trigger 来说的话,现在只有一个 Trigger 就是 Reset,用于触发 Reset;他们都预留了一些内容,来适应以后的标准升级。
2.3.1、进入Escape 模式
如果要进入 Escape 模式的话,需要通过一个叫 Esccape mode Entry 的流程(其实说白了,还是之前那一套东西,LP-11 这种)。
这个流程为:LP-11、LP-10、LP-00、LP-01、LP-00;
和之前不一样的是,Escape 模式呀,不是有定义一些 trigger 和 mode 吗,那你执行一串 LPxx 后,到底想进入哪个模式,或者 Trigger 一个什么呢?
所以这里定义了一个叫 Entry Command 的东西;
也就是说,真正进入一个 Escape 的下面的一个子模式,或者 Trigger 的话,需要这样的流程:
LP-11、LP-10、LP-00、LP-01、LP-00、[Entry Command]
这个 Entry Command 编码为:
mipi d-phy,通讯协议,驱动开发,嵌入式硬件
那些Unknown的和Undefined的,为了将来预留的;
举个例子,以Trigger Reset为例,他的时序为:
mipi d-phy,通讯协议,驱动开发,嵌入式硬件

2.3.2、Low-Power Data Transmission
如果在进入 Escape mode 的时候 Entry Command 指定为了 Low-Power Data Transmission,那么会进入这个 LPDT 模式,这个模式下呢,数据可以在低速情况下进行传输;这种模式下,Lane 可以暂停发送
mipi d-phy,通讯协议,驱动开发,嵌入式硬件
可以看到,在传输 First Data Byte 后 Second Data Byte 的时候,中间停止了一会;
2.3.3、Ultra-Low Power State
如果在进入 Escape mode 的时候 Entry Command 指定为了 Ultra-Low Power State(ULPS)的话,这个 Lane 将进入 ULPS;

3、D-PHY Clock Lane

Clock Lane和Data Lane有点不一样,虽然都可以抽象为单端的高速差分信号,Clock Lane 没有Escape模式,但是Clock Lane有ULPS模式;
3.1、Clock Lane High-Speed And Low-Power
这里我们关注 Clock Lane 和 Data Lane 在进入和推出 Low-Power 的时候的时序:
mipi d-phy,通讯协议,驱动开发,嵌入式硬件
可以看到,在 Data Lane 进入 Stop State 的时候,再经过 Tclk-post 后,Clock Lane 才进入 HS-0 的状态,然后在 HS-0 持续 Tclk-trail后,进入到 LP-11 状态;
但需要发数据的时候,Clock Lane 先进入 LP-11,然后进入 LP-01 并位处 Tlpx,然后进入 LP-00 并维持一些时间 Tclk-prepare,然后维持 HS-0 ,时间为 Tclk-zero,然后 Clock Lane 就可以正常工作了,在经过 Tclk-pre 后,Data Lane 方可工作;
整个过程如下所示:
mipi d-phy,通讯协议,驱动开发,嵌入式硬件

3.2、Clock Lane 进入 Ultra-Low Power State
虽然针对 Clock Lane 没有定义 Escape 模式,但是它定义了 Ultra-Low Power State,进入 Clock Lane 的 Ultra-Low Power State 的方式为:LP-11、LP-10、LP-00

4、争用监测(Contention Detection)

正常情况下,连接的两端,在给定的一个时间内,只能够有一方去驱动线上的信号,当其中一端出现了故障,比如,同一时间,两端同时尝试去驱动同一个 Lane ,或者两端都不驱动这条 Lane,D-PHY 管这种情况叫做 “争用”(Contention);
具备双向通信的 LP Lane,都必须具备 Contention Detection 的能力,并且监测出如下冲突;
1、Modules 两端同时向反向驱动一条线;
2、Modules 一端驱动一条线为 LP-high,同时另一端驱动这条线为 HS-low;
上面的第一种情况,能够被 LP-CD 和 LP-RX 组合起来监测到;
上面的第二种情况,应该能够被 LP-RX 监测到;
监测的原理,可以参考 Spec;文章来源地址https://www.toymoban.com/news/detail-783640.html

到了这里,关于【科普贴】MIPI协议之D-PHY协议详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32的以太网外设+PHY(LAN8720)使用详解(3):PHY寄存器详解

    前面介绍到,站管理接口(SMI)允许应用程序通过2线时钟和数据线访问任意PHY寄存器,同时该接口支持访问最多32个PHY,也就是说PHY地址共有5位。 应用程序可以从32个PHY中选择一个PHY,然后从任意PHY包含的32个寄存器中选择一个寄存器,发送控制数据或接收状态信息。任意给

    2024年02月03日
    浏览(50)
  • STM32的以太网外设+PHY(LAN8720)使用详解(1):ETH和PHY介绍

    STM32F4系列MCU内部集成了一个以太网外设(ETH),可以通过介质独立接口(MII)或简化介质独立接口(RMII)和外部PHY(如LAN8720)相连实现MCU的联网功能。 STM32F4系列的以太网外设(ETH)框图如下: 以太网外设框图中包含了MII、RMII、SMI三种接口,它们的详细介绍如下: 1.2.1 介

    2024年01月23日
    浏览(53)
  • 自动驾驶中camera方案(二)MIPI-CSI2详解

    前言: 为了深入的理解MIPI-CSI2接口,强烈建议阅读协议原文,我重点参考的就是协议原文 :2019-09-17_19.05.53_mipi_CSI-2_specification_v3-0.pdf MIPI联盟是一个开放的会员制组织,CSI(Camera Serial Interface)是由MIPI联盟下Camera工作组指定的接口标准,DSI为display相关的接口标准。本文我们重

    2024年02月04日
    浏览(46)
  • STM32的以太网外设+PHY(LAN8720)使用详解(2):硬件设计

    在LAN8720上电或复位时会读取一些特定引脚的电平,根据电平来进行硬件配置。LAN8720的引脚分布如下: 注意,LAN8720有些引脚内部自带上/下拉,定义如下: LAN8720的PHYAD[0]用来配置PHY地址的bit0,当接入了多个PHY时可以用来区分不同的PHY。该引脚自带内部下拉,同时我们也只用到

    2024年04月14日
    浏览(64)
  • 以太网详解(一)-MAC/PHY/MII/RMII/GMII/RGMII基本介绍

    网络设备中肯定离开不MAC和PHY,本篇文章将详细介绍下以太网中一些常见术语与接口。 MAC和PHY结构 从硬件角度来看以太网是由CPU,MAC,PHY三部分组成的,如下图示意: 上图中DMA集成在CPU,CPU,MAC,PHY并不是集成在同一个芯片内,由于PHY包含大量模拟器件,而MAC是典型的数字电

    2024年02月22日
    浏览(57)
  • STM32的以太网外设+PHY(LAN8720)使用详解(5):MAC及DMA配置

    stm32的ETH外设挂载在AHB1总线上,位于RCC_AHB1ENR的bit25-bit27: 相关语句如下: 直接调用ETH_DeInit函数来复位ETH外设 上述语句操作的寄存器如下: 首先设置位25为1复位以太网MAC(复位MAC寄存器到默认值),然后设置为0取消复位。 首先调用ETH_SoftwareReset函数复位MAC的DMA 上述语句操

    2024年02月03日
    浏览(45)
  • STM32的以太网外设+PHY(LAN8720)使用详解(6):以太网数据接收及发送

    1.1.1 检查是否接收到一帧完整报文 使用轮询的方式接收以太网数据是一种简单但是效率低下的方法,为了保证及时处理以太网数据我们需要在主循环内高频轮询是否接收到了以太网数据。轮询的函数为ETH_CheckFrameReceived,内容如下: 当以太网帧大于我们设置的DMA描述符buffer大

    2024年01月23日
    浏览(51)
  • PHY芯片的使用(三)在linux下网络PHY的移植

    1 前言 配置设备树请参考上一章。此次说明还是以裕太的YT8511芯片为例。 2 需要配置的文件及路径 a. 在 .. /drivers/net/phy 目录下添加 yt_phy.c 文件(一般来说该驱动文件由厂家提供); b. 修改.. /drivers/net/phy 目录下的 Kconfig 文件,如下图所示。 c. 修改.. /drivers/net/phy 目录下的

    2024年02月16日
    浏览(41)
  • MIPI摄像头工程=7系列FPGA + OV5640(MIPI) + 15 分钟 + VITIS

    硬件 Spartan-7 SP701 FPGA 7系列FPGA+电阻网络实现的MIPI接口 OV5640 MIPI接口 软件 AMD Vivado 2020 版本以上 AMD Vitis 2020 MIPI 接口现在非常流行,国产FPGA目前基本都带MIPI接口,而AMD-Xilinx是从U+系列开始支持MIPI电平,从国内使用情况来看,7系列FPGA是使用最广的器件,所以这次使用的FPGA是

    2024年02月08日
    浏览(48)
  • RK3588-MIPI屏幕调试笔记:RK3588-MIPI-DSI之LCD上电初始化时序

    mipi屏调试一般都要在RK平台的dts中配置屏幕上电初始化时序 :panel-init-sequence和下电初始化时序:panel-exit-sequence。本文讲解如何配置屏幕的这些初始化时序。 注意:这里的parameter并不是指数据字节个数 0x05 命令类型:(DCS Short Write, no parameters) 0x15 命令类型:(DCS Short Write, 1 p

    2024年02月12日
    浏览(93)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包