MIPI接口协议及规范理解

什么是MIPI接口

MIPI,英文全称为Mobile Industry Processor Interface,即移动行业处理器接口。它是MIPI联盟发起的为移动应用处理器制定的开放标准。MIPI接口是一种专为移动设备和嵌入式系统设计的串行通信接口,定义了一系列的接口标准,常见的如下:

CSI:摄像头接口(Camera Serial Interface),用于连接摄像头模块。
DSI:显示接口(Display Serial Interface),用于连接显示屏幕。
DigRF:射频接口(Digital Radio Frequency),用于连接射频模块。
SLIMBUS:麦克风/喇叭接口,用于连接音频输入/输出设备。
本文重点介绍MIPI CSI接口

总体介绍

MIPI-CSI-2协议是MIPI联盟协议的子协议,专门针对摄像头芯片的接口而设计。由于其高速,低功耗的特点,MIPI-CSI2协议极大的支持了高清摄像头领域的发展.
在这里插入图片描述
CSI协议有两个版本协议,分别为CSI-2和CSI-3;
CSI-2协议遵循的物理标准有两个,分别为C-PHY和D-PHY;
CSI-3协议的物理标准对应M-PHY,且应用层协议栈还需要连接Uni-Pro层
D-PHY与C-PHY区别:从实用角度来看,主要是数据线和时钟线的区别,,D-PHY采用了DDR(double data rate)的数据传输方式方式,在时钟的上、下沿都有数据传输,它有一条专用的时钟通道;而C-PHY是不需要专用时钟通道,它的时钟信息嵌入在数据本身当中。
在这里插入图片描述
D-PHY有LP(low power)、HS(high speed)两种主要的工作模式,LP时速度慢,电压幅值高;HS时幅值低,速度快。
我们当前使用的RK356X采用的CSI-2 && D-PHY

CSI协议分层

在这里插入图片描述

名称解释
Application应用层处理原始图像数据的各种算法模块
Packing Formats组包层负责将数据按照一定的次序,切割成8bite数据
Low Level Protocaol协议层为新生成的数据加上爆头包尾,形成符合协议要求的数据流
Lane Management通道管理层将生成的数据流按照一定次序和要求,进行读写管理,输出数据流
PHY LayerPHY层生成MIPI最后的信号波形
Pixel像素数据经过图像模块处理过的数据流,或者原始的图像数据流
Data传输数据经过MIPI模块切割或者加上包头包尾数据
Control控制信号模块间的控制数据流
Transmitter发送端包括了MIPI数组部分,转接板等实现MIPI信源传输的部分
Receiver接收端包括了转接板和商用接收端模块,负责解析收到的MIPI信源
  1. 应用层(Application Layer)
    该层主要用于不同场景对数据的处理过程,对于发送方,多为camera生成数据,对于接收方,多为SOC对数据进行处理。
  2. 协议层(Protocol Layer)
    CSI-2协议可以使用SOC上的一个物理接口实现多条数据流的传输。协议层规定了如何对多条数据流进行标记和交织,从而使每条数据流能够正确地重建。
    1)像素字节转换层(Pixel/Byte Packing/Unpacking Layer)
    CSI-2能够支持多种多样的像素格式,对于发送方,在数据发送之前,需要根据像素格式,将像素数据转换为对应的字节流;对于接收方,在将数据提供给应用层之前,需要将字节流数据转换为像素数据。
    2)低级协议层(Low Level Protocol)
    LLP指的是SoT与EoT之间的数据包字节流协议,LLP的最小单元为字节。
    3)Lane管理器(Lane Management)
    为了适应不同场景下对带宽的要求,CSI-2规定了Lane的数量是可拓展的。因此,在面临多Lane同时传输时,发送方需要对字节流进行公平分流(distributor),接收方则需要对多Lane数据进行合并(merger)。
  3. 物理层(PHY Layer)
    PHY层指定了传输媒介,在电气层面从串行bit流中捕捉“0”与“1”,同时生成SoT与EoT等信号。CSI的硬件部分包括C-PHY、D-PHY,实际上使用的主要是D-PHY。

物理层 DPHY

D-PHY 描述了一同步、高速、低功耗、低代价的PHY。
D-PHY的最初版本设计目标是500M bits/s,而D是罗马数字的500,故而叫D-PHY。

1. D-PHY规范的2.0版的标准:

● 在高速模式下的同步传输,比特率为80-2300Mb/s,具体取决于设备和速度等级;
● TX经典配置为一个时钟Lane和最多四个数据Lane组成;
● Rx经典配置为一个时钟Lane和最多八个数据Lane组成;
● 在低功率模式下的异步传输,比特率为10Mb/s;
● 物理协议接口(PPI)连接CSI-2和DSI的应用;
● 可选的AXI4-Lite接口,可进行注册访问。

