文章目录

  • 总述
    • 特别说明:
    • 测试要求与说明
    • 时序状态切换
  • 测试分析
    • 时钟通道测试
    • LP模式下发参数测试分析
    • Data通道传输图像时序测试分析
  • 总结

总述

(一)DSI协议讲解
(二)DSI时钟的计算和常见概念区分
(三)DSI时序讲解与实际测试

本篇章是DSI协议的第三篇,将从实际测试,结合MIPI理论时序,为大家讲解一个正常的MIPI通信过程,是怎样的。方便大家理解MIPI的时序,也作为大家测试、分析MIPI的一个参考。
在此要感谢部分读者,是你们的催更让我有动力继续把DSI系列写完,要不本来差点就流产了。也欢迎新老读者留言,讨论交流、指出错误的地方。

特别说明:

  1. 本次测试主要是基于高通平台的测试,细节方面各平台会略有差异,但是肯定都是在MIPI协议范围内。
  2. 本文的实际测试波形,由于所用示波器、探头带宽只有500M,测试上波形会有失真,仅供参考。

测试要求与说明

由于MIPI时钟一般都在几百Mhz,且高速模式是差分低压信号,因此测试的方式也相对比较讲究。

  1. 测试工具
    高带宽示波器、高带宽探头(要求精确的话最少要1G以上,有钱的也可以买到支持MIPI协议分析的示波器)
    支持MIPI协议的逻辑分析仪(配套kinst逻辑分析仪软件。该工具可淘宝搜索,我们所用的设备不支持高速模式下的协议数据分析,只支持LP模式的分析,但是可以看到高速模式和低速模式互相切换的一个过程)
  2. 测试引线
    将待测试通道的两个引脚引出+一个地线(通道两端引测试线的时候要将引线双绞引出,这样可以减少引线受到的干扰)

时序状态切换

这边附上前面讲过的时钟lane状态切换和数据状态切换流程,以便大家可以参照后面的分析进行比对。具体的可以参考(一)(二)篇章以及(一)前面的链接。
首先是时钟状态
然后是数据lane状态切换

测试分析

时钟通道测试

下图便是时钟通道上,在进行图像数据传输时测试到的总体波形(示波器时基调得比较大,500ms级别,实际上数据通道上测试的波形,总体波形看起来也是这样的)

从上图我们可以看到一个很特别的地方,就是周期性的有个凸起来的脉冲。这个脉冲是什么呢?为什么会有这个脉冲呢?我们先讲点这个波形上的一个数据。每两个脉冲之间的周期是16.67ms,也就是说频率是1000/16.67 = 60Hz,这个怎么这么像我们的帧率大小呢。没错,因为这实际上就是帧率。换句话说,每一帧,时钟就会进入到LP模式一次。我们将波形展开来看看。

如下图即是时钟波形展开的样子。当然下图是指高速模式下的波形,因为我们可以明显的看到两条波形看起来完全相反的样子,这就是差分信号的眼图,两根线上的信号是相反的(一个高一个低).。

我们再展开看看每一帧进入LP模式下的波形展开的样子(也就是前面那一束束凸起来的脉冲展开来的样子),如下图所示。我们看到,那一束高凸起来的脉冲,原来包含了这么多个周期性的脉冲。这是在频繁的进行LP<->HS状态切换。切换的次数=VFP+VSW+VBP。为什么会有这么多次的切换呢?我们后面结合burst mode下的一帧图像传输时序来看看就会豁然开朗了。

我们先继续把上面的波形再进一步展开,看看LP和HS之间的切换具体是怎样的。
首先看下低速转高速,如下图。低速转高速流程:LP11->LP01->LP00->HS-0->正式进入高速模式

再看看高速模式转低速模式,从HS-0 ->LP11

LP模式下发参数测试分析

我们在移植液晶屏的时候,一般都要移植液晶IC的参数。大部分液晶屏都需要我们每次开机或者唤醒的时候去重新下发液晶参数。这组参数就需要在Data 0这个通道上,在LP模式下从主控下发给液晶IC。这部分我们用了MIPI协议逻辑分析仪抓取。这边对他做一个具体的分析。

