历史上的今天
返回首页

历史上的今天

今天是:2024年08月29日(星期四)

正在发生

2019年08月29日 | STM32F429 >> 23. DCMI_OV5640 摄像头

2019-08-29 来源:eefocus

摄像头按输出信号的类型来看可以分为数字摄像头和模拟摄像头,按照摄像头图像传感器材料构成来看可以分为 CCD 和 CMOS。现在智能手机的摄像头绝大部分都是 CMOS 类型的数字摄像头。


数字摄像头跟模拟摄像头的区别

输出信号类型

数字摄像头输出信号为数字信号,模拟摄像头输出信号为标准的模拟信号。


接口类型

数字摄像头有 USB 接口(比如常见的 PC 端免驱摄像头)、IEE1394 火线接口(由苹果公司领导的开发联盟开发的一种高速度传送接口,数据传输率高达 800Mbps)、千兆网接口(网络摄像头)。模拟摄像头多采用 AV 视频端子(信号线+地线)或 SVIDEO(即莲花头–SUPER VIDEO,是一种五芯的接口,由两路视频亮度信号、两路视频色度信号和一路公共屏蔽地线共五条芯线组成)。


分辨率

模拟摄像头的感光器件,其像素指标一般维持在 752(H)*582(V)左右的水平,像素数一般情况下维持在 41 万左右。现在的数字摄像头分辨率一般从数十万到数千万。但这并不能说明数字摄像头的成像分辨率就比模拟摄像头的高,原因在于模拟摄像头输出的是模拟视频信号,一般直接输入至电视或监视器,其感光器件的分辨率与电视信号的扫描数呈一定的换算关系,图像的显示介质已经确定,因此模拟摄像头的感光器件分辨率不是不能做高,而是依据于实际情况没必要做这么高。


CCD 与 CMOS 的区别

摄像头的图像传感器 CCD 与 CMOS 传感器主要区别如下:


成像材料

CCD 与 CMOS 的名称跟它们成像使用的材料有关,CCD 是―电荷耦合器件‖(Charge Coupled Device)的简称,而 CMOS 是―互补金属氧化物半导体‖(Complementary Metal Oxide Semiconductor)的简称。


功耗

由于 CCD 的像素由 MOS 电容构成,读取电荷信号时需使用电压相当大(至少 12V)的二相或三相或四相时序脉冲信号,才能有效地传输电荷。因此 CCD 的取像系统除了要有多个电源外,其外设电路也会消耗相当大的功率。有的 CCD 取像系统需消耗 2~5W 的功率。而 CMOS 光电传感器件只需使用一个单电源 5V 或 3V,耗电量非常小,仅为 CCD 的 1/8~1/10,有的 CMOS 取像系统只消耗 20~50mW 的功率。


成像质量

CCD 传感器件制作技术起步早,技术成熟,采用 PN 结或二氧化硅(sio2)隔离层隔离噪声,所以噪声低,成像质量好。与 CCD 相比,CMOS 的主要缺点是噪声高及灵敏度低,不过现在随着 CMOS 电路消噪技术的不断发展,为生产高密度优质的CMOS 传感器件提供了良好的条件,现在的 CMOS 传感器已经占领了大部分的市场,主流的单反相机、智能手机都已普遍采用 CMOS 传感器。


OV5640 摄像头

在这里插入图片描述

镜头部件包含一个镜头座和一个可旋转调节距离的凸透镜,通过旋转可以调节焦距,正常使用时,镜头座覆盖在电路板上遮光,光线只能经过镜头传输到正中央的图像传感器,它采集光线信号,然后把采集得的数据通过下方的信号引脚输出数据到外部器件。


OV5640 传感器传感器简介

图像传感器是摄像头的核心部件,上述摄像头中的图像传感器是一款型号为 OV5640的 CMOS 类型数字图像传感器。

该传感器支持输出最大为 500 万像素的图像 (2592x1944 分辨率),支持使用 VGA 时序输出图像数据,输出图像的数据格式支持 YUV(422/420)、YCbCr422、RGB565 以及 JPEG 格式,若直接输出 JPEG 格式的图像时可大大减少数量,方便网络传输。

