CX3 视频时间参数解析 – KBA226779 (ZH)
Version: **
通常,CX3 MIPI配置工具包含众多各具含义的视频时间参数。本篇KBA对MIPI模块中这些时间相关的参数做一解析。
Fig 1: CX3满帧时序图
为了理解时间参数,需要在这里引入一个虚拟参数 (像素时钟)。视频流中,像素数据按照此时钟的速率进行传输。像素时钟的值取决于视频分辨率和帧率 (FPS)。
按照如下的方式计算像素时钟:
记FPS为每秒帧数并且视频分辨率为 (H-active x V-active),H-blank和V-blank是对应的消隐时间。
完成一帧的时间 (对于分辨率 (H-Total x V-Total)) = 1 ÷ FPS
完成一行的时间 (1 ÷ FPS) ÷ V-Total (行数)
完成一个像素的时间 = (1 ÷ FPS) ÷ V-Total (行数) ÷ H-Total (像素数)
则像素时钟 (MHz) = (FPS x V-Total x H-Total) ÷ 10^6
计算 H-Total ( μs): (1 ÷ 像素时钟) x H-Total (以像素计)
计算最小CSI时钟值:
视频数据按照CSI时钟速率传输至MIPI模块。因为MIPI CSI时钟支持DDR模式,所以数据在时钟的上升沿和下降沿都被传输。在每个时钟边沿,传输数据的bit数等于选用的MIPI Data lane的数量。
为了计算最小的MIPI CSI的值,用户需要按照如下的规则找到每个bit所需要的最小时间:
一行总的bit数 = H-active x 像素深度
每bit所需要的时间 = (H-active (像素数) x Pixel Depth) ÷ H-Total ( s)
由于上述提到的CSI时钟的DDR模式,因此时间减半 = (H-active (像素数) x Pixel Depth) ÷ H-Total (μs) ÷ 2
每个时钟边沿传输的bit数 = Data lane的数量
因此,需要的CSI时钟最小值 = (H-active (像素数) x Pixel Depth) ÷ H-Total ( μs) ÷ 2 ÷ Data lanes
计算CSI接口的H-Active时间:
MIPI接口在一行时间内能够传输的总bit数 = H-Active (像素数) x Pixel Depth
每个CSI时钟边沿传输的bit数 = Data lanes
CSI clock为DDR模式,因此,等效时钟为2 x CSI_Clock
传输一行的bit所需要的时间 (H-Active时间 ( μs 为单位)) = [1 ÷ (2 x CSI_Clock x Data lanes)] x Pixel Depth x H-Active (像素)
计算PHY时延:
PHY时延近似等于 THSPREPARE + (THSZERO / 2) 的时间对应到 CSI RX LP←→ HS时钟的时钟数。这个时延用来控制从LP到HS状态的跳转。工具会计算这个时延值 (查看MIPI receiver Configuration的右下角)。用户需要调用 CyU3PMipicsiSetPhyTimeDelay()来进行设置。
PHY时延值 = {[THS_Prepare (单位:ns) + THS_Zero (单位:ns) / 2] ÷ [1 ÷ (CSI RX LP←→ HS 时钟 (MHz) ×1000)]} - 1
因此时钟数不包含小数,所以对上面的结果向上取整。这里-1是因为起始范围为0。