在这里插入图片描述
MIPI CSI设备由两部分构成,分别为CCI(Camera Control Interface)和CSI(Camera Serial Interface)。
● CCI:摄像头控制接口。(在MIPI中,充当着控制接口的作用,提供mipi接口sensor的控制传输通道)
● CSI:主机处理器与摄像头模块之间的高速串行接口(传输图像数据)。

2. DPHY的两种工作模式

● HS(High Speed Mode) 这种模式用于传输高速的数据信号,如视频流;高速模式下,每对Lane都是工作在低电压摆幅的差分状态下,数据速率为80Mbps到1500Mbps。
● LP(Low Power Mode) 这种模式则可以用来传输控制信号;低速模式下,每对lane的2根导线都转变为单端状态,数据速率为10Mbps。
在这里插入图片描述
上图为单个Lane模块的内部组成,包含了CIL(Lane控制器与借口逻辑器),LP驱动器,HS驱动器,LP冲突检测。
CIL负责控制各个驱动器的工作状态,使得Dp、Dn的工作状态可以在HS与LP之间进行切换。
在这里插入图片描述
处于HS模式下,差分信号电平摆幅约为200mV;处于LP模式下,单端信号电平摆幅约为1.2V。在LP模式下,根据各个Line的电平可以确定当前Lane的State。

3. 两种模式的转换过程

MIPI协议层设置有专门的握手和断开动作,以保证高速信号的同步开始和同步结束,时序图如下:
在这里插入图片描述
在这里插入图片描述

我们使用数据格式为YUV422 8bit(基本默认采用CSI-2标准的总线均能支持),在总线上传输顺序为UYVY,数据封装方式如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其他数据格式支持

在这里插入图片描述

MIPI的连续模式和非连续模式

MIPI CSI时钟有两种模式,一种模式是连续时钟模式(Continue模式),另一种是非连续时钟模式(No-Continue模式)。前者在传输过程中不会切换LP状态,后者会在每传输完一帧图像后,帧blanking时会切换为LP状态。一般来说,推荐使用非连续时钟模式。
在这里插入图片描述
一条时钟Lane可以通过LP-11 -> LP-10 -> LP-00进入低功耗模式ULPS(Ultra-Low Power Status)

先看下理论,下面文章针对我们的调试经验和经历再写一篇RK平台MIPI适配过程。

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

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

相关文章

docker swarm安装指导

SWARM部署DOCKER集群 1. 简介............................................................................................................................ 3 2. 部署准备.........................................................................................…

解决报错:模块“react-redux“没有导出的成员“TypedUseSelectorHook”

在react整合typescript,redux时,写hook.ts时报这个错:模块"react-redux"没有导出的成员“TypedUseSelectorHook” 现象如下: 原因:react-redux版本太低,至少要升级到7.2.3以后才能包含TypedUseSelectorHook…

十一工具箱流量主小程序源码

无授权,去过滤机制版本 看到网上发布的都是要授权的 朋友叫我把他去授权,能用就行 就把过滤去了 这样就不用授权 可以免费使用 白嫖党专属 一切接口可用,无需担心不能用 授权者不关站一直可以用 源码下载:https://download.csdn.…

二十九、高级IO与多路转接之epollreactor(收官!)

文章目录 一、Poll(一)定义(二)实现原理(三)优点(四)缺点 二、I/O多路转接之epoll(一)从网卡接收数据说起(二)如何知道接收了数据&…

Godot Identifier “File“ not declared in the current scope.

解决方案: f FileAccess.open(savedir, FileAccess.READ)

算法题:分发饼干

