基于海思soc的智能产品开发(camera sensor的两种接口)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        对于嵌入式开发设备来说,除了图像显示,图像输入也是很重要的一部分。说到图像输入,就不得不提到camera。目前camera这部分,除了之前说过的usb camera之外,还有一种方案就是soc和camera sensor进行直连处理,而不是通过usb预处理一下。

884349563ec94a99a79c87ee9f10e52c.png

1、usb camera的使用

        我们看到的usb camera,其实内部已经经过mipi、isp、uvc处理三个部分处理过了。mipi是连接sensor,isp是图像内部优化,uvc是usb输出。所以这个时候看到的图像,已经是处理过之后的图像。如果现场对sensor要求不高、或者没有特殊的要求、也没有特殊场景的调试需求,这种情况下是可以考虑usb camera的。但如果要求比较高,比如帧率、夜视、分辨率、大小、价格方面有自己的需求,最好是soc直接控制sensor。

2、sensor数据传输接口

        从数据传送的角度看,一般分成mipi接口和dvp接口。它们的控制接口都是i2c,这一点上没有区别。i2c主要就是给sensor进行参数设置,大小、数据格式、分辨率、帧率、曝光等等。真正数据传输还是要通过mipi或者dvp来进行。

3、mipi接口

        如果对sensor传输速度要求比较高,一般都是使用mipi传输。mipi本身采用低压、差分传输,很容易可以把速度提上去,这方面dvp是没有办法做到的。通常而言,以500万像素作为分水岭,500万以上只能用mipi,500万以下可以用mipi,也可以用dvp。

        当然mipi除了做camera数据传输,还可以做屏幕显示,这就是另外一个topic了。因此,比较通俗的说法,除了点sensor,还有点屏幕这个需求。

4、dvp接口

        dvp接口是另外一种常用的sensor接口。通常而言,camera sensor都会同时支持mipi接口和dvp接口。从pin脚来看,mipi引脚少一点,而dvp接口和vga接口特别像。两者都有行同步、场同步、数据时钟、数据信号。如果大家还是不太理解,可以找一些vga的资料对比着看,这样就会理解得更加深刻。

        很多fpga都喜欢自己写dvp接口,直接驱动sensor,也是这个道理。毕竟它和vga太像了。此时如果需要mipi驱动sensor的话,就需要调用厂商给出的mipi ip来进行处理了。此外,很多fpga的camera demo,本质上就是dvp + rgb lcd,这种做法其实和mcu是一样的。如果要做出差别来,最好还是要带上isp。

5、点sensor只是开始

        很多时候,我们所说把一颗sensor驱动起来,就是在linux上面配置好设备树,写好sensor的i2c驱动。这种驱动一般都会参考厂家的手册去进行处理。至于mipi、dvp,这些驱动soc厂家都会提前写好,我们会配置即可。因此,所谓的点sensor,主要还是编写i2c的驱动代码。

        当然写好驱动,配置好设备树,camera可以正常出图,这只是第一步,难的是isp调教(逆光、白平衡、宽动态等)、v4l2调试、uvc输出、视频编解码、ffmpeg整合、rtsp送出等等。所以说,点sensor只是第一步操作。

6、学习sensor的另外一种方法

        很多soc厂家对自己的camera驱动都讳莫如深,常常让人不知道该怎么学。这个时候,其实可以学学mcu怎么点sensor驱动的、怎么实时显示到lcd屏幕的。比如stm32 mcu,里面就集成了dcmi接口,专门可以处理sensor dvp信号。此时加上对应的iic代码、dcmi代码、dma代码和lcd代码,很快就知道是怎么回事了。

        至于isp,这部分一般的mcu是没有做的,倒是可以看看一些自带isp的sensor,上面的寄存器是如何配置的。

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

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

相关文章

Redis 笔记(二)-Redis 安装及测试

一、什么是 Redis 中文网站 Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用 ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value,并提供多种语言的 API。 Redis 开源,遵循 BSD 基…

H2数据库在单元测试中的应用

H2数据库特征 用比较简洁的话来介绍h2数据库,就是一款轻量级的内存数据库,支持标准的SQL语法和JDBC API,工业领域中,一般会使用h2来进行单元测试。 这里贴一下h2数据库的主要特征 Very fast database engineOpen sourceWritten…

通俗易懂之线性回归时序预测PyTorch实践

线性回归(Linear Regression)是机器学习中最基本且广泛应用的算法之一。它不仅作为入门学习的经典案例,也是许多复杂模型的基础。本文将全面介绍线性回归的原理、应用,并通过一段PyTorch代码进行实践演示,帮助读者深入…

MATLAB深度学习实战文字识别

文章目录 前言视频演示效果1.DB文字定位环境配置安装教程与资源说明1.1 DB概述1.2 DB算法原理1.2.1 整体框架1.2.2 特征提取网络Resnet1.2.3 自适应阈值1.2.4 文字区域标注生成1.2.5 DB文字定位模型训练 2.CRNN文字识别2.1 CRNN概述2.2 CRNN原理2.2.1 CRNN网络架构实现2.2.2 CN…

和为0的四元组-蛮力枚举(C语言实现)

目录 一、问题描述 二、蛮力枚举思路 1.初始化: 2.遍历所有可能的四元组: 3.检查和: 4.避免重复: 5.更新计数器: 三、代码实现 四、运行结果 五、 算法复杂度分析 一、问题描述 给定一个整数数组 nums&…

SpringBoot日常:集成Kafka

文章目录 1、pom.xml文件2、application.yml3、生产者配置类4、消费者配置类5、消息订阅6、生产者发送消息7、测试发送消息 本章内容主要介绍如何在springboot项目对kafka进行整合,最终能达到的效果就是能够在项目中通过配置相关的kafka配置,就能进行消息…

【实用技能】如何使用 .NET C# 中的 Azure Key Vault 中的 PFX 证书对 PDF 文档进行签名

TX Text Control 是一款功能类似于 MS Word 的文字处理控件,包括文档创建、编辑、打印、邮件合并、格式转换、拆分合并、导入导出、批量生成等功能。广泛应用于企业文档管理,网站内容发布,电子病历中病案模板创建、病历书写、修改历史、连续打…

33.3K 的Freqtrade:开启加密货币自动化交易之旅

“ 如何更高效、智能地进行交易成为众多投资者关注的焦点。” Freqtrade 是一款用 Python 编写的免费开源加密货币交易机器人。它就像一位不知疲倦的智能交易助手,能够连接到众多主流加密货币交易所,如 Binance、Bitmart、Bybit 等(支…

Mac M2基于MySQL 8.4.3搭建(伪)主从集群

前置准备工作 安装MySQL 8.4.3 参考博主之前的文档,在本地Mac安装好MySQL:Mac M2 Pro安装MySQL 8.4.3安装目录:/usr/local/mysql,安装好的MySQL都处于运行状态,需要先停止MySQL服务最快的方式:系统设置 …

事务的回滚与失效行为

创建一张测试表 AccountMapper public interface AccountMapper {Update("update account set balance #{balance} where username #{username}")int updateUserBalance(Param("username") String username, Param("balance") Integer bal…

【C语言】_字符数组与常量字符串

目录 1. 常量字符串的不可变性 2. 关于常量字符串的打印 3. 关于字符数组与常量字符串的内存分布 1. 常量字符串的不可变性 char arr[10] "abcdef";// 字符数组char* p2 arr;char* p3 "abcdef"; // 常量字符串 尝试对常量字符串进行修改&#xff…

【GUI-pyqt5】QCommandLinkButton类

1. 描述 命令链接的Windows Vista引入的新控件他的用途类似于单选按钮的用途,因为他用于在一组互斥选项之间进行选择命令链接按钮不应单独使用,而应作为向导和对话框中单选按钮替代选项外观通常类似于平面按钮的外观,但除了普通按钮文本外&a…

69.基于SpringBoot + Vue实现的前后端分离-家乡特色推荐系统(项目 + 论文PPT)

项目介绍 在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括家乡特色推荐的网络应用,在外国家乡特色推荐系统已经是很普遍的方式,不过国内的管理网站可能还处于起步阶段。家乡特色推荐系统采用java技术&…

HCIE-day10-ISIS

ISIS ISIS(Intermediate System-to-Intermediate System)中间系统到中间系统,属于IGP(内部网关协议);是一种链路状态协议,使用最短路径优先SPF算法进行路由计算,与ospf协议有很多相…

图像处理|膨胀操作

在图像处理领域,形态学操作是一种基于图像形状的操作,用于分析和处理图像中对象的几何结构。**膨胀操作(Dilation)**是形态学操作的一种,它能够扩展图像中白色区域(前景)或减少黑色区域&#xf…

【机器学习】量子机器学习:当量子计算遇上人工智能,颠覆即将来临?

我的个人主页 我的领域:人工智能篇,希望能帮助到大家!!!👍点赞 收藏❤ 在当今科技飞速发展的时代,量子计算与人工智能宛如两颗璀璨的星辰,各自在不同的苍穹闪耀,正以前…

Sprint Boot教程之五十:Spring Boot JpaRepository 示例

Spring Boot JpaRepository 示例 Spring Boot建立在 Spring 之上,包含 Spring 的所有功能。由于其快速的生产就绪环境,使开发人员能够直接专注于逻辑,而不必费力配置和设置,因此如今它正成为开发人员的最爱。Spring Boot 是一个基…

腾讯云AI代码助手编程挑战赛-桌面壁纸随机更换

作品简介 用于更换壁纸缓缓心情,或者选择困难症,每一个图片都想用来做壁纸,并且节约了手工时间,所以根据这个需求来创建的这款应用工具,使用的是腾讯云AI代码助手来生成的所有代码,使用方便,快…

说说你对作用域链的理解

一、作用域 作用域,即变量(变量作用域又称上下文)和函数生效(能被访问)的区域或集合 换句话说,作用域决定了代码区块中变量和其他资源的可见性 举个例子 function myFunction() {let inVariable "…

SpringBootWeb 登录认证(day12)

登录功能 基本信息 请求参数 参数格式:application/json 请求数据样例: 响应数据 参数格式:application/json 响应数据样例: Slf4j RestController public class LoginController {Autowiredpriva…