声明:作者是做嵌入式软件开发的,并非专业的硬件设计人员,笔记内容根据自己的经验和对协议的理解输出,肯定存在有些理解和翻译不到位的地方,有疑问请参考原始规范看
Global Operation Flow Diagram
图1 Data Lane Module State Diagram
图2 Clock Lane Module State Diagram
Data Rate Dependent Parameters (Informative)
D-PHY的高速数据传输速率可以被编程为特定的实现方案所指定的值。在SoT和Eot序列之前的任何独立的数据传输,比如在一个固定的速率上进行。但是重新编程D-PHY高速传输的数据速率在某些点上是被允许的,这些点包括:初始化的时候、在从ULP状态退出过程开始之前或者在Stop状态中HS clock没有运行的任意时间点。
规范中有许多时间参数的值都被指定为了一个固定时间和一个特定数量的高速UI(Unit Interval)的和。如果数据速率发生了变化(UI值也因此变化),这些参数需要重新计算。这些参数和其所允许的值,请参考规范的Table18和Table19,或者前面的笔记:
只包含了UI值的参数
和是Master处于HS mode中被重启之后以及任何数据传输可以开始之前,Master必须在Clock Lane上所发送的高速时钟周期的最小数量。如果在Slave侧有某个特殊的协议要求比 或更多的周期,那么Master侧的协议要确保满足Slave的要求。
包含了时间和UI值的参数
部分参数被定为一个显式的时间(explicit time)加上一个UI数的和。显式的时间总体来说,来源是,在给定的具体驱动电压和线路端接(Line termination)值时,需要用来充电和放电互连电路到指定值的时间。可以想象要使用一个模拟的计时器(analog timer)加上一个HS时钟计数器之和来保证实现方案满足这些参数。如果这些显式的时间值仅仅通过数HS时钟周期来实现,那么计数值会是一个关于数据速率的函数,因此,当数据速率发生变化时这些时间值也必须被改变。
是从Dn跨过的时候开始测量的,用来使能Data Lane接收器线路端接(Line termination)的时间。
是在Data Lane上开始HS传输之前,驱动LP-00的时间。
+是用于准备HS传输的启动过程中的驱动LP-00的时间,加上发送HS-0的时间,即:在发送SoT Sync序列之前,打开线路端接并使用HS驱动器驱动互连电路的时间。
是在发送器发送了一次HS传输burst的最后一个载荷数据bit之后,发送器必须驱动最后一个数据bit翻转后的bit的时间。
是接收器必须“back up”并跳过数据的时间,目的是忽略掉EoT序列的切换周期。
是跟在一个HS传输burst后的最后一条Data Lane切换到LP模式之后,发送器要继续发送HS时钟的最小时间。如果某个特殊的接收器实现上要求比更多的时钟周期,那么发送器必须要提供足够多的时钟数来满足接收端。
对于ALP操作来说,存在类似的参数:,和。另外,也引入了一些新的参数,它们的时序同时具有绝对和相对的部分:,,和。
只包含了时间值的参数
部分参数只通过显式的时间值所指定。如上一小节所述,这些显式的时间值一般是源自充放电互连电路所需要的时间,因此和数据速率是独立的。可以想象会使用一个模拟计时器或一个HS时钟计数器来保证实现方案满足这些参数要求。但是如果这些时间值只是通过数HS时钟周期来实现,则计数值是一个关于数据速率的函数,因此当数据速率变化时,这些值也要进行修改。
本小节所描述的参数如下:
只包含关联于数据速率的时间值的参数
在“Global Operaiton Timing Parameters”笔记中的图1(规范的表格18)中剩下的参数即使是当High-Speed时钟关闭的情况下其时间也要严格被遵守。这些参数包括了Low-Power和初始化状态维持的时间,以及LP信令间隔(LP signaling intervals)。尽管这些参数是和HS数据速率独立的,有些D-PHY的实现方案也需要在数据速率发生改变时进行调整。