这个题目是贪心算法的基础练习题,解决思路是排序双指针谈心法,先将两个数组分别排序,优先满足最小胃口的孩子。(本题完整题目附在了最后面) 代码如下: class Solution(object):def findContentChildren(se…

react库的基础学习

React介绍 React.js是前端三大新框架:Angular.js、React.js、Vue.js之一,这三大新框架的很多理念是相同的,但是也有各自的特点。 React起源于Facebook的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满…

HDLbits: Edgedetect

module top_module (input clk,input [7:0] in,output [7:0] pedge );reg [7:0] in_old;always(posedge clk)beginin_old < in; end assign pedge < in & ~in_old; endmodule 对于边缘检测而言&#xff0c;若是0→1和1→0都检测则为in^in_old&#xf…

医学影像归档与通讯系统(PACS)系统源码 PACS三维图像后处理技术

医学影像归档与通讯系统&#xff08;PACS&#xff09;系统源码 PACS三维图像处理 医学影像归档与通讯系统&#xff08;PACS&#xff09;系统&#xff0c;是一套适用于从单一影像设备到放射科室、到全院级别等各种应用规模的医学影像归档与通讯系统。PACS集患者登记、图像采集、…

ctfshow web入门 php特性 web131-web135

1.web131 和上题一样差不多&#xff0c;正则最大回溯次数绕过 import requests url"" data{f:very*250000360Dctfshow } rrequests.post(url,datadata) print(r.text)2.web132 通过扫描发现robots.txt,访问/admin发现源码 &&和||都是短路运算符 只要满足co…

C++设计模式-享元(Flyweight)

目录 C设计模式-享元&#xff08;Flyweight&#xff09; 一、意图 二、适用性 三、结构 四、参与者 五、代码 C设计模式-享元&#xff08;Flyweight&#xff09; 一、意图 运用共享技术有效地支持大量细粒度的对象。 二、适用性 一个应用程序使用了大量的对象。完全由…

力扣 -- 1745. 分割回文串 IV

解题步骤&#xff1a; 参考代码&#xff1a; class Solution { public:bool checkPartitioning(string s) {int ns.size();vector<vector<bool>> dp(n,vector<bool>(n));for(int in-1;i>0;i--){for(int ji;j<n;j){if(s[i]s[j]){dp[i][j]i1<j?dp[i…

卷积网络的发展历史-LeNet

简介 LeNet是CNN结构的开山鼻祖&#xff0c;第一次定义了卷积神经网络的结构。 LeNet模型包含了多个卷积层和池化层&#xff0c;以及最后的全连接层用于分类。其中&#xff0c;每个卷积层都包含了一个卷积操作和一个非线性激活函数&#xff0c;用于提取输入图像的特征。池化层…

功能定义-前方交通穿行提示制动

功能概述 前方交通穿行提示(Front Cross Traffic Alert)&#xff0c;简称FCTA&#xff0c;其功能表现为在车辆低速前进时&#xff0c;实时监测车辆前部横向接近的其他道路使用者&#xff0c;并在可能发生碰撞风险时发出警告信息 前方交通穿行制动(Front Cross Traffic Braking…

iMazing 2.17.10官方中文版含2023最新激活许可证码

iMazing 2.17.10官方中文版是一款iOS设备管理软件&#xff0c;该软件支持对基于iOS系统的设备进行数据传输与备份&#xff0c;用户可以将包括&#xff1a;照片、音乐、铃声、视频、电子书及通讯录等在内的众多信息在Windows/Mac电脑中传输/备份/管理。 iMazing 2.17.10官方中文…

力扣第101题 c++ 递归 迭代 双方法 +注释 ~

题目 101. 对称二叉树 简单 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;false提示&a…

7.JavaScript-vue

1 JavaScript html完成了架子&#xff0c;css做了美化&#xff0c;但是网页是死的&#xff0c;我们需要给他注入灵魂&#xff0c;所以接下来我们需要学习JavaScript&#xff0c;这门语言会让我们的页面能够和用户进行交互。 1.1 介绍 通过代码/js效果演示提供资料进行效果演…

吃鸡达人专享!提高战斗力,分享干货,查询装备皮肤,保护账号安全!

大家好&#xff01;作为专业吃鸡行家&#xff0c;我将为您带来一些热门话题和实用内容&#xff0c;帮助您提升游戏战斗力&#xff0c;分享顶级游戏作战干货&#xff0c;并提供便捷的作图工具和查询服务。让我们一起享受吃鸡的乐趣&#xff01; 首先&#xff0c;我要推荐一款绝地…

3分钟基于Chat GPT完成工作中的小程序

1. 写在前面 GPT自从去年爆发以来&#xff0c;各大公司在大模型方面持续发力&#xff0c;行业大模型也如雨后春笋一般发展迅速&#xff0c;日常工作中比较多的应用场景还是问答模式&#xff0c;作为写程序的辅助也偶尔使用。今天看到一篇翻译的博客“我用 ChatGPT&#xff0c;…

[笔记] Windows内核课程:保护模式《二》段寄存器介绍

文章目录 前言1、什么是段寄存器? 有哪些 ?2. 段寄存器的结构 前言 段寄存器&#xff0c;页寄存器 1、什么是段寄存器? 有哪些 ? 当我们用汇编读写某一个地址时: mov dword ptr ds:[0x123456],eax我们真正读写的地址是: ds.base 0x123456ES、CS、SS、DS、FS、GS、LDTR…