下图所示是我移植的一块液晶上电初始化后的时序总图,待我们一步步把它展开,来仔细分析。
我们先把初始化下发参数部分展开,可以看到如下图所示(实际波形也放到下面,后面列出的实际波形,知识为了做个说明,都不一定与逻辑分析仪的数据一一对应),这是好多条的参数下发时序,每一竖都是一串参数下发的时序。

我们选择上图中的其中一条竖线,再来展开看看。如下图所示(实际波形也附在下面),

看到协议分析出来的各部分数据结构了没有。有没有一种似曾相似的感觉。对了,这就是MIPI的数据包协议,我们来对比看看:(2022.08.11订正:下图数据包格式的SOT和EOT实际上是高速模式下的概念,进入低速模式的ESCAPE、BTA等模式之前,虽然也有特定的时序,但是低速模式没有SOT和EOT的概念,此前表述有误,这边不做删除,方便大家讨论,加深印象。这里我们只关注中间的数据包格式部分,中间数据包格式是低速和高速模式通用的。关于SOT和EOT,具体可以百度搜索“MIPI Alliance Specification for D-PHY”)

我们再进一步展开看看SOT和EOT的时序((20220811更正:低速模式下没有SOT和EOT的概念,这边保留原文,添加备注,以加深印象),看看各种模式之间是怎么互相切换的。

SOT(20220811更正:SOT仅在高速模式中有此概念,这里分析的时序是低速模式的):
进入escape mode:LP11->LP10->LP00->LP01->LP00,
进入低功耗数据传输:发送LPDT命令(即0x87,不同的值可以使得设备进入不同的Escape模式,比如LPDT/ULPS/RAR等,具体见篇章(一)中的链接)
(实际波形进入escape mode的波形,像是LP11->LP10->LP01,这个未确认,不知道是不是高通个别平台是这样的,又或者是示波器测试的问题)

EOT(20220811更正:EOT仅在高速模式中有此概念,这里分析的时序是低速模式的):
退出escape mode:LP00->LP10->LP11(实际波形也附上)


进入、退出BTA模式(比如读取液晶ID时就是用这个模式)

Data通道传输图像时序测试分析

我们先把之前讲过的高速模式状态
首先看下整个时序的总览,与时钟通道的波形基本看起来一样

进入HS模式

退出HS模式

实际波形如下

此外,这边做个记录,记录下高通平台在传输有效图像数据时,每一行传送结束后没有进入LP模式,仍然停留在HS模式,但是没有具体的数据了,其波形保持不变,表现为两条低电压平行线,如下图。

总结

前面说了这么多的细节分析,最后一张总图献上。对于Burst Mode的图像传输方式,其理论时序与实际波形对比如下图:

本篇的时序波形分析,仅仅分析了MIPI协议中的一小部分,还有很多细节方面没有完整测试记录。仅以此篇作为大家的参考。有任何问题或者错误,敬请指正、交流。MIPI协议系列到此结束。

液晶接口系列——MIPI(三)DSI时序讲解与实际测试相关推荐

  1. 液晶接口系列——MIPI之DSI时钟的计算和常见概念区分

    文章目录 总述 时钟计算 液晶基础时钟概念 DSI时钟计算 DSI的"模式"概念区分 液晶屏的模式 COMMAND模式和VIDEO模式 VIDEO屏的三种模式 数据传输HS MOD ...

  2. 解魔方机器人系列(三)软件控制及整机测试

    魔方机器人的分上位机PC端软件以及下位机arduino软件.上位机采用python编写,带有UI,用户需输入魔方各个面的颜色分布,点击solve按钮,软件就会将解魔方步骤通过串口发送给arduino. ...

  3. 液晶屏接口LVDS接口与MIPI DSI接口区别

    LVDS与MIPI DSI区别_那个苏轼回不来了丶的博客-CSDN博客_"mipi dsi接口与LVDS与MIPI DSI区别_那个苏轼回不来了丶的博客-CSDN博客_"mipi ...

  4. axi dma 寄存器配置_FPGA Xilinx Zynq 系列(三十二)AXI 接口

    大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分.大侠可以关注FPGA技术江湖,在"闯荡江湖"."行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢. ...

  5. mipi DPHY时序讲解

    本期主题: MIPI DPHY几个关键时序讲解 往期链接: ISP系统综述 MIPI DPHY时序讲解 1.MIPI高速传输时序概览 1.HS_PREPARE 2.HS_ZERO 3.HS_TRAIL ...

  6. android系统平台显示驱动开发简要:Samsung LCD接口篇『三』

    平台信息: 内核:linux3.4.39 系统:android4.4  平台:S5P4418(cortex a9) 作者:瘋耔(欢迎转载,请注明作者) 欢迎指正错误,共同学习.共同进步!! 关注博主新 ...

  7. 【JESD204系列】三、JESD204B标准分层

    font color=#999AAA > JESD204B 作为一种分层规范,在规范中共定义了四个层,分别为应用层,传输层,数据链路层和物理层.各层分别执行各自的对应的功能,最终通过四个层的联合 ...

  8. 基于FPGA的VGA接口设计(三)

    关于VGA系列文章的所有链接: 基于FPGA的VGA接口设计(一) 基于FPGA的VGA接口设计(二) 基于FPGA的VGA接口设计(三) 结篇   在之前的文章中介绍了有关VGA的扫描方式.行场同步 ...

  9. cass插件_南方CASS专题系列,全套教程+视频讲解+插件汇总,全部打包速带走

    南方CASS专题系列,全套教程+视频讲解+插件汇总,全部打包速带走 CASS软件是基于CAD平台开发的一套集地形.地籍.空间数据建库.工程应用.土石方算量等功能为一体的软件系统:广泛应用于地形成图.地 ...

  10. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(三)

    基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(三) 转载于:https://github.com/Meowv/Blog 上一篇完成了博客的主题切换,菜单和 ...

最新文章

  1. Go 分布式学习利器(10)-- Go语言的接口
  2. ASP.NET MVC实践系列5-结合jQuery
  3. 全球 PC 应用程序有半数已过期未更新
  4. cURL error 60: SSL certificate problem: unable to get local issuer certificate 解决思路
  5. 简单了解各种序列化技术-JSON序列化框架
  6. 两个分布的特征映射_DDC:直接对齐特征空间进行领域自适应
  7. SQL Server 2005将某些数据库行为设置为与指定的 SQL Server 版本兼容
  8. [LeetCode] NO. 8 String to Integer (atoi)
  9. 初学Java,LinkedList功能最全的集合类
  10. 腾讯社交电商小鹅拼拼 如何突围万亿社交电商赛道?
  11. Alibaba代码规约插件使用IDEA
  12. Python(42)_文件操作
  13. GLSL Core Tutorial – Pipeline (OpenGL 3.2 – OpenGL 4.2)
  14. java在微信的应用_java版微信公众平台消息接口应用示例
  15. SSM+家装管理系统 毕业设计-附源码191452
  16. sap服务器安装双系统教程,Ghost安装双系统安装使用图文教程
  17. opencv曝光算法_【OPENCV】高反差保留算法
  18. 支付宝二维码可以抓包更改金额_mac下 安卓模拟器抓包推荐 - _恒
  19. Android微信新版全自动抢红包助手
  20. 前端进击的巨人(七):走进面向对象,原型与原型链,继承方式

热门文章

  1. java 过滤器 中文_javaweb — 过滤器(附实现中文乱码问题)
  2. ubuntu 定时执行重启(crontab)
  3. 嵌入式 博客导航大牛群集
  4. windows环境下zookeeper做成服务并启动
  5. 使用 Unbound 创建DNS服务器
  6. stm32f4 usb 升级程序_51单片机程序下载、ISP及串口基础知识
  7. qt结合arcgis for qt加载tpk文件(离线地图)
  8. mysql 5.6忘记root密码_Linux平台MySQL忘记root密码解决方案
  9. curl和libcurl的区别简介
  10. oracle学习(1)--------windows环境下的安装和基本操作