【MIPI协议 D-PHY基础介绍】

MIPI协议 D-PHY基础介绍

  • 前言
  • 一、MIPI介绍
    • 1.1 D-PHY MIPI 简单介绍
    • 1.2 C-PHY MIPI 简单介绍
    • 1.3 M-PHY MIPI 简单介绍
  • 二、D-PHY具体介绍
    • 2.1 DSI分层结构
    • 2.2 D-PHY电气特性介绍
    • 2.3 D-PHY 工作模
  • 三、LINE线上的模式
    • 3.1 line线上 state code
    • 3.2 high speed data line传输
    • 3.3 Low Power data line 传输
    • 3.4 双向传输 Data Lane Turnaround
  • 四、Data Line Escape mode
    • 4.1 entry Escape mode
    • 4.2 Ultra-Low Power State
  • 五、D-PHY Clock Lane
    • 5.1 Clock Lane High-Speed And Low-Power
    • 5.2 Clock Lane 进入 Ultra-Low Power State
  • 六、争用监测(Contention Detection)


前言

下面为mipi相关知识介绍,主要为D-PHY的结构分析,内容并非原创,借鉴了多位博主的分享,在此表示感谢。

MIPI协议之D-PHY协议详解
MIPI介绍(CSI DSI接口)
MIPI基础-简单介绍

一、MIPI介绍

MIPI(Mobile Industry Processor Interface)是2003年由ARM, Nokia, ST ,TI等公司成立的一个联盟,目的是把手机内部的接口如摄像头接口、显示屏接口、射频/基带接口等标准化,从而减少手机设计的复杂程度和增加设计灵活性。MIPI联盟下面有不同的WorkGroup,分别定义了一系列的手机内部接口标准,比如摄像头接口CSI、显示接口DSI、射频接口DigRF、麦克风/喇叭接口SLIMbus等。统一接口标准的好处是手机厂商根据需要可以从市面上灵活选择不同的芯片和模组,更改设计和功能时更加快捷方便。

在这里插入图片描述

MIPI可主要分为物理层和逻辑层两大部分:
MIPI按照物理层(Physical Standard)划分可分为:D-PHY、C-PHY、M-PHY三种

1.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。

1.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,时钟信号是包含在通讯的时序中。

1.3 M-PHY MIPI 简单介绍

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

二、D-PHY具体介绍

2.1 DSI分层结构

DSI可主要分为应用层、协议层、物理层这三层结构;
其中协议层包含:
1.像素/字节打包/解包层
2.LLP(Low Level Protocol)层
3.LANE管理层

下图所示,为结构图

在这里插入图片描述

2.2 D-PHY电气特性介绍

D-PHY包含如下几种电气功能:
1.低功耗发送器-Low Power Transmitter(LP-TX)
2.低功耗接收器-Low Power Receiver (LP-RX)
3.高速发送器-High Speed Transmitter (HS-TX)
4.高速接收器-High Speed Receiver (HS-RX)
5.低功耗竞争检测器-Low Power Contention Detector (LP-CD)

Clock 信号是单向信号,只能Master向Slave提供,永远不变。
Data信号可以是单向信号,也可以是半双工信号,即可以反向传输。反向传输的本质其实是通过Master去读Slave里的数据。这种半双工的双向信号的数据传送,在反向传输数据的时候(Slave To Master),带宽只有正向传输(Master To Slave)的四分之一。

在这里插入图片描述

2.3 D-PHY 工作模

MIPI D-PHY的时钟工作方式类似于DDR的时钟工作方式,一个clock周期内,上升沿和下降沿都采集数据,有High speed (HS)和low power(LP)两种工作方式,HS支持的最大数据传输速率为80Mbps-4.5Gbps,LP模式最大速率到达10Mbps,这两种工作模式会混合在一起工作,有高数据量数据传输时会从LP模式转换为HS模式,当数据传输完毕会从HS模式转换到LP模式,减少功耗,一般使用1对clock lane搭配4对data lane,这里需要10个pin脚。

