当前位置: 首页 > news >正文

【学习笔记】MIPI

MIPI介绍

MIPI是由ARM、Nokia、ST、IT等公司成立的一个联盟,旨在把手机内部的接口如存储接口,显示接口,射频/基带接口等标准化,减少兼容性问题并简化设计。

MIPI联盟通过不同的工作组,分别定义一系列手机内部的接口标准,如摄像头接口CSI、显示接口DSI、射频接口Dig RF等。统一接口标准可以使芯片和模组的选择更灵活便捷。

MIPI结构分为物理层、协议层和应用层。

应用层有摄像头CSI接口、显示屏DSI接口和基带和射频间Dig RF接口。

物理层分为DPHY、CPHY、MPHY,CSI-2协议支持使用D-PHY,也可用C-PHY。CSI-3只可使用M-PHY为物理层。目前车载行业主要使用DPHY,下图为DPHY与CPHY各版本接口与速率信息。

MIPI D-PHY
D-PHY接口一般是1/2/4 Lane,每个Lane走差分线对,是电流驱动型,单信号幅度一般是200mv,线对差分的幅度在400mv左右,布线要求是等长且成双成对;

MIPI C-PHY
C-PHY接口是1/2/3 Trio,每个Trio走3根线,最高是9根线,比D-PHY要少一根,是电压驱动型,由于是两两相差,信号幅度绝对值分别是0、100、200mv,信号较弱,不利于传输,但要传输的数据量大一些,

在同样是2.5G的速率下,C-PHY可以达到17.1G,而D-PHY只有10G;

C-PHY没有单独的同步信号线(时钟嵌入在数据信号中,这样做的目的是为了增加传输带宽,但是也引入了编码技术等),必须要求传输距离短,不能走差分线对。

MIPI D-PHY v1.2:

    目前主流SERDES芯片及SOC均使用MIPI D-PHY v1.2版本接口

    规格书中前部分章节大篇幅论述了D-PHY的几种内部实现结构,D-PHY采用的是非对称主从结构,即一个lane通道中同一时刻必须存在一个主,一个从。并根据以上传输方向性,定义了前向通道和反向通道,前向通道的数据速率与反向通道的的操作命令速率是不对称的。因此DPHY的非对称设计大大降低了链路的复杂性。适用于具有不对称数据量需求的应用程序,或单独设计反向通道的成本太高时。

MIPI主端与从端描述
    D-PHY提供了主从之间的同步连接。一个实际的PHY配置由一对时钟差分信号(CLK_N/CLK_P)和一个或多个数据差分信号(DATA_N/DATA_P)组成。时钟信号是单向的,主发从收。数据信号可以是单向的,也可以是双向的,取决于所选的选项。对于半双工工作,反向带宽为正向带宽的1/4。数据的通信方向可以通过命令控制。

MIPI D-PHY v1.2 架构图
D-PHY支持高速和低功耗模式。低功耗模式可用于低速异步数据通信,包含控制模式(Control Mode)、低功耗数据传输模式(LPDT)和极低功耗模式(ULPS),高速模式用于传输有效数据。结合DPHY可支持半双工的特性,就衍生出了具有不同功能的lane属性,而集成不同lane的集合,就构成了不同的D-PHY结构,lane的差异主要体现在如下几点:

单端通信与双向通信区别
1.纯单端通信或双向通信,纯单端是不需要LP-CD模块的。

2.双端通信又可分为仅支持低功耗双端和高速低功耗模式均可双端的情况。(低功耗双端模式可以分为是否进行低功耗数据传输LPDT)

    针对具有以上不同lane的D-PHY结构,就需要具有不同功能的CIL(Control and Interface Logic)模块来协同处理数据传输,其CIL后缀首字母缩写含义可参看以下表格。


DATA LANE

