软件工程师角度看MIPI协议

软件工程师角度看MIPI协议【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)软件工程师角度看MIPI协议一、MIPI的由来: 在手机行业的初期,优胜劣汰适者生存的手机行业竞争激烈.在这个过程中涌现出了许许多多不同的创新的点子,例如摄像头的接口,由于每个厂商不存在统一的规范,不同的摄像头模组厂商可能会使用的不同的接口,在做适配的时候极其不方便以及个别接口非常不好用(接口技术碎片化导致集…

大家好,又见面了,我是你们的朋友全栈君。

【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) 

软件工程师角度看MIPI协议

一、MIPI的由来:

在手机行业的初期, 优胜劣汰适者生存的手机行业竞争激烈. 在这个过程中涌现出了许许多多不同的创新的点子, 例如摄像头的接口, 由于每个厂商不存在统一的规范, 不同的摄像头模组厂商可能会使用的不同的接口, 在做适配的时候极其不方便以及个别接口非常不好用(接口技术碎片化导致集成困难). 为适应现代手机的高性能高速数据传输, 从而提高竞争力和规范性, MIPI联盟应运而生.

(是的, 你没看错, 在MIPI的最开始, 确实是针对手机定制的一套标准. 如今用在了许多嵌入式的产品上.)

MIPI联盟是由ARM、诺基亚、意法半导体和德州仪器发起成立的, 作为移动行业领导者的合作组织. MIPI联盟鼓励所有手机行业内的公司加入, 包括: 手机设备制造商、半导体厂商、软件厂商、系统供应商、外围设备制造商、知识产权提供商、其他公司…

MIPI联盟,即移动产业处理器接口(Mobile Industry Processor Interface 简称MIPI)联盟。

MIPI(Mobile Industry Processor Interface,即移动行业处理器接口),是MIPI联盟发起的为移动应用处理器制定的开放标准和规范。

为了避免在座的各位陷入和我刚开始接触mipi时候疑惑不解的地方, 这里我在强调一下, MIPI协议是为了统一移动行业(即手机)而省的, 而我们工作中接触到的MIPI-CSI/MIPI-DSI只是mipi协议的一部分…

二、接下来就是技术篇了:

mipi

1. MIPI协议-CSI2:

CSI(Camera Serial Interface)是由MIPI(Mobile Industry Processor Interface)联盟下的Camera工作组制定的接口标准, 该协议为低成本智能手机细分市场提供了一套灵活的、高性价比的解决方案.

CSI接口具有接口少、抗EMI强、速度快、功耗低等优点. CSI-2是MIPI CSI第二版,CSI-2由应用层、协议层、物理层组成, 最大支持4通道数据传输, 单线传输速度高达1Gb/s.

1.1 传统摄像头接口

传统摄像头到处理芯片(SOC)的连接接口, 需要至少9根线的数据时钟线(Clock+ 8bit RGB Data)以及一组I2C控制总线. 且受限于时钟速度, 传输的视频分辨率也受到限制, 这些缺陷就使得传统摄像头连接接口注定被淘汰.

传统的camera接口

1.2 Camera Serial Interface(CSI) 2

CSI-2
如上图所示, 而采用了Camera Serial Interface(CSI)接口的摄像头, 可以精简到一组差分时钟和一组差分数据线. 如果分辨率提高, 还可以灵活的增加差分数据对来支持, 由此减少了负载, 加快了数据传输.
上图是一个标准的MIPI CSI-2的系统框图连接,包含了CSI-2和CCI发送者和接收者接口,描述了CSI-2发送者和接收者之间的连接关系,是一个典型的摄像头模型和接收者模型。控制接口CCI(CameraControl Interface)CCI是一个支持400K数据率的双向控制接口,与I2C接口标准兼容,实现 SOC (CCIMaster)到 CSI-2 TX 端(CCI Slave)的控制。

控制接口CCI是与I2C标准兼容的双向控制接口, 是I2C协议的子集, 你可以把它当成是I2C.

CSI-2规范定义了发送者和接收者之间传输和控制接口的标准。数据传输接口(指CSI-2)是单向差分串行接口,传输数据和时钟信号.

