关于MIPI协议(一)——物理层D-PHY总结

关于MIPI协议(一)——物理层D-PHY总结关于移动端mipi协议的一些总结

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

关于MIPI协议(一)——物理层D-PHY总结

通读了一下MIPI物理层D-PHY的规格书,拿掉了规格书中一些冗余繁复的部分,留下了一些比较重要的内容,现总结如下:

规格书中前部分章节大篇幅论述了D-PHY的几种内部实现结构,D-PHY采用的是非对称主从结构,即一个lane通道中同一时刻必须存在一个主,一个从。并根据以上传输方向性,定义了前向通道和反向通道。
 
  关于MIPI协议(一)——物理层D-PHY总结

关于MIPI协议(一)——物理层D-PHY总结关于MIPI协议(一)——物理层D-PHY总结关于MIPI协议(一)——物理层D-PHY总结
 
又由于D-PHY支持高速和低功耗模式,结合其lane可支持半双工的特性,就衍生出了具有不同功能的lane属性,而集成不同lane的集合,就构成了不同的D-PHY结构,lane的差异主要体现在如下几点:
关于MIPI协议(一)——物理层D-PHY总结
 
1. 首先纯单端是不需要LP-CD模块的。
2. 而双端又可以分为仅支持低功耗双端和高速低功耗模式均可双端的情况。
 关于MIPI协议(一)——物理层D-PHY总结关于MIPI协议(一)——物理层D-PHY总结
针对具有以上不同lane的D-PHY结构,就需要具有不同功能的CIL(Control and Interface Logic)模块来协同处理数据传输,其CIL后缀首字母缩写含义可参看以下表格。
 关于MIPI协议(一)——物理层D-PHY总结关于MIPI协议(一)——物理层D-PHY总结
下面这张图说明了高速信号和低功耗信号的MIPI差分信号电压摆幅情况。
关于MIPI协议(一)——物理层D-PHY总结
 
由于MIPI是差分信号,即一条lane由两条线组成,因此通过高低电平的组合,这两条线应该有4种状态,但图中可以很明显看到高速信号摆幅仅为200mV,因此为了确保传输稳定,高速时我们认为信号只有两种状态,即互为高低压交错的两种状态,因此lane状态则共有如下表所示的六种状态。一对lane中的正信号线为Dp-Line,负信号线为Dn-Line.
 关于MIPI协议(一)——物理层D-PHY总结
知道了lane的这六种状态接下来,我们可以利用低功耗的状态来组合我们开启高速传输等的指令序列了,如下表所示:关于MIPI协议(一)——物理层D-PHY总结
 关于MIPI协议(一)——物理层D-PHY总结
 
我们启动高速传输的SOT指令,使用的就是如上的(LP-11=>LP-01=>LP-00=>HS-0[持续Ths-zero时间]=>发送HS同步序列“00011101”)序列。SOT接收器状态检索过程不再赘述,请自行读表。结束传输的EOT序列比较简单,也请自行读表。
关于MIPI协议(一)——物理层D-PHY总结关于MIPI协议(一)——物理层D-PHY总结
 
从以上时序图,我们能清楚的看到SOT和EOT各状态切换的顺序,以及所需的时间。

接下拉我们看看双端数据lane,传输方向调换指令Turnaround.从以下表格和时序图可以清楚的看到各LP state切换的时序,所以也不赘述了。
 关于MIPI协议(一)——物理层D-PHY总结关于MIPI协议(一)——物理层D-PHY总结关于MIPI协议(一)——物理层D-PHY总结
 
这里唯一想提一下的是,注意如上时序图中,在一个相对较长的LP-00状态中,存在一个drive overlap的主从控制权交换过程。执行完这条指令,我们并没有转换主从关系,但是我们转换了传输方向,在前向通道至反向通道及反向通道至前向通道间,进行了切换。

接下来我们再看看Escape Mode指令,首先,这条指令是用来做什么的呢,它是用来给MIPI提供一些额外功能处理能力的LP指令,且值得注意的一点是,与前面不同,它是一条基于空间独热(Space-One-Hot) 位编码的异步指令,由于是异步指令,因此Data lane在操作这条指令时,并不依赖于Clk Lane。进入Escape Mode的引导步骤码序为LP-11=>LP10=>LP00=>LP01=>LP00.此外,因为是拿来指定一些功能,因此不同编码就具有不同的意义,这里我们先从下表看看它所具有的一些功能码。
 关于MIPI协议(一)——物理层D-PHY总结
这里我们以上表中的Reset-Trigger指令为例,分析一下如下时序图,首先我们在时序图前半部分发现了进入Escape Mode的引导码LP-11=>LP10=>LP00=>LP01=>LP00。接下来我们来看看这个所谓的空间独热编码(Space-One-Hot) ,我们发现它占用两个LP状态的时间来表示一位数据,这里小编我以一种等价的方式来评价这种空间独热编码,注意,实际其定义不是这样的。我们发现它的0位,等价于用LP-01=>LP00表示,它的1位等价于用LP-10=>LP00表示,你也可以认为0位和1位的Dp和Dn状态是互相交错的。此外,从图中我们发现它还有一个显著的特点,就是在发送Space-One-Hot编码过程中,Dp和Dn线异或刚好是以一个LP状态周期Tlpx为周期的时钟,因此这个特性可以用来做校验,不符合Space-One-Hot特性的数据信号将被丢弃。然后小编我在表后在附上关于Space-One-Hot官方给出的解释。
 关于MIPI协议(一)——物理层D-PHY总结关于MIPI协议(一)——物理层D-PHY总结