下面这张图说明了高速信号和低功耗信号的MIPI差分信号电压摆幅情况。


    由于MIPI是差分信号,因此通过高低电平的组合,每对差分线应该有4种状态,但由于高速模式下差分电压仅为200mV,因此高速模式下只差分电压仅有P正N负与P负N正两种状态,因此lane状态则共有如下表所示的六种状态。一对lane中的正信号线为Dp,负信号线为Dn。


    MIPI通信的所有操作模式、控制指令及数据传输都是基于以上六种lane的状态,分别有三种操作模式:控制模式、高速模式及Escape模式。控制指令包括高速数据传输 (LP-11, LP-01, LP-00)、Escape模式请求 (LP-11, 415 LP-10, LP-00, LP-01, LP-00) 、和传输方向切换请求 (LP-11, LP-10, LP-00, LP-10, LP-00)等。控制模式及Escape模式工作于LP电平,高速模式工作于HS电平。

    高速模式及Escape模式可以在控制模式下通过不同LP指令搭配开始或结束。由于从低速模式到高速模式存在数据传输量的突然增大,因此在进入高速数据传输前数据通道的前后存在一些状态用于进行时钟线与数据线的同步。

    High-Speed Data Transmission:

    举个例子:数据传输启动与终止时序:


当需要发送数据时,DATA线通过一段SOT指令离开停止状态并开始数据传输。

在一段数据传输结束后,DATA线通过一段EOT指令离开高速传输模式并进入停止状态。


    上图表示了一段数据需要传输时及传输前后的SOT/EOT时序。当存在多对DATA LANE时,每对LANE都可以独立的通过请求来发送数据,但大多数应用,LANE都是同步启动,但因为每条LANE传输的字节数不同,因此结束的时间不同。

    Bi-directional Data Lane Turnaround:

    对于双端数据传输模式,传输方向转换指令Turnaround所需的命令时序在手册中也有说明。

    Escape mode:

    Escape Mode指令是用来给MIPI提供一些额外功能处理能力的LP指令,前向通道下默认支持该功能,反向通道可选,可以通过与高速数据传输类似的指令进入Escape mode(LP-11, LP-10, LP-00, LP-01, LP-00)。进入该模式后Tx端可通过一个8位输入命令来指示所请求的操作。下表列出了当前所有可用的Escape模式命令和操作。


    该模式下为异步通信,使用一种名为spaced-one-hot的编码,该模式下DATA线上的数据传输不依赖CLK,且无法在Esape mode操作期间退出。

    spaced-one-hot编码的每个符号由一个one hot和一个spaced位组成,one hot包括Mark0(等于LP01)和Mark1(等于LP10),spaced相当于LP00,以Trigger-Reset Command为例一段完整的Escape Mode操作如下图所示:


    从图中可以看出,退出Escape Mode模式必须通过Mark1并停留在LP11状态。

    在Escape Mode指令中可以看到,LPDT数据传输和ULPS也是通过该模式进入。在LPDT模式下的数据传输仍然要按照spaced-one-hot编码的命令来传输,数据传输过程中可以通过保持一段SPACE状态(LP00)来进行暂停,同样可以使用MARK1(LP10)接LP11停止状态来推出到控制模式。LPDT模式下的数据传输频率<20MHz,主要用于低功耗数据传输。

CLK LANE

    MIPI的CLK LANE为双边沿采样的单端信号,所以无论MIPI_DATA传输方向是正向还是反向,CLK时钟信号都为主端发送。且由于是单端信号,因此CLK LANE不支持Esape mode,仅能通过特殊的LP-Rqst指令进入ULPS状态。

    只有当CLK LANE以及工作在HS模式时,才可以进行高速数据传输,同理,只有在所有的DATA LANE上都没有数据传输后,CLK LANE才可以推出HS模式,下面为CLK LANE开启和停止数据传输的时序图和具体指令:

结合上述时序图中CLK LANE的状态依次为:

1、CLK LANE处于交错高速信号HS-0和HS-1的状态,DATA LANE开始执行EOT程序;

