MIPI CSI2学习(一):说一说MIPI CSI2
1. MIPI CSI2简介
MIPI联盟是一个开放的会员制组织。2003年7月,由美国德州仪器(TI)、意法半导体(ST)、英国ARM和芬兰诺基亚(Nokia)4家公司共同成立。MIPI联盟旨在推进移动应用处理器接口的标准化 。MIPI联盟下面有不同的WorkGroup,分别定义了一系列的手机内部接口标准,比如摄像头接口CSI、显示接口DSI、射频接口DigRF、麦克风/喇叭接口SLIMbus等。
CSI(Camera Serial Interface)是由MIPI联盟下Camera工作组指定的接口标准。CSI-2是MIPI CSI第二版,主要由应用层、协议层、物理层组成,最大支持4通道数据传输、单线传输速度高达1Gb/s。
2. MIPI CSI2的分层结构
MIPI CSI2的分层方法有好几种,根据MIPI联盟的规范,CSI2可分为5层,分别为:应用层、组包/解包层、底层协议层(Low Level Protocol)、通道管理层和物理层。
为了更清晰的描述协议结构中所述的名词,列表对其做了详细的阐述具体如表 2-1 所示。
表 2-1协议结构名词解释
| 名称 | 解释 |
|---|---|
| 应用层 | 即是处理原始图像数据的各种算法模块 |
| 组包/解包层 | 负责将数据按照一定的次序,切割成 8 比特数据。 |
| 底层协议层 | 为新生成的数据加上包头包尾,形成符合协议要求的数据流。 |
| 通道管理层 | 将生成的数据流按照一定次序和要求,进行读写管理,输出数据流。 |
| 物理层 | 生成 MIPI 最后的信号波形。 |
| 像素数据 | 经过图像模块处理过的数据流,或者原始图像的数据路。 |
| 传输数据 | 经过MIPI模块切割或者加上包头包尾的数据。 |
| 控制信号 | 模块间的控制数据流 |
| 发送端 | 包括了 MIPI 数字部分,转接板等实现MIPI 信源传输的部分。 |
| 接收端 | 包括了转接板和商用接收端模块,负责解析收到的 MIPI 信源。 |
详细的来说,链路的工作顺序如下:
首先原始的图像数据会在应用层做相应的图像处理,包括白平衡、噪声去除、色彩还原等。
处理过后的数据进入组包层做数据分割和重组,再传给协议层。协议层根据数据类型产生包头,根据数据内容产生构成包尾的校验序列,之后将包头、数据本身、包尾组合起来发送给通道管理模块。
通道管理模块按照通道的选通情况,合理分配数据到每个通道,之后数据经过数模转换进入物理层传输,接收端在收到物理层的数据后,再按照之前的逆序解包出原始的图像数据。
3 MIPI CSI2的物理连接
除地线外,MIPI CSI2一般会有1对I2C通信引脚,1对MIPI差分时钟引脚和1~4对MIPI差分数据信号引脚,如图3-1所示。
图中涉及到的名词如表3-1所示:
表3-1 CSI2涉及到的各个引脚解释
| 名称 | 解释 |
|---|---|
| DATA 1+ / DATA 1- MIPI | 协议组包生成的差分模拟数据信号第二组 |
| DATA 2+ / DATA 2- MIPI | 协议组包生成的差分模拟数据信号第一组 |
| CLOCK+ / CLOCK- MIPI | 协议组包生成的差分模拟时钟信号 |
| SDA I2C | 数据信号线 |
| SCL I2C | 时钟信号线 |
在典型的应用中发送端在完成对图像的各种处理后,按照协议对数据进行打包,然后通过差分信号线向接收端传输信号,差分信号线一般有一对时钟差分线和多对数据差分线,数据差分信号线的数量与需要传输的数据量的要求有关,数据量越大多对数据线能更容易满足链路的需求。一般情况下两百万到五百万像素的手机使用两对差分数据线,即两个数据通道。而当摄像头像素进一步提高到八百万甚至一千三百万时一般会使用四个数据通道,即四对差分数据线。
与外部进行控制信号交互时,采用的是 I2C 接口,在 MIPI 的发送端使用的是 I2C 从端的 IP,MIPI CSI-2 接口的控制寄存器连接 I2C 的从端,这样外部接收装置可以通过 I2C 去配置 MIPI 发送端的内部寄存器,以此改变 MIPI CSI-2 接口内部状态机的持续时间和最后输出数据时的通道数,又或者在调试过程中读出这些寄存器,去做相应的检查,以判断发送端的工作状态,再通过接收端的现象来分析发送端是否工作在正常的状态。
4. MIPI CSI2的工作模式
D-PHY有两种传输模式:
(1) HS 高速传输模式,用于传输突发数据,同步传输,信号为差分信号,电平范围为100mv-300mv,传输速度范围是80-1000Mbps。在该模式下传输时,当差分线正端收到 1.2V 信号,负端收到 0V信号时,这时接收端识别为 1。反之为0。
(2) LP 低功耗模式,用于传输控制指令,异步传输,信号线为单端,电平范围是0-1.2v,没有用时钟线,时钟是通过两个数据线异或而来的,速度只有10Mbps。在该模式下传输时,当正端接收到300m V,负端接收到100m V 时接收端识别为1.反之则识别为0.
5. MIPI CSI2的数据包格式
MIPI CSI2是一个面向字节的,基于包的协议;它支持任意大小的数据通过短包和长包格式传输。各个包之间由EOT-LPS-SOT序列隔开,如图5-1所示。
LLP包有两种:长包和短包。每个包的传输以SoT(start of transmission)开始,EoT(end of transmission)结束,中间间隙是LPS(Low Power State低功耗状态)。
5.1 MIPI CSI2的长包格式
MIPI CSI2的长包主要有包头、数据包和包尾三部分构成。而包头又可细分为:数据标识(data identifier)、数据包大小(word count)和错误校验码(ECC)构成。如图5-2所示。
其中,数据标识大小为1字节,包含虚拟数据通道号[7:6]和数据类型[5:0]。
- 数据包大小为2字节,其内容为传送数据的长度,以“字”为单位。
- 错误校验码大小为1字节,负责对数据包的传输错误进行检查及纠错。
- 数据包可以传送数据的大小为0~65535字节。
- 包尾大小为2字节,是数据负荷的检查和。
5.2 MIPI CSI2的短包格式
与长包相比,短包没有数据包和包尾。数据标识DI中的数据类型在0x00到0x0F之间。WC字段是短包的数据域,这个数据可由用户定义。ECC是校验码,能对1bit错误进行纠错,2bit错误进行检查,如图5-3所示。
MIPI CSI2学习(一):说一说MIPI CSI2的更多相关文章
- MIPI协议学习总结(一)【转】
转自:https://www.cnblogs.com/EaIE099/p/5200341.html 一.MIPI 简介: MIPI(移动行业处理器接口)是Mobile Industry Process ...
- MIPI协议学习总结(一)
一.MIPI 简介: MIPI(移动行业处理器接口)是Mobile Industry Processor Interface的缩写.MIPI是MIPI联盟发起的为移动应用处理器制定的开放标准. 已经完 ...
- MIPI CSI-2规范一——概述及层级
MIPI CSI-2规范一——概述及层级 CSI-2概述 CSI-2规范定义了发送者和接收者之间传输和控制接口的标准数据.数据传输接口(指CSI-2)是单向差分串行接口,传输数据和始终信号:接口的物理 ...
- MIPI CSI-2
目录 1 MIPI简介 2 MIPI CSI-2简介 2.1 MIPI CSI-2 的层次结构 2.2 CSI-2协议层 2.3 打包/解包层 2.4 LLP(Low Level Protocol)层 ...
- MIPI接口资料汇总(精)
一.介绍 1.MIPI联盟,即移动产业处理器接口(Mobile Industry Processor Interface 简称MIPI)联盟.MIPI(移动产业处理器接口)是MIPI联盟发起的为移动应 ...
- 快速掌握MIPI开发攻略,对接百度人工智能计算卡EdgeBoard
MIPI(移动行业处理器接口)是Mobile Industry Processor Interface的缩写,是MIPI联盟发起的为移动应⽤处理器制定的开放标准.MIPI采⽤高速串行接口传输数据,满⾜ ...
- mipi和dsi
转自: http://blog.csdn.net/longxiaowu/article/details/24410021 一.MIPI MIPI(移动行业处理器接口)是Mobile Industry ...
- mipi协议中文详解
一.MIPI MIPI(移动行业处理器接口)是Mobile Industry Processor Interface的缩写.MIPI(移动行业处理器接口)是MIPI联盟发起的为移动应用处理器制定的开放 ...
- MIPI DSI协议介绍
此文根据网上的资料翻译和整理而来 一.MIPI MIPI(移动行业处理器接口)是Mobile Industry Processor Interface的缩写.MIPI(移动行业处理器接口)是MIPI联 ...
随机推荐
- GO 使用静态链接库编译 生成可执行文件 使用第三方 .a 文件,无源码构造
go build 和 go install 都需要使用源码来进行编译.但是有时候我们只有.a或者.so文件.并不能获取到第三方库的源码,这时我们需要静态链接库编译的技巧: 上图是实验前的文件分布. 使 ...
- Element-ui 中的Dialog 对话框
给表头添加一个底部分割线 固定表格的内容高度 添加底部按钮 <template> <div> <el-button type="text" @clic ...
- Vue中的导航守卫(路由守卫)
当做Vue-cli项目的时候感觉在路由跳转前做一些验证,比如登录验证,是网站中的普遍需求. 对此,vue-router 提供的 beforeEach可以方便地实现全局导航守卫(navigation-g ...
- Day4- Python基础4 深浅拷贝、三目运算、列表生成式,迭代器&生成器、装饰器
本节内容: 1.深浅拷贝 2.三目运算 3.迭代器和生成器 4.装饰器 1.深浅拷贝 拷贝意味着对数据重新复制一份,深浅拷贝的含义就是:对于修改复制的数据是否会影响到源数据,拷贝操作对于基本数据结构需 ...
- IDEA2019 Maven项目出现Unable to import maven project: See logs for details解决办法
问题1:Unable to import maven project: See logs for details 网上说,原因是IDEA2019和Maven3.6.2不兼容导致的,需要把Maven降级 ...
- Paper | Highway Networks
目录 1. 网络结构 2. 分析 解决的问题:在当时,人们认为 提高深度 是 提高精度 的法宝.但是网络训练也变得很困难.本文旨在解决深度网络训练难的问题,本质是解决梯度问题. 提出的网络:本文提出的 ...
- [java 基础]反射入门
原文 概况 使用java的反射,可以让我们检查(或者修改)类,接口,字段,方法的特性.当你在编译期不知道他们的名字的时候非常有用. 除此之外,可以使用反射来创建实例,调用方法或者get/set 字段值 ...
- python TKinter的主窗口运行程序完毕后,怎么让其自动关闭
如题: 在pycharm 调试Tkinter程序的时候,关闭右上角的X 实际上并未退出进程,长期以往 再大的内存也会被耗尽. 一般就是下面的代码: """ from tk ...
- EventBus 使用/架构/源码分析
EventBus是针对Android优化的发布-订阅事件总线,简化了Android组件间的通信.EventBus以其简单易懂.优雅.开销小等优点而备受欢迎. github 地址:https://git ...
- python-3.8.0 新特性之赋值表达式
[python-3.8.0 新特性之赋值表达式] 赋值表达式的语法是这样的“ name := expression ”,形式上看和赋值语句 “ = ” 差不多,就作用上来看也雷同.也就是说 “:=” ...