MIPI信号的分析--结合示波器实际测试波形

2023-11-18

如果排查的思路对你有帮助,请记住 消雨匆匆 。 码字和排查很累,仅此而已 ,硬件不是抄电路,拿烙铁,懂点软件,细致分析,找问题和破案搜集线索是一样的。

PS:硬件知识也可以性感

部分内容来自于此博客的大神总结:

http://www.elecfans.com/news/wangluo/20170323499614.html

http://www.elecfans.com/yuanqijian/jiekou/20171226607727.html

在此表示感谢。

目录

1、MIPI介绍

2、MIPI-DSI

3、MIPI-DSI数据传输格式

4、MIPI主要开关参数

 5、MIPI接口优点

 6、MIPI的通道模式和线上电平

7、实际电路分析

8、操作模式


 

 

MIPI已经不陌生了,对于现在的设计中,摄像头接口,显示接口都有MIPI,所以有了CSI和DSI接口。

MIPI最早是手机里面的协议,为了形成行业统一标准,MIPI联盟发起MIPI(移动行业处理器接口)作为移动应用处理器制定的开放标准。

1、MIPI介绍

MIPI是2003年由ARM,Nokia,ST,IT等公司成立的一个联盟,旨在把手机内部的接口如存储接口,显示接口,射频/基带接口等标准化,减少兼容性问题并简化设计。

MIPI联盟有不同的工作组,分别定义一系列的手机内部接口标准,如摄像头接口CSI、显示接口DSI、射频接口DigRF等。统一接口标准的好处是手机厂商可以根据需要从市面上灵活选择不同的芯片和模组,方便快捷的进行外观和功能的设计。

MIPI结构分为物理层、协议层和应用层。目前比较成熟的MIPI应用有摄像头CSI接口、显示屏DSI接口和基带和射频间DigRF接口,而其他例如UFS、LLI等规范正在逐步制定和完善过程中

设计中我这边没有接触过DigRF,下面用DSI进行说明

2、MIPI-DSI

MIPI-DSI属于MIPI子协议,为 Display工作组制定的关于显示模组接口的规范标准。MIPI-DSI使用D-PHY作为物理层传输。

D-PHY采用1对源同步的差分时钟和1~4对差分数据线来进行数据传输。数据传输采用DDR方式,即在时钟的上下边沿都有数据传输。

(1)D-PHY传输状态:低功耗LP和高速HS。

LP(单信号0V~1.2V):低功耗模式,10Mbps传输速度、异步传输,主要用于传输控制命令。

HS(差分信号100mv~300mv):高速模式,80M~1Gbps传输速度、同步传送,用于传输高速图像数据。

HS差分和LP单信号如图3所示。

图3 单端信号和差分信号

(2)D-PHY三种模式:控制模式(Control Mode)、Escape Mode、和高速模式(HS Mode)

其中前两种模式都属于LP状态下的两种模式,高速模式属于HS状态, Escape Mode被定义为LP状态下的一种比较特殊的操作模式。

图4 MIPI DSI应用

MIPI-DSI利用单端和差分信号线进行数据传输,LP模式下进行单端数据传输,HS模式下进行差分数据传输,使用可以双向传输的Data0+/Data0-数据Lane进行配置。

3、MIPI-DSI数据传输格式

MIPI-DSI的数据传输格式以数据包为基本单元传输,数据包的类型分为 短数据包和长数据包。

(1)、短数据包:4 bytes(固定长度)主要用于传输命令、读写寄存器;

数据包包头:

· 数据标识符(DI)*1byte:含虚拟数据通道【7:6】和数据类型【5:0】。

· 数据包*2 byte:要传送的数据,长度固定两个字节。

· 误差校正码(ECC)*1byte:可以把一个位的错误纠正。

 

图5 短数据包结构

(2)、长数据包:6~65541 bytes(动态长度)主要用于传输大量图像数据或者部分控制命令。

数据包报头(4 bytes):

· 数据标识符(DI)*1byte:含虚拟数据通道【7:6】和数据类型【5:0】。

· 字节数(WC)*2 byte:要传送的数据,长度固定两个字节。

· 误差校正码(ECC)*1byte:可以把一个位的错误纠正。

· 有效传送数据(6~65541 bytes):最大字节=2^16。