2、最后一个DATA LANE完成EOT程序并进入LP11状态,CLK在此时仍然保持HS模式并允许一段时间Tclk-post;

3、CLK LANE最后以HS-0状态结束并维持一段时间Tclk-trail;

4、CLK LANE切换HS-TX驱动模块至LP-TX驱动模块,并驱动LP-11状态,保持Ths-exit时长。至此即进入了LP模式;

5、CLK LANE在保持LP11一段时间后驱动HS-Req状态(LP01)并保持一段时间Tlpx;

6、驱动Bridge state状态(LP-01),并维持一段时间Tclk-prepare;

7、CLK LANE切换LP-TX驱动模块至HS-TX驱动模块,并保持HS0一段时间clk-zero;

8、CLK LANE保持HS模式一段时间Tclk-pre后。Data Lane也开始启动SOT切换程序,随后开始HS数据传输。

以上所有时序中的时间要求,均可在MIPI D-PHY标准或SERDES手册中查到。

Initialization

    MIPI-PHY初始化时需分为主端初始化和从端初始化,从端将会在主端PHY保持一个Stop State(LP11)状态超过Tinit时间后进行初始化。

    主端初始化则需要一个系统或协议的指令(System or Protocol input signal)指令进行。在主端初始化之前,需要保证线上不会出现超过Tinit时长的LP11状态,以防止从端比主端先进行初始化。在初始化之前,从端应忽略线束上的所有状态,且当MIPI使用多路LANE时,所有LANE的初始化应同时进行。

    Tinit的时间长度取决于协议层规定,因此不在PHY标准讨论范围之内,且Tinit Master与Tinit Slave可以为两个不同的值,但D-PHY规定了Tinit的最小值不可短于100us。

Calibration

    Calibration为MIPI D-PHY v1.2新增功能,用于HS-Deskew校准,该校准允许MIPI速率从1.5Gbps/Lane提升到了2.5Gbps/Lane。HS-Deskew主要分为初始化校准Initial Deskew和周期性校准Periodic Deskew。

    对于任何支持1.5Gbps速率的设备,当传输速率高于1.5Gbps或速率改变为1.5Gbps以上的任何速率时,在开始HS传输之前接收端都需要通过一段发送端发送的DESKEW完成校准。Deskew主要用于消除时钟和数据Lane之间可能存在的相位差。如果传输速率低于或等于1.5Gbps时,初始化校准是可选的。周期性校准与传输速率无关,任何速率都可以选择开或不开。此外,还可以进行周期性的deskew,当然这也是可选的。当仅仅是传输状态发送变化时,例如从任何低速率模式变为HS模式,HS-Deskew都是可选的,只要HS传输的速率在之前已经进行过校准。

    从下图可以看出校准时序与普通SOT时序的不同,主要区别在SOT程序完成HS驱动并保持HS-0一段时间THS-ZERO后,校准模式会先保持一段HS Skew-Calibration SYNC(1111111……)总长为16UI,然后开始进行DeSkew校准TSKEWCAL(01010101010101),校准周期可选,初始化校准为32kUI-8*32kUI,周期性校准为1kUI-8kUI。而普通模式则是进行一段THS-SYNC(00011101)后就开始数据传输。

Normal Mode vs Skew Calibration
    上述为DESKEW校准的启动时序,接收端若检测到该启动时序则会启动校准,校准的周期由发送端控制,校准周期结束后,发射端会保持THS-TRAIL一段时间并退出HS模式。DESKEW的SOT时序与EOT时序详细描述不再赘述。另外,手册中对于DeSkew校准TSKEWCAL的最长时间也有要求,初始化校准应小于100us,周期性校准应小于10us,这也是手册中初始化校准和周期性校准DESKEW周期最长分别为8*32kUI和8kUI的原因。

 https://www.bilibili.com/read/cv22362354/ 出处:bilibili

相关文章:

【学习笔记】MIPI

