概述:

嵌入式摄像头模块是一种专为嵌入式系统设计的小型化、集成化的摄像设备。它通常集成了镜头、图像传感器、图像信号处理器(ISP)、以及必要的控制和接口电路,有时还包括一些辅助功能如自动曝光控制、自动白平衡、自动对焦等。这种模块可以直接嵌入到各种电子设备中,以实现图像捕捉和视频录制功能。

摄像头模块的主要组成结构:

镜头(Lens):主要作用是聚集光线,使通过镜头的光线能够精确地聚集到感光芯片上,从而提高成像的清晰度和质量。

音圈马达(Voice Coil Motor, VCM):用在自动对焦(Auto Focus, AF)模组上,通过精确控制镜头的位置来实现对焦,即移动镜头至最佳清晰点,以获得清晰的图像。

滤光片(IR/蓝玻璃滤光片,IR/BG):主要用来滤除不必要的光线,提高图像质量。IR滤光片通过镀膜过滤掉红外光线,防止红外干扰;蓝玻璃滤光片(BG)通过吸收部分光能量来过滤掉不需要的光谱,如紫外线,保护感光芯片并提高图像的色彩还原度。

支架(Bracket):用于支撑和装载VCM和镜头,其上表面凹槽用于贴装滤光片,内腔用于容纳感光芯片、电容、驱动IC等元件,起到固定和保护内部元件的作用。

感光芯片(Sensor):采集通过镜头和滤光片的光线,并将其转换为电信号输出。感光芯片是摄像头模块的核心部件,其性能直接影响到图像的质量和摄像头的整体性能。

印刷电路板(Printed Circuit Board, PCB):用于传输感光芯片输出的电信号,并提供信号处理和电源管理等功能。PCB上的电路设计有助于降低信号中的噪声(noise),提高信号的质量和稳定性。

连接器及表面贴装技术(Surface-Mount Technology, SMT)搭载元器件:连接器用于将摄像头模块与其他设备或电路连接,实现电信号的传输。SMT搭载的元器件包括各种电容、电阻、IC等,它们通过表面贴装技术固定在PCB上,实现电路功能。

摄像传感器类型:

CMOS(互补金属氧化物半导体)

工作原理

CMOS传感器使用MOSFET(金属氧化物半导体场效应晶体管)来控制每个像素点的电荷传输。每个像素点都配备有其自己的放大器和读出电路,可以直接将电荷转换为电压信号。

优点

功耗低:由于每个像素点的放大器和读出电路只在需要时才工作,CMOS传感器的功耗相对较低。

成本低:CMOS传感器可以使用标准的半导体生产线制造,生产成本较低。

集成度高:CMOS传感器可以轻松集成到复杂的电子系统中,如手机、平板电脑等。

速度快:CMOS传感器可以实现较高的帧率,适合视频录制和高速摄影。

缺点

噪声较高:由于每个像素点都有自己的放大器,CMOS传感器更容易受到噪声的影响。

图像质量:在低光照条件下,CMOS传感器的图像质量可能不如CCD传感器。

CCD(电荷耦合器件)

工作原理

CCD传感器使用金属-氧化物-半导体电容器来存储和传输电荷。当光线照射到传感器表面时,每个像素点会积累电荷,这些电荷随后被转移到读出电路并转换为电压信号。

优点

图像质量高:CCD传感器能够提供更高的图像质量和色彩还原度,特别是在低光照条件下。噪声低:由于电荷传输过程中的干扰较少,CCD传感器的噪声水平较低。

缺点

功耗高:CCD传感器需要持续为所有像素点提供电源,因此功耗较高。

成本高:CCD传感器的制造工艺复杂,成本较高。

速度较慢:CCD传感器的读出速度通常较慢,不适合高速摄影。

摄像头的工作原理:

当光线通过镜头聚焦到图像传感器上时,传感器会将光信号转换为电信号,并将其传输给处理器进行处理。处理器通过算法对图像信号进行增强、去噪、压缩等操作,并将其转换为数字信号输出给计算机或其他设备。

拜耳滤光片:一种特殊的彩色滤光阵列,安装在图像传感器的像素上,用于分离颜色信息

RAW数据:直接从图像传感器输出的未经处理的数字信号。

JPG文件:压缩后的图像数据通常保存为JPG格式,这是一种广泛使用的图像文件格式。

图像处理器(ISP,Image Signal Processor)

图像处理器(ISP)是摄像头模块中的关键组件,它专门用于处理图像传感器(如CCD或CMOS)捕获的原始图像数据。ISP执行的一系列图像处理任务对于提高图像质量和性能至关重要。

色彩校正(Color Correction):调整图像的色彩平衡,确保颜色的准确性和一致性

对比度增强(Contrast Enhancement):增强图像的对比度,使图像的亮部和暗部更加分明,从而提高图像的清晰度和视觉吸引力。

