OV摄像头图像采集基础知识总结
目前FPGA用于图像采集 传输 处理 显示应用越来越多,主要原因是图像处理领域的火热以及FPGA强大的并行处理能力。本文以OV7725为例,对摄像头使用方面的基础知识做个小的总结,为后续做个铺垫。
下图是OV7725 datasheet中摄像头传感器内部结构视图。我们主要关注常用的用户接口——DVP(数字视频端口)。
XCLK:工作时钟输入,由主控器产生,频率为24MHz;
HREF:行参考信号输出;
PCLK:像素时钟输出,由XCLK产生,用于控制器采样图像数据;
VSYNC:场同步信号输出;
RSTB:复位输入,低电平有效;
PWDN:低功耗模式选择输入,正常工作期间需拉低;
SCL:SCCB管理接口时钟,最高频率400KHz;
SDA:SCCB接口串行数据总线;
D[9:0] 像素数据输出;
PCLK引出一个帧率的概念,单位为fps(Frames Per Second),指每秒钟输出几幅静态图像,帧率越高视频越流畅。另外SCCB总线与IIC总线非常相近,主机写时序基本一致,故多数图像采集系统直接复用IIC控制器对图像传感器内部寄存器进行配置。这里给出大体的读写流程,具体见参考文献2。需要格外注意的是,SIO_C时钟信号在IDLE状态下必须为高电平。
写操作:
读操作(分两部分):
总结来说,SCCB与IIC的主要区别在以下两点:
1 IIC有重复开始的概念,读操作先写设备地址 再写寄存器地址,然后重新开始,写设备地址,读取数据。而SCCB读操作时在第一次写寄存器地址后必须有结束条件。
2 IIC主机写数据到从机时,从机必须在写8bit下一时钟拉低总线响应主机。IIC主机读取从机数据时,多字节连续读取除最后字节主句均在第9时钟周期拉低总线响应,单字节读取拉高总线便于下一拍提供停止条件。而SCCB每个phase第9bit为don't care bit /NACK,主机写从机第9bit不关心,读取从机数据由于不支持多字节操作第9bit主机必须拉高总线。
接下来从整体上把握输出图像数据与同步信号的关系。(图片截取自《OV7725摄像头编程基本知识笔记》,见参考文献3.
两个VSYNC高脉冲之间为包含一帧图像数据,但只有HREF高电平期间数据才为有效数据,每个HREF高电平区间对应一行图像数据。因此通过这两个信号即可找到有效的图像数据。OV7725摄像头支持多种图像输出格式,此处阐述常用的RGB565格式:
图像数据在PCLK下降沿输出,控制器在其上升沿采样。当选择此模式输入时,仅使用数据线高八位。时序图给出了相邻两个字节数据内容,可见两个字节表示一个像素点数据,从高位到低位依次是:R 5bit,G 6bit,B 5bit。Ov7725图像传感器的像素30万,分辨率:640*480,即每行640个有效像素点,一共480行。所以每个HREF高脉冲期间有640*2个PCLK周期,两个VSYNC高脉冲期间循环480次。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
参考文献:
1 ov7725手册(可注释)_图文_百度文库 https://wenku.baidu.com/view/3e5504004431b90d6c85c764.html
2 OV7725学习之SCCB协议(一) - aslmer - 博客园 https://www.cnblogs.com/aslmer/p/5965229.html
3 ov7725数字摄像头编程基本知识笔记_图文_百度文库 https://wenku.baidu.com/view/d1af7a731711cc7931b716c6.html
OV摄像头图像采集基础知识总结的更多相关文章
- SLAM第一篇:基础知识
无论在室内.野外.空中还是水下,SLAM是机器人进入未知环境遇到的第一个问题.本期给大家介绍SLAM的基础知识:传感器与视觉SLAM框架 近来年,智能机器人技术在世界范围内得到了大力发展.人们致力于把 ...
- 在DevExpress中使用CameraControl控件进行摄像头图像采集
在我们以前的项目了,做摄像头的图片采集,我们一般还是需要做一个封装处理的,在较新版本的DevExpress控件里面,增加了一个CameraControl控件,可以直接调用摄像头显示的,因此也可以做头像 ...
- 【RAC】RAC相关基础知识
[RAC]RAC相关基础知识 1.CRS简介 从Oracle 10G开始,oracle引进一套完整的集群管理解决方案—-Cluster-Ready Services,它包括集群连通性.消息和锁. ...
- Android基础知识(一)
前言 前言 从软件测试最终目的发现问题缺陷来看,Findyou比较认同一个观念,测试的能力大致可以划分成三个能力层次:发现问题.定位问题.预防问题.有机会探讨一下这个分类. 发现问题各种方式方法,比如 ...
- Deep Reinforcement Learning 基础知识
Introduction 深度增强学习Deep Reinforcement Learning是将深度学习与增强学习结合起来从而实现从Perception感知到Action动作的端对端学习的一种全新的算 ...
- scrapy实战1,基础知识回顾和虚拟环境准备
视频地址 https://coding.imooc.com/learn/list/92.html 一. 基础知识回顾 1. 正则表达式 1)贪婪匹配,非贪婪匹配 .*? 非贪婪 . ...
- Deep Reinforcement Learning 基础知识(DQN方面)
Introduction 深度增强学习Deep Reinforcement Learning是将深度学习与增强学习结合起来从而实现从Perception感知到Action动作的端对端学习的一种全新的算 ...
- [转帖]IPC网络高清摄像机基础知识1(IPC芯片市场分析以及“搅局者”华为海思 “来自2013年”)
IPC网络高清摄像机基础知识1(IPC芯片市场分析以及“搅局者”华为海思 “来自2013年”) 2016-06-02 14:23:49 Times_poem 阅读数 9734更多 分类专栏: IPC网 ...
- 【STM32H7教程】第55章 STM32H7的图形加速器DMA2D的基础知识和HAL库API
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第55章 STM32H7的图形加速器DMA2D的基 ...
随机推荐
- Linux中FTP远程传输,SSH远程连接,以及SCP远程拷贝
常用服务器ftp.ssh 1. Linux常用服务器构建-ftp服务器 ftp服务器 FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”. 用于 ...
- Python内置函数(21)——filter
英文文档: filter(function, iterable) Construct an iterator from those elements of iterable for which fun ...
- Java如何在运行时识别类型信息?
在日常的学习工作当中,有一些知识是我们在读书的时候就能够习得:但有一些知识不是的,需要在实践的时候才能得到真知——这或许就是王阳明提倡的“知行合一”. 在Java中,并不是所有的类型信息都能在编译阶段 ...
- FTP解决连接慢问题
今天发现程序报登录FTP超时,于是便手动登录发现真的慢,于是网上搜便获取大招亲测有效,于是怕忘的我马上记录下来,zzzzzzz!! 如下解决 vim /etc/vsftpd/vsftpd.conf 在 ...
- 【Vue笔记】-- 详解vue生命周期
针对于Vue的生命周期进行详细的说明,方面加深对各个方法的引用. 引言: 前几天重新回顾vue官网时,看到vue的生命周期,想着自己用vue开发了快一年了,就总结总结vue知识,再次加深自己对vue的 ...
- 翻译 Asp.Net Core 2.2.0-preview1已经发布
Asp.Net Core 2.2.0-preview1已经发布 原文地址 ASP.NET Core 2.2.0-preview1 now available 今天我们很高兴地宣布,现在可以试用ASP. ...
- .Net高并发解决思路(附源码)
本文如有不对之处,欢迎各位拍砖扶正.另源码在文章最下面,大家下载过后先还原一下nuget包,需要改一下redis的配置,rabbitmq的配置以及Ef的连接字符串.另外使用的是CodeFirst,先u ...
- windows查看端口占用 windows端口占用 查找端口占用程序 强制结束端口占用 查看某个端口被占用的解决方法 如何查看Windows下端口占用情况
windows下查询端口占用情况 ,强制结束端口占用程序 查询8080端口被那个程序占用 如何强制结束windows下端口占用情况? 下面操作在win10下 在控制台执行命令 1.列出所有端口的情 ...
- java中变量的存储位置
1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符 ...
- 杭电ACM2008--数值统计
数值统计 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...