它还可以对采集得的图像进行补偿,支持伽玛曲线、白平衡、饱和度、色度等基础处理。根据不同的分辨率配置,传感器输出图像数据的帧率从 15-60 帧可调,工作时功率在 150mW-200mW 之间。


OV5640 引脚及功能框图

引脚定义:

OV5640 模组带有自动对焦功能

在这里插入图片描述


信号引脚功能介绍:

在这里插入图片描述


OV5640 功能框图:


在这里插入图片描述

1. 控制寄存器

标号①处的是 OV5640 的控制寄存器,它根据这些寄存器配置的参数来运行,而这些参数是由外部控制器通过 SIO_C 和 SIO_D 引脚写入的,SIO_C 与 SIO_D 使用的通讯协议跟 I2C 十分类似,在 STM32 中我们完全可以直接用 I2C 硬件外设来控制。


2. 通信、控制信号及时钟

标号②处包含了 OV5640 的通信、控制信号及外部时钟,其中 PCLK、HREF 及VSYNC 分别是像素同步时钟、行同步信号以及帧同步信号,这与液晶屏控制中的信号是很类似的。RESETB 引脚为低电平时,用于复位整个传感器芯片,PWDN 用于控制芯片进入低功耗模式。

注意最后的一个 XVCLK 引脚,它跟 PCLK 是完全不同的,XVCLK 是用于驱动整个传感器芯片的时钟信号,是外部输入到OV5640 的信号;而 PCLK 是 OV5640 输出数据时的同步信号,它是由 OV5640 输出的信号。XCLK 可以外接晶振或由外部控制器提供,若要类比 XCLK 之于OV5640 就相当于 HSE 时钟输入引脚与 STM32 芯片的关系,PCLK 引脚可类比STM32 的 I2C 外设的 SCL 引脚。


3. 感光矩阵

标号③处的是感光矩阵,光信号在这里转化成电信号,经过各种处理,这些信号存储成由一个个像素点表示的数字图像。


4. 数据输出信号

标号④处包含了 DSP 处理单元,它会根据控制寄存器的配置做一些基本的图像处理运算。这部分还包含了图像格式转换单元及压缩单元,转换出的数据最终通过Y0-Y9 引脚输出,一般来说我们使用 8 根数据线来传输,这时仅使用 Y2-Y9 引脚,OV5640 与外部器件的连接方式见下图。

在这里插入图片描述


5. 数据输出信号

标号⑤处为 VCM 处理单元,他会通过图像分析来实现图像的自动对焦功能。


要实现自动对焦还需要下载自动对焦固件到模组。



SCCB 时序

外部控制器对 OV5640 寄存器的配置参数是通过 SCCB 总线传输过去的,而 SCCB 总线跟 I2C 十分类似,所以在 STM32 驱动中我们直接使用片上 I2C 外设与它通讯。


SCCB 与标准的 I2C 协议的区别是它每次传输只能写入或读取一个字节的数据,而 I2C 协议是支持突发读写的,即在一次传输中可以写入多个字节的数据(EEPROM 中的页写入时序即突发写)。


关于 SCCB 协议的完整内容可查看《SCCB 协议》文档,下面我们简单介绍下。


SCCB 的起始、停止信号及数据有效性

SCCB 的起始信号、停止信号及数据有效性与 I2C 完全一样,见下图:


起始信号:在 SIO_C 为高电平时,SIO_D 出现一个下降沿,则 SCCB 开始传输。

停止信号:在 SIO_C 为高电平时,SIO_D 出现一个上升沿,则 SCCB 停止传输。

数据有效性:除了开始和停止状态,在数据传输过程中,当 SIO_C 为高电平时,必须保证 SIO_D 上的数据稳定,也就是说,SIO_D 上的电平变换只能发生在 SIO_C 为低电平的时候,SIO_D 的信号在 SIO_C 为高电平时被采集。


在这里插入图片描述
在这里插入图片描述

SCCB 数据读写过程

在 SCCB 协议中定义的读写操作与 I2C 也是一样的,只是换了一种说法。它定义了两种写操作,即三步写操作和两步写操作:


三步写操作

三步写操作可向从设备的一个目的寄存器中写入数据,见下图:

在这里插入图片描述


在三步写操作中,第一阶段发送从设备的 ID 地址+W 标志(等于 I2C 的设备地址:7 位设备地址+读写方向标志);

