当前位置: 首页 > news >正文

理解mipi协议

完成mipi信号通道分配后,需要生成与物理层对接的时序、同步信号: 
MIPI规定,传输过程中,包内是200mV、包间以及包启动和包结束时是1.2V,两种不同的电压摆幅,需要两组不同的LVDS驱动电路在轮流切换工作;为了传输过程中各数据包之间的安全可靠过渡,从启动到数据开始传输,MIPI定义了比较长的可靠过渡时间,加起来最少也有600多ns;而且规定各个时间参数是可调的,所以需要一定等待时间,需要缓存,我们用寄存器代替FIFO,每通道128Byte。 
串行时钟与数据差分传输的过渡时间关系如下: 

这里写图片描述

这里写图片描述

各个时间参数需要满足以下的要求: 
这里写图片描述
这里写图片描述
这里写图片描述
UI 的值: 
这里写图片描述 
这里写图片描述

数据与时钟的相位关系: 
这里写图片描述 
根据前面文章:mipi差分信号原理 (差分信号必须是两个,可对比性,两根信号物理特性一直,这样可保证所受外界干扰一直,达到同高,同低,但两者差值不变)介绍。 
CLKp是高电平,CLKn是低电平的时候,差分信号表现为高电平。 
CLKn是高电平, CLKp是低电平的时候,差分信号表现为低电平。 
所以结果就可以等效成红线描述的正弦。 
从正弦可以看出,data在clk的高电平和低电平都有传输数据。

数据通道进入和退出SLM(即睡眠模式)的控制: 
这里写图片描述
mipi信号传输分为单端和差分传输。例如: 
LP-00, LP-01, LP-10, LP-11 (单端) 
HS-0, HS-1 (差分) 
Ultra-Low Power State entry command: 00011110 是差分传输,读取方法和上面提到的clk是一样的,需要注意的是Dp和Dn如果同时是高电平或同时是低电平的时候是无效数据,这个时候大概对应的是clk正弦的峰值,只有其中一个是高一个是低才是有效的差分数据。

这里写图片描述

总结: 
对应于同步信号完成并串转换; 
*HS 状态为高速低压差分信号,传输高速连续串行数据; 
*LP 状态为低速低功耗信号,传输控制信号和状态信号; 
*MIPI要求HS 工作在1GHz 的频率下,完成共模信号为0.2v 差模信号为0.2v 的差分 
信号的传输; 
*LP 传递控制信号,要求高电平为1.2v 低电平为0的电平信号输出; 
*HS 及LP 状态下,输出信号的电学特性要求非常苛刻,具体电学性能的要求可见 
附带文档表格。 
*MIPI是双向可选的,可以高速发送,也可以进行高速接收,或收发功能同时具备, 
我们目前根据需求仅做了发送功能;

*MIPI的HS模式(0.2V),传送图像数据,速度为80Mbps ~ 1000Mbps; 
*MIPI的LP模式(1.2V),可以用于传送控制命令,最高速度为10Mbps;

*MIPI规定,任一个MIPI设备必须Escape Mode,此为Low Power Data 
Trabsmission Mode,LP模式中的一种,此模式下可低速传输图像或其他数据。

*MIPI规定了Low Power Mode、 Ultra Low Power Mode的电压范围、以及它们 
之间、它们与HS模式之间的相互切换方式或相关要求;

*MIPI D-PHY是各个MIPI工作组共用的物理层规范; 
最后,需要注意一点: 
BTA:bus turn around,用来host接受外设发送命令或应答信号用的,如果host DPHY设置了这个, 
但是lcd不支持的话,就有可能有问题。

转载于:https://www.cnblogs.com/Ph-one/p/5777613.html

相关文章:

  • 待查项
  • drivers/mfd/Mfd-core.c
  • LInux ugo权限详解[修]
  • Camera 图像处理原理分析
  • camera isp
  • isp和3a的联系与区别是什么?
  • ihalcon网站
  • Android系统中 setprop,getprop,watchprops命令的使用
  • Linux/Unix里,ln -s
  • ubuntu下环境变量
  • ubuntu /etc/profile和/etc/environment的比较
  • 【图像处理】ISP 图像传感器camera原理
  • 什么是RAW数据?
  • linux设备驱动编写_tasklet机制
  • hrtimer和work工作队列的使用
  • Google 是如何开发 Web 框架的
  • 【Amaple教程】5. 插件
  • C++11: atomic 头文件
  • Git的一些常用操作
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • IOS评论框不贴底(ios12新bug)
  • java 多线程基础, 我觉得还是有必要看看的
  • passportjs 源码分析
  • Python 基础起步 (十) 什么叫函数?
  • uni-app项目数字滚动
  • webpack+react项目初体验——记录我的webpack环境配置
  • 高性能JavaScript阅读简记(三)
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 删除表内多余的重复数据
  • 探索 JS 中的模块化
  • 用Visual Studio开发以太坊智能合约
  • 源码安装memcached和php memcache扩展
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • !!Dom4j 学习笔记
  • ${factoryList }后面有空格不影响
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (附源码)ssm高校实验室 毕业设计 800008
  • (力扣题库)跳跃游戏II(c++)
  • (六)激光线扫描-三维重建
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (十六)Flask之蓝图
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .java 9 找不到符号_java找不到符号
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .NET简谈设计模式之(单件模式)
  • .net实现客户区延伸至至非客户区
  • .sh
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...
  • @EventListener注解使用说明
  • @requestBody写与不写的情况
  • [ 2222 ]http://e.eqxiu.com/s/wJMf15Ku
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116