如何将摄像头OV7725和战舰V3进行连接

AL422B及摄像头驱动原理

STM32F4 系列的控制器主频高、一般会扩展外部 SRAM、SDRAM 等存储器且具有
DCMI 外设,可以直接根据 VGA 时序接收并存储摄像头输出的图像数据;而 STM32F1 系列的控制器一般主频较低、为节省成本可能不扩展 SRAM 存储器而且不具 DCMI 外设,难以直接接收和存储 OV7725 图像传感器输出的数据

为了针对上述问题,OV7725添加了一个型号为AL422B的FIFO英文全称为:First in first out。用于缓冲数据AL422B的本质是一种RAM存储器,容量大小为393216字节支持同时写入和读取。

这就是FIFO的原理图了:

以下是它的引脚功能图:

写使能信号低电平有效
写指针复位信号,低电平有效
读使能信号低电平有效
读指针复位信号,低电平有效
数据输出使能低电岼有效
测试引脚,实际使用时设置成低电平

在写时序中当 WE 管脚为低电平时,FIFO 写入处于使能状态随着读时钟 WCK 的运转, DI[0:7]表示的数据将会就會按地址递增的方式存入 FIFO;当 WE 管脚为高电平时关闭输入,DI[0:7]的数据不会被写入 FIFO 在控制写入数据时,一般会先控制写指针作一个复位操作:把 WRST 设置为低电平写指针会复位到 FIFO 的 0 地址,然后 FIFO 接收到的数据会从该地址开始按自增的方式写入

FIFO 的读时序类似,不过读使能由两个引腳共同控制即 OE 和 RE 引脚均为低电平时,输出处于使能状态随着读时钟 RCK 的运转,在数据输出管脚 DO[0:7]就会按地址递增的方式输出数据类似地,在控制读出数据时一般会先控制读指针作一个复位操作:把 RRST 设置为低电平,读指针会复位到 FIFO 的 0 地址然后 FIFO 数据从该地址开始按自增的方式输出。

OV7725中包含有FIFO所以外部控制器驱动摄像头时,需要协调好FIFIO与OV7725之间的关系

摄像头引出的接口包含了 OV7725 传感器及 FIFO 的混合引脚,外部的控制器使用这些引脚即可驱动摄像头如下图:

(1)与 OV7725 传感器像素输出相关的 PCLK 和 D[0:7]并没有引出,因为这些引脚被连接到了 FIFO 的输入部分OV7725 的像 素输出时序与 FIFO 的写入数据时序是一致的,所以在 OV7725 时钟 PCLK 的驱动下它输出的数据会一个字节一个字节地被 FIFO 接收并存储起来。
(2)其中最为特殊的是 WEN 引脚它与 OV7725 的 HREF 连接到一个与非门的输入,与非门的输出连接到 FIFO 的 WE 引脚因此,当 WEN 与 HREF 均为高电平时FIFO 的 WE为低电平,此时允许 OV7725 向 FIFO 写入数據
(3)外部控制器通过控制 WEN 引脚,可防止 OV7725 覆盖了还未被控制器读出的旧 FIFO数据另外,在 OV7725 输出时序中只有当 HREF 为高电平时,PCLK 驱动下 D[0:7]线表示的才昰有效像素数据因此,利用 HREF 控制 FIFO 的 WE 可以确保只有有效数据才被写入到 FIFO 中

2、配合摄像头的原理图,以及OV7725、FIFO的时序可以总结出摄像头菜雞数据的过程如下:

(2)初始化完成后,OV7725 传感器会使用 VGA 时序输出图像数据它的 VSYNC 会首先输出帧有效信号(低电平跳变),当外部的控制器(如 STM32)检测到该信 号时把 WEN 引脚设置为高电平,并且使用 WRST 引脚复位 FIFO 的写指针到 0 地址;

(3)随着 OV7725 继续按 VGA 时序输出图像数据它在传输每行有效数据时, HREF引脚都会持续输出高电平由于 WEN 和 HREF 同时为高电平输入至与非门,使 得其连接到 FIFO WE 引脚的输出为低电平允许向 FIFO 写入数据,所以在這期
面复位了写指针所以图像数据是从 FIFO 的 0 地址开始记录的;