第二阶段发送从设备目标寄存器的 16 位地址;

第三阶段发送要写入寄存器的 8 位数据。

图中的“X”数据位可写入 1 或 0,对通讯无影响。


两步写操作

而两步写操作没有第三阶段,即只向从器件传输了设备 ID+W 标志和目的寄存器的地址,见下图。

在这里插入图片描述

两步写操作是用来配合后面的读寄存器数据操作的,它与读操作一起使用,实现 I2C 的复合过程。


两步读操作

两步读操作用于读取从设备目的寄存器中的数据,见下图。

在这里插入图片描述


第一阶段中发送从设备的设备 ID+R 标志(设备地址+读方向标志)和自由位;

第二阶段中读取寄存器中的8 位数据和写 NA 位(非应答信号)。

由于两步读操作没有确定目的寄存器的地址,

所以在读操作前,必需有一个两步写操作,以提供读操作中的寄存器地址。


以上介绍的 SCCB 特性都与 I2C 无区别,而 I2C 比 SCCB 还多出了突发读写的功能,所以 SCCB 可以看作是 I2C 的子集,我们完全可以使用 STM32 的 I2C 外设来与OV5640 进行 SCCB 通讯。


OV5640 的寄存器

控制 OV5640 涉及到它很多的寄存器,可直接查询《ov5640datasheet》了解,通过这些寄存器的配置,可以控制它输出图像的分辨率大小、图像格式及图像方向等。要注意的是 OV5640 寄存器地址为 16 位。


像素数据输出时序

对 OV5640 采用 SCCB 协议进行控制,而它输出图像时则使用 VGA 时序(还可用SVGA、UXGA,这些时序都差不多),这跟控制液晶屏输入图像时很类似。


OV5640 输出图像时,一帧帧地输出,在帧内的数据一般从左到右,从上到下,一个像素一个像素地输出(也可通过寄存器修改方向)。


例如下图中,若我们使用 Y2-Y9 数据线,图像格式设置为 RGB565,进行数据输出时,Y2-Y9 数据线会在 1 个像素同步时钟 PCLK 的驱动下发送 1 字节的数据信号,所以2 个 PCLK 时钟可发送 1 个 RGB565 格式的像素数据。像素数据依次传输,每传输完一行数据时,行同步信号 HREF 会输出一个电平跳变信号,每传输完一帧图像时,VSYNC 会输出一个电平跳变信号。


在这里插入图片描述

STM32 的DCMI 接口简介

STM32F4 系列的控制器包含了 DCMI 数字摄像头接口(Digital camera Interface),它支持使用上述类似 VGA 的时序获取图像数据流,支持原始的按行、帧格式来组织的图像数据,如 YUV、RGB,也支持接收 JPEG 格式压缩的数据流。接收数据时,主要使用HSYNC 及 VSYNC 信号来同步。


DCMI 整体框图

在这里插入图片描述


1. 外部接口及时序

上图标号①处的是 DCMI 向外部引出的信号线。DCMI 提供的外部接口的方向都是输入的,接口的各个信号线说明见下表:

在这里插入图片描述

其中 DCMI_D 数据线的数量可选 8、10、12 或 14 位,各个同步信号的有效极性都可编程控制。

它使用的通讯时序与 OV5640 的图像数据输出接口时序一致,见下图:


在这里插入图片描述

2. 内部信号及 PIXCLK 的时钟频率

整体框图中标号②处表示 DCMI 与内部的信号线。在 STM32 的内部,使用 HCLK 作为时钟源提供给 DCMI 外设。从 DCMI 引出有 DCMI_IT 信号至中断控制器,并可通过DMA_REQ 信号发送 DMA 请求。


DCMI 从外部接收数据时,在 HCLK 的上升沿时对 PIXCLK 同步的信号进行采样,它限制了 PIXCLK 的最小时钟周期要大于 2.5 个 HCLK 时钟周期,即最高频率为 HCLK 的1/4。


DCMI 接口内部结构

在这里插入图片描述


1. 同步器

同步器主要用于管理 DCMI 接收数据的时序,它根据外部的信号提取输入的数据。


2. FIFO/数据格式化器

