MIPI协议介绍

news2025/5/22 7:20:39

MIPI协议介绍

mipi 协议分为 CSI 和DSI,两者的区别在于
CSI用于接收sensor数据流
DSI用于连接显示屏

csi分类

csi 分为 csi2 和 csi3
csi2根据物理层分为 c-phy 和 d-phy,
csi-3采用的是m-phy

一般采用csi2

c-phy 和 d-phy的区别

在这里插入图片描述
d-phy的时钟线和数据线是分开的,2根线一对一对,每个channe最大2.5Gbps,
c-phy的时钟线会嵌入到数据线中,有3跟线,每个channe最大5.7Gbps,

csi2 每层的定义

PHY层主要规定了物理传输的各种电气特性,传输介质,序等,比如C-PHY就是需要三根线来进行传输,而D-PHY是数据和时钟分开进行传输
协议层,主要负责像素层次的打包和解包,Lane层次的打包和解包,还有各种控制信息的组合
应用层,就是我们自己想怎么用就怎么用了,比如拿到像素数据之后做各种图像处理算法

PHY层

在这里插入图片描述
PHY最外面对外的接口是有两种形式的
HS 高速模式
LP 低功耗模式
这两种形式的接口在MIPI里面被组合成了一个接口,其实就是两种工作模式其中HS模式主要用于高速所数据传输,功耗较大
LP模式主要用于低速的一些控制信号,功耗较低

但是在xilinx的7系列FPGA中是不支持这种传输特性的,所以在7系列的FPGA里面一般会采用以下两种方索来做MIPI接口
1 电阻网路
2 专用的电平转换芯片

协议层

协议层主要分为以下三个部分
Lane Management Layer
Low Level Protocol
Pixel to Byte Packing Formats

先来看Lane层
MIPI协议支持多lane的传输,MIPI D-PHY中每条lane最多传输2.55bps,那么如果需要传输更快的速率的时候就需要有多条lane来并行进行传输。这样必然要涉及一个问题,那就是lane与lane之间怎么配合的问题.

lane 传输过程
在这里插入图片描述

两lane的传输过程如下图所示,以SoT为起始,中间数据是交错排列的,最后以EoT作为结束
在这里插入图片描述
再来看Low Level Protocol层

在这里插入图片描述
low level层要传轮的数据分为两种
短包
长包
其中短保主要负责一些控制信息的传输,长包里面就是主要在传输图像数据了

短包的结构如下所示,分为ID,WC和ECC三个字段
在这里插入图片描述

长包和短包的结构很相似,可以看到它的包头部分和短包一致,然后后面跟了数据部分

在这里插入图片描述
那么怎么区分长包和短包呢,其实就是靠DATA ID这个字段中的Data type来区分的,比如短包的DATA ID如下图所示
Data type 为 00 - 07代表的是短包
在这里插入图片描述
其中DATA ID这8bit中还有两Bit,表示VC也就是虚拟通道,剩下的6bit才表示Data Type。

WC这个字段,这个字段表示接下来的传输有多少字的数据
ECC是给做校验用的,毕竟传输的过程中可能会出现错误,这边就增加了校验
后面要传输的数据也会有很多类型,比如YUV格式的,RAW格式的,在MIPI里面也是通过DATA Type来区分的

在这里插入图片描述
RAW10里面一个像素是10bit,RAW12里面一个像素是12bit,那么MIPI协议里面是怎么将他们进行统一的呢,其实这里MIPI协议规定了每种数据的排布方式

比如RAW10的数据是按如下形式进行排布的,以40 bit 为一个单位传输,
先传输每个像素的高8bit, 再把4个像素的抵2bit 拼在一起传输。
在这里插入图片描述
而RAW12的排布方式又变成了如下图
在这里插入图片描述

在写代码的时候只需要根据data type来做对应的解码就行了
要完成一个MIPI CSI-2的 D-PHY接受数据的话,只需要做以下步骤
字节对齐
lane对齐
数据解包
像素解包

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI应用开发平台 和 通用自动化工作流工具 的详细对比,涵盖定义、核心功能、典型工具、适用场景及优缺点分析

