摄像头那么小,数据那么多,肯定是使用MIPI接口了,在上面的文章里面我们学了VGA的时序,现在看MIPI就轻松了不少。

mipi呢,是数字协议,所以关注的点在于DATA的封装是什么样的!

可以看到分为了长短包
为了自己学的透彻,我要认真的分析这个时序过程。

文档中给出了时序的持续时间

(1) Frame period(帧周期):指的是完整一帧的时间,通常是图像帧的开始到结束所需的时间。可以看到是一个边到另外一个边

有这个引脚的
(2) VSYNC width(VSYNC宽度):VSYNC信号的宽度,即垂直同步脉冲的持续时间。一帧的时间
(3) VSYNC trailing edge to first data packet(VSYNC后沿到第一个数据包):从VSYNC信号的后沿到第一个数据包开始传输的时间间隔。也就是帧信号到了,然后图像数据真正开始传输的时间
(4) Row period(行周期):指的是每一行数据传输的时间。

一个这样的格子就是一行数据
(5) Frame end short packet to VSYNC leading edge(帧结束短包到VSYNC前沿):帧结束的短包与VSYNC信号前沿之间的时间。

也就是数据传完了,到下一个同步信号的时间
(6) Active row period(有效行周期):有效数据传输行的周期时间。

这个是真实的数据
(7) Frame start/end short packet length(帧开始/结束短包长度):帧开始或结束时短包的长度。

短包就是这样的,两个格子应该是两次短包的意思
(8) VSYNC leading edge to frame start short packet(VSYNC前沿到帧开始短包):从VSYNC信号前沿到帧开始短包的时间。

这个是细化到了短包的时间
(9) Last data packet to frame end short packet(最后一个数据包到帧结束短包):最后一个数据包到帧结束短包的时间间隔。

一个包和一包之间的时间

短包的样子
短包包括:

这个长包

这就是DT,数据类型
T3以后就是数据包。

这个是第一种传输的400x400,后面是时序的时间
每个时钟周期(tps)和每个时钟周期的像素数(tpp)都列出。
(1) Frame period(帧周期):指的是完整一帧的时间,通常是图像帧的开始到结束所需的时间。
(2) VSYNC width(VSYNC宽度):VSYNC信号的宽度,即垂直同步脉冲的持续时间。
(3) VSYNC trailing edge to first data packet(VSYNC后沿到第一个数据包):从VSYNC信号的后沿到第一个数据包开始传输的时间间隔。
(4) Row period(行周期):指的是每一行数据传输的时间。
(5) Frame end short packet to VSYNC leading edge(帧结束短包到VSYNC前沿):帧结束的短包与VSYNC信号前沿之间的时间。
(6) Active row period(有效行周期):有效数据传输行的周期时间。
(7) Frame start/end short packet length(帧开始/结束短包长度):帧开始或结束时短包的长度。
(8) VSYNC leading edge to frame start short packet(VSYNC前沿到帧开始短包):从VSYNC信号前沿到帧开始短包的时间。
(9) Last data packet to frame end short packet(最后一个数据包到帧结束短包):最后一个数据包到帧结束短包的时间间隔。

我们看一个正经的RAW10的输出格式
在图像传感器输出RAW10格式数据时,每个像素点的颜色信息以10位(2个字节)进行编码,但由于图像传感器和数据处理器通常使用8位的内存结构,因此RAW10数据需要在传输过程中进行打包。
每个数据单元:RAW10数据是按10位为单位进行处理的。每个10位数据将被拆分并通过多个信号线(如P1、P2、P3等)进行传输。

12Bytes

8RAW就很好啊,就满了
在图中,我们可以看到数据如何从P1[9:2](P1信号的第9到第2位)开始,通过多个数据总线传输,如P2[9:2]、P3[9:2]等,依次传递图像数据的高位部分。
低位数据(P1[1:0]、P2[1:0]等)也通过不同的数据线传输。每个数据线总共有10位,其中前8位是高位数据,后2位是低位数据。

发出去了,怎么存?
32位宽度内存:由于处理器通常使用32位宽度的内存,每个内存单元将容纳多个传输数据单元。为了兼容10位数据的传输,这些数据通过32位内存格式进行打包存储。

反正就是正好,最后一个字节来放前面每一个字节的低位
例如,P4[9:2]和P5[9:2]将存储在接收器内存的同一32位单元中。具体来说,P4和P5的低位部分会占用32位内存字的不同位置,允许接收器并行处理这些数据。
内存地址从00h开始,按照32位字的顺序填充。这是一个标准的内存宽度,确保传输的数据按顺序被存储和处理。

8位就不需要了
初始化:
帧传输:
低功耗模式:
还行,不是很复杂。