在这里插入图片描述

1.High Speed Mode (HS) 高速模式

HS高速传输模式:
用于传输突发数据,同步传输,信号为差分信号,电平范围为100mV-300mV,传输速度范围为80M-1Gbps,在该模式下传输时当差分线上正端收到300mV信号,负端收到100mV信号时,此时接收端识别为1,反之为0。

在这里插入图片描述

下图中左侧为发送数据端,也就是master端,有两个类似于推挽的结构,右侧为差分信号接收端,由两个端接电阻与端接使能信号组成,工作模式为:以差分的D+信号为例,当K2和K4打开之后,电压经过线连接到了端接电阻,当端接使能打开之后,上下两个端接电阻形成回路,这就形成了差分信号正的变化,当K2,K4关闭之后,形成差分信号负的变化,D-由K1和K3控制,是一个相反过程。

在这里插入图片描述

2.Low Power Mode (LP) 低功耗模式

LP低功耗模式:
用于传输控制指令,异步传输信号为单端信号,电平范围为0-1.2V,没有用时钟线,时钟是通过两个数据线异或而来的速度小于等于10Mbps,在该模式下传输时,当正端接收到1.2V,负端接收到0V时接收端识别为1,反之识别为0。

在这里插入图片描述

与HS模式不同,RX这端不需要端接,是无穷大的,只需要控制TX这端做出相应的变化即可,当需要输出LP的high,即输出1.2V,只需要控制上面的开关打开,则D+为1.2V,当需要控制输出低电平时,则需要将下面的开关打开,从而实现端点电压为低的目的,从而实现电压的高低变化,由于在LP模式下D+和D-为单端信号,所以D+和D-单独控制即可。

在这里插入图片描述

注意:无论是HS模式还是LP模式,都采用 LSB fisrt,MSB last 的传输方式。

三、LINE线上的模式

Line线上的模式可由下图所概括:

在这里插入图片描述

3.1 line线上 state code

在这里插入图片描述

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

3.2 high speed data line传输

MIPI的D-PHY规定,一个Data Lane进入 High-Speed的方式为发送一个Start-Of-Transmission Sequence即 SOT 信号,这个 SOT 信号的组成如下所示:

在这里插入图片描述

在这里插入图片描述

从上面图中我们可以看出发送状态码变化为:LP-11、LP-01、LP-00、HS-0、发送 HS Sync 00011101序列,然后发送数据则进入了HS模式,发起了 High-Speed Transmission 。

3.3 Low Power data line 传输

low power data line 传输方式和HS传输类似,从发生状态码上来讲则更为简单,发送LP11则为EOT(End-of-Transmission)

在这里插入图片描述
在这里插入图片描述

3.4 双向传输 Data Lane Turnaround

注意在双向传输模式下,主从关系还是不变

在这里插入图片描述

状态变化为 LP-11、LP-10、LP-00、LP-10、LP-00、Wait ACK(接收 LP-00)、接收 LP-10、接收 LP-11。

在这里插入图片描述

四、Data Line Escape mode

Escape Mode 是 Low-Power 的一种,针对 Escape Mode 又细分了好几种,于是我们基于之前的介绍,进行扩展:
1)Low-Power Data Transmission ,简称为 LPDT,意味在 LP 模式下进行数据传输;
2)Ultra-Low Power State:简称为 ULPS,超低功耗状态;
3)Trigger 来说的话,现在只有一个 Trigger 就是 Reset,用于触发 Reset;他们都预留了一些内容,来适应以后的标准升级。

4.1 entry Escape mode

如果要进入 Escape 模式的话,需要通过一个叫 Esccape mode Entry 的流程,这个流程为:LP-11、LP-10、LP-00、LP-01、LP-00;
和之前不一样的是,由于Escape 模式下定义了一些trigger 和mode,在执行完相应的LP-xx状态码后还需在后面加上entry command。