· 数据包页脚(2 byte):校验。

 

 

4、MIPI主要开关参数

  1.关断隔离:为了保持有源时钟/数据路径的信号完整性,要求开关具备高效的关断隔离性能。对于200mV、最大共模失配(common-modemismatch)5mV的高速MIPI差分信号,开关路径之间的关断隔离应该为-30dBm或更好。

  2.差分延迟差:差分对内部信号间的延迟差(skew)(差分对内延迟差)和时钟与数据通道差分交叉点之间的延迟差(通道间延迟差)必需降至50ps或更小。对于这些参数,这类开关的业界同类最佳延迟差性能目前在20ps到30ps之间。

  3.开关阻抗:在选择模拟开关时,第三个主要考虑事项是导通阻抗(RON)和导通电容(CON)的阻抗特性的折衷选择。MIPID-PHY链路同时支持低功耗数据传输和高速数据传输模式。因此,开关的RON应该平衡选择以优化混合工作模式的性能。理想情况下,这一参数应该分别针对每一个工作模式而设定。结合每一模式的最佳RON,并保持很低的开关CON对保持接收端的压摆率(slewrate)十分重要。一般规则是,使CON低于10pF将有助于避免高速模式下通过开关的信号转换时间的恶化(延长)。

 5、MIPI接口优点

  MIPI接口的模组,相较于并口具有速度快,传输数据量大,功耗低,抗干扰好的优点,越来越受到客户的青睐,并在迅速增长。例如一款同时具备MIPI和并口传输的8M的模组,8位并口传输时,需要至少11根的传输线,高达96M的输出时钟,才能达到12FPS的全像素输出;而采用MIPI接口仅需要2个通道6根传输线就可以达到在全像素下12FPS的帧率,且消耗电流会比并口传输低大概20MA。由于MIPI是采用差分信号传输的,所以在设计上需要按照差分设计的一般规则进行严格的设计,关键是需要实现差分阻抗的匹配,MIPI协议规定传输线差分阻抗值为80-125欧姆。

mipi是什么接口_mipi接口定义详解

  上图是个典型的理想差分设计状态,为了保证差分阻抗,线宽和线距应该根据软件仿真进行仔细选择;为了发挥差分线的优势,差分线对内部应该紧密耦合,走线的形状需要对称,甚至过孔的位置都需要对称摆放;差分线需要等长,以免传输延迟造成误码;另外需要注意一点,为了实现紧密的耦合,差分对中间不要走地线,PIN的定义上也最好避免把接地焊盘放置在差分对之间(指的是物理上2个相邻的差分线)。

 6、MIPI的通道模式和线上电平

  在正常的操作模式下,数据通道处于高速模式或者控制模式。在高速模式下,通道状态是差分的0或者1,也就是线对内P比N高时,定义为1,P比N低时,定义为0,此时典型的线上电压为差分200MV,请注意图像信号仅在高速模式下传输;在控制模式下,高电平典型幅值为1.2V,此时P和N上的信号不是差分信号而是相互独立的,当P为1.2V,N也为1.2V时,MIPI协议定义状态为LP11,同理,当P为1.2V,N为0V时,定义状态为LP10,依此类推,控制模式下可以组成LP11,LP10,LP01,LP00四个不同的状态;MIPI协议规定控制模式4个不同状态组成的不同时序代表着将要进入或者退出高速模式等;比如LP11-LP01-LP00序列后,进入高速模式。下图为线上电平的图示。

mipi是什么接口_mipi接口定义详解

7、实际电路分析

下面是我设计的一个MIPI 4 lane的一个电路中(MIPI转LVDS)实际测试,如果示波器支持解码功能,直接选择mipi就行,如果示波器不支持mipi的解码功能,也是可以测量的:

MIPI的时钟信号:

MIPI数据线的两个互补

单独一个数据信号中LP

单独一个数据信号中HS

但是我还是有点疑惑,就是空闲的时候,出现了较长时间的高电平(期待大神给我解决)

8、操作模式

最后从软件层面,再回顾一下数据格式,加深