以下是 AI应用开发平台 和 通用自动化工作流工具 的详细对比,涵盖定义、核心功能、典型工具、适用场景及优缺点分析: 1. AI应用开发平台 vs 通用自动化工作流工具 (1) 定义与目标 类型AI应用开发平台通用自动化工作流工具定义用于快速构建、训练、部署…

智慧社区数据可视化中枢平台——Axure全场景交互式大屏解决方案

在数字化治理的时代浪潮中,社区管理正面临数据碎片化、响应滞后、决策盲区等核心挑战。如何将分散的安防、环境、能源、民生服务等数据整合为可操作的智慧洞察?如何让冰冷的数字转化为社区管理者手中的决策利器?Axure智慧社区可视化大屏原型模…

Axure高保真AI算法训练平台

点击下载《Axure高保真AI算法训练平台(.rp) 》 原型效果:https://axhub.im/ax9/69fdf8f2b10b59c3/#g1 摘要 本文介绍了一款功能全面且高效的AI算法训练平台,旨在为数据科学家、研究人员和工程师提供从数据准备到模型部署的一站式解决方案。该平台由四大…

C++ Json-Rpc框架-3项目实现(2)

一.消息分发Dispatcher实现 Dispatcher 就是“消息分发中枢”:根据消息类型 MType,把消息派发给对应的处理函数(Handler)执行。 初版: #pragma once #include "net.hpp" #include "message.hpp"n…

OpenAI发布GPT-4.1系列模型——开发者可免费使用

OpenAI刚刚推出GPT-4.1模型家族,包含GPT-4.1、GPT-4.1 Mini和GPT-4.1 Nano三款模型。重点是——现在全部免费开放! 虽然技术升级值得关注,但真正具有变革意义的是开发者能通过Cursor、Windsurf和GitHub Copilot等平台立即免费调用这些模型。…

各地物价和生活成本 东欧篇

东欧地区的物价差异相对较大,一些国家的物价较高,而另一些国家则相对便宜。这些差异主要受当地经济发展水平、工资水平、旅游业发展以及国际关系等因素影响。以下是一些典型的东欧国家,按物价高低进行分类: 🌍 物价较高…

flex布局(笔记)

弹性布局(Flex布局)是一种现代的CSS布局方式,通过使用display: flex属性来创建一个弹性容器,并在其中使用灵活的盒子模型来进行元素的排列和定位。 主轴与交叉轴:弹性容器具有主轴(main axis)和…

云函数采集架构:Serverless模式下的动态IP与冷启动优化