噪声减少(Noise Reduction):噪声减少用于降低图像中的随机噪声,这些噪声通常在高ISO、低光照或高灵敏度条件下产生。常见的噪声减少技术包括:

  • 空间滤波(Spatial Filtering):如中值滤波、高斯滤波等,用于平滑图像并减少噪声。
  • 时域滤波(Temporal Filtering):在视频处理中,通过比较连续帧之间的差异来减少噪声。

锐化(Sharpening):增强图像的边缘对比度,使图像看起来更加清晰。锐化处理需要谨慎执行,以避免产生不自然的边缘效果或过度锐化。

动态范围优化(Dynamic Range Optimization):改善图像的动态范围,即图像中最亮和最暗部分之间的对比度。这有助于在高对比度场景中保留更多的细节。

自动曝光控制(Auto Exposure, AE)当外界光线较弱时, CMOS成像芯片工作电流较小,所成图 像偏暗,这时要适当增加曝光时间进行背光补偿;光线充足或较强时,要适当减少曝光时间,防止曝光过度, 图像发白。

自动白平衡(Auto White Balance, AWB)对色温环境所造成的颜色偏差和拍摄一起本身所固有的 色彩通道增益的偏差进行统一补偿,从而让获得的图像能正确反映物体的真实色彩。

自动对焦(Auto Focus, AF):在支持自动对焦的摄像头中,ISP可以协助计算焦点,以实现快速准确的对焦。

色彩空间转换(Color Space Conversion):将图像数据从一种色彩空间转换到另一种,以便于显示或进一步处理。不同的色彩空间具有不同的特点和应用场景:

  • RAW:一种未经处理的图像数据格式,保留了传感器捕获的所有信息,提供了最大的后期处理灵活性。
  • RGB:一种常用的色彩空间,直接对应于红、绿、蓝三种颜色通道,适用于大多数显示设备。
  • YUV:一种色彩空间,将亮度(Y)和色度(U、V)分离,常用于视频压缩和传输

压缩(Compression):对图像数据进行压缩,以减少存储空间或传输带宽的需求。常见的压缩格式包括:

  • JPEG:一种广泛使用的有损压缩格式,通过去除人眼不敏感的信息来减少文件大小。
  • H.264:一种视频压缩标准,广泛应用于视频录制和流媒体传输,通过帧间和帧内预测、变换编码等技术来压缩视频数据。

数字信号处理器(DSP,Digital Signal Processing)

数字信号处理器(DSP)是一种专门设计用于处理数字信号的微处理器,DSP的核心功能包括数字滤波器、数字变换和数字控制。它通过一系列复杂的数学运算来优化和处理数字图像信号,以提高图像质量、压缩图像数据或实现特定的图像效果。

  • 图像压缩:如JPEG、H.264等,通过去除冗余信息来减小图像文件的大小。
  • 图像增强:提高图像的对比度、亮度,或进行锐化处理以增强图像细节。
  • 图像去噪:减少图像中的噪声,提高图像的视觉效果。
  • 图像恢复:恢复因失焦、运动模糊等原因而退化的图像。
  • 特征提取:从图像中提取特征,用于图像识别、分类等。
  • 图像分割:将图像分割成多个区域,以便于分析和处理。
  • 颜色空间转换:如RGB到YUV的转换,以适应不同的显示和处理需求

DSP既可以是通用微处理器中的一个协处理器,也可以是专用的硬件芯片。在嵌入式系统中,DSP通常与微控制器或其他处理器集成在一起,以提供高效的信号处理能力

摄像头模块常用接口

并行接口(Parallel Interface):

并口接口主要包括DVP接口和CSI接口(CSI-1)。它们的主要特点是通过多根数据线并行传输数据,适合中低分辨率和中低帧率的应用场景。

DVP接口(Digital Video Port):
  • 特点

    • 并行传输,数据线数量较多(通常8根或12根)。

    • 传输速率受限于时钟频率和布线长度,典型时钟频率在几十MHz到100MHz左右。

    • 硬件设计相对简单,适合嵌入式系统和低功耗应用。

    • 信号完整性要求高,布线复杂,不适合长距离传输。

  • 应用场景

    • 中低分辨率摄像头(如VGA、QVGA)。

    • 嵌入式设备、安防监控、工业检测等。

输入总线介绍:
PWDN:camera的使能管脚,有两种配置方式,一种为standby,一种为normal work,当设置为standby 时,一切对于camea的操作都是无效的,包括复位,所以一定要将PWDN管脚设置为normal模式,否则 RESET无效。
RESET:camera的复位管脚,此方式为硬复位模式,camera的各个IO口恢复到出厂默认状态,只有当 XCLK开启后,将RESET置为低,硬复位才有效,否则复位无效。
XCLK:是camera的工作时钟管脚,此管脚为SOC提供camera的工作时钟,也可以外接一个晶振给 Camera提供时钟信号。
IIC:是camera和SOC通信的I2C总线,主要用来对Camera Sensor进行一些参数的配置,如分辨 率、数据格式等。
输出总线介绍:
DATA :camera数据管脚,此数据脚可以输出的格式为YUV,RGB,JPEG等。
VSYNC:camera的帧同步信号管脚。一个VYSNC信号结束表示一帧(即一个画面)的数据已经输出完毕。
HSYNC:camera行同步信号管脚。一个HSYNC信号结束表示一行的数据已经输出完毕。
PCLK:像素同步信号管脚。一个PCLK信号结束表示一个像素点的数据已经输出完毕。
  • XCLK是由SOC提供给摄像头的工作时钟,而PCLK是摄像头自己产生的时钟信号,通过摄像头内部的PLL(Phase-Locked Loop)电路可以产生不同频率的PCLK。