官方还指出在退出Escape-Mode时,必须停留在Mark-1状态,这里等价于LP10状态。

从上面的Escape Mode的功能码中发现,它是可以用来触发Low-Power Data Transmission(LPDT)的,但传输的数据仍然要遵循Space-One-Hot的异步传输规则。保持一个LP00(官方称为Space)状态,可以用来暂停数据传输。老规矩仍然上一张图给读者分析。
 关于MIPI协议(一)——物理层D-PHY总结
Escape Mode的功能码中的Ultra-Low Power指令比较简单,这里读者自己看看官方解释就好。
 关于MIPI协议(一)——物理层D-PHY总结关于MIPI协议(一)——物理层D-PHY总结

官方文档中,关于Data Lane的说明到此就基本结束了。
接下来我们看看Clk Lane,首先Clk Lane是单端的,常规的Escape Mode指令也不支持,仅支持ULPS指令。
 关于MIPI协议(一)——物理层D-PHY总结
接下来结合上面的时序图和下面的表格,我们来分析一下Clk Lane在切换高速和低功耗模式时的步骤,首先是进入低功耗模式的步骤如下:
1. Clk lane处于交错高速信号HS-0和HS-1的状态
2. 最后一个数据通道也进入低功耗状态了
3. Clk lane在以上状况下依然保持高速时钟状态一段时间,时间长度为Tclk-post,并最后以HS-0状态结束
4. 保持HS-0状态Tclk-trail时间
5. 开始切换HS-TX模块至LP-TX模块,并驱动LP-11状态,保持Ths-exit时长。至此即进入了LP模式。
接下来我们看看如何退出LP模式进入高速模式:
1. LP-TX模块驱动停止状态LP-11
2. 驱动LP-01状态,并维持Tlpx时长
3. 驱动LP-00状态,并维持Tclk-prepare时长
4. 驱动HS-0状态,并维持Tclk-zero时长,并在这段时间内同步完成LP-TX到HS-TX的模块切换。
5. 在任一条Data Lane启动前,保持高速时钟状态Tclk-pre时长。接下来Data Lane也开始启动切换,切换步骤结合前述说明理解。
 关于MIPI协议(一)——物理层D-PHY总结关于MIPI协议(一)——物理层D-PHY总结
 
注意Clk Lane虽然不支持Escape Mode,但是是支持Ultra-Low Power状态(ULPS)的,由于比较简单这里小编也只贴一张图,读者自己理解了。
 关于MIPI协议(一)——物理层D-PHY总结
接下来规格书中总结了以上LP状态机切换的步骤,同时讲解了MIPI的lane初始化的过程、错误侦测的内容,以及进一步讲解了MIPI的一些电气特性和信号衰减增益相关的内容,小编这里不关心这些内容,若读者关心,请自行去阅读了。

下一篇中小编我打算以一种载荷格式传输为实例,详细探讨一下行场有效时间和总时间的估算方法,以便进一步探讨一些MIPI传输方案在接收器上的时钟参数选取方法。

 
 
 

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/138807.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 傅里叶变换时域频域关系_傅里叶变换卷积性质

    傅里叶变换时域频域关系_傅里叶变换卷积性质我保证这篇文章和你以前看过的所有文章都不同,这是2012年还在果壳的时候写的,但是当时没有来得及写完就出国了……于是拖了两年,嗯,我是拖延症患者……这篇文章的核心思想就是:要让读者在不看任何数学公式的情况下理解傅里叶分析。傅里叶分析不仅仅是一个数学工具,更是一种可以彻底颠覆一个人以前世界观的思维模式。但不幸的是,傅里叶分析的公式看起来太复杂了,所以很多大一新生上来就懵圈并从此对…

  • char转换为数字_char字符转int

    char转换为数字_char字符转int刷题遇到一个考点是char型数字转int进行计算的问题。一看就会,一做就错,显然是在这里的认识薄弱了。将一番搜索的结果记录下来,以备再忘来打脸。char的定义参考:Java基本数据类型之char。首先,char跟int这两种类型可以直接互转:charch1=’a’;inti=ch1;charch2=(char)i;那么面对charin=‘2’需要转成int做计算,那么很…

  • xp系统http服务器,WinXP HTTP500内部服务器错误的解决方法

    xp系统http服务器,WinXP HTTP500内部服务器错误的解决方法在系统造成500内部服务器错误有很多原因,而系统中出现的故障是用户最不想看到的,有时候就是因为这些故障让我们折腾个大半天才能够搞定。打开网站出现了HTTP500内部服务器错误的提示,这究竟是怎么一回事呢?下面我们就来说说WinXPHTTP500内部服务器错误的解决方法。具体解决方法如下:一、造成500错误常见原因有:ASP语法出错、ACCESS数据库连接语句出错、文件引用与包含路径出错、使用了服…

  • Linux 查看、关闭、打开防火墙命令[通俗易懂]

    Linux查看、关闭、打开防火墙命令以下截图中的操作均在Centos7上进行。1.查看防火墙状态命令1.1sudosystemctlstatusfirewalld1.2firewall-cmdstate2.关闭防火墙命令2.1sudosystemctlstatusfirewalld此种方式关闭后,使用reboot命令重启后会恢复到原来的状态,也就是说这种方式相当于一种临时关闭防火墙的作用。2.2sudosystemctldisablefirew

  • win32api显示BMP图片的最简单方案

    win32api显示BMP图片的最简单方案一、用自带资源/*—————————————BITBLT.C–BitBltDemonstration(c)CharlesPetzold,1998—————————————*/#includeLRESULTCALLBA

发表回复

您的电子邮箱地址不会被公开。

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