下图是CSI-2的应用中概念上的层级结构。从图中可以看到,CSI-2主要包含了,应用层(Application Layer), 协议层(Protocol Layer)和物理层(PHY Layer)。

CSI-2 Layer Definitions
各层描述如下:

应用层(ApplicationLayer): 主要描述了上层数据流中的数据编码和解析。CSI-2 规范中规定了像素数据到字节的映射。

协议层(Protocol Layer): 包含了几个不同的子层,每个子层都有各自的明确职责。主要包括,像素/字节打包/解包层(Pixel/Byte Packing/UnpackingLayer),Low Level Protocol Layer(LLP),通道管理(LaneManagement)层。CSI-2协议层允许多数据流 (CSI-2 TX)共用一个主机处理器端 CSI-2 接收信号接口 (CSI-2 RX)。协议层就可以描述有多少数据流被标记并组合在一起,指定了多数据流怎样被标记和交叉存取,因此每个数据流可以在SOC处理器CSI-2接收器中被正确的重建,才能把各个数据流正确地恢复出来。。

像素/字节打包/解包层(Pixel/Byte Packing/UnpackingLayer): CSI-2支持多种像素格式图像应用,包括从6位到24位每个像素的数据格式。在发射端,数据由本层被发送到LLP层(Low Level Protocol)前,本层将应用层传来的数据由像素打包成字节数据;在接收端,执行相反过程,将LLP层发来的数据解包,由字节转成像素,然后才发送到应用层。8位每像素的数据在本层被传输时不会被改变。

LLP(Low LevelProtocol)层: LLP层包括,为串行数据在传输开始(SoT)到传输结束(EoT)之间传输事件,和传输数据到下一层,建立位级和字节级同步的方法。LLP最小数据粒度是一字节。LLP层也包括,每字节中各位数值分布解释,即“端”(Endian)分布。

通道管理(LaneManagement)层: 为性能不断提升,CSI-2是通道可扩展的。数据通道数目可以是1,2,3,4,这个依赖于应用中的带宽需求。接口发送端分配(“distributor”功能)输出数据流到一个或更多通道。在接收端,接口从通道收集字节并将之合并(“merger”功能)成为重新组合的数据流,恢复原始数据流序列。

数据在协议层是以数据包的形式存在。在接口发送端,添加包头和可选择的错误校验信息,一起以数据包的形式通过LLP层来传输数据。在接收端,LLP层将包头剥离,由接收者按照相应逻辑解析数据包,得到有效数据。错误校验信息可以用来检测收到的数据完整性。

物理层(PHYLayer): 定义了传输介质 (electrical conductors,导体),输入/输出电路信号的电气特性(electricalparameters)和时钟机制(时序)。即如何从串行位流(Bit Stream)中获取“0”和“1”信号。规范中的这一部分记录了传输介质的特性,并依据时钟和数据通道之间发信号和产生时钟的关系规定了电学参数。

信号传输开始SOT (Startof Transmission)和传输结束EOT (End of Transmission)信号的握手机制被规范化,同样被规范化的还有其他在传输和接收物理层之间能够传输的“带外”信息(“out of band”)。位级(Bit级)和字节级(Byte级)数据的同步机制等都是在物理层来实现的。

2. MIPI协议-DSI:

1、名词解释
• DCS (DisplayCommandSet):DCS是一个标准化的命令集,用于命令模式的显示模组。
• DSI, CSI (DisplaySerialInterface, CameraSerialInterface
• DSI 定义了一个位于处理器和显示模组之间的高速串行接口。
• CSI 定义了一个位于处理器和摄像模组之间的高速串行接口。
• D-PHY:提供DSI和CSI的物理层定义

2、DSI分层结构
DSI分四层,对应D-PHY、DSI、DCS规范、分层结构图如下:
• PHY 定义了传输媒介,输入/输出电路和和时钟和信号机制。
• Lane Management层:发送和收集数据流到每条lane。
• Low Level Protocol层:定义了如何组帧和解析以及错误检测等。
• Application层:描述高层编码和解析数据流。

DSI
3、Command和Video模式
• DSI兼容的外设支持Command或Video操作模式,用哪个模式由外设的构架决定
• Command模式是指采用发送命令和数据到具有显示缓存的控制器。主机通过命令间接的控制外设。Command模式采用双向接口
• Video模式是指从主机传输到外设采用时实象素流。这种模式只能以高速传输。为减少复杂性和节约成本,只采用Video模式的系统可能只有一个单向数据路径

文档参考: (文档比较旧, 但是协议大体上不会变, 可以放心食用.)
附下载链接
MIPI_CSI-2_specification_v01-01-00_r0-05.pdf
MIPI_DCS_Specification_V1.02.00.pdf
MIPI_D-PHY_Specification_v01-00-00.pdf
mipi-DSI-specification-v1-1.pdf

文章参考: (个人觉得写得好的, 而且参考比重比较大的)
嵌入式工程师必备:MIPI CSI-2 接口协议.
MIPI DSI 接口协议介绍.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136436.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • jQuery自动与手动图片切换效果下载

    效果图:查看效果:http://hovertree.com/jq/hovertreeimg/下载:http://hovertree.com/h/bjaf/gk8mko69.htm使用代码:Hover

    2021年12月21日
    35
  • Java工程师自我评价(软件工程师自我评价)

    JAVA工程师简历自我评价无论在学习、工作或是生活中,我们都可能会使用到自我评价,自我评价具有重要的社会功能,它极大地影响人与人之间的交往方式。那要怎么写好自我评价呢?以下是小编收集整理的JAVA工程师简历自我评价,仅供参考,希望能够帮助到大家。JAVA工程师简历自我评价11、有较强的分析、解决问题的能力,具有较强逻辑思维能力和表达能力。2、性格开朗,积极乐观,能以极大的’热情投入工作。3、具…

    2022年4月15日
    45
  • Hadoop安装与配置详细教程「建议收藏」

    Hadoop安装与配置详细教程「建议收藏」【确保服务器集群安装和配置已经完成!】前言请根据读者的自身情况,进行相应随机应变。我的三台CentOS7服务器:主机:master(192.168.56.110)从机:slave0(192.168.56.111)从机:slave1(192.168.56.112)每一个节点的安装与配置是相同的,在实际工作中,通常在master节点上完成安装和配置后,然后将安装目录复制到其他节点就可以,…

    2022年5月31日
    46
  • 简易旋转倒立摆_小车倒立摆受力分析讲解

    简易旋转倒立摆_小车倒立摆受力分析讲解旋转倒立摆调节经验前言程序框架关于直立关于自动起摆前言近期在做2013年电赛控制类题目–简易旋转倒立摆装置,自己并不是自动化专业的学生,没有学过自动控制原理,倒立摆其实是一个十分经典的自动控制模型,我们只能是边做边学习,逐渐去了解倒立摆。我认为倒立摆有两个难点,一个是自动起摆一个是机械结构,其中自动起摆涉及到PID算法与运动方程的求解,而机械结构主要是尽量减小转动阻尼同时避免旋转时线的缠绕。…

    2022年4月19日
    52
  • 组合数递推的计算方法 c语言,组合数公式的递推公式

    组合数递推的计算方法 c语言,组合数公式的递推公式组合数公式的递推公式:c(m,n)=c(m-1,n-1)+c(m-1,n)。等式左边表示从m个元素中选取n个元素,而等式右边表示这一个过程的另一种实现方法:任意选择m中的某个备选元素为特殊元素,从m中选n个元素可以由此特殊元素的被包含与否分成两类情况,即n个被选择元素包含了特殊元素和n个被选择元素不包含该特殊元素。前者相当于从m-1个元素中选出n-1个元素的组合,即c(m-1,n-1);后者相当于…

    2022年7月15日
    15
  • 线程指令重排[通俗易懂]

    线程指令重排[通俗易懂]1、指令重排JVM为优化执行效率对线程内的执行顺序进行重排,对单线程来说执行指令重排并不会影响程序从上到下执行的代码逻辑。但是在多线程的情况下,则可能会出现问题。2、指令重排原则程序顺序原则:一个线程内保证语义的串行性volatile规则:volatile变量的写,先发生于读锁规则:解锁(unlock)必然发生在随后的加锁(lock)前传递性:A先于B,B先于C那么A必然先于C线程的start方…

    2022年10月18日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号