CSI接口(Camera Serial Interface)

CSI接口也有并行版本(CSI-1),但目前更常见的是串行版本(CSI-2)。并行CSI接口与DVP接口类似,但通常用于更专业的应用场景。

串行接口(Serial Interface):

串口接口主要指MIPI-CSI2接口,它是目前最主流的串行接口之一。移动产业处理器接口(Mobile Industry Processor Interface:简称MIPI ),1对时钟线,1~4 lane对数据线,且都是差分走线,有比较强的抗干扰性。

MIPI-CSI2接口:
  • 特点

    • 串行传输,数据线数量少(通常2~4根),适合高分辨率和高帧率的应用。

    • 支持高速数据传输,速率可达数Gbps,适合高分辨率摄像头(如1080P、4K)。

    • 信号完整性好,适合长距离传输。

    • 复杂度较高,需要硬件支持(如MIPI控制器)。

  • 应用场景

    • 高分辨率摄像头(如智能手机、平板电脑、车载摄像头)。

    • 高帧率应用(如高速工业相机)

CCI (Camera Control Interface) 是一个兼容 I2C 标准的双向控制接口,用于摄像头模块的配置和控制。CCI 支持多种读写操作,包括随机位置单次读、当前位置连续读等。

USB(Universal Serial Bus)接口

USB接口是一种通用的串行接口,它支持即插即用和热插拔功能。USB接口广泛应用于个人电脑、笔记本电脑和其他设备,用于连接各种外部设备,包括摄像头。USB摄像头模块通常支持UVC(USB Video Class)标准,这使得摄像头可以无需驱动程序即可在大多数操作系统中使用。USB接口的摄像头适合于桌面监控、视频会议和个人娱乐等应用。

USB接口:
  • 特点

    • 通用性强,兼容性好,支持热插拔。

    • 传输速率从USB 2.0(480Mbps)到USB 3.0/3.1(5Gbps及以上)。

    • 适合与计算机或其他通用设备连接。

    • 需要额外的USB控制器芯片,增加硬件成本。

  • 应用场景

    • 消费级摄像头(如网络摄像头、USB摄像头)。

    • 与计算机连接的工业相机。

    • 移动设备(如通过USB-C连接的外接摄像头)。

摄像头模块输出的数据格式

RAW格式

RAW格式是未经处理的原始图像数据,直接从图像传感器的像素点获取。这种格式保留了最多的图像信息,但通常需要后续的处理(如白平衡、色彩校正等)才能得到最终的图像。

  • 优点:保留了最多的图像细节和动态范围,适合专业图像处理。

  • 缺点:数据量大,需要更多的存储空间和处理能力。

RGB格式

RGB格式使用红、绿、蓝三种颜色的强度来表示每个像素的颜色。常见的RGB格式包括RGB565、RGB888等,其中数字表示每种颜色使用的位数。

  • 优点:直观,易于处理和显示。

  • 缺点:相对于YUV格式,RGB格式的压缩效率较低。

YUV格式

YUV格式将图像数据分为亮度(Y)和色度(U、V)两部分。这种格式适合视频压缩,因为它可以有效地减少色度信息,从而降低数据量。

  • 优点:压缩效率高,适合视频传输和存储。

  • 缺点:相对于RGB格式,YUV格式在某些应用中处理起来可能更复杂。

JPEG格式

JPEG(Joint Photographic Experts Group)是一种广泛使用的图像压缩标准,它通过有损压缩来减少图像文件的大小,同时尽量保持图像质量。

  • 优点:高效的压缩比,适合图像存储和网络传输。

  • 缺点:有损压缩可能导致图像质量下降,尤其是在高压缩比的情况下。

BMP格式

BMP(Bitmap)是一种无损的图像文件格式,通常不进行压缩,因此保留了图像的所有细节。

  • 优点:保留了完整的图像信息,无需解压缩即可显示。

  • 缺点:文件体积大,不适合网络传输。

PNG格式

PNG(Portable Network Graphics)是一种无损压缩的图像文件格式,支持透明度(alpha通道)。

  • 优点:无损压缩,支持透明度,适合网页和图形设计。

  • 缺点:相对于JPEG,文件体积较大。

数字视频信号标准ITU-R BT.601和ITU-R BT.656