在数据线上有3 种可能的操作模式:Escape mode, High-Speed (Burst) mode and Control mode,下面是从停止状态进入相应模式需要的时序:
* Escape mode 进入时序:LP11→LP10→LP00→LP01→LP00,退出时序:LP10→LP11
当进入Escape mode 需要发送8-bit entry command 表明请求的动作,比如要进行低速数据传输则需要发送cmd: 0x87,进入超低功耗模式则发送cmd: 0x78。在DSI 中LP 通讯只
用Data Lane 0。
* High-Speed mode 进入时序:LP11→LP01→LP00→SoT(0001_1101),退出时序:EoT→LP11,时序图如下:
 

5、时序要求
在调试 DSI 或者CSI 的时候,HS mode 下的几个时序非常重要:T_LPX,T_HS-SETTLE ≈ T_HS-PREPARE + T_HS-ZERO,T_HS-TRAIL,一般遵循的原则为:Host 端的T_HS-SETTLE
> Slave 端的T_HS-SETTLE。
二、DSI
1、线路构成
在 DSI 中需要1 根时钟线以及1 ~ 4 根数据线。
2、两种接口的LCD
* Comman mode(对应MPU 接口)
* Video mode(对应RGB 接口)
该模式下视频数据只能通过HS mode 传输。
3、数据包类型
短包:4 bytes,由3 部分组成:
* Data Identifier (DI) * 1byte: Contains the Virtual Channel[7:6] and Data Type[5:0].
* Packet Data * 2byte:Length is fixed at two bytes
* Error Correction Code (ECC) * 1byte:allows single-bit errors to be corrected and 2-bit errors to be detected.
长包:6 ~ 65541 bytes,同样由3 部分组成:
* Packet Header(4 bytes) - 包头
Data Identifier (DI) * 1byte:Contains the Virtual Channel[7:6] and Data Type[5:0].
Word Count (WC) * 2byte:defines the number of bytes in the Data Payload.
Error Correction Code (ECC) * 1byte:allows single-bit errors to be corrected and 2-bit errors to be detected.
* Data Payload(0~65535 bytes) - 有效数据
Length = WC × bytes
* Packet Footer(2 bytes):Checksum - 包尾
If the payload has length 0, then the Checksum calculation results in FFFFh
If the Checksum isn’t calculated, the Checksum value is 0000h
 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MIPI信号的分析--结合示波器实际测试波形 的相关文章

  • VS Code断点调式Cesium

    1 在VS Code中安装Debugger for Firefox插件 2 下载安Firefox Developer Edition 3 创建launch json 编辑并保存launch json Use IntelliSense to
  • 用vscode调试远程服务器的php

    一开始用phpstorm chrome的xdebug helper连接远程的腾讯云服务器进行xdebug调试 一直不成功 卡在 phpstorm Waiting for incoming connection with ide key xx
  • [Android5.1][RK3288] LCD Mipi 调试方法及问题汇总

    调试流程 设置 dts 中的参数 并 配置管脚 背光部分 LCD 初始化序列 cmds 打开 config 检查电压 调试顺序 1 背光有没有亮 2 开机 以及 从休眠状态唤醒 都没有显示内容 3 我碰到的 cmds 问题 问题集锦 我调试
  • KEIL 调试的 ini 文件有什么用?

    在初学者眼里 调试手段很多 自己平常使用调试手段的具有局限性 单一性 碰到复杂的问题还是很难解决 比如看watch窗口 memory窗口 打断点这些基本的调试手段 就比如新接手中的一个项目 总是会出现串口通信错误 我也知道这是两次数据发送混
  • Python 从零开始制作自己的声音 - wave模块读写wav文件详解

    计算机经常被用于处理音频这种真实世界中的数据 声音经过采样 量化和编码后 存储在音频文件 如wav文件中 文章首先介绍wave模块的基础用法 再通过生成一定频率声波的算法实现 来深入讲解wave库的使用 目录 wave模块 wave ope
  • Linux下嵌入式程序仿真调试(GDB)(二)

    目录 目录 前言 Ubuntu下Qt的GDB环境搭建未成功 Qt5的设置 命令行调试问题记录 总结 链接地址 前言 Linux下嵌入式程序仿真调试 GDB 一 主要介绍了GDB交叉调试环境的搭建过程 本想把交叉编译好的gdb程序放置到Qt中
  • 《软件调试艺术》读后感七

    1 线程调试 对线程的调试用的最多的可能是thread命令了 查看程序中有多少线程使用Infothreads 进入到某个线程的内部使用thread count 这样就可以进入到count线程的内部 线程调试中用的最多的还有就是bt命令 这个
  • 绕过__chkesp堆栈检查

    前面很多注入相关的文章中都提到为了保证注入后原始程序能恢复正常的执行流 需要在编译器中关闭堆栈检查 为了解决问题 这是个好手段 但是不得不说这是回避问题 不是根本上解决问题 本文旨在解决这个问题 vs用 chkesp来实现堆栈检查 chke
  • 【VS2010学习笔记】【异常处理】一(无法启动此程序,因为计算机中丢失libiconv-2.dll)

    问题1 无法启动此程序 因为计算机中丢失libiconv 2 dll 问题描述 在VS2010 Opencv2 4 7的程序调试的过程中 再点击 运行 后 系统提示 无法启动此程序 因为计算机中丢失libiconv 2 dll 自己在调试的
  • MIPI信号简单介绍

    1 MIPI介绍 MIPI是由ARM Nokia ST IT等公司成立的一个联盟 旨在把手机内部的接口如存储接口 显示接口 射频 基带接口等标准化 减少兼容性问题并简化设计 MIPI联盟通过不同的工作组 分别定义一系列手机内部的接口标准 如
  • Xcode8不能在iOS7上调试,Could not find Developer Disk Image的解决方法

    升级完Xcode8之后 默认情况下 是无法进行iOS7的调试的 因为Xcode8里面不再游iOS7的镜像文件 所以会提示 Could not find Developer Disk Image 解决方法如下 打开finder 应用程序 Xc
  • [Unity]各种Debug方法笔记

    无论是萌新还是Dalao 遇到Bug总是难免的 拒绝反驳 所以一些好的Debug方法就显得尤为重要 这篇文章既写给自己 也给看到文章的大家一个参考 内容主 quan 要 bu 是脚本的Debug方法 ps 如有出错漏记得以我能看到的方式指出
  • GDB 多线程调试

    http hi baidu com hcq11 blog item 9f5bfc6e696209d680cb4a25 html http hi baidu com litto blog item 759389dd198111375882dd
  • 【VS2010学习笔记】【错误调试】error LNK1123:转换到COFF期间失败;文件无效或者损坏

    在调试串口通信程序的过程中 将以前能够成功运行的程序在电脑上重新运行的时候 出现下面的错误 如下图所示 解决方法 连接器LNK是通过调用cvtres exe完成文件向coff格式的转换的 所以出现这种错误的原因就是cvtres exe出现了
  • 远程调试Android/IOS设备/微信网页方法汇总

    以下汇总现在可远程调试手机网页的几个方法 基本上官方都有详细的说明文档 可移步至相关网站查看 这里就不赘述使用 操作方法了 微信web开发者工具 PC客户端 官方说明文档 支持Windows和Mac系统 支持调试Android和IOS设备
  • MIPI入门——DSI介绍(二)

    这一篇来简单的介绍一下MIPI DSI Video Mode的三种操作模式 Non Busrt Mode with Sync Pluses Non Burst Mode with Sync Events Burst Mode 其中Non B
  • Tomcat配置内存和远程debug端口

    配置内存 需要在catalina bat中添加JAVA OPTS参数 如下内容 SET JAVA OPTS Xms256m Xmx1024m XX MaxNewSize 256m XX MaxPermSize 428m Duser time
  • MIPI信号的分析--结合示波器实际测试波形

    如果排查的思路对你有帮助 请记住 消雨匆匆 码字和排查很累 仅此而已 硬件不是抄电路 拿烙铁 懂点软件 细致分析 找问题和破案搜集线索是一样的 PS 硬件知识也可以性感 部分内容来自于此博客的大神总结 http www elecfans c
  • MAC系统上设置华为手机的调试模式

    调试问题 使用MACOS会发现在android 开发环境完整的情况下 接入MOTO SAMSUNG HTC ZTE等手机都可以自动识别 并可以在DDMS中查看LOGCAT 唯独华为的手机不可识别 USB开发调试也设置了 在WINDOWS下可
  • Tomcat开启远程调试端口

    部署环境 Linux 亲测成功 tomcat7 bin startup sh的文件开头位置添加 declare x CATALINA OPTS server Xdebug Xnoagent Djava compiler NONE Xrunj

随机推荐