OVM6211-眼动摄像头工作原理(从CMOS到MIPI)

乐活   2025-01-25 21:34   内蒙古  

OVM6211-眼动追踪摄像头特性

最近这个看了VGA的时序感觉和现代的MIPI也差不多。这个时序或者数据传输真的很有意思。

我们看到一个大大的CMOS,上面都是我讲过的各种各样的光电PN结。

跨阻放大器设计参考.光电管参数 这样的。

既然是读取到了模拟信号,那肯定就是有ADC转换的模块。其次就是每一次的光电转换,都是要在时钟线上有一个时钟边沿的时候,转换一次。

可以看到,lens是镜头:

光学数据

OVM6211-RADA 适用于眼动追踪等人机界面系统,视场 (FOV) 较窄,约为 50 度。

数据手册有这一段

视场角(Field-of-View, FOV):
  1. 水平视场角:40°,表示图像传感器在水平方向上的视野范围。
  2. 对角视场角:54°,表示图像传感器在对角线方向上的视野范围。捕捉到较广泛的场景,非常适合广角拍摄。
光圈值(f no.):2.88,表示镜头的光圈大小。光圈值较低意味着镜头能够捕捉更多的光线,这有助于在低光环境下提供更好的成像质量。

2.8是大光圈

焦距(Focal length):1.646 mm,表示镜头的焦距。较短的焦距适合宽视场角应用,提供较大的景深和较宽的拍摄范围。
这个1.6m就很短了,可以拍到的范围很大,因为眼动离眼睛很近
最大成像圆(Maximum Image Circle)指的是镜头在图像传感器上形成的最大圆形区域。这个区域的直径为1.9mm,表示镜头能够有效地在图像传感器上提供清晰的图像范围。
电视畸变(TV distortion):小于2%,表示镜头在图像边缘的失真程度,低于2%的畸变通常意味着较为平直的图像边缘。
相对光照(Relative illumination, optical):61%,表示镜头对图像传感器的光照分布,较高的值通常意味着镜头提供的光照更加均匀。
对焦机制(Focus mechanism):固定焦距,表示镜头的焦距无法调整,适用于需要清晰成像的固定场景。
景深(Depth of field):100 mm 到无限远,镜头能够保持清晰的前后距离范围,从100mm到无限远的景深意味着该镜头可以在较长的距离内保持清晰。
IR滤波器50%截止波长(IR elimination filter 50% cut-off):665±10 nm,指红外滤光片的50%截止波长,这意味着该镜头对红外线的过滤性能,在665 nm附近的红外光被有效过滤。

还有一种是90°的

因为这个东西非常小,后面封也不现实,就直接厂家封了

这是没有封以前的样子

估计里面也有个几片的镜头

以前P30的CMOS

相当于是一个感光阵列,采样的时候也有可能前面太快,也有取样保持电路。接着AMP应该是一个聚合的模块,就是变成了数据流,前面是矩阵,后面一个数据流,合适后面ADC转换:

感觉是这样

OV2640,也是有的

在AMP的路径上面,可以做这个增益控制。接着就进入了ADC转换的模块,接着是下一个模块,黑电平等级校准。到这里就是图像转换完成了。数据流给到了FIFO,因为要匹配下级的储存速度,MIPI模块把数据变成合适的样子。

单通道 MIPI 串行输出接口,最高 600 Mbps 数据速率。

MIPI是差分信号,每次都是一对儿,单通道就是2个信号线

IIC来控制寄存器,上面MIPI成对儿的输出数据

MIPI 接口发送 长数据包(图像数据)和 短数据包(帧同步信号)

下面是寄存器控制,接到了IIC的接口,包括IIC也要时钟线,因为图像是需要很多不一样的时序信号的,所以也给了一个时钟的生成模块。

上面的模块是串行的输出的。

还有一大类是并口的

OK

这本书里面有个非常好的图

并行是如何工作的,串行是如何工作的。

摄像头的扫描模式: 逐行扫描

模糊了

每帧画面是由若干条水平方向的扫描线组成的、PAL制为625行/帧,NTSC制为525行/帧。

如果这一帧画面中所有的行是从上到下一行接一行地连续完成的,或者说扫描顺序是1、2、3……行,要得到稳定的逐行扫描图像,每帧图像必须扫描整数行。

