XILINX FPGA OV5640 摄像头驱动(一)

news2024/9/22 15:24:49

影像行业是一个值得深耕的方向,废话不多说

先看输入和输出

输入是光照,输出是光照的数字信号
在这里插入图片描述
image area:说的是感光矩阵,CMOS图像传感器的最核心部分,接收光照产生电信号的部分。决定了图像质量的好坏
矩阵就会行列,就会有行列相关的控制部分。colcmn、rom

AMP:是一个放大器,放大来自感光矩阵的模拟信号。感光矩阵的信号是模拟的所以也会同比例的放大噪声信号。AMP是一把双刃剑,放大的信号的同时会引入跟多的噪声,降低信噪比。信噪比是图像传感器永恒的主题,几乎所有的优化都是围绕信噪比。

10-BIT ADC:模拟数字转换器,经过AMP放大的模拟信号通过ADC转换为数字信号。数字信号后的数据称为RAW,每个像素的细节呈现和ADC深度关系最大。

到这里影像传感器的原始信号采集已经完成,通过引脚接口输送给外部器件进行图像数据处理即可。但是在OV5640 上额外的集成了一些附加功能

ISP:附加模块,高度定制化的图像处理器,使用各种寄存器控制图像参数处理ADC的RAW数据。
能够提供相当多的图像处理功能。这样做的目的是省去了后端图像处理设备的开销,OV5640可以直接提供可供使用的图像。
打一个比方,我想吃烧鸭,那么我去菜场买一只屠宰好的鸭子买上配菜调料回家花几个小时做一盘烧鸭。屠宰好的鸭子就是RAW。最后盘子里面的烧鸭是最后要的图像。烹饪的过程就是图像处理。当然,我可以直接去卤味店买一只烧鸭,多省事。这个额外的ISP就是卤味店做的事情。这样就相对好理解这个ISP的作用。
ISP包括图像处理压缩,格式转换。
FIFO:这部分也是卤味店的工作,提供一个缓存储存数据。
接口:DVP/MIMP。特定的接口,用于传输影像数据。

下面看一下接口
XVCLK : H11 XVCLK input system input clock
系统时钟输入引脚, 图像传感器作为一个芯片就会有时钟输入。就像MCU,SOC的晶振输入一样。
PLL主要是把XVCLK输入的时钟变成内部需要的频率。

PWND:D1 PWDN input power down (active high with internal pull-down resistor)
高有效(内部接了下拉电阻)。有效的时候sensor出于power down状态

RESETB :E2 RESETB input reset (active low with internal pull-up resistor)

FREX :F2 FREX I/O frame exposure / mechanical shutter
所有图像传感器上的像素需要打开时间窗口才能接受光照,就像把杯子的盖打开才能注水到杯子里面。
这个信号控制所有像素的感光时间窗口。也就是一帧FRAME。

PCLK : I1 PCLK I/O DVP PCLK output
DVP接口数据传输的同步时钟。

HREF ,VSYNC :详细看DVP时序。

SICO,SIDO : OV公司自己的控制命令发送总线和IIC几乎一样。

整个框图部分到此结束,传感器是一个很复杂的器件,对之抱有敬畏之心。

OV5650 是一个带有ISP的图像传感器,大部分接口都通过寄存器的方式开放出来。所以要使用自带ISP免不了去看那庞大的寄存器设置。

DVP时序
在这里插入图片描述
在这里插入图片描述
DVP 时序起始也很简单,如果接触过VAG,LCD,HDMI类似图像显示驱动,基本上看一眼就能知道怎么回事。

VSYNC:帧同步信号。表示一副完成的图像传输开始和结束。
HSYNC:行同步信号,表示一帧图像当中一行的数据传输开始和结束。
HREF :表示数据传输有效。
D][9:0] :数据传输线。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/177118.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MyBatisPlus笔记

一、MyBatisPlus概述 MyBatisPlus(简称 MP)是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 MyBatis-Plus可以节省我们大量工作时间,所有的CRUD代码它都可以自动化完成&…

leetcode1143 最长公共子序列