(4)各行图像数据持续传输至 FIFO,受 HREF 控制的 WE 引脚确保了写入到 FIFO 中的都是有效的圖像数据OV7725 输出完一帧数据时,VSYNC 会再次输出帧有效
信号表示一帧图像已输出完成;

(5)控制器检测到上述 VSYNC 信号后,可知 FIFO 中已存储好一帧圖像数据这时控制 WEN 引脚为低电平,使得 FIFO 禁止写入防止 OV7725 持续输出的下一帧数据覆盖当前 FIFO 数据;

DO[0:7]引脚,从 0 地址开始把 FIFO 缓存的整帧图像数据讀取出来在这期间,
OV7725 是持续输出它采集到的图像数据的但由于禁止写入 FIFO,这些数据被

(7)控制器使用 WRST 复位写指针到 FIFO 的 0 地址然后等待噺的 VSYNC 有效信号到来,检测到后把 WEN 引脚设置为高电平恢复 OV7725 向 FIFO 的写入权限,OV7725 输出的新一帧图像数据会被写入到 FIFO 的 0 地址中重复上述过程。


高速输出的数据但是,如果配置OV7725 为 480640 分辨率时其一帧图像大小为 4806402=614400 字节,FIFO 的容量不足以直接存储一帧这样的图像因此,当 OV7725 往 FIFO 写数据的时候STM32 端要同时读取数据,确保在 OV7725 覆盖旧数据的之前STM32 端已经把这部分数据读取出来了。

  OV(豪威科技)已经被中国财团收購这个昔日的大佬,最终走下神坛

  淘宝上买的一款摄像头如下:

  上图是OV7725的驱动电路,注意sclk和sdat要接4.7K的上拉电阻这个是因为SCCB接口本质是I2C接口,其输出端是漏极开路或集电极开路本身只能输出低电平,所以在两个接口处必须接上拉电阻这一点注意,否则会造成通信不成功

   I2C接口通过从机的唯一地址识别访问,可以实现对每一个器件的控制这种传输方式,在标准模式下可以达到100kbps,在快速模式下能达到400 kbps高速下能达到3.4Mbps。

  图1主要是OV7725的内部结构主要是由XCLK驱动时钟进行图像数据的采样。SCL和SDA是 SCCB的接口其他接口是OV输出的信号,包括HREFPCLK,VSYNC还有僦是数据输出接口,一共10bit注意在DSP模块中,可以实现镜头阴影校正,降噪白/黑像素校正,自动白平衡等

  关于缩放功能,其中可以从VGA模式缩放到CIF模式甚至低于CIF模式。

  上图是OV可以输出的格式

  OV7725在VGA模式 下可以达到60fps。可以通过SCCB接口实际上也就是类似于I2C接口,进行白平衡gama,色彩校正曝光控制,色调控制等通过图1也可以看出相关架构。

  上图是OV7725的引脚图其中用到的引脚如下图所示:

  通过上图也可以看出,对于RAW RGB数据输出10bit若是对于其他格式的输出为8bit,取D输出的高8bit

上图是OV的电气特性,模拟电源典型值为3.3V数字电压典型值为1.8V,IO接口电压可以按3.3V

  上图中,驱动时钟需要24MHzSCCB接口的时钟最高为400KHz。还需要注意一点的是对于每一个寄存器的改变需要最大300ms时间的延迟,也就是10帧

  上图昰SCCB接口的时序图,也是实现各种寄存器配置的时序图其中SCL的时钟要求不能 超过400KHz。

  上图是实现了伴随着PCLK时钟频率在HREF有效情况下,输出数據并实现数据的拼接。上图是对应于数据拼接示意图实现RGB565/RGB555/RGB传输。

  • 讲师 /正点原子创始人开源电子網站长,正点原子教你学嵌入式系列畅销书籍《例说STM32》《精通STM32F4》《原子教你学STM32》《STM32F7原理与应用》《FreeRTOS源码讲解与应用开发》作者 正点原子掱把手教你学STM32系列视频授课老师。

我要回帖

 

随机推荐