【学习笔记】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

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

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

相关文章

植物大战僵尸杂交版V2.5.1下载(最新版)

2.5.1版本更新公告: 在最新的2.5.1版本中,游戏对“两面夹击”关卡进行了多项重要调整。出怪倍率和种类均有所降低,部分关卡的初始阳光量也得到了调整,以增强玩家的策略性。同时,玩家可以在这些关卡中使用投手类植物&a…

sysbench 命令:跨平台的基准测试工具

一、命令简介 sysbench 是一个跨平台的基准测试工具,用于评估系统性能,包括 CPU、内存、文件 I/O、数据库等性能。 ‍ 比较同类测试工具 bench.sh 在上文 bench.sh:Linux 服务器基准测试中介绍了 bench.sh 一键测试脚本,它对…

RabbitMQ下载安装运行环境搭建

RabbitMQ运行环境搭建 1、Erlang及RabbitMQ安装版本的选择2、下载安装Erlang2.1、下载Erlang2.2、安装Erlang2.2.1、安装Erlang前先安装Linux依赖库2.2.2、解压Erlang压缩包文件2.2.3、配置2.2.4、编译2.2.5、安装2.2.6、验证erlang是否安装成功 3、RabbitMQ下载安装3.1、下载3…

FortiGate 无线组网

无线管理与配置 FortiAP 连接 internal 接口之后自动获得 ip 地址:192.168.1.xxx/24在 FortiGate 中创建 SSIDFortiGate 自动发现 FortiAP,将 FortiAP 添加到 FortiGate将 SSID 和 FortiAP 关联创建防火墙策略 下面我们就来一起看看在 FortiGate 中该如…

MT6765/MT6762(R/D/M)/MT6761(MT8766)安卓核心板参数比较_MTK联发科4G智能模块

联发科Helio P35 MT6765安卓核心板 MediaTek Helio P35 MT6765是智能手机的主流ARM SoC,于2018年末推出。它在两个集群中集成了8个ARM Cortex-A53内核(big.LITTLE)。四个性能内核的频率高达2.3GHz。集成显卡为PowerVR GE8320,频率…

前端——js基础