MIPI介绍 MIPI是由ARM、Nokia、ST、IT等公司成立的一个联盟,旨在把手机内部的接口如存储接口,显示接口,射频/基带接口等标准化,减少兼容性问题并简化设计。 MIPI联盟通过不同的工作组,分别定义一系列手机内部的接口标…...

QMake 脚本知识点记录

1. 简单工程配置 QT core guigreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c11CONFIG debug # debug/release HEADERS demo.h # 头文件 列表 SOURCES main.cpp demo.cpp # 源文件 列表 FORMS mainwin.ui # 窗体 列表…...

Kubernetes配置管理(kubernetes)

实验环境: 在所有节点上拉取镜像;然后把资源清单拉取到第一个master节点上; 同步会话,导入镜像: configmap/secret 配置文件的映射 变量: 基于valuefrom的方式 cm--》pod 特点:变量的名称可…...

macOS与Ubuntu虚拟机使用SSH文件互传

1.ubuntu配置: 安装openssh服务: sudo apt-get install openssh-server -y 查看服务启动状态: systemctl status ssh 2.macOS使用scp连接ubuntu并发送文件 查看ubuntu IP : ifconfigmacOS终端连接ubuntu : sc...

defineExpose 显式导出子组件方法

当父组件调用子组件的script setup中的方法时&#xff0c;必须显式导出该方法。因为 script setup 中定义的变量和方法默认是局部的&#xff0c;只有显式导出后&#xff0c;父组件才能访问这些方法。 //父组件-Parent <template><el-button type"primary" …...

vue 解决列表界面进入明细返回查询条件不变

在Vue中&#xff0c;如果你遇到了列表界面进入详情页面后返回查询条件不变的问题&#xff0c;可能是因为你没有正确地管理状态或者是使用了不合适的组件间通信方式。 解决方案通常涉及到以下几点&#xff1a; 使用Vuex来管理状态&#xff0c;确保查询条件保存在全局状态树中&…...

华为NAT ALG技术的实现

双向NAT技术&#xff1a;经过防火墙的2报文源IP地址和目的IP地址都同时被转换&#xff0c;外网发送报文给内网服务器&#xff0c;先转换目的IP地址&#xff0c;然后符合安全策略后&#xff0c;在替换源IP地址&#xff0c;然后将记录写入防火墙会话表&#xff0c;并发送出报文&a…...

【移植】轻量系统STM32F407芯片移植案例

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ 持续更新中…… 介绍基于 STM32F407IGT6 芯片在拓维信息 Niobe407 开发板上移植 Op…...

k8s 修炼手册

deployment apiVersion: apps/v1 kind: Deployment metadata:name: hello-deploy spec:replicas: 10selector:matchLabels:app: hello-world # Pod的label # 这个Label与Service的Label筛选器是匹配的revisionHistoryLimit: 5progressDeadlineSeconds: 300minReadySeconds: 10…...

重回1899元,小米这新机太猛了

如果不出意外&#xff0c;距离高通年度旗舰骁龙 8 Gen4 发布还剩下不到一个月时间。 对于以小米 15 为首即将到来的下半年各家旗舰机型厮杀画面&#xff0c;讲道理小忆早已是备好瓜子儿摆上果盘翘首以盼了。 不过在这之前&#xff0c;中端主流选手们表示有话要说&#xff1a;为…...

jmeter本身常用性能优化方法

一、常用配置&#xff1a; 修改Jmeter.bat文件&#xff0c;调整JVM参数(修改jmeter本身的最小最大堆内存)&#xff0c;默认都是1个G set HEAP-Xms5g -Xmx5g -XX:MaxMetaspaceSize256m我的本机内存是8G&#xff0c;那最大可以设置870%(本机内存的70%) 这里我设置的5g 如果有…...

Vue3中el-table组件实现分页,多选以及回显