ITU-R BT.601和ITU-R BT.656是国际电信联盟(ITU)定义的两个数字视频信号标准,它们主要用于模拟视频信号到数字视频信号的转换,以及数字视频信号的编码和传输。

ITU-R BT.601(数字电视标准)

ITU-R BT.601标准定义了标准清晰度(SD)电视信号的数字化参数,包括分辨率、帧率、色彩空间和编码格式。

主要特点:
  • 分辨率:定义了标准清晰度电视的分辨率,例如720x480(NTSC)和720x576(PAL)。

  • 帧率:支持多种帧率,包括24、25、30、50和60fps。

  • 色彩空间:定义了YCbCr色彩空间,这是一种亮度(Y)和色度(Cb和Cr)分离的编码方式,有助于视频压缩和传输。

  • 采样格式:规定了4:2:2的色度采样格式,即每个亮度样本对应两个色度样本,这有助于在保持图像质量的同时减少数据量。

ITU-R BT.656(数字视频接口标准)

ITU-R BT.656标准定义了数字视频接口标准,主要用于数字视频信号的串行传输。它适用于高清(HD)和标准清晰度(SD)视频信号。

主要特点:
  • 数据格式:支持多种数据格式,包括4:2:2和4:4:4的色度采样格式。

  • 传输速率:规定了不同的传输速率,以适应不同的视频格式和分辨率。

  • 同步信号:包括帧同步(VSYNC)、行同步(HSYNC)和像素时钟(PCLK),确保视频信号的同步传输。

OV5640摄像头模块 

本文将使用OV5640摄像头模块,进行摄像头模块的一些基础操作。

OV5640摄像头模块基础介绍:

OV5640是一款由OmniVision Technologies(豪威科技)生产的CMOS(互补金属氧化物半导体)图像传感器。

  • OV5640是一款低电压、高性能的1/4英寸500万像素CMOS图像传感器,它提供了一个单芯片500万像素(2592x1944)相机的全部功能,使用了OmniBSI™技术,并且封装尺寸小。

  • OV5640有一个图像阵列,能够在5百万像素分辨率下以每秒最多15帧(fps)的速度运行,用户可以完全控制图像质量、格式化和输出数据传输。

  • 所有必需的图像处理功能,包括曝光控制、伽马、白平衡、色彩饱和度、色调控制、坏点像素消除、噪声消除等,都可以通过SCCB接口或嵌入式微控制器进行编程。

  • OV5640还包括一个压缩引擎,以提高处理能力。此外,豪威科技(Omnivision)图像传感器使用专有的传感器技术,通过减少或消除常见的光照/电气图像污染源,如固定模式噪声、拖影等,来提高图像质量,从而产生干净、完全稳定的彩色图像。

  • OV5640有一个嵌入式微控制器,可以与内部自动对焦引擎和可编程的通用I/O模块(GPIO)结合使用,以实现外部自动对焦控制。它还提供了一个内置的防抖引擎的防抖功能。

  • OV5640支持数字视频并行端口和串行MIPI端口。

主要特性:

  • 1.4微米 x 1.4微米像素,采用OmniBSI技术,提供高性能(高灵敏度、低串扰、低噪声、提高量子效率)

  • 1/4英寸的光学尺寸

  • 自动图像控制功能:自动曝光控制(AEC)、自动白平衡(AWB)、自动带通滤波器(ABF)、自动50/60赫兹亮度检测和自动黑电平校准(ABLC)

  • 可编程控制帧率、AEC/AGC 16区域大小/位置/权重控制、镜像和翻转、裁剪、窗口化和拼接

  • 图像质量控制:色彩饱和度、色调、伽马、锐度(边缘增强)、镜头校正、坏点像素消除和噪声消除

  • 支持输出格式:RAW RGB、RGB565/555/444、CCIR656、YUV422/420、YCbCr422和压缩

  • 支持视频或快照操作

  • 支持LED和闪光灯模式

  • 支持内部和外部帧同步,用于帧曝光模式

  • 支持水平和垂直子采样、合并

  • 支持最小化合并图像上的伪影

  • 支持数据压缩输出

  • 支持防抖功能

  • 标准串行SCCB接口

  • 数字视频端口(DVP)并行输出接口和双通道MIPI输出接口

  • 内置1.5V核心电源调节器

  • 可编程的I/O驱动能力,I/O三态配置能力

  • 支持黑太阳消除

  • 支持图像尺寸:500万像素,以及从500万像素缩放下来任意尺寸

  • 支持自动对焦控制(AFC)和内置AF VCM驱动器

  • 内置微控制器

  • 适用于模块尺寸为8.5 x 8.5 x <6mm,支持CSP和RW封装

 OV5640功能框图 

OV5640框图展示了从光信号捕捉到数字图像输出的整个过程,包括图像传感器核心、图像传感器处理器、图像输出接口、控制寄存器库、PLL、时序发生器、SCCB接口、微控制器和VCM。