我们应该怎么理解?一个摄像头的CMOS,上面对光像素点的取样是单点的。

一个图像的样子

比如一帧图像是连续扫描625行组成的,每秒钟共扫描50帧图像,即帧扫描频率为50帧/秒,或写成50Hz,行扫描频率为31.25kHz。

也就是这个时钟相当于移动一个像素格的基准

逐行扫描方法使信号的频谱及传送该信号的信道带宽均达到很高的要求。

接下来看输出:

真实的像素点有这么多

每一个像素点上面有图像数据,我们就继续定义每一点上面的数据如何描述。

相当于就是原生的数据,0101010101这样的,没有做修改的数据。

图像传感器-RAW格式辨析  所以RAW格式就是每个像素的数据按照N位二进制输出。

我们对一个传感器,感兴趣的是上面像素位置上面的像素数据,但是对于一个图像我们可以表述的方式有很多,我们使用的这个摄像头是RAW格式。

8-bit RAW: 每个像素的数据以 8 位二进制形式输出。11111111
10-bit RAW: 每个像素的数据以 10 位二进制形式输出。
接下来计算数据的多少:
  1. 400x400 分辨率,10-bit RAW: 每帧图像数据量为 400x400x10 bits = 1,600,000 bits = 200,000 bytes。

  2. 200x200 分辨率,8-bit RAW: 每帧图像数据量为 200x200x8 bits = 320,000 bits = 40,000 bytes。

  3. 400x400: 全分辨率输出,适用于需要高分辨率的应用场景。

  4. 200x200: 通过 2x2 合并或子采样降低分辨率,适用于需要较低分辨率和较高帧率的场景。

  5. 100x100: 进一步降低分辨率,适用于需要极低分辨率和极高帧率的场景。


这里出现了子采样和合并:

2:1 和 4:1 单色子采样: 通过降低水平或垂直方向的分辨率来减少数据量,适用于需要降低带宽和处理负载的场景。

2x2 单色合并: 将相邻的四个像素合并为一个像素,降低分辨率的同时提高灵敏度,适用于低光环境。

为什么数组这么好用?(以串口上下位机协议),都是使用了字节来衡量数据流。

还可以输出YUV这样的格式,RGB的

可以使用寄存器的来配置

简单说说输出的MIPI信号,MIPI支持很多的数据格式:

主要还是RGB,YUV和RAW的

MIPI是一种高级的协议,无法通过一篇文章我也没有那个本事可以讲的通俗易懂。但是协议是分层的,可以学习数据流的走向。

以及也没有办法模拟,都是用现成的MIPI IP。

时刻记住,数据流是字节的

最下面就是数据的电平变换,然后上面对这些电平做分类,接着最上面是我们的应用处理。

1.物理层(PHY Layer):
使用差分信号(Differential Signaling)传输数据。
支持低功耗模式(LP Mode)和高速模式(HS Mode)。
2.协议层(Protocol Layer):
定义数据包的格式和传输规则。
包括长数据包(Long Packet)和短数据包(Short Packet)。
3.应用层(Application Layer):
定义图像数据的格式和内容。
支持多种像素格式(如 RAW10、RAW12、YUV422 等)。

因为数据量很大,也很复杂,所以一些修饰帧。MIPI CSI-2 数据包分为 长数据包 和 短数据包

长数据包用于传输图像数据,格式如下:
  1. 包头(Packet Header):
  2. Data Identifier (DI):数据类型标识符(如 RAW10、YUV422)。
  3. Word Count (WC):数据包中的字数(16 位)。
  4. ECC:错误校验码(8 位)。
  5. 数据负载(Payload):
  6. 图像数据(如像素值)。
  7. 包尾(Packet Footer):
  8. CRC:循环冗余校验码(16 位)。
短数据包用于传输控制信息,格式如下:
  1. 包头(Packet Header):
  2. Data Identifier (DI):数据类型标识符(如帧开始、帧结束)。
  3. Word Count (WC):固定为 0。
  4. ECC:错误校验码(8 位)。
  5. 数据负载(Payload):
  6. 控制信息(如帧号、行号)。

请你一定看下一篇的文章。我将写最普通的VGA时序,然后过渡到MIPI时序。

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