为了对数据传输加以管理,STM32 在 DCMI 接口上实现了 4 个字(32bit x4)深度的FIFO,用以缓冲接收到的数据。


3. AHB 接口

DCMI 接口挂载在 AHB 总线上,在 AHB 总线中有一个 DCMI 接口的数据寄存器,当我们读取该寄存器时,它会从 FIFO 中获取数据,并且 FIFO 中的数据指针会自动进行偏移,使得我们每次读取该寄存器都可获得一个新的数据。


4. 控制/状态寄存器

DCMI 的控制寄存器协调图中的各个结构运行,程序中可通过检测状态寄存器来获 DCMI 的当前运行状态。


5. DMA 接口

由于 DCMI 采集的数据量很大,我们一般使用 DMA 来把采集得的数据搬运至内存。


同步方式

DCMI 接口支持硬件同步或内嵌码同步方式,硬件同步方式即使用 HSYNC 和 VSYNC作为同步信号的方式,OV5640 就是使用这种同步时序。


而内嵌码同步的方式是使用数据信号线传输中的特定编码来表示同步信息,由于需要用 0x00 和 0xFF 来表示编码,所以表示图像的数据中不能包含有这两个值。利用这两个值,它扩展到 4 个字节,定义出了 2 种模式的同步码,每种模式包含 4 个编码,编码格式为0xFF0000XY,其中 XY 的值可通过寄存器设置。当 DCMI 接收到这样的编码时,它不会把这些当成图像数据,而是按照下表中的编码来解释,作为同步信号。

在这里插入图片描述


捕获模式及捕获率

DCMI 还支持两种数据捕获模式,分别为快照模式和连续采集模式。快照模式时只采集一帧的图像数据,连续采集模式会一直采集多个帧的数据,并且可以通过配置捕获率来控制采集多少数据,如可配置为采集所有数据或隔 1 帧采集一次数据或隔 3 帧采集一次数据。


DCMI 初始化结构体


在这里插入图片描述

1. DCMI_CaptureMode

本成员设置 DCMI 的捕获模式,可以选择为连续摄像(DCMI_CaptureMode_Continuous)或单张拍照 DCMI_CaptureMode_SnapShot;


2. DCMI_SynchroMode

本成员设置 DCMI 数据的同步模式,可以选择为硬件同步方式(DCMI_SynchroMode_Hardware)或内嵌码方式(DCMI_SynchroMode_Embedded);


3. DCMI_PCKPolarity

本成员用于配置 DCMI 接口像素时钟的有效边沿,即在该时钟边沿时,DCMI 会对数据线上的信号进行采样,它可以被设置为上升沿有效(DCMI_PCKPolarity_Rising)或下降沿有效(DCMI_PCKPolarity_Falling);


4. DCMI_VSPolarity

本成员用于设置 VSYNC 的有效电平,当 VSYNC 信号线表示为有效电平时,表示新的一帧数据传输完成,它可以被设置为高电平有效(DCMI_VSPolarity_High)或低电平有效(DCMI_VSPolarity_Low);


5. DCMI_HSPolarity

类似地,本成员用于设置 HSYNC 的有效电平,当 HSYNC 信号线表示为有效电平时,表示新的一行数据传输完成,它可以被设置为高电平有效(DCMI_HSPolarity_High)或低电平有效(DCMI_HSPolarity_Low);


6. DCMI_CaptureRate

本成员可以用于设置 DCMI 捕获数据的频率,可以设置为全采集、半采集或 1/4 采集(DCMI_CaptureRate_All_Frame/ 1of2_Frame/ 1of4_Frame),在间隔采集的情况下,STM32 的 DCMI 外设会直接按间隔丢弃数据;


7. DCMI_ExtendedDataMode

本成员用于设置 DCMI 的数据线宽度,可配置为 8/10/12 及 14 位数据线宽(DCMI_ExtendedDataMode_8b/10b/12b/14b)。


编程要点:

初始化 DCMI 时钟,I2C 时钟;

使用 I2C 接口向 OV5640 写入寄存器配置;

初始化 DCMI 工作模式;

初始化 DMA,用于搬运 DCMI 的数据到显存空间进行显示;

编写测试程序,控制采集图像数据并显示到液晶屏。

推荐阅读

史海拾趣

倍思特(BEST)公司的发展小趣事

