凡亿教育-小文
凡事用心,一起进步
打开APP
公司名片
凡亿专栏 | OVM6211-眼动摄像头工作原理(MIPI时序)
OVM6211-眼动摄像头工作原理(MIPI时序)

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

43d8ac9b9ed5f06b61293058bafb55.jpg

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

d809c61e83fe05c9dcba92a3e2d836.jpg

可以看到分为了长短包

为了自己学的透彻,我要认真的分析这个时序过程。

e41c41cfce2a0f5d4df3a89351a833.jpg

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

03116442089d5e8d269655ca034317.jpg

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

ba3f46cb26882932b0fcc94142f2a0.jpg

有这个引脚的

(2) VSYNC width(VSYNC宽度):VSYNC信号的宽度,即垂直同步脉冲的持续时间。一帧的时间

(3) VSYNC trailing edge to first data packet(VSYNC后沿到第一个数据包):从VSYNC信号的后沿到第一个数据包开始传输的时间间隔。也就是帧信号到了,然后图像数据真正开始传输的时间

(4) Row period(行周期):指的是每一行数据传输的时间。

fbba21636fb377e3a8cac2de136e11.jpg

一个这样的格子就是一行数据

(5) Frame end short packet to VSYNC leading edge(帧结束短包到VSYNC前沿):帧结束的短包与VSYNC信号前沿之间的时间。

ebb449a7a75b3f54ec6020b9a8a0e4.jpg

也就是数据传完了,到下一个同步信号的时间

(6) Active row period(有效行周期):有效数据传输行的周期时间。

5c98bc3329aac2612820a50f715f9e.jpg

这个是真实的数据

(7) Frame start/end short packet length(帧开始/结束短包长度):帧开始或结束时短包的长度。

35c58a0aa0506a9862b42c25647639.jpg

短包就是这样的,两个格子应该是两次短包的意思

(8) VSYNC leading edge to frame start short packet(VSYNC前沿到帧开始短包):从VSYNC信号前沿到帧开始短包的时间。

3dda02993f61ce89a6325e6883f50a.jpg

这个是细化到了短包的时间

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

d38932127e6b1c93272ccdbd997b9a.jpg

一个包和一包之间的时间

0c7cad15fbd7584f2b44eb555a47a6.jpg

短包的样子

短包包括:

  1. S0:起始帧

  2. S1、S2:帧计数(低位和高位)

  3. S3:ECC(错误检测码)

363aca4444d66889a6829fa39dbe36.jpg

这个长包

5772621e47cbf6c38c14ea7c184d24.jpg

这就是DT,数据类型

T3以后就是数据包。

  1. T0、T1、T2、T3:数据类型、字计数低位、字计数高位和ECC

  2. CRC0、CRC1:CRC值

dbd4afc916177568ff4fd24cde149c.jpg

这个是第一种传输的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(最后一个数据包到帧结束短包):最后一个数据包到帧结束短包的时间间隔。

376ad32ac48bb6845a22c7c4469985.jpg

我们看一个正经的RAW10的输出格式

在图像传感器输出RAW10格式数据时,每个像素点的颜色信息以10位(2个字节)进行编码,但由于图像传感器和数据处理器通常使用8位的内存结构,因此RAW10数据需要在传输过程中进行打包。

每个数据单元:RAW10数据是按10位为单位进行处理的。每个10位数据将被拆分并通过多个信号线(如P1、P2、P3等)进行传输。

cb3f64f547188a971129e81b4000ab.jpg

12Bytes 

8b6e3ab7a68c663563434748d33b1d.jpg

8RAW就很好啊,就满了

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

377a8602099d6ce1dc6dc3c1a9f6cc.jpg

发出去了,怎么存?

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

0136278b2da49cf5b567ed712a3520.jpg

反正就是正好,最后一个字节来放前面每一个字节的低位

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

e37091b92bf45c4e90f4555c704ccf.jpg

8位就不需要了

初始化:

  1. 配置摄像头的 MIPI 接口参数(如分辨率、帧率、数据格式)。

  2. 启动 MIPI 接口,进入 LP 模式。

帧传输:

  1. 发送帧开始短数据包(Frame Start Packet)。

  2. 逐行发送图像数据长数据包(Long Packet)。

  3. 发送帧结束短数据包(Frame End Packet)。

低功耗模式:

  1. 在无数据传输时进入 LP 模式。

  2. 通过 LP 模式传输控制信号(如 VSYNC、HSYNC)。

还行,不是很复杂。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论