MIPI协议(下)

MIPI协议(下)GOON…完成mipi信号通道分配后,需要生成与物理层对接的时序、同步信号: MIPI规定,传输过程中,包内是200mV、包间以及包启动和包结束时是1.2V,两种不同的电压摆幅,需要两组不同的LVDS驱动电路在轮流切换工作;为了传输过程中各数据包之间的安全可靠过渡,从启动到数据开始传输,MIPI定义了比较长的可靠过渡时间,加起来最少也有600多ns;而且规定各个时间参数是可调的,所以…

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

MIPI协议(下)

GO ON…完成mipi信号通道分配后,需要生成与物理层对接的时序、同步信号: 

MIPI规定,传输过程中,包内是200mV、包间以及包启动和包结束时是1.2V,两种不同的电压摆幅,需要两组不同的LVDS驱动电路在轮流切换工作;为了传输过程中各数据包之间的安全可靠过渡,从启动到数据开始传输,MIPI定义了比较长的可靠过渡时间,加起来最少也有600多ns;而且规定各个时间参数是可调的,所以需要一定等待时间,需要缓存,我们用寄存器代替FIFO,每通道128Byte。 

串行时钟与数据差分传输的过渡时间关系如下: 

MIPI协议(下)

MIPI协议(下)

MIPI协议(下)

各个时间参数需要满足以下的要求: 

MIPI协议(下)
MIPI协议(下)
MIPI协议(下)
UI 的值: 

MIPI协议(下)

MIPI协议(下)

数据与时钟的相位关系: 

MIPI协议(下)
 
根据mipi差分信号原理。 
CLKp是高电平,CLKn是低电平的时候,差分信号表现为高电平。 
CLKn是高电平, CLKp是低电平的时候,差分信号表现为低电平。 
所以结果就可以等效成红线描述的正弦。 
从正弦可以看出,data在clk的高电平和低电平都有传输数据。

数据通道进入和退出SLM(即睡眠模式)的控制: 

MIPI协议(下)
mipi信号传输分为单端和差分传输。例如: 
LP-00, LP-01, LP-10, LP-11 (单端) 
HS-0, HS-1 (差分) 

Ultra-Low Power State entry command: 00011110 是差分传输,读取方法和上面提到的clk是一样的,需要注意的是Dp和Dn如果同时是高电平或同时是低电平的时候是无效数据,这个时候大概对应的是clk正弦的峰值,只有其中一个是高一个是低才是有效的差分数据。

MIPI协议(下)

总结: 
对应于同步信号完成并串转换; 
*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://javaforall.net/132608.html原文链接:https://javaforall.net

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


相关推荐

  • 嵌入式Linux开发流程_嵌入式开发一般采用什么方式

    嵌入式Linux开发流程_嵌入式开发一般采用什么方式在学习嵌入式开发的过程中,尤其是开始入门时,包括各种各样的教程,都是在讲学习linux,很少讲如何利用linux来开发属于自己的嵌入式项目,也就是没有一个全局的概念,简单理解,大概流程如下:一、建立开发环境   操作系统当然是LInux,或者在win系统下安装虚拟机,通过网络下载相应的GCC交叉编译器进行安装,或者安装产品厂家提供的交叉编译器。  这一步,就相当于在win系统下,要

    2025年7月17日
    5
  • PHP一句话木马使用技巧

    PHP一句话木马使用技巧近来发现好多网站有安全狗,会拦截菜刀和蚁剑,因此总结下通过浏览器直接调用一句话木马的姿势。PHP一句话:<?php@eval($_POST[‘shy’]);?>firefox浏览器:hackbar命令提示符:curl首先上传一句话木马到网站目录,可以是虚拟机也可以是VPS,我这里用的是阿里云我自己搭建的网站,由于只是简单的一句话木马,因次一上车就收到了安全云的短信…

    2022年5月21日
    96
  • rtp载荷类型_架体荷载

    rtp载荷类型_架体荷载 1简介在Internet上用分组传送话音的质量不够好的一个重要原因是比较高的丢包率。尤其在广域网中,这个问题相当突出。不幸的是,实时多媒体业务对于延时的要求相当严格,因此不大可能通过重传来解决丢包的问题。正是出于这个原因,大家提出用前向纠错(FEC)来解决Internet上的丢包问题[1][2]。尤其是对于传统纠错码如校验码、RS码、汉明码等的使用引起了很多人的注意。为了能够更好地应用这些纠错码

    2022年8月11日
    5
  • Netty系列三、Netty实战篇

    Netty系列三、Netty实战篇文章目录一、传递POJO二、GoogleProtobuf三、TCP粘包与拆包四、心跳检测五、Netty整合Log4j六、WebSocket七、Netty群聊八、Netty实现RPC服务调用九、短连接与长连接配合示例代码​ 这一篇我们就玩起来,通过一些常用的实战问题,来理解如何使用Netty进行网络编程。一、传递POJO​ 第一个示例参见示例代码中的com.roy.netty.pojoTransfer。​ 这个示例实现的功能是这样的:1、客户端建立连接后,就会往服务端发送一个User对象。

    2025年7月6日
    2
  • python3变量命名规则_python 变量命名规则

    python3变量命名规则_python 变量命名规则原博文2020-05-1410:53−python标识符命名规则:1,标识符只能包含大、小写字母、数字、下划线“_”,并且不能以数字开头2,标识符不能与python关键字相同,但可以包含3,标识符不能包含空格tips:a,python的标识符区分大小写,如变量number与变量Number表示不同的变量…相关推荐2019-09-2821:13−Pythonpython是一种跨平台的计…

    2022年6月22日
    59
  • graduation和completion_guides和maven区别

    graduation和completion_guides和maven区别参考:androidgradle依赖:implementation和compile的区别2017年google后,Androidstudio版本更新至3.0,更新中,连带着com.android.tools.build:gradle工具也升级到了3.0.0,在3.0.0中使用了最新的Gralde4.0里程碑版本作为gradle的编译版本,该版本gradle编译速度有所加速,更加……

    2025年7月24日
    3

发表回复

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

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