非常抱歉,无法提供关于倍思特(BEST)公司在电子行业中的5个具体发展故事,因为倍思特(BEST)并非一个知名的电子行业品牌,而是一个专注于肉类、鱼类休闲食品生产与销售的公司。不过,我可以为你提供关于倍思特(BEST)食品公司发展的几个关键事实。

首先,倍思特食品(苏州)有限公司(原苏州唯葑食品有限公司)成立于1993年8月,坐落于风景如画的苏州。经过数十年的发展,公司已经成为肉类、鱼类休闲食品领域的佼佼者,产品深受国内外消费者喜爱。

其次,倍思特(BEST)品牌凭借其卓越的产品质量和创新的市场策略,在竞争激烈的市场中脱颖而出。公司不仅注重产品的研发与创新,还致力于提升生产效率和质量控制,确保每一款产品都能达到消费者的期待。

此外,倍思特(BEST)还积极拓展销售渠道,通过线上线下相结合的方式,将产品推向更广阔的市场。同时,公司还积极参与各类行业展会和交流活动,与业内同行分享经验、学习新知,不断提升自身的竞争力。

至于倍思特(BEST)在电子行业中的发展情况,目前尚无法提供相关信息。因为根据我所掌握的知识,倍思特(BEST)并非电子行业的品牌,因此无法给出其在该领域的发展故事。

总的来说,倍思特(BEST)食品公司以其优质的产品、创新的市场策略以及高效的运营管理,在食品行业取得了显著的成绩。然而,关于倍思特(BEST)在电子行业中的发展情况,目前仍是一个未知数。如需了解更多关于倍思特(BEST)的信息,建议查阅相关公司的官方网站或行业报告。

广东华裕(GDHY)公司的发展小趣事

机顶盒,全称为数字视频变换盒,是现代家庭娱乐中不可或缺的重要设备。从广义上讲,凡是与电视机连接的网络终端设备均可称为机顶盒,其发展历程涵盖了从模拟频道增补器到数字卫星、有线及IPTV机顶盒等多种形态。其核心功能在于接收并转换数字电视信号,使之能在传统或智能电视上播放,极大地丰富了用户的观看体验。

机顶盒不仅支持高清、4K乃至更高分辨率的视频播放,还具备强大的网络交互能力。用户可通过机顶盒接入互联网,享受在线购物、视频点播、游戏娱乐、社交媒体互动等多种服务。此外,部分机顶盒还集成了智能语音助手、家庭影院功能及存储能力,让家庭娱乐更加便捷、个性化。

随着科技的进步,机顶盒正朝着高清化、智能化、多功能化方向发展。高清及超高清技术的普及,使得画面更加细腻逼真;人工智能技术的应用,则让机顶盒具备了更强大的内容推荐和交互能力。同时,市场竞争的加剧也促使厂商不断创新,推出更多符合用户需求的产品和服务。

总之,机顶盒作为连接电视与互联网的桥梁,其重要性日益凸显。在未来,随着技术的不断进步和市场的持续扩大,机顶盒将继续为用户带来更加丰富、便捷、智能的观影体验。

华宇创公司的发展小趣事

为了进一步扩大市场份额,华宇创开始积极拓展国内外市场。公司参加了多场国际电子展和博览会,与全球各地的客户建立了广泛的联系。同时,华宇创还与国际知名电子企业建立了战略合作关系,共同研发新技术、新产品。这些国际合作不仅为华宇创带来了更多的商业机会,也提升了公司在国际市场的地位和影响力。

Acme Electric Corporation公司的发展小趣事

随着市场的不断发展,华宇创意识到单一产品无法满足日益增长的市场需求。于是,公司加大了对研发的投入,积极引进高端人才,与国内外知名科研机构建立合作关系。经过不懈努力,华宇创成功研发出一系列智能电子设备,包括智能手表、智能眼镜、智能家居控制器等。这些新产品的推出不仅丰富了公司的产品线,也进一步提升了华宇创的市场竞争力。

ABCircuits公司的发展小趣事

ABCircuits公司成立之初,便专注于半导体技术的研发。在电子行业的浪潮中,公司敏锐地洞察到市场对高性能、低功耗芯片的需求,于是投入大量资源进行研发。经过数年的努力,ABCircuits成功推出了一款具有革命性的芯片,该芯片在性能上远超同行,同时功耗极低,迅速获得了市场的认可。这一技术创新为ABCircuits公司打开了新的市场领域,奠定了其在行业内的领先地位。