题目 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(…

因果诊断原理

因果分析在近十来年逐渐倍受关注,其提供了解释因子间因果性的定量分析工具,广泛用于数据分析领域,同时也就用决策分析、作用预估等反事实因果推理中。本文首先对比了因果性和相关性的关系,之后确定因果关系的基本方法,…

博客搭建教程1-Archlinux环境配置

文章目录1 前言2 archlinux镜像下载3 archlinux安装1 前言 这个教程主要讲解linux环境下博客的搭建,这里的linux系统选择archlinux,博客的框架基于hexo框架。 参考博客: 1、ArchLinux安装教程 2、Archlinux2022年7月镜像 手把手安装教程 UE…

MySQL进阶——存储过程

MySQL 存储过程 1、简介 大多数 SQL 语句都是针对一个或多个表的单条语句。并非所有的操作都那么简单。经常会有一个完整的操作需要多条语句才能完成。 存储过程简单来说,就是为以后的使用而保存的一条或多条 MySQL 语句的集合。可将其视为批处理文件。虽然他们的…

【Spring(八)】带你打通Spring的注解开发

文章目录注解开发注解开发定义bean纯注解开发注解开发bean作用范围与生命周期管理注解开发依赖注入注解开发管理第三方bean注解开发实现为第三方bean注入资源总结注解开发 Spring的配置我们已经告一段落了,那接下来我们就要发挥Spring的强项了:简化开发&…

MySQL —— 数据库基础

目录 一、数据库的基本概念 1. 什么是数据库 2. 主流的数据库 二、基本使用 1. 连接服务器 2. 服务器管理 3. 服务器、数据库、表关系 4. 使用案例 5. 数据库的存储逻辑 三、MySQL架构 四、SQL分类 五、存储引擎 1. 存储引擎 2. 查看存储引擎 3. 存储引擎对比 …

Elasticsearch 这篇还不够吗

系列文章目录 文章目录系列文章目录一、概述1. ES 的基本概念2. ES 和关系型数据库的对比二、环境准备1. linux 下单机安装三、入门操作1. 创建索引2. 写入文档3. 根据id搜索文档4. 根据一般字段搜索文档5. 根据文本字段搜索文档四、ES 客户端实战1. Spring Data Elasticsearch…

学习shell与shell编程 vi与vim

Linux配置文件都是以ASCII的纯文本形式存在。 为什么学习vi 1)UnixLike系统都会内置vi文本编辑器,其他的文本编辑器则不一定存在 2)许多软件的编辑接口都会主动调用vi 3)vi具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性 4)程序简单&#…

webgl纹理贴图机制

文章目录前言纹理图片大小规范纹理坐标系统贴图流程JavaScript部分齐次坐标—uv坐标数据准备加载外部纹理图像纹理配置加载着色器部分顶点着色器片元着色器完整示例使用多张纹理着色器接受两个纹理单元封装纹理配置赋值函数完整示例总结前言 在计算机图形学中,为了…

HTML+CSS+JS制作炫酷【烟花特效】

文章目录制作炫酷烟花特效一、普通烟花(分散形)HTML代码CSS代码JS代码二、圆形烟花HTML代码CSS代码JS代码三、爱心形烟花HTML代码CSS代码JS代码四、源码获取在线下载制作炫酷烟花特效 💡本篇内容使用htmlcssjs制作鼠标点击出现烟花效果,分别介绍了分散型…

python-测试代码

1. 测试函数get_name.pydef combination(first, last):将姓名组合在一起name first lastreturn name.title()hello_world.pyfrom get_name import combinationprint("Enter q to quit!") while True:first input(Please input your first name: )if first q:b…

理光Aficio MP C2500扫描到文件夹设置方法

首先在需要接收扫描文件的电脑上设置共享文件夹。 注: (1)文件夹的名字最好简单一点,比如:scan、123等等; (2)文件夹的共享权限最好能设置为最大(WindowsXP、Windows200…

Future、CompletableFuture概述

1.同步和异步 (1)同步:需要等待结果返回,才能继续运行 (2)异步:不需要等待结果返回,就能继续运行 (3)异步设计:多线程可以让方法执行变为异步(比…

第四章必备前端基础知识-第二节3:CSS盒模型和浮动

文章目录一:盒模型(1)border(2)padding(3)margin二:flex布局一:盒模型 盒模型:在HTML中,每个标签(或元素)相当于是一个盒…

Mybatis和Jpa

这里写目录标题1.Mybatis1.1 JDBC的缺点1.2 Mybatis的整体架构1.3 入门案例1.3.1 问题:无法连接到数据库服务器1.4 动态代理实现Mapper1.5 mybatis-config.xml配置1.5.1 properties属性读取外部资源1.5.2 settings设置1.5.3 typeAliases1.5.4 typeHandlers(类型处理…

【Substance Designer】基础操作和节点学习记录

写在前面 这个记录稍微有点杂,大概是庄懂的技术美术入门课(美术向)-直播录屏-第20课和一些基础操作的记录合集吧! 补充 学习发现,基础的节点是需要学习和记录的,但是真正用起来还是要多用多练!所以这种简单的记录节点…

YOLOv5/v7 引入 RepVGG 重参数化模块

本篇博文代码出自YOLOv5-lite ,YOLOv5-lite的作者在CSDN的账号是 pogg_ ,大家可以关注一下,这也是一位在开源项目上做了很多工作的博主。 RepVGG的原理和融合推导过程可以看我的这篇博文:RepVGG:让VGG风格的ConvNets再…

机制设计原理与应用(三)Screening

文章目录3 Screening3.1 为单个不可分割的项目定价3.1.1 对θ\thetaθ的假设3.1.2 问题描述3.1.3 特性3.2 为无限可分的项目定价3.2.1 对θ\thetaθ的假设3.2.3 特性3.2.4 收益最大化3.2.5 最优解决方案3 Screening Screening theory:机制设计理论可以被看作是其多…

Cadence PCB仿真使用Allegro PCB SI生成振铃ringing仿真报告及报告导读图文教程

🏡《Cadence 开发合集目录》   🏡《Cadence PCB 仿真宝典目录》 目录 1,概述2,生成报告3,报告导读4,总结1,概述 本文简单介绍使用Allegro PCB SI生成网络的振铃性能评估的报告的方法,及振铃ringing报告要点导读。 2,生成报告 第1步,选择需要生成报告的网络,然后…