图像传感器核心是基础部分,包含图像阵列,用于捕捉光线并转换为电信号。旁边有列采样/保持模块,保持信号稳定,行选择模块选择正在读取的行。50/60 Hz自动检测模块根据电源频率调整运行,减少闪烁。增益控制模块调整信号强度,确保图像亮度适中。信号经过放大器后,进入10位ADC,将模拟信号转换为数字信号。

  • 图像阵列(image array)

  • 列采样/保持(column sample/hold)

  • 行选择(row select)

  • 50/60赫兹自动检测(50/60 Hz auto detection)

  • 增益控制(gain control)

  • 放大器(AMP)

  • 10位模数转换器(10-bit ADC)

图像传感器处理器包含ISP、压缩引擎和格式器。ISP处理基本图像处理,如白平衡和锐化。压缩引擎压缩图像,减少存储空间或传输带宽。格式器将图像转换为标准格式,如JPEG或RAW。

  • 图像信号处理器(ISP)

  • 压缩引擎(compression engine)

  • 格式化器(formatter)

处理后的图像数据通过图像输出接口输出,包含FIFO缓冲器,确保数据流平滑。数据可以通过DVP或MIPI输出。

  • 先进先出缓冲器(FIFO)

  • 数字视频端口(DVP)

  • MIPI接口

底部的控制模块包括PLL,生成时钟信号,确保系统同步。时序发生器和系统控制逻辑管理操作时序,确保各部分协调工作。SCCB接口用于与外部设备通信,配置传感器设置。微控制器执行复杂任务,如自动对焦或场景识别。VCM控制镜头移动,用于自动对焦。

  • 锁相环(PLL)

  • 时序发生器和系统控制逻辑(timing generator and system control logic)

  • SCCB接口(SCCB interface)

  • 微控制器(micro controller)

  • 音圈电机(VCM)

输入/输出引脚,如XVCLK、PWDN、RESET、FREX等,用于控制和配置传感器功能。控制寄存器库存储配置设置,微控制器和SCCB接口访问这些寄存器。

  • 外部时钟信号输入(XVCLK)

  • 电源关闭信号(PWDN)

  • 复位信号(RESET)

  • 频率选择信号(FREX)

  • 通用输入输出引脚(GPIO[3:0])

  • 像素时钟信号(PCLK)

  • 水平参考信号(HREF)

  • 垂直同步信号(VSYNC)

  • 闪光灯控制信号(STROBE)

  • SCCB接口的时钟和数据线(SIOC/SIOD)

format and frame rate 格式和帧率

系统时钟控制 

OV5640 锁相环PLL允许输入时钟频率范围从6~27 MHz,最大VCO频率为800 MHz。MipiClk用于MIPI,SysClk用于图像信号处理(ISP)模块的内部时钟。通过将寄存器0x3039[7]设置为1,可以绕过PLL。

复位 

OV5640传感器包括一个RESETB引脚,当该引脚被拉低(接地)时,会强制执行完整的硬件复位。当发生硬件复位时,OV5640会清除所有寄存器并将它们重置为默认值。也可以通过SCCB接口设置寄存器0x3008[7]为高来启动复位。

即使包含了片上复位,上电时也需要手动应用硬复位。硬复位为低电平有效,设计为异步。复位脉冲宽度应大于或等于1毫秒。

OV5640输入/输出控制

OV5640的I/O端口方向和驱动能力可以通过寄存器调整。下表列出了I/O端口的驱动能力和方向控制寄存器。

SCCB接口协议

SCCB接口(Serial Camera Control Bus)是一种用于连接图像传感器和主控芯片之间的串行总线协议,由OmniVision公司开发,广泛应用于OV系列图像传感器。时序大部分兼容I2C协议,但在接收方式和应答方面有些许区别。

在 SCCB(Serial Camera Control Bus)协议中,从设备不会像 I2C 协议那样在接收到数据后立即发送应答信号(ACK/NACK)。相反,SCCB 协议使用一种称为 "Don't-Care" 位的机制来确认数据接收。

写操作

在写操作中,主设备发送数据后,第九位为 'Don't-Care' 位。从设备可以在这个位上发送任意电平,主设备不会检查这个位的状态,而是默认数据传输完成。

读操作

在读操作中,从设备发送数据后,第九位为 NA(Not Acknowledge)位,表示从设备不发送应答信号。主设备在接收到数据后,必须发送一个 NA 信号,表示数据传输完成。

SCCB 协议主要用于单次读写操作,不支持连续读操作。每次读操作都需要先发送停止信号,然后再发送起始信号。

通过SCCB接口,主控制器可以配置摄像头的各种参数,如曝光、白平衡、增益、色彩模式、分辨率、帧率等。在配置好摄像头参数后,SCCB接口可以用于图像数据的传输,摄像头将捕获的图像数据通过SCCB接口发送给主控制器。

 SCCB接口通常有3线串行总线,包括:

  • SCCB_E:芯片选择信号,0有效,1表示空闲(类似SPI的CS)。

  • SIO_C:时钟线,兼容I2C的SCL。

  • SIO_D:双向数据线,兼容I2C的SDA。