LP-11、LP-10、LP-00、LP-01、LP-00[Entry Command]

在这里插入图片描述
在这里插入图片描述

Example:LP11 To Escape Mode(EME)->ACK->LP11

在这里插入图片描述

4.2 Ultra-Low Power State

如果在进入 Escape mode 的时候 Entry Command 指定为了 Ultra-Low Power State(ULPS)的话,这个 Lane 将进入 ULPS;

五、D-PHY Clock Lane

Clock Lane和Data Lane有点不一样,虽然都可以抽象为单端的高速差分信号,Clock Lane 没有Escape模式,但是Clock Lane有ULPS模式;

5.1 Clock Lane High-Speed And Low-Power

这里我们关注 Clock Lane 和 Data Lane 在进入和推出 Low-Power 的时候的时序可以看到,在 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 方可工作;

在这里插入图片描述

整个工作流程如下

在这里插入图片描述

5.2 Clock Lane 进入 Ultra-Low Power State

进入 Clock Lane 的 Ultra-Low Power State 的方式为:LP-11、LP-10、LP-00

六、争用监测(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 监测到;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/53932.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

9.环境对象和回调函数

9.1环境对象 指的是函数内部特殊的变量this,它代表着当前函数运行时所处的环境 作用: 弄清楚this的指向,可以让我们代码更简洁 ➢函数的调用方式不同,this指代的对象也不同 ➢[谁调用,this 就指代谁] 是判断this指向的…

记一次 .NET 某物流API系统 CPU爆高分析

一:背景 1. 讲故事 前段时间有位朋友找到我,说他程序CPU直接被打满了,让我帮忙看下怎么回事,截图如下: 看了下是两个相同的程序,既然被打满了那就抓一个 dump 看看到底咋回事。 二:为什么会打…

ElasticSearch学习之ElasticSearch快速入门实战

1.先“分词” 2.倒排索引(前提是分词) ElasticSearch官网地址:欢迎来到 Elastic — Elasticsearch 和 Kibana 的开发者 | Elastichttps://www.elastic.co/cn/ 一、下载 下载地址:https://www.elastic.co/cn/downloads/past-re…

记一次 HTTPS 抓包分析和 SNI 的思考

日常听说 HTTPS 是加密协议,那现实中的 HTTPS 流量,是真的完全加密吗? ——答案是,不一定。原因嘛,抓个包就知道了。 我们用 curl 命令触发一下: curl -v https://s-api.37.com.cn/api/xxx * Trying 1…

Redis篇

文章目录 Redis-使用场景1、缓存穿透2、缓存击穿3、缓存雪崩4、双写一致5、Redis持久化6、数据过期策略7、数据淘汰策略 Redis-分布式锁1、redis分布式锁,是如何实现的?2、redisson实现的分布式锁执行流程3、redisson实现的分布式锁-可重入4、redisson实…

【已解决】windows7添加打印机报错:加载Tcp Mib库时的错误,无法加载标准TCP/IP端口的向导页

windows7 添加打印机的时候,输入完打印机的IP地址后,点击下一步,报错: 加载Tcp Mib库时的错误,无法加载标准TCP/IP端口的向导页 解决办法: 复制以下的代码到新建文本文档.txt中,然后修改文本文…

java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ MybatisPlus + Redis

 电子招标采购软件 解决方案 招标面向的对象为供应商库中所有符合招标要求的供应商,当库中的供应商有一定积累的时候,会节省大量引入新供应商的时间。系统自动从供应商库中筛选符合招标要求的供应商,改变以往邀标的业务模式。招…

【ROS 02】ROS通信机制

机器人是一种高度复杂的系统性实现,在机器人上可能集成各种传感器(雷达、摄像头、GPS...)以及运动控制实现,为了解耦合,在ROS中每一个功能点都是一个单独的进程,每一个进程都是独立运行的。更确切的讲,ROS是进程&#…

滑动窗口例题

1.适合解决的题目类型 滑动窗口,可以用来解决一些查找满足一定条件的连续区间的性质(长度等)的问题。由于区间连续,因此当区间发生变化时,可以通过旧有的计算结果对搜索空间进行剪枝,这样便减少了重复计算…

造船厂船只维修人员定位系统:提高修船效率和安全性

引言:造船厂是一个复杂而危险的工业环境,船只维修过程需要高效的协作和精确的定位。为了提高修船效率和安全性,造船厂船只维修人员定位系统应运而生。 本文华安联大将介绍该系统的功能和作用,以及如何通过定位技术和智能分析来实…

提高电脑寿命的维护技巧与方法分享

在维护电脑运行方面,我有一些自己觉得非常有用的技巧和方法。下面我将分享一些我常用的维护技巧,并解释为什么我会选择这样做以及这样做的好处。 首先,我经常清理我的电脑内部的灰尘。电脑内部的灰尘会影响散热效果,导致电脑发热…

搞懂异地多活,看这篇就够了

目录 01 系统可用性 02 单机架构 03 主从副本 04 风险不可控 05 同城灾备 06 同城双活 07 两地三中心 08 伪异地双活 09 真正的异地双活 10 如何实施异地双活 11 异地多活 总结 后记 在软件开发领域,「异地多活」是分布式系统架构设计的一座高峰&#…

Resnet与Pytorch花图像分类

1、介绍 1.1数据集介绍 flower_data├── train│ └── 1-102(102个文件夹)│ └── XXX.jpg(每个文件夹含若干张图像)├── valid│ └── 1-102(102个文件夹)└── ─── └── XXX.jp…

html5播放器视频切换和连续播放的实例

当前播放器实例可以使用changeVid接口切换正在播放的视频。当有多个视频,在上一个视频播放完毕时,自动播放下一个视频时也可采用该处理方式。 const option {vid: 88083abbf5bcf1356e05d39666be527a_8,//autoplay: true,//playsafe: , //PC端播放加密视…

Maven右侧依赖Dependencies消失

项目右侧的Maven依赖Dependencies突然消失,项目中的注解都出现报错,出现这种情况应该是因为IDEA版本早于maven版本,重新检查项目中的Maven路径,选择File->Settings->搜索Maven,检查Maven home directory&#xf…

SHELL——备份脚本

编写脚本,使用mysqldump实现分库分表备份。 1、获取分库备份的库名列表 [rootweb01 scripts]# mysql -uroot -p123456 -e "show databases;" | egrep -v "Database|information_schema|mysql|performance_schema|sys" mysql: [Warning] Using …

StoneDB亮相2023数据技术嘉年华:增强AP、升级TP、信创替换,让万千DBA用得更省心,企业用得更省钱

2023 年 4 月 8 日,第十二届『数据技术嘉年华』(DTC 2023) 在北京圆满举办。本届大会以“开源 融合 数智化 —— 引领数据技术发展,释放数据要素价值”为主题。大会汇聚众多优秀厂商、先进技术、卓越产品和优秀案例,来自数据领域的领军人物…

离线情况下解决pyinstaller生成的可执行文件过大问题

由于工作原因,我的电脑没法上传和下载文件,所以一开始选择了anaconda完成python的工作。使用了pyinstaller将脚本生成可执行文件。但是生成出来的exe巨大无比(一个简单的脚本300多M,要花两分钟时间打开),于…

[每日习题]进制转换 参数解析——牛客习题

hello,大家好,这里是bang___bang_,本篇记录2道牛客习题,进制转换(简单),参数解析(中等),如有需要,希望能有所帮助! 目录 1️⃣进制转换 2️⃣参…

【Spring事务学习】事务分类 隔离级别 事务传播机制

目录 需要知道: 🍑1、什么是事务? 🍑2、事务的主要操作3个 一、Spring中事务的实现方式 🍑1、编程式事务(手动写代码操作事务)(了解) 🍑2、声明式事务&…