一、JavaScript (简称js)——js可以给网页实现一个动态效果 1.JavaScript 组成 - 核心语法 ECMScipt 简称(es): 规范js的基本语法 1.es是js的语法规范 管理者 2.js是es的实现 操作者 - DOM > 文档对象 提供js操作 (例如…

Golang | Leetcode Golang题解之第423题从英文中重建数字

题目: 题解: func originalDigits(s string) string {c : map[rune]int{}for _, ch : range s {c[ch]}cnt : [10]int{}cnt[0] c[z]cnt[2] c[w]cnt[4] c[u]cnt[6] c[x]cnt[8] c[g]cnt[3] c[h] - cnt[8]cnt[5] c[f] - cnt[4]cnt[7] c[s] - cnt[6]…

jq实现:点击图片时弹出详情弹窗,判断拖动图片时不弹出

1.需求分析: 要实现点击图片时弹出详情弹窗,但在拖动时不弹出,可以使用 jQuery 来判断用户的操作。可以通过设置一个标志变量来判断用户是否在拖动图片。 并且在鼠标拖动某个图片时将其层级设置为最上面,可以使用 jQuery 结合 CSS 的 z-index 属性 说明 : 标志变量:使用…

传输层TCP协议

一、TCP协议格式 我们看到报头固定有20字节,最后选项大小不固定。 4位首部长度(二进制0000 ~ 1111,十进制范围[0, 15])单位是4字节(存放字节大小范围[0, 60])包括了20字节固定长度 选项长度。若选项大小为…

PWA(Progressive web APPs,渐进式 Web 应用): manifest.json、 Service Worker

文章目录 引言I 什么是 PWA功能特性技术上分为三个部分:II Web 应用清单将Web 应用清单文件链接到站点manifest.json字段说明III Service WorkerService worker 本质Service worker 运行在 worker 上下文注册服务辅助角色扩展知识将 PWA 作为脱机应用定义当前文档与被链接文档…

用Python实现运筹学——Day 4: 线性规划的几何表示

一、学习内容 线性规划的几何表示: 线性规划问题的解通常位于一个凸多边形(即可行解空间)的顶点上,这意味着在求解线性规划问题时,只需要找到可行解空间中的顶点并计算出目标函数值,再选择其中的最优解。 可…

C++之分割字符串的两种方式

方式一 #include <string> #include <vector> #include <sstream> #include <iostream>std::vector<std::string> split(const std::string& str, char delim) {std::stringstream ss(str);std::string item;std::vector<std::string>…

C语言贪吃蛇小游戏演示和说明

C语言贪吃蛇小游戏演示和说明 设计贪吃蛇游戏的主要目的是让大家夯实C语言基础&#xff0c;训练编程思维&#xff0c;培养解决问题的思路&#xff0c;领略多姿多彩的C语言。 游戏开始后&#xff0c;会在中间位置出现一条只有三个节点的贪吃蛇&#xff0c;并随机出现一个食物&am…

keepalived+lvs集群,实现高可用

环境准备&#xff1a;两台虚拟机&#xff0c;关闭防火墙&#xff0c;selinux,配置阿里云仓库&#xff0c;配置epel 192.168.88.21 dr1 负载均衡器 master 192.168.88.22 dr2 负载均衡器 backup 192.168.88.23 rs1 web1 192.168.88.24 rs2 web2 实验说明&…

项目启动错误

说明&#xff1a;记录一次项目启动&#xff0c;报数据库访问错误&#xff0c;如下&#xff1a; 错误信息&#xff1a;Invalid default&#xff1a;public abstract java.lang.Class tk.mybatis.spring.annotation.MapperScan.fatoryBean() 解决 没有引入mybatis依赖&#xff…

通信工程学习:什么是VIM虚拟化基础设施管理器

VIM:虚拟化基础设施管理器 VIM(Virtualized Infrastructure Manager)虚拟化基础设施管理器,是一种负责管理和控制虚拟化环境中所有虚拟资源的工具和系统。以下是关于VIM虚拟化基础设施管理器的详细解释: 一、定义与功能 VIM是网络功能虚拟化(NFV)架构中…

HarmonyOS---权限和http/Axios网络请求

网络请求(http,axios) 目录 一、应用权限管理1.1权限的等级1.2授权方式1.3声明权限的配置1.4如何向用户进行申请 二、内置http请求使用三、Axios请求使用&#xff08;建议&#xff09;3.1 使用方式一3.2 使用方式二&#xff08;建议&#xff09; 一、应用权限管理 应用权限保护…

Leetcode面试经典150题-322.零钱兑换

给你一个整数数组 coins &#xff0c;表示不同面额的硬币&#xff1b;以及一个整数 amount &#xff0c;表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额&#xff0c;返回 -1 。 你可以认为每种硬币的数量是无限的。 示…

uniapp 常用高度状态栏,导航栏,tab栏,底部安全高度

实际效果 使用 //使用 let posConfig this.getPosConfig(); // 传false返回值为 px大小 console.log(posConfig.safeBottomH) // 入参 是否转换为rpxgetPosConfig(toRpx true) {const systemInfo uni.getSystemInfoSync();// #ifdef MPconst menuButtonInfo uni.getMenuBu…

基于RPA+BERT的文档辅助“悦读”系统 | OPENAIGC开发者大赛高校组AI创作力奖

在第二届拯救者杯OPENAIGC开发者大赛中&#xff0c;涌现出一批技术突出、创意卓越的作品。为了让这些优秀项目被更多人看到&#xff0c;我们特意开设了优秀作品报道专栏&#xff0c;旨在展示其独特之处和开发者的精彩故事。 无论您是技术专家还是爱好者&#xff0c;希望能带给…