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

基于海思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,上面的寄存器是如何配置的。

相关文章:

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

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 对于嵌入式开发设备来说,除了图像显示,图像输入也是很重要的一部分。说到图像输入,就不得不提到camera。目前ca…...

解密LLM结构化输出:代码示例与原理分析

解密LLM结构化输出:代码示例与原理分析 一、LLM结构化输出概述 1. 结构化输出的定义与优势 结构化输出指的是语言模型(LLM)生成的遵循特定格式(如JSON、XML)的数据,这些数据易于解析和处理。相较于非结构…...

Go语言的数据类型

Go语言的数据类型详解 Go语言是一门具有简洁、高效并且强类型的编程语言。它的设计理念之一是让程序员能够以清晰、简明的方式表达自己的意图。在Go语言中,数据类型是其基础构建块之一,理解不同数据类型的特点和使用场景对于编写高效的Go程序至关重要。…...

复杂园区网基本分支的构建

目录 1、各主机进行网络配置。2、交换机配置。3、配置路由交换,进行测试。4、配置路由器接口和静态路由,进行测试。5、最后测试任意两台主机通信情况 模拟环境链接 拓扑结构 说明: VLAN标签在上面的一定是GigabitEthernet接口的&#xff0c…...

如何很快将文件转换成另外一种编码格式?编码?按指定编码格式编译?如何检测文件编码格式?Java .class文件编码和JVM运行期内存编码?

如何很快将文件转换成另外一种编码格式? 利用VS Code右下角的"选择编码"功能,选择"通过编码保存"可以很方便将文件转换成另外一种编码格式。尤其,在测试w/ BOM或w/o BOM, 或者ANSI编码和UTF编码转换,特别方便。VS文件另…...

《C++11》Lambda 匿名函数从入门到进阶 优缺点分析 示例

Lambda 匿名函数从入门到进阶 C11 引入了 lambda 表达式,这是一种非常强大的功能,可以让我们在代码中定义匿名函数。它们不仅使代码更加简洁,而且在处理回调、算法和多线程编程时极为方便。本文将带你从入门到进阶,全面了解 C11 …...

连接Milvus

连接到Milvus 验证Milvus服务器正在侦听哪个本地端口。将容器名称替换为您自己的名称。 docker port milvus-standalone 19530/tcp docker port milvus-standalone 2379/tcp docker port milvus-standalone 192.168.1.242:9091/api/v1/health 使用浏览器访问连接地址htt…...

Linux——修改文件夹的所属用户组和用户

一、命令 举例: 授权 MOT17 文件夹 给 hust_xxx 用户: sudo chown -R hust_xxx:hust_xxx MOT17参考 Linux授权文件夹给用户...

Vue Amazing UI 组件库(Vue3+TypeScript+Vite 等最新技术栈开发)

Vue Amazing UI 一个 Vue 3 组件库 使用 TypeScript,都是单文件组件 (SFC),支持 tree shaking 有点意思 English | 中文 Vue Amazing UI 是一个基于 Vue 3、TypeScript、Vite 等最新技术栈开发构建的现代化组件库,包含丰富的 UI 组件和常…...

计算机Steam报错failedtoloadsteamui.dll怎么解决?DLL报错要怎么修复?

计算机Steam报错“Failed to Load SteamUI.dll”?这里有专业的解决方案! 作为软件开发领域的一名从业者,我深知电脑在运行过程中可能会遇到的各种问题,尤其是像Steam这样的大型游戏平台。今天,我将为大家科普一下Stea…...

如何开发一个简单的 dApp

后端合约 执行 sui move new resource_manage 创建一个包 接着就可以开始编写合约了 首先创建两个 Struct 用来创建 Profile 并记录在 State 中 public struct State has key {id: UID,users: Table<address, address>, }public struct Profile has key {id: UID,nam…...

TDengine 签约智园数字,助力化工园区智联未来

近年来&#xff0c;随着化工行业对安全、环保、高效运营的要求日益提高&#xff0c;化工园区的数字化转型成为必然趋势。从数据孤岛到全面互联&#xff0c;从基础监控到智能分析&#xff0c;如何高效管理和利用时序数据已成为化工园区智能化升级的关键环节。作为一家专注于时序…...

《Python游戏编程入门》注-第9章8

2 游戏信息的显示 在游戏窗口的上部会显示游戏分数、游戏关卡、剩余砖块数以及剩余小球数等信息,如图12所示。 图12 游戏信息显示 使用如图13所示的代码实现以上功能。 图13 显示游戏信息的代码 其中,print_text()函数MyLibrary....

js逆向实战(1)-- 某☁️音乐下载

下载某云音乐源文件.mp4格式 首先随便点进一首歌&#xff0c;如图所示获取该音乐id&#xff0c;然后点击播放键&#xff0c;打开F12进行查询XHR 由此可知&#xff0c;实际请求网址是 https://music.163.com/weapi/song/enhance/player/url/v1?csrf_token「你的token」url需带…...

AIA - APLIC之三(附APLIC处理流程图)

本文属于《 RISC-V指令集基础系列教程》之一,欢迎查看其它文章。 1 APLIC复位 APLIC复位后,其所有状态都变得有效且一致,但以下情况除外: 每个中断域的domaincfg寄存器(spec第 4.5.1 节);可能是machine-level interrupt domain的MSI地址配置寄存器(spec第4.5.3 和4.5…...

React Router 向路由组件传state参数浏览器回退历史页面显示效果问题

昨天在看尚硅谷张天禹老师讲的 React教程p90&#xff0c;老师讲到 React路由的 replace模式和push模式&#xff0c;老师的演示效果与自己本地操作不太一样。 老师的效果&#xff1a;点击查看消息1&#xff0c;消息2&#xff0c;消息3 再点回退&#xff0c;可以依次查看到 消息…...

线程池与并发工具:Java的分身管理器

1 线程池的概念 线程池是一种执行器&#xff08;Executor&#xff09;&#xff0c;用于在一个后台线程中执行任务。线程池的主要目的是减少在创建和销毁线程时所产生的性能开销。通过重用已经创建的线程来执行新的任务&#xff0c;线程池提高了程序的响应速度&#xff0c;并且提…...

字玩FontPlayer开发笔记8 Tauri2文件系统

字玩FontPlayer开发笔记8 Tauri2文件系统 字玩FontPlayer是笔者开源的一款字体设计工具&#xff0c;使用Vue3 ElementUI开发&#xff0c;源代码&#xff1a; github: https://github.com/HiToysMaker/fontplayer gitee: https://gitee.com/toysmaker/fontplayer 笔记 字玩目…...

头歌python实验:网络安全应用实践3-验证码识别

第1关:简单的验证码识别 本关任务:编写一个能简单识别验证码的小程序。 为了完成本关任务,你需要掌握: 使用 pytesseract 库与 PIL 库解析图片;环境配置;读取图片文本信息。使用 pytesseract 库与 PIL 库解析图片 pytesseract 库可以从图像中提取文本。Tesseract 是一…...

客户案例:基于慧集通(DataLinkX)集成平台的金蝶云星空与HIS系统集成案例--凭证模板的配置(一)

当前的原型客户是一家医院&#xff0c;财务系统使用的是金蝶云星空&#xff0c;需要与医院专用的HIS系统进行集成。本文档主要是介绍其中的凭证模板的配置功能。 凭证模板组件旨在生成凭证前&#xff0c;通过内部整理整合原始单据数据&#xff0c;将其转化为可生成一张凭证的数…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念&#xff0c;其实 Fiori当中还有 V4&#xff0c;咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务)&#xff0c;代理中间件&#xff08;ui5-middleware-simpleproxy&#xff09;-CSDN博客…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...