在一些缩减IO的封装器件中,SCCB接口只用到2条SIO_C和SIO_D,这种情况下SCCB_E信号在外部不可用

SCCB接口时序

SCCB控制寄存器

pixel array structure 像素阵列结构 

OV5640 传感器的图像阵列由 2624 列和 1964 行组成(5153536 像素)。
颜色滤镜以拜耳模式排列。主要颜色 BG/GR 阵列以行交替方式排列。
在 5153536 个像素中,5038848 个(2592×1944)为有效像素,可以输出。其余像素用于黑电平校准和插值。
传感器阵列设计基于场积分读出系统,采用逐行传输和电子快门的同步像素读出方案。

图像传感器阵列的剖面图:

 Binning模式

Binning模式通常用于降采样。在降采样过程中,输出数据时会周期性地丢弃信息。当Binning功能开启时,相邻像素的电压水平在发送到模数转换器(ADC)之前会被平均。如果Binning功能关闭,不输出的像素则会被简单地跳过。OV5640支持2x2、1x2和2x1的Binning模式。

下图展示了2x2 Binning,其中四个(2x2)相邻同色像素的电压水平在进入ADC之前会被平均。 在OV5640中,当处于垂直降采样格式时,垂直Binning会自动开启。

 

IMX6ull CSI(CMOS Sensor Interface

The CSI enables the chip to connect directly to external CMOS image sensors. CMOS
image sensors are separated into two classes, dumb and smart. Dumb sensors are those that support only traditional sensor timing (Vertical SYNC and Horizontal SYNC) and output only Bayer and statistics data, while smart sensors support CCIR656 video decoder formats and perform additional processing of the image (for example, image compression, image pre-filtering, and various data output formats).
CSI使芯片能够直接连接到外部CMOS图像传感器。CMOS图像传感器分为两类:普通型(dumb)和智能型(smart)。普通型传感器仅支持传统的传感器时序(垂直同步和水平同步),并且仅输出拜耳(Bayer)数据和统计信息数据;而智能型传感器支持CCIR656视频解码器格式,并且能够对图像进行额外处理(例如,图像压缩、图像预滤波以及各种数据输出格式)。
The capabilities of the CSI include:
• Configurable interface logic to support most commonly available CMOS sensors.
  • 可配置的接口逻辑,支持大多数常见的CMOS传感器

• Support for CCIR656 video interface as well as traditional sensor interface.
  • 支持CCIR656视频接口以及传统传感器接口

• 8-bit / 16-bit / 24-bit data port for YCbCr, YUV, or RGB data input.
  • 支持8位/16位/24位数据端口,用于输入YCbCr、YUV或RGB数据

• 8-bit / 10-bit / 16-bit data port for Bayer data input.
  • 支持8位/10位/16位数据端口,用于输入拜耳(Bayer)数据

• Full control of 8-bit/pixel, 10-bit/pixel or 16-bit / pixel data format to receive FIFO
packing.
  • 完全控制8位/像素、10位/像素或16位/像素数据格式,以实现接收FIFO(先进先出)打包

• 256 x 64 FIFO to store received image pixel data.
  • 256×64的FIFO用于存储接收到的图像像素数据

• Reveive FIFO overrun protection mechanism.
  • 接收FIFO溢出保护机制

• Embedded DMA controllers to transfer data from receive FIFO or statistic FIFO
through AHB bus.
  • 嵌入式DMA控制器,通过AHB总线从接收FIFO或统计FIFO传输数据

• Support 2D DMA transfer from the receive FIFO to the frame buffers in the external
memory.
  • 支持从接收FIFO到外部存储器中的帧缓冲区的二维DMA传输

• Support double bufferring two frames in the external memory.
  • 支持在外部存储器中双缓冲两帧图像

• Single interrupt source to interrupt controller from maskable interrupt sources: Start of Frame, End of Frame, Change of Field, FIFO full, FIFO overrun, DMA transfer
done, CCIR error and AHB bus response error.
  • 单一中断源,可从可屏蔽中断源向中断控制器发送中断信号:帧开始、帧结束、场变化、FIFO满、FIFO溢出、DMA传输完成、CCIR错误以及AHB总线响应错误

• Configurable master clock frequency output to sensor.
  • 可配置的传感器主时钟频率输出

• Statistic data generation for Auto Exposure (AE) and Auto White Balance (AWB)
control of the camera (only for Bayer data and 8-bit/pixel format).
  • 支持为相机的自动曝光(AE)和自动白平衡(AWB)控制生成统计数据(仅适用于拜耳数据和8位/像素格式)

• Supports simple deinterlacing of interlaced input
  • 支持对隔行输入信号进行简单的去隔行处理

CSI Clocks

Principles of Operation(工作原理) 

The CSI is designed to support generic sensor interface timing as well as CCIR656 video interface timing. Traditional CMOS sensors typically use VSYNC (SOF), HSYNC
(BLANK), and PIXCLK signals to output Bayer or YUV data. Smart CMOS sensors, that come with on-chip imaging processing, usually support video mode transfer. They use an embedded timing codec to replace the VSYNC and HSYNC signal. The timing codec is defined by the CCIR656 standard.
CSI(CMOS传感器接口)旨在支持通用传感器接口时序以及CCIR656视频接口时序。传统的CMOS传感器通常使用VSYNC(开始帧信号)、HSYNC(水平消隐信号)和PIXCLK(像素时钟信号)来输出拜耳(Bayer)或YUV数据。带有片上图像处理功能的智能CMOS传感器通常支持视频模式传输。它们使用嵌入式时序编解码器来替代VSYNC和HSYNC信号。该时序编解码器由CCIR656标准定义。
The CSI can support connection with the sensor as follows.
CSI可以按照以下方式支持与传感器的连接:
• To connect with one 8-bit sensor, the sensor data interface should connect to
CSI_DATA[9:2].
• To connect with one 10-bit sensor, the sensor data interface should connect to
CSI_DATA[9:0].
• To connect with one 16-bit sensor, the sensor data interface should connect to
CSI_DATA[15:0]
• To connect with one 24-bit sensor, connect either the video pass-through, TV
Decoder input, or the sensor data interface to CSI_DATA[23:0].
• To connect with two 8-bit sensors, the sensor data interfaces should connect to
CSI_DATA[7:0] and CSI_DATA[15:8].

Data Transfer with the Embedded DMA Controllers(数据传输与嵌入式DMA控制器)

The CSI has two embedded DMA controllers, one for the receive FIFO and the other for the statistic FIFO. It supports 2D DMA transfer from the receive FIFO to the frame buffers in the external memory and linear DMA transfer from the statistic FIFO.

CSI(CMOS传感器接口)包含两个嵌入式DMA(直接内存访问)控制器,一个用于接收FIFO(先进先出队列),另一个用于统计FIFO。它支持从接收FIFO到外部存储器中的帧缓冲区的二维DMA传输,以及从统计FIFO进行线性DMA传输。

为了将数据从接收FIFO传输到外部存储器,用户应设置存储传输数据的帧缓冲区的起始地址、帧缓冲区的参数以及来自传感器的图像参数。用户可以在外部存储器中拥有两个帧缓冲区。每个缓冲区将存储来自传感器的一帧图像。嵌入式DMA控制器将首先写入帧缓冲区1,然后是帧缓冲区2。这两个帧缓冲区将轮流被写入。起始地址应在CSIDMASA-FB1和CSIDMASA-FB2寄存器中对齐并设置。在CSIFBUF_PARA寄存器中,用户应设置帧缓冲区的步长,以显示在开始写入图像的下一行之前需要跳过多少。在CSIIMAG_PARA寄存器中,用户应设置来自传感器的图像的宽度和高度。在开始数据传输之前,还需要设置CSICR3寄存器中的RxFF_LEVEL和DMA_REQ_EN_RFF位。当接收FIFO中的数据数量达到触发级别时,将向嵌入式DMA控制器发送DMA请求,并将数据从接收FIFO读出并通过AHB总线写入外部帧缓冲区。传输的突发类型可以通过在CSICR2寄存器中设置DMA_BURST_TYPE_RFF位来设置为INCR4、INCR8和INCR16。当一帧图像的所有数据都传输完成后,CSISR寄存器中的DMA_TSF_DONE_FB1或DMA_TSF_DONE_FB2位将被设置,并且如果CSICR1寄存器中相应的使能位被设置,可以触发中断。CSICR3中的DMA_REFLASH_RFF位可以用来激活或重新启动嵌入式DMA控制器。

接收FIFO具有溢出保护机制,以防在数据传输过程中接收FIFO溢出。如果接收FIFO已满,并且在数据传输期间需要接收更多数据,则接收FIFO将不断被覆盖,接收FIFO中在溢出发生之前的128个字的数据将被丢弃;帧缓冲区中相应的128个字的存储空间将保留先前的值。 

要从统计FIFO向外部存储器传输数据,用户应设置存储传输数据的外部存储器的起始地址和总传输大小。起始地址和传输大小都应对齐,并应设置在CSIDMASA-STATFIFO和CSIDMATS-STATFIFO寄存器中。在开始数据传输之前,还需要设置CSICR3寄存器中的STATFF_LEVEL和DMA_REQ_EN_SFF位。当统计FIFO中的数据数量达到触发级别时,将向嵌入式DMA控制器发送DMA请求,并将数据从统计FIFO读出并通过AHB总线写入外部存储器。传输的突发类型可以通过在CSICR2寄存器中设置DMA_BURST_TYPE_SFF位来设置为INCR4、INCR8和INCR16。当所有预期的数据(由总传输大小定义)都传输完成后,CSISR寄存器中的DMA_TSF_DONE_SFF位将被设置,并且如果CSICR1寄存器中的SFF_DMA_DONE_INTEN被启用,可以触发中断。CSICR3中的DMA_REFLASH_SFF位可以用来激活或重新启动嵌入式DMA控制器。 

Data Packing Style (数据打包方式)

在图像捕获路径的不同阶段,由于端口大小不同,需要特别注意字节序(endianness)问题。为了在存储到FIFO之前灵活地打包图像数据,CSI模块可以通过使用CSI控制寄存器1(CSICR1)中的PACK_DIR位和SWAP16_EN位来交换数据字段。CSI模块通过配置CSI控制寄存器1(CSICR1)中的PIXEL_BIT位和CSI控制寄存器3(CSICR3)中的TWO_8BIT_SENSOR位,接受来自传感器的8位、10位或16位数据。输入数据根据PACK_DIR位的设置进行打包。打包后的数据根据SWAP16_EN位的设置存储在接收FIFO中。对于每像素10位的数据格式,每个像素通过在最高有效位后追加6个零位来扩展到16位。对于16位数据格式,数据路径可以是两个8位传感器的组合。一个传感器连接到CSI_DATA[7:0],另一个传感器连接到CSI_DATA[15:8]。

RGB565 Data 

RGB565 data is processed data from the image sensor, which can be put directly into the display buffer. The data is 16 bits wide. The data path is from CSI to memory to the display controller. On the sensor side, data must be transmitted as P0 first, followed by P1, and so on. For each pixel, whether the MSB or LSB is sent first depends on the endianness of the sensor. Data is 16 bits wide with the MSB labeled RG, and the LSB labeled GB. P0 is represented as RG0 and GB0.
RGB565数据是来自图像传感器的处理后的数据,可以直接放入显示缓冲区。数据宽度为16位。数据路径是从CSI到内存再到显示控制器。在传感器端,数据必须首先作为P0传输,然后是P1,依此类推。对于每个像素,是先发送最高有效位(MSB)还是最低有效位(LSB)取决于传感器的字节序。数据宽度为16位,最高有效位标记为RG,最低有效位标记为GB。P0表示为RG0和GB0。
CSI receives data in one of the following sequence:
• RG0, GB0, RG1, GB1, while RG0 comes out at time slot 0 (first data), and GB1
comes out at time slot 3 (last data)
• GB0, RG0, GB1, RG1
Using the first sequence as an example, and assuming the system is running in little
endian, the data is presented as:
• 8-bit data from sensor: RG0, GB0, RG1, GB1, …
• data before storage in the CSI RX FIFO (PACK_DIR bit = 1):
• data in CSI RX FIFO (SWAP16_EN bit enabled):
• transfer to system memory:
• 16-bit read by display controller: RG0GB0, RG1GB1

CSI接收数据的顺序如下:

  • RG0, GB0, RG1, GB1,其中RG0在时隙0(第一个数据)输出,GB1在时隙3(最后一个数据)输出

  • GB0, RG0, GB1, RG1

以第一个序列为例,并假设系统运行在小端模式下,数据表示为:

  • 来自传感器的8位数据:RG0, GB0, RG1, GB1,...

  • 存储在CSI接收FIFO之前的数据(PACK_DIR位=1):

  • CSI接收FIFO中的数据(启用SWAP16_EN位):

  • 传输到系统内存:

  • 显示控制器读取的16位数据:RG0GB0, RG1GB1

RGB888 Data 

This is another kind of processed data from image sensor, which can be used for further image processing directly. Each of the data consist of 8-bit Red, 8-bit Green, and 8-bit Blue data. An example of timing scheme is shown in the following figure.
这是另一种来自图像传感器的处理后的数据,可以直接用于进一步的图像处理。每组数据由8位红色、8位绿色和8位蓝色数据组成。

  

图 19-5RGB888数据格式在8位/周期下的时序图。在时序图中,每个像素的RGB数据在不同的时钟周期(PixClk)内传输。图中有两种格式:

  • 格式1:按照红(R)、绿(G)、蓝(B)的顺序传输,即先传输R0,然后是G0,最后是B0,接着是下一个像素的R1,G1,B1,以此类推。

  • 格式2:传输顺序与格式1相反,即先传输B0,然后是G0,最后是R0,接着是下一个像素的B1,G1,R1,以此类推。

每个周期传输3个字节(24位),分别对应一个像素的RGB值。

图 19-6RGB888数据格式在24位/周期下的时序图。在时序图中,每个周期传输一个完整的像素数据,包括红、绿、蓝三个分量。图中同样有两种格式:

  • 格式1:按照红绿蓝的顺序连续传输三个像素的数据,即R0G0B0、R1G1B1、R2G2B2,然后是R3G3B3、R4G4B4、R5G5B5,以此类推。

  • 格式2:传输顺序与格式1不同,即先传输蓝绿红的顺序,然后是下一个像素的B1G1R1,接着是B3G3R3、B5G5R5,然后是B2G2R2、B4G4R4,以此类推。

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