el-table组件实现分页&#xff0c;多选以及回显 需求思路1、实现分页多选并保存上一页的选择2、记录当前选择的数据3、默认数据的回显 完整代码 需求 使用 dialog 显示 table&#xff0c;同时关闭时销毁el-table 表格多选回显已选择的表格数据&#xff0c;分页来回切换依然正确…...

柯桥韩语学校|韩语每日一词打卡:회갑연[회가변]【名词】花甲宴

今日一词:회갑연 韩语每日一词打卡&#xff1a;회갑연[회가변]【名词】花甲宴 原文:인구 노령화에 따라서 요즘 회갑연보다는 고희연을 더 많이 지냅니다. 意思&#xff1a;随着人口老龄化&#xff0c;最近比起花甲宴&#xff0c;更多人办古稀宴。 【原文分解】 1、인구[인구]…...

python概述

目录 python语言的特点 python语言的优点&#xff1a; python语言的缺点&#xff1a; 1.常用的python编辑器 PyCharm Jupyter Notebook VScode 模块的安装、导入与使用 安装 导入与使用 python语言的特点 1.简洁 2.语法优美 3.简单易学 4.开源&#xff1a;用户可自…...

使用celery+Redis+flask-mail发送邮箱验证码

Celery是一个分布式任务队列&#xff0c;它可以让你异步处理任务&#xff0c;例如发送邮件、图片处理、数据分析等。 在项目中和celery 有关系的文件如下&#xff1a; task.py : 创建celery.py 对象&#xff0c;并且添加任务&#xff0c;和app绑定&#xff0c;注意&#xff1…...

【第十四章:Sentosa_DSML社区版-机器学习之时间序列】

目录 【第十四章&#xff1a;Sentosa_DSML社区版-机器学习时间序列】 14.1 ARIMAX 14.2 ARIMA 14.3 HoltWinters 14.4 一次指数平滑预测 14.5 二次指数平滑预测 【第十四章&#xff1a;Sentosa_DSML社区版-机器学习时间序列】 14.1 ARIMAX 1.算子介绍 考虑其他序列对一…...

Vue3.X + SpringBoot小程序 | AI大模型项目 | 饮食陪伴官

gitee平台源码 github平台源码 饮食陪伴师是一个管理饮食的原生大模型小程序&#xff0c;优势&#xff1a; 精确营养监控&#xff1a;用户记录饮食后&#xff0c;我们会计算出食用的营养成分与分量&#xff0c;并反馈给用户。饮食建议有效&#xff1a;大模型经过我们训练具备大…...

【C++】检测TCP链接超时——时间轮组件设计

目录 引言 时间轮思想 设计的核心思路 完整代码 组件接口 个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 引言 对于高并发的服务器来说&#xff0c;链接是一种比较珍贵的资源&#xff0c;对不活跃的链接应该及时释放。判断连接是否活跃的策略是——在给定的时间内&#…...

中国新媒体联盟与中运律师事务所 建立战略合作伙伴关系

2024年9月27日&#xff0c;中国新媒体联盟与中运律师事务所举行战略合作协议签字仪式。中国新媒体联盟主任兼中国社会新闻网主编、中法新闻法制网运营中心主任左新发&#xff0c;中运律师事务所高级顾问刘学伟代表双方单位签字。 中国新媒体联盟是由央视微电影中文频道联合多家…...

【ArcGIS微课1000例】0121:面状数据共享边的修改方法

文章目录 一、共享边概述二、快速的修改办法1. 整形共享边2. 修改边3. 概化边缘一、共享边概述 面状数据共享边指的是两个或多个面状数据(如多边形)共同拥有的边界。在地理信息系统(GIS)、三维建模、大数据分析等领域,面状数据共享边是描述面状空间数据拓扑关系的重要组成…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件&#xff0c;我的文件路径是/etc/mysql/my.cnf&#xff0c;有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...

Visual Studio Code 扩展

Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后&#xff0c;命令 changeCase.commands 可预览转换效果 EmmyLua…...