OV7725之AL422B-FIFO及摄像头的驱动原理

article/2025/9/13 20:14:56

今日入手了一块正点原子家OV7725摄像头模块,这是一篇关于模块内部的AL422B-FIFO芯片的学习笔记。学习资料为野火家的相关模块视频教程。链接如下:【单片机】野火STM32F103教学视频 (配套霸道/指南者/MINI)【全】(刘火良老师出品) (无字幕)_哔哩哔哩_bilibili

STM32F4系列的控制器主频高、一般会扩展外部SRAM、SDRAM等存储器。且具有DCMI外设,故可以与OV7725直接进行硬件通讯,速度更快。

而STM32F1系列的控制器一般主频较低、为节省成本可能不扩展SRAM存储器,而且不具有DCMI外设,难以直接接收和存储OV7725图像传感器输出的数据。

那么为何需要扩展 FIFO 呢?我们举例进行说明:
        OV7725能够设置的分辨率有 240*320 或 640*320 ,假设为 240*320;

        则一帧图像占的字节数为:240*320*2(一个像素占两字节) = 153600;

        153600/1024 = 150.0 KB ;

        然而我所使用的STM32F1ZET6的内部SRAM仅为 64KB,连一帧的图像都存储不了;

        所以在扩展了FIFO后能够利用FIFO缓存数据图像,stm32再慢慢提取处理数据。

AL422B的容量大小为393216字节,至少能够缓存两帧 240*320 的图像。但如果选择分辨率为 640*320 的话, 640*320*2 = 409600 > 393216,也就是说FIFO连一帧图像数据也缓存不了,这时候需要OV7725一边往FIFO写入数据,stm32一边从FIFO读出来,确保在OV7725覆盖旧数据前,stm32端已经把这部分数据读取出来了。

AL422B芯片引脚图和功能图:

AL422B芯片引脚图

 

管脚名称管脚类型

管脚描述

DI [0:7]输入数据输入引脚
WCK输入数据输入同步时钟
/WE输入写使能信号,低电平有效
/WRST输入写指针复位信号,低电平有效
DO [0:7]输出数据输出引脚
RCK输入数据输出同步时钟
/RE输入读使能信号,低电平有效
/RRST输入读指针复位信号,低电平有效
/OE输入数据输出使能,低电平有效
TST输入测试引脚,实际使用时设置为低电平

                        

由于AL422B支持同时写入和读出数据,所以它的输入和输出的控制信号线都是互相独立的。写入和读出数据的时序类似,跟VGA的像素输出时序一致,AL422B读写时序介绍如下:

写时序

 

读时序

        FIFO的读时序类似,不过读使能由两个引脚共同控制,即OE和RE引脚均为低电平时,输出处于使能状态,随着读时钟RCK的运转,在数据输出管脚 DO[0:7] 就会按地址递增的方式输出数据。

摄像头的驱动原理

        OV7725摄像头模块中包含有FIFO,所以外部控制器驱动摄像头时,需要协调好FIFO与OV7725传感器的关系,下面配合摄像头的原理图介绍驱动原理。

        原理图主要分为外部引出接口、OV7725及FIFO部分。

OV7725

 

AL422B

 

引出接口
引出的引脚功能说明

 

XCLK外接晶振

 

摄像头控制过程图

整个摄像头的采集过程:
摄像头本身有个OV7725传感器,背面有FIFO。
假如说OV7725跟stm32直接相连的话,由于OV7725输出的时钟很快,比24hz还高,超过stm32读取的速度。所以我们不希望这样直接读取7725的内容,而且32的sram空间不够大,根本无法完整地接收一帧图像。
所以stm32利用fifo。stm32通过读取ov7725的vsync信号,当出现vsync信号的时候,即7725输出了一帧,那32就让7725把ov7725的数据输出来的图像写入到FIFO(即这个时候控制FIFO去使能)(即图片中的"允许ov7725允许向fifo写入数据")。当检测到第二次vsync的时候,就表示一帧的图像结束,AL422B中存储了一帧的图像数据。
那么stm32就控制WE引脚输出高电平,即fifo不能写入(比前能写入状态是因为32控制WE为低电平)。这样子ov7725输出的图像数据就不能写入fifo了。ov7725的图像数据是一直在输出的,所以我们通过控制WE来控制fifo是否接受数据。

