通用短包数据类型编码(Generic Short Packet Data Type Codes)
通用短包数据类型的主要目的是提供一种在数据流中包含快门开关的时序信息,闪光灯触发等信息的机制。通用短包中的16-bit用户自定义数据域,可用来从发送端传递一个数据类型值和一个16-bit的数据值到接收端的应用层。CSI-2接收器会将数据类型值和相关联的16-bit数据值传递到应用层。
使用LPS(Low Power State)的包间距例子
本小结所讨论的包,是通过EoT,LPS,SoT序列分隔开的。
多个包的例子
单个包的例子
上面两幅图分别展示了多个包和单个包的例子。其中VVALID,HVALID和DVALID仅作为帮助理解帧开始/结束和行开始/结束包的行为而说的概念,不属于规范的一部分。
行和帧的Blanking定义
Line Blanking周期: 一个长包的包尾PF(Packet Footer,或者C-PHY中的Packet Filler(如果有的话))结束的时间到下一个长包的包头之间的时间称为Line Blanking Period。
Frame Blanking周期:第N帧的帧结束FE包到第N+1帧的帧开始FS包之间的时间称为Frame Blanking Period。
Line Blanking Period不是固定的,其长度可能会变化。接收器要能够正确处理Line Blanking Period接近0的情况,这种情况在MIPI01或MIPI02中定义为最小包间间距(minimum inter-packet sapcing)。发送器定义了Frame Blankding Period的最小时间。Frame Blanking Period在发送器侧要是可编程的。
推荐的FS和FE包间隔:
- FS包到第一个数据包的间隔应该要尽可能接近最小包间距。
- 最后一个数据包到FE包的间隔应该要尽可能接近最小包间距。
这样做的目的是为了确保FS和FE包能够精确地表达出一帧图像数据的起始点和结束点。但当FS和FE包的位置是被用来传输精确到像素级的垂直同步时序信息的时候,允许出现例外。
FS和FE包的位置在Frame Blanking Period内能够发生变化,以便能提供精确到像素级的垂直同步时序信息,如下图所示:
垂直同步(Vertical Sync)例子
如果需要精确到像素级的水平同步时序信息,则要使用Line Start和Line End包达成目标。
如果存在Line Start和Line End包,它们的位置在Line Blanking Period内能够发生变化,以便提供精确到像素级的水平同步时序信息。如下图所示:
水平同步(Horizontal Sync)例子