MIPI接口协议及规范理解

news2024/11/18 21:34:47

什么是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.coloradmin.cn/o/1065009.html

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

相关文章

【pwn入门】用gdb调试32位程序

声明 本文是B站你想有多PWN学习的笔记&#xff0c;包含一些视频外的扩展知识。 问题源码 #include <stdio.h> #include <stdlib.h> #include <unistd.h> char sh[]"/bin/sh"; int func(char *cmd){system(cmd);return 0; }int main(){char a[8]…

学习搜狗的workflow,MacBook上如何编译

官网说可以在MacBook上也可以运行&#xff0c;但是编译的时候却有找不到openssl的错误&#xff1a; 看其他博客也有类似的错误&#xff0c;按照类似的思路去解决 问题原因和解决办法 cmake编译的时候&#xff0c;没有找到openssl的头文件&#xff0c;需要设置cmake编译环境下…

基于Java的连锁超市会员管理系统设计与实现(源码+lw+ppt+部署文档+视频讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

孢子捕捉仪——植物疾病探测的得力工具

孢子捕捉仪是一款专为收集随空气流动、传染的病害病原菌孢子及花粉尘粒而制的精密仪器&#xff0c;它主要用于监测病害孢子的存量及其扩散动态&#xff0c;犹如植物健康状况的“超级侦察兵”&#xff0c;是农业植保部门应当配备的农作物病害监测专用设备&#xff0c;是植物疾病…

学之思第二天-调通登录功能

目录 一、前端问题 二、后端问题 三、总结 之前一直是一个前端网页即使输对了正确的账号密码&#xff0c;也进不去。 一、前端问题 前端控制台就是一大堆爆红&#xff1a; 报错信息大概下面这样&#xff1a; Uncaught (in promise) NavigationDuplicated {_name: "…

Uniapp 婚庆服务全套模板前端

包含 首页、社区、关于、我的、预约、订购、选购、话题、主题、收货地址、购物车、系统通知、会员卡、优惠券、积分、储值金、订单信息、积分、充值、礼品、首饰等 请观看 图片参观 开源&#xff0c;下载即可 链接&#xff1a;婚庆服务全套模板前端 - DCloud 插件市场 问题反…

QT:SQLITE数据库编程

pro文件&#xff1a;QT core gui sql widget.ui main.cpp #include "widget.h" #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w("./student.db"); //传入文件名w.show();return a.exec…

binary_cross_entropy和binary_cross_entropy_with_logits的区别

binary_cross_entropy和binary_cross_entropy_with_logits的区别 引言 二分类问题是常见的机器学习任务之一&#xff0c;其目标是将样本分为两个类别。为了训练一个二分类模型&#xff0c;通常使用交叉熵作为损失函数。 二分类交叉熵损失函数有两种不同的形式&#xff0c;分…

深度学习之人脸检测算法

检测方法&#xff1a; Haar cascade opencv HOG Dlib CNN Dlib SSD MTCNN Haar特征 1.Haar特征原理综述 Haar特征是一种反映图像的灰度变化的&#xff0c;像素分模块求差值的一种特征。它分为三类&#xff1a;边缘特征、线性特征、中心特征和对角线特征。用黑白两种…

EQ 均衡器

EQ 的全称是 Equalizer&#xff0c;EQ 是 Equalizer 的前两个字母&#xff0c;中文名字叫做“均衡器”。最早是用来提升电话信号在长距离的传输中损失的高频&#xff0c;由此得到一个各频带相对平衡的结果&#xff0c;它让各个频带的声音得到了均衡。 EQ 的主要功能是&#xf…

端口隔离 MAC地址安全配置

二、知识点 目前网络中以太网技术的应用非常广泛。然而&#xff0c;各种网络攻击的存在&#xff08;例如针对ARP、DHCP等协议的攻击&#xff09;&#xff0c;不仅造成了网络合法用户无法正常访问网络资源&#xff0c;而且对网络信息安全构成严重威胁&#xff0c;因此以太网交…

学习笔记|串口通信的基础知识|同步/异步|常见的串口软件的参数|STC32G单片机视频开发教程(冲哥)|第二十集:串口通信基础

目录 1.串口通信的基础知识串口通信(Serial Communication)同步/异步&#xff1f;全双工&#xff1f;常见的串口软件的参数 2.STC32的串口通信实现原理引脚选择模式选择 3.串口通信代码实现编写串口1通信程序测试 总结 1.串口通信的基础知识 百度百科&#xff1a;串口通信的概…

STM32F103C8t SPI1重映射到PB3 PB4 PB5无输出

STM32F103C8t6用到了ADC 和SPI 导致PAx口无法使用SPI1 因此像复用到的引脚&#xff0c; 检查后发现硬件SPI可以复用到PB3 PB4 PB5&#xff0c; MSIO&#xff1a;PB5 MOSI&#xff1a;PB4 SCK&#xff1a;PB3 但是尝试后发现没有反映 SCK引脚没有波形输出 GPIO_PinRemapConfig(…

使用pywin32读取doc文档的方法及run输出乱码 \r\x07

想写一个读取doc文档中表格数据&#xff0c;来对文档进行重命名。经查资料&#xff0c;py-docx无法读取doc文档&#xff0c;原因是这种是旧格式。所以&#xff0c;采用pywin32来进行读取。 import win32com.client as win32word win32.gencache.EnsureDispatch(Word.Applicati…

Fiddler的下载安装及使用(包括在测试中的使用)

一、Fiddler的下载安装 1.Fiddler的介绍 1.1 Fiddler的定义和功能 Fiddler是一款免费网络代理调试工具。 Fiddler是一个很好用的抓包工具&#xff0c; 可以将网络传输发送与接受的数据包进行截获、重发、编辑、转存等操作。 也可以用来检测网络安全。 1.2 Fiddler的工作原理…

JUC第十六讲:JUC集合: CopyOnWriteArrayList详解

JUC第十六讲&#xff1a;JUC集合: CopyOnWriteArrayList详解 本文是JUC第十六讲&#xff0c;JUC集合: CopyOnWriteArrayList详解。CopyOnWriteArrayList是ArrayList 的一个线程安全的变体&#xff0c;其中所有可变操作(add、set 等等)都是通过对底层数组进行一次新的拷贝来实现…

linux系统中三个重要的结构体

第一​&#xff1a;struct inode结构体 struct inode { struct hlist_node i_hash; struct list_head i_list; /* backing dev IO list */ struct list_head i_sb_list;​ //主次设备号 dev_t i_rdev;​ struct list_head i_devices; //用联合体是因为该…

山西省行政村边界数据/乡镇街道边界数据/行政区划边界分布

山西&#xff08;简称&#xff1a;晋&#xff0c;别称&#xff1a;三晋&#xff0c;古称河东&#xff09;&#xff0c;中华人民共和国省级行政区&#xff0c;省会太原市&#xff0c;位于黄河中游东岸&#xff0c;华北平原西面的黄土高原上。东以太行山为界&#xff0c;与河北为…

019 基于Spring Boot的教务管理系统、学生管理系统、课表查询系统

基于Spring Boot的教务管理系统、学生管理系统、课表查询系统 一、系统介绍 本作品主要实现了一个课表查询系统&#xff0c;采用了SSM&#xff08;Spring SpringMVC MyBatis&#xff09;的基础架构。 二、使用技术 spring-bootspring-MVCthymeleafmybatis-plusdruidLombo…

Ae 效果:CC Lens

扭曲/CC Lens Distort/CC Lens CC Lens &#xff08;CC 镜头&#xff09;主要用于添加或移除摄像机镜头扭曲&#xff0c;比如桶形失真 Barrel、枕形失真 Pincushion以及鱼眼失真 Fisheye等。或者&#xff0c;用它来创建一些特殊的动画效果。 ◆ ◆ ◆ 效果属性说明 Center 中…