当前位置: 首页 > news >正文

NXP i.MX8系列平台开发讲解 - 4.2.2 摄像头篇(二) - 摄像头DVP接口

专栏文章目录传送门:返回专栏目录

Hi, 我是你们的老朋友,主要专注于嵌入式软件开发,有兴趣不要忘记点击关注【码思途远】


文章目录

目录

1. 前言

2. DVP 接口

2.1 DVP 物理接口

2.2 DVP 信号

3. DVP 实例

3.1 认识 OV7725

3.2 OV7225 时序

4. 总结


1. 前言

根据上一章节,对摄像头的接口有一个简单的概述,提到主要使用DVP 或者MIPI CSI ,当然还有另外一种使用的就是USB 接口的摄像头,但是对于USB 的摄像头的接口这里并不做具体的分析,后续有机会进行USB 的接口分析,本章节重点讲述DVP 相关。

2. DVP 接口

DVP(Digital Video Port ) 中文名:数字视频接口,这是传统摄像头Sensor 输出的接口,是一种并行接口。目前DVP 总线PCLK 极限约在96M左右,而且走线长度不能过长,所有DVP最大速率最好控制在72M以下,PCB layout较容易画。由于DVP在信号完整性方面受限制,速率也受限制,建议像素在500W 以下使用DVP,如果高于500W 像素一般都采用mipi 接口。

2.1 DVP 物理接口

对于DVP 物理接口并没有固定顺序接口,可能做出各种,包括插针式,软排线等等,线序还存在差异,不过当中的接口还是那些固定的以下接口。

DVP 目前物理接口需要注意的是线序问题,定制的线序可能都存在顺序的不一样,插座和座子需要匹配才能使用上。

2.2 DVP 信号

DVP 接口信号:Sensor 与 BB(平台端)的连接图:

主要包括以下几类信号:

  • 数据引脚(D0-Dn):用于传输图像数据,数据引脚数量取决于数据总线宽度(如8位、10位、12位或16位)。

  • 像素时钟(PCLK):提供像素数据传输的同步时钟信号,每个时钟周期传输一个像素数据。

  • 行同步信号(HSYNC/HREF):用于指示一行数据的开始和结束。

  • 场同步信号(VSYNC):用于指示一帧数据的开始和结束。

  • XCLK:或者MCLK,ISP芯片输出给驱动sensor的时钟;

  • 其他控制信号:控制信号,I2C 通信信号,用来读写sensor 寄存器。

3. DVP 实例

关于DVP 协议,这里以一个实际例子进行分析,认识DVP 相关知识,采用OV7225为例子,虽然OV7225距离现在已经有一段时间,但是资料多,学习起来比较方便。

3.1 认识 OV7725

OV7725 是一个CMOS类型数字图像传感器,该传感器支持输出最大为30万像素的图像 (640x480分辨率),它的体积小,工作电压低,支持使用VGA时序输出图像数据,输出图像的数据格式支持YUV(422/420)、YCbCr422以及RGB565格式。

OV7725 功能框图

方框1: SCCB 接口,与I2C通讯十分相识,外部控制可以通过SCL, SDA 与传感器进行通信控制寄存器数据。

方框2:通信,控制以及时钟信号,PCLK、HREF及VSYNC分别是像素同步时钟、行同步信号以及帧同步信号,PWDN用于控制芯片进入低功耗模式,XCLK引脚,是外部提供给OV7725的输入信号;PCLK是OV7255输出的同步信号。

方框3:数据输出信号,可以看到前级包含很多图像处理运算,转换后的数据才通过D[9:0]并口输出。

3.2 OV7225 时序

OV7225 传感器输出的图像,首先是一帧一帧的数据,在每一帧的数据又是从左往右,从上至下,一行一行输出,完成一帧数据的输出。

查看SCCB 时序图

SCCB 起始于结束与IIC 是一样的时序;写数据也是一样。有些不一样在于应答信号;

VGA帧时序

VGA 图像为640*480 像素的图片,

展示了VGA帧的完整传输过程,从垂直同步到每行的水平同步,再到每行的像素数据传输。

RGB 656 时序

关于RGB656 输出时序:

当HREF 上升沿的时候,数据线的数据才开始是有效数据,第一个字节数据在PCLK第一个周期开始传输。HREF信号用于标记有效行数据的开始和结束。

PCLK信号用于同步数据的传输,每个像素分为两个字节传输。

需要注意:一个RGB 需要占据2个字节,也就图中看到的firtbyte, second byte数据,同时D[9:5]: R[4:0], D[5:3]: G[5:3], 按照规定的顺序传输红、绿、蓝各个颜色的位。

图中:t_PCLK : 像素时钟周期,用来同步每个字节的传输;

4. 总结

本章节主要对摄像头DVP接口进行了说明。DVP作为一种并行接口,常在STM32单片机中使用,通过简单的摄像头初始化、控制和数据读取,就可以轻松获取到视频图像。然而,对于一些较低端的单片机,可能还需要外接一个FIFO芯片来缓解数据传输的压力。随着芯片性能的不断提升,视频质量的要求也越来越高,更多的应用逐渐转向MIPI接口。在下一章节中,我们将对MIPI接口摄像头进行详细介绍。

本文参考:

https://www.mouser.com/pdfdocs/OV7725.pdf

相关文章:

  • PG逻辑订阅功能
  • 【Mysql多数据源实现读写分离的几种方案】
  • 【网站架构部署与优化】Tomcat部署安装
  • android设计模式的建造者模式,请举例
  • Tesla T4 P2P测试
  • Apache Iceberg 与 Spark整合-使用教程(Iceberg 官方文档解析)
  • 重头开始嵌入式第四十二天(硬件 ARM体系架构)
  • 计算机网络(八) —— Udp协议
  • powershell@update-help更新文档和离线文档安装@并行加速安装帮助文档更新@安装报错问题
  • 【LeetCode:219. 存在重复元素 II + 哈希表】
  • Ant design vue中的提示框(a-tooltip)
  • Linux应用开发实验班——JSON-RPC
  • 大数据新视界 --大数据大厂之HBase 在大数据存储中的应用与表结构设计
  • 【有啥问啥】“弱激励学习(Weak Incentive Learning)”的原理与过程解析
  • 如何使用ssm实现基于SpringMVC网上选课系统的设计与实现
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 【Leetcode】104. 二叉树的最大深度
  • android 一些 utils
  • AngularJS指令开发(1)——参数详解
  • CSS魔法堂:Absolute Positioning就这个样
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • JAVA SE 6 GC调优笔记
  • node.js
  • OSS Web直传 (文件图片)
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • TCP拥塞控制
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • yii2权限控制rbac之rule详细讲解
  • 从伪并行的 Python 多线程说起
  • 电商搜索引擎的架构设计和性能优化
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 近期前端发展计划
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 老板让我十分钟上手nx-admin
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • # 数论-逆元
  • (02)Unity使用在线AI大模型(调用Python)
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (20)docke容器
  • (WSI分类)WSI分类文献小综述 2024
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (八十八)VFL语言初步 - 实现布局
  • (编译到47%失败)to be deleted
  • (分类)KNN算法- 参数调优
  • (十一)c52学习之旅-动态数码管
  • (图文详解)小程序AppID申请以及在Hbuilderx中运行
  • (微服务实战)预付卡平台支付交易系统卡充值业务流程设计
  • (一)Neo4j下载安装以及初次使用
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • *** 2003
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复