在 Serverless 架构中使用云函数进行网页数据采集,不仅能大幅降低运维成本,还能根据任务负载动态扩展。然而,由于云函数的无状态特性及冷启动问题,加上目标网站对采集行为的反制措施(如 IP 限制、Cookie 校验等&#x…

Linux笔记---动静态库(原理篇)

1. ELF文件格式 动静态库文件的构成是什么样的呢?或者说二者的内容是什么? 实际上,可执行文件,目标文件,静态库文件,动态库文件都是使用ELF文件格式进行组织的。 ELF(Executable and Linkable…

string的模拟实现 (6)

目录 1.string.h 2.string.cpp 3.test.cpp 4.一些注意点 本篇博客就学习下如何模拟实现简易版的string类&#xff0c;学好string类后面学习其他容器也会更轻松些。 代码实现如下&#xff1a; 1.string.h #define _CRT_SECURE_NO_WARNINGS 1 #pragma once #include <…

【野火模型】利用深度神经网络替代 ELMv1 野火参数化:机制、实现与性能评估

目录 一、ELMv1 野火过程表示法&#xff08;BASE-Fire&#xff09;关键机制野火模拟的核心过程 二、采用神经网络模拟野火过程三、总结参考 一、ELMv1 野火过程表示法&#xff08;BASE-Fire&#xff09; ELMv1 中的野火模型&#xff08;称为 BASE-Fire&#xff09;源自 Commun…

红宝书第四十七讲:Node.js服务器框架解析:Express vs Koa 完全指南

红宝书第四十七讲&#xff1a;Node.js服务器框架解析&#xff1a;Express vs Koa 完全指南 资料取自《JavaScript高级程序设计&#xff08;第5版&#xff09;》。 查看总目录&#xff1a;红宝书学习大纲 一、框架定位&#xff1a;HTTP服务器的工具箱 共同功能&#xff1a; 快…

嵌入式Linux设备使用Go语言快速构建Web服务,实现设备参数配置管理方案探究

本文探讨&#xff0c;利用Go语言及gin框架在嵌入式Linux设备上高效搭建Web服务器&#xff0c;以实现设备参数的网页配置。通过gin框架&#xff0c;我们可以在几分钟内创建一个功能完善的管理界面&#xff0c;方便对诸如集中器&#xff0c;集线器等没有界面的嵌入式设备的管理。…

【NLP 59、大模型应用 —— 字节对编码 bpe 算法】

目录 一、词表的构造问题 二、bpe(byte pair encoding) 压缩算法 算法步骤 示例&#xff1a; 步骤 1&#xff1a;初始化符号表和频率统计 步骤 2&#xff1a;统计相邻符号对的频率 步骤 3&#xff1a;合并最高频的符号对 步骤 4&#xff1a;重复合并直至终止条件 三、bpe在NLP中…

Python对ppt进行文本替换、插入图片、生成表格

目录 1. 安装pptx2. 文本替换和插入图片3. 生成表格 1. 安装pptx pip install python-pptx2. 文本替换和插入图片 文本通过占位符例如{{$xxx}}进行标记&#xff0c;然后进行替换&#xff1b;图片通过ppt中的图形和图片中的占位符进行标记ppt如下 具体实现 from pptx import …

AI(学习笔记第一课) 在vscode中配置continue

文章目录 AI(学习笔记第一课) 在vscode中配置continue学习内容&#xff1a;1. 使用背景2. 在vscode中配置continue2.1 vscode版本2.2 在vscode中下载continue插件2.2.1 直接进行安装2.2.2 在左下角就会有continue的按钮2.2.3 可以移动到右上角2.2.3 使用的时候需要login 2.3 配…

C++ (初始面向对象之继承,实现继承,组合,修饰权限)

初始面向对象之继承 根据面向对象的编程思路&#xff0c;我们可以把共性抽象出来封装成类&#xff0c;然后让不同的角色去继承这些类&#xff0c;从而避免大量重复代码的编写 实现继承 继承机制是面向对象程序设计中使代码可以复用的最重要的手段&#xff0c;它允许程序员在保…

每日搜索--12月

12.1 1. urlencode是一种编码方式,用于将字符串以URL编码的形式进行转换。 urlencode也称为百分号编码(Percent-encoding),是特定上下文的统一资源定位符(URL)的编码机制。它适用于统一资源标识符(URI)的编码,也用于为application/x-www-form-urlencoded MIME准备数…

一天一个java知识点----Tomcat与Servlet

认识BS架构 静态资源&#xff1a;服务器上存储的不会改变的数据&#xff0c;通常不会根据用户的请求而变化。比如&#xff1a;HTML、CSS、JS、图片、视频等(负责页面展示) 动态资源&#xff1a;服务器端根据用户请求和其他数据动态生成的&#xff0c;内容可能会在每次请求时都…

游戏报错?MFC140.dll怎么安装才能解决问题?提供多种MFC140.dll丢失修复方案

MFC140.dll 是 Microsoft Visual C 2015 运行库的重要组成部分&#xff0c;许多软件和游戏依赖它才能正常运行。如果你的电脑提示 "MFC140.dll 丢失" 或 "MFC140.dll 未找到"&#xff0c;说明系统缺少该文件&#xff0c;导致程序无法启动。本文将详细介绍 …