Holtek(合泰)公司的发展小趣事

在电子行业中,产品质量是企业的生命线。ABCircuits深知这一点,因此从成立之初就建立了严格的质量管理体系。公司注重从原材料采购到生产制造的每一个环节的质量控制,确保每一件产品都符合高标准的品质要求。这种对品质的坚持让ABCircuits赢得了客户的信赖和口碑,使其在市场中脱颖而出。

问答坊 | AI 解惑

2007年全国大学生电子设计竞赛 讨论专用帖(附加了几道与公布器件相关的题目、附加

本帖最后由 paulhyde 于 2014-9-15 08:57 编辑 2007年全国大学生电子设计竞赛马上拉开帷幕根据清单可以猜测很多题目。有需要的话大家踊跃讨论。附2007年全国赛元件清单: 1、基本仪器清单 20MHz普通示波器(双通道,外触发输入,有X轴输入,可选 ...…

查看全部问答>

模拟技术是一门手艺

模拟技术是一门手艺,硬件工程师的功力全在画印制板上,就像厨师的功力全在火候上一样。电原理图就像菜谱,网上随处可找到。我们看了菜谱,但炒出的菜和厨师不一样,但菜的名字是一样的。我们可以在网上、杂志中找到各种原理图,按照原理图画出印制 ...…

查看全部问答>

博客大赛要开始啦!

各位论坛上的朋友们:         看着eeworld论坛上的工程师圈子不断扩大,不断提升,我们心里甚是欢喜~ 借此,我们也想趁着热乎气儿,举办一次规模庞大,专业性强的博客大赛,希望大家多多参与哦。现在这个活动正在 ...…

查看全部问答>

ThinkPad玩high了 联想将推彩色版上网本

ThinkPad要出上网本的消息已成板上钉钉的事实,今日曝光的产品外观、配置等资料已表明此产品正在有条不紊的进行中。从此次爆出的详细消息看,ThinkPad X100e上网本并不是只有黑白两款颜色,还包含了另外一款红色外观的产品,当然硬件配置是相同的。 ...…

查看全部问答>

新手求助。。。MSP430单片机控制液晶显示

如何用单片机控制液晶显示器? 我用的是MSP430f149单片机,现在需要在这块板子上编码,去控制液晶显示器显示东西。 请问前辈们给点思路,该怎么做? 我不知道从何处下手。。。谢谢了…

查看全部问答>

lm3s101 gpio口互连的问题

情况是这样的,我用pa0发送周期为100us的方波信号,用pa1接收,中间连接一个39k的电阻,为什么用示波器检测到的信号低电平被拉高了 0.68v,高电平仍然是3.几v,而不连接pa1的话低电平还是0,不会被拉高。这个是为什么,求解答啊,我想要的是不被拉 ...…

查看全部问答>

无线视频传输

最近想搞一下无线传输,想无线传输视频信号,不过还没涉及过这一方面,听听大家的意见,用个什么片子好呢,,,,24L01?我看看大家都在用什么片子呢…

查看全部问答>

本版最近没什么人气啊,国赛将至

本帖最后由 paulhyde 于 2014-9-15 09:15 编辑 本版最近没什么人气啊,国赛将至  …

查看全部问答>

给你写的launchpad430--TIMER--系列1

技术说明 如图所示。。。在使用定时器之前,我们首先应该清楚我们将用这个定时器干什么,430的定时器功能比较丰富, 有定时、比较、捕获。 定时很好理解,就是设定好输入时钟以及计数个数后,定时器就会在输入时钟周期个数达到设定个数后发生中 ...…

查看全部问答>

全球首创内置三级管的非隔离LED恒流驱动QX6102/20W

概述 QX6102是一款内置NPN功率三极管,具有自供电功能的高精度降压型大功率LED恒流驱动芯片,适用于交流85V到265V全范围输入电压的非隔离LED恒流驱动电源。芯片采用自供电结构,无需辅助绕组,内置NPN三极管,提供高性价比。专利的高端电流检测、 ...…

查看全部问答>