如图所示,WEN和HREF通过与非门对WE进行控制。只有WEN、HREF都为高电平时,WE才为低电平(有效),才能写入数据到FIFO。
当我们禁止了fifo接受图像数据时,stm32就赶紧地从fifo把刚刚缓存的那帧图像读回来。但!刚刚又有提及stm32的sram没法完全地缓存一帧图像,但是因为图像数据已经缓存在fifo内了,我们可以慢慢来读,也就没有必要一次性读一帧了,stm32可以自己控制fifo的时钟(RCK)慢慢地读回来,可以把速度调到32可以接收的速度去读取(而不是像7725那样速度快到32都来不及读取)。
由于sram太小,我们可以一行一行地读。即240/320×2=480/640字节,这对32来说是肯定可以接受的。那么我们可以这样处理(处理方法之一而已):如果我们想要直接把数据显示在液晶屏上,那我们可以直接把这一行数据通过32的fsmc传给液晶屏的ILI9341,那液晶屏也就可以一行一行地显示出来。
当32处理完一帧数据之后,又重复图片中的步骤继续传输!

 


http://chatgpt.dhexx.cn/article/VPVghiBb.shtml

相关文章

FPGA:ov7725摄像头通过VGA/HDMI显示RGB565格式的图像

前言 VGA显示模式:分辨率为640*480,刷新速率为60hz ov7725输出格式:RGB565 ov7725摄像头分辨率:640480 ov7725输出时序:VGA时序 需求:处理ov7725传输到FPGA的图像,经过图像处理后,再…

CMOS图像传感器OV7725数据手册

下载地址: 阿里云盘分享https://www.aliyundrive.com/s/RuxT3cpHpiK

OV7725摄像头的彩色图像采集原理与液晶显示《一》

前言: 摄像头的工作原理大致为:景物通过镜头(LENS)生成的光学图像投射到图像传感器表面上,然后转为电信号,经过A/D[1] (模数转换)转换后变为数字图像信号,再送到数字信号处理芯片(DSP)中加工处理,再传输给…

学习笔记——STM32摄像头OV7725(二)

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

ov7725摄像头--图像中间亮四周暗

使用OV7725摄像头采集图像进行商品识别,uvc调试过程中发现图像中间亮四周暗; 网上找原因,说是lens 的CRA 和 sensor的CRA不匹配;可以通过矫正透镜改进; 查看手册,lens correction部分;果然有这…

STM32F103实现OV7725拍照存储为BMP位图

1.首先需要我们定义一下BMP的数据结构,需要定义几个结构体类型:分别为:BITMAPINFOHEADER(BMP的信息头)、BITMAPFILEHEADER(BMP文件的信息头)、RGBQUAD(彩色表,存放RGB565…

OV7725摄像头模块SCCB通信

学习这款摄像头,首先是要了解SCCB通信协议 SCCB通信协议 这个协议与IIC通信协议很想,但是存在一点区别,如果想要更好了解这个协议,可以先学习一下IIC协议,这个协议讲解网上资源很全。 首先介绍一下这个协议&#xff0…

【一、视频处理】FPGA驱动OV7725摄像头模块

使用的模块是正点原子的ov7725不带fifo的摄像头,开发板是正点原子的开拓者。 一、SCCB协议与IIC协议的不同 摄像头采用的是SCCB协议,这个协议与I2C协议很像,但是有细微的区别。差别在于 SCCB传输协议中,第9位为不必关心位&#…

FPGA 20个例程篇:19.OV7725摄像头实时采集送HDMI显示(三)

第七章 实战项目提升,完善简历 19.OV7725摄像头实时采集送HDMI显示(三) 在详细介绍过OV7725 CMOS Sensor的相关背景知识和如何初始化其内部寄存器达到输出预期视频流的目的后,就到了该例程的核心内容即把OV7725输出的视频流预先缓…

OV7725的帧率和PCLK寄存器设置

一、OV7725的PCLK的改变和以下几个寄存器有关: 1:OX0D(COM4); ------------------------------------------------------------------------------------------------------------------ 0X0D COM4 41 …

手把手教你写Ov7725摄像头数据采集模块(带Verilog代码)

上一节咱们学习了OV7725的VGA传输协议,对于数据传输的特点有了初步了解,这篇博客主要目的在于使用Verilog实现一个OV7725摄像头的数据采集模块,与咱们这个模块对接的是后一级的SDRAM存储器,其将作为数据的缓存仓库,以便…

STM32+ov7725+ESP8266实现无线图传-完成上位机图像显示

一、需求 stm32f407探索者开发板和STM32F103ZET6战舰开发板。接正点原子ov5640、OV7725、OV2640摄像头,通过esp8266Wi-Fi模块(透传模式)将摄像头采集到的rgb565格式图片通过tcp/ip协议上传到上位机显示。 二、设计思路 【1】使用QT开发上位机,建立TCP服务器,接收ESP8266…

FPGA 20个例程篇:19.OV7725摄像头实时采集送HDMI显示(二)

第七章 实战项目提升,完善简历 19.OV7725摄像头实时采集送HDMI显示(二) 在正式介绍OV7725 CMOS Sensor视频采集前,首先需要去详细说明OV7725的寄存器配置接口,这里有OmniVision公司推出的官方手册 “OV7725_software_…

OV7725寄存器配置

OV7725寄存器配置(为了替换NT99141研究了很长一段时间) 部分参考链接: OV7725 电器特性和时序图:https://www.cnblogs.com/raymon-tec/p/5087088.html OV7725摄像头的彩色图像采集原理与液晶显示(有必要了解框图):htt…

基于STM32的OV7725摄像头拍照实验

平台:STM32ZET6(核心板)ST-LINK/V2SD卡USB串口线鹰眼OV7725摄像头(注意,为了减少摄像头连线的麻烦,建议初学者选取单片机时选用带有摄像头接口的板子) 工程介绍:需要移植FatFs文件系…

OV7725鹰眼摄像头

OV7725鹰眼摄像头如何使用? 目前的ov7725鹰眼摄像头,基本上用的都是山外的库,所以今天我们主要根据山外的库,基于k60芯片,给大家具体的讲解。 1.摄像头初始化 首先是摄像头的第一步就是初始化,这个我们直…

OV7725摄像头图像采集基础知识

目前FPGA用于图像采集 传输 处理 显示应用越来越多,主要原因是图像处理领域的火热以及FPGA强大的并行处理能力。本文以OV7725为例,对摄像头使用方面的基础知识做个小的总结,为后续做个铺垫。 XCLK:工作时钟输入,由主控器产生&…

FPGA--OV7725摄像头采集与VGA显示实验--1--OV7725使用与驱动协议

目录 前言 OV7725引脚及功能框图 参数指标 引脚 功能框图 SCCB时序及读写操作 SCCB时序特点 读写实现 OV7725寄存器常用配置参数 前言 摄像头采集是图像处理的第一步,本章节分为多部分,旨在让大家学会如何使用OV7725采集图像,并且…

【FPGA的基础快速入门22-------OV7725摄像头模块】

OV7725摄像头模块 OV7725是Omni Vision(豪威科技)公司生产的CMOS图像传感器,该传感器功耗低、可靠性高以及采集速率快,主要应用在玩具、安防监控、电脑多媒体等领域。 OV7725感光阵列达到640*480,能实现最快60fps VGA…

STM32 OV7725 传感器

目录 OV7725 传感器1、选择输出格式2、选择输出分辨率3、帧率调整4、夜间模式5、消除光带6、白平衡7、缺陷像素矫正8、黑电平矫正9、视频模式10、数字缩减 OV7725 函数1、光模式2、颜色饱和度3、亮度4、对比度5、特效 OV7725 设置参考 OV7725 传感器 OV7725摄像机™ 图像传感器…