OVM6211-眼动摄像头工作原理(MIPI时序)

乐活   2025-01-25 21:34   内蒙古  
摄像头那么小,数据那么多,肯定是使用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(最后一个数据包到帧结束短包):最后一个数据包到帧结束短包的时间间隔。

一个包和一包之间的时间

短包的样子

短包包括:
  1. S0:起始帧
  2. S1、S2:帧计数(低位和高位)
  3. S3:ECC(错误检测码)

这个长包

这就是DT,数据类型

T3以后就是数据包。

  1. T0、T1、T2、T3:数据类型、字计数低位、字计数高位和ECC
  2. CRC0、CRC1:CRC值

这个是第一种传输的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位就不需要了

初始化:
  1. 配置摄像头的 MIPI 接口参数(如分辨率、帧率、数据格式)。
  2. 启动 MIPI 接口,进入 LP 模式。
帧传输:
  1. 发送帧开始短数据包(Frame Start Packet)。
  2. 逐行发送图像数据长数据包(Long Packet)。
  3. 发送帧结束短数据包(Frame End Packet)。
低功耗模式:
  1. 在无数据传输时进入 LP 模式。
  2. 通过 LP 模式传输控制信号(如 VSYNC、HSYNC)。
还行,不是很复杂。

云深之无迹
纵是相见,亦如不见,潇湘泪雨,执念何苦。
 最新文章