第4季1:将AR0130摄像头更换为OV9712摄像头

news2024/11/24 18:38:10

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。

一、SoC对Sensor的支持情况

在海思SDK的Hi3518E V200R001C01SPC030\00.hardware\chip\document_cn目录下,我们重点关注这两个文档:《Hi3518EV200经济型HD IP Camera SoC产品简介》《Hi3518EV20X/Hi3516CV200经济型HD IP Camera Soc用户指南》。

(1)在《Hi3518EV200经济型HD IP Camera SoC产品简介》文档中第3页“视频接口”有如下的描述:

  • 支持8/10/12/14 bit RGB Bayer/ RGB-IR输入,时钟频率最高100MHz。这个说明sensor传递数据信息给SoC时,可以使用8/10/12/14bit的并口。我们开发板使用的就是并口。

  • 支持BT.601、BT.656、BT.1120 。这个说明Hi3518E除了支持从sensor获取数据,还支持直接输入这些格式的视频数据。

  • 支持4 x Lane MIPI/Hispi/LVDS接口。这个说明Hi3518E除了支持使用并口的sensor,还支持使用MIPI/Hispi/LVDS接口的sensor。

  • 支持与SONY、Aptina、OmniVision、Panasonic等主流高清CMOS对接。这个说明Hi3518E支持哪些厂商的sensor,上面列出的厂商是主流sensor厂商。

  • 提供可编程sensor时钟输出。这个说明Hi3518E提供给sensor的时钟频率是可以通过编程来控制的。

  • 支持输入最大分辨率为2M (1920*1080) Pixel 。这个说明Hi3518E支持的最大像素是两百万像素,但其实一般用来做720P的。

(2)在《Hi3518EV20X/Hi3516CV200经济型HD IP Camera Soc用户指南》文档第15页中有如下框图。其中sensor输出的数据在输入SoC时,一般使用并口/MIPI/LVDS接口,而sensor与SoC之间的控制接口一般使用I2C、SPI。

(3)Hi3518E V200R001C01SPC030\02.only for Reference\03.hardware\sensor目录下的文件夹是海思调试好的sensor型号。

 

二、将AR0130摄像头更换为OV9712摄像头

1、更换sensor硬件

注意更换底板即可,摄像头的镜头不需要换的。

2、修该板载系统的配置脚本/etc/profile,即把参数从ar0130改成ov9712。

echo "${GREEN}Welcome to HiLinux.${NORMAL}"
                                         
ifconfig lo 127.0.0.1                      
ifconfig eth0 192.168.1.11                 
                                           
mount -t vfat /dev/mmcblk0p1 /usr/mmc      
                                           
cd /usr/mmc/ko                             

# 修改的地方,将ar0130改为ov9712
#./load3518e -i -sensor ar0130 -osmem 32 -total 64
./load3518e -i -sensor ov9712 -osmem 32 -total 64                                           
mount -t nfs -o nolock 192.168.1.141:/home/xjh/iot/hisi_development/hisi_rootfs
                                                 
cd /mnt

虚拟机Hi3518E_SDK_V1.0.3.0/mpp/ko目录(后来拷贝到开发板/usr/mmc目录)中的load3518e文件是一个shell脚本,用来设置Hi3518E与sensor之间的引脚复用。在板载系统的/etc/profile文件中执行该脚本时,-i表示安装模块,-sensor表示指定sensor的型号。原来的sensor型号是ar0130,现在更改为ov9712,因此要将参数改为对应的ov9712。

#!/bin/sh
# Useage: ./load3518e [ -r|-i|-a ] [ sensor ]
#         -r : rmmod all modules
#         -i : insmod all modules
#    default : rmmod all moules and then insmod them
#
# sensor: imx222 9m034 ov9752 ar0230 ar0130 ov9712 mn34222

#省略部分代码

insert_sns()
{
        case $SNS_TYPE in
                ar0130|9m034)
                        himm 0x200f0040 0x2;                            # I2C0_SCL
                        himm 0x200f0044 0x2;                            # I2C0_SDA

                        #cmos pinmux
                        himm 0x200f007c 0x1;                            # VI_DATA13
                        himm 0x200f0080 0x1;                            # VI_DATA10
                        himm 0x200f0084 0x1;                            # VI_DATA12
                        himm 0x200f0088 0x1;                            # VI_DATA11
                        himm 0x200f008c 0x2;                            # VI_VS
                        himm 0x200f0090 0x2;                            # VI_HS
                        himm 0x200f0094 0x1;                            # VI_DATA9

                        himm 0x2003002c 0xb4001;                        # sensor unreset, clk 27MHz, VI 99MHz
                        ;;
                #省略部分代码
                ov9712)
                        himm 0x200f0040 0x2;                            # I2C0_SCL
                        himm 0x200f0044 0x2;                            # I2C0_SDA

                        #cmos pinmux
                        himm 0x200f007c 0x1;                            # VI_DATA13
                        himm 0x200f0080 0x1;                            # VI_DATA10
                        himm 0x200f0084 0x1;                            # VI_DATA12
                        himm 0x200f0088 0x1;                            # VI_DATA11
                        himm 0x200f008c 0x2;                            # VI_VS
                        himm 0x200f0090 0x2;                            # VI_HS
                        himm 0x200f0094 0x1;                            # VI_DATA9

                        himm 0x2003002c 0xc4001;                        # sensor unreset, clk 24MHz, VI 99MHz
                        ;;
                  #省略部分代码
}

3、重启开发板,此时开发板的摄像头就变成ov9712了,就这么简单。

4、如果要运行ortp无线局域网实时视频传输的案例(第三季1:ORTP库的移植与局域网实时视频传输),或者运行rtsp实时视频传输的案例(基于RTSP协议的实时视频流传输的源码分析),则先要修改Hi3518E_SDK_V1.0.3.0/mpp/sample/Makefile.param文件,然后重新编译得到可执行文件。如何运行这些可执行文件,这里不再赘述。

 5、更换sensor的总结

(1)写好的程序框架支持多种sensor,只需要修改一些配置即可。

(2)不同sensor在硬件接线上会有差异,但已经被硬件工程师屏蔽掉。

(3)不同sensor会加载不同的驱动,以实现不同的配置。

不同的sensor对应的驱动位于海思SDK的Hi3518E_SDK_V1.0.3.0/mpp/component/isp/sensor目录下。

root@ubuntu:/home/xjh/iot/hisi_development/Hi3518E_SDK/Hi3518E_SDK_V1.0.3.0/mpp/component/isp/sensor# ls
aptina_9m034   ar0130      Makefile           omnivision_ov9712  omnivision_ov9750  panasonic_mn34222  readme_en.txt
aptina_ar0230  hi_cmoscfg  omnivision_ov2718  omnivision_ov9732  omnivision_ov9752  readme_cn.txt      sony_imx222
root@ubuntu:/home/xjh/iot/hisi_development/Hi3518E_SDK/Hi3518E_SDK_V1.0.3.0/mpp/component/isp/sensor# 

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

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

相关文章

wordpress插件-wordpress蜘蛛记录插件

wordpress蜘蛛插件,我们为什么要wordpress装蜘蛛插件,一个合格的SEO人员必须懂得分析网站的蜘蛛情况,wordpress蜘蛛插件可以让我们分析出各大搜索引擎蜘蛛的访问间隔频率,以及最受蜘蛛喜爱的页面,让你精确地分析搜索引…

Unity DOTS学习 前置知识(二)

ECS 架构和一些专用术语 Entity-Component-System 实体组件系统(ECS )架构遵循组合优于继承的原则面向数据设计弱耦合常被应用在游戏开发上 本质:组合的是数据数组而非对象数组 ECS示例图: Entity 虽然叫做实体,但是并非对象或容器&…

[网络工程师]-应用层协议-FTP

文件传输协议(File Transfer Protocol,FTP)简称为“文件协议”,用于在Internet上控制文件的双向传输。客户上传文件时,通过服务器20端口建立的连接是建立在TCP之上的数据连接,通过服务器21号端口建立的连接…

01 - 进阶操作系统(BIOS)

---- 整理自狄泰软件唐佐林老师课程 1. BIOS - Base input & Output system BIOS是上电后第一个运行的程序 BIOS首先检测硬件状态,检测通过后立即进行硬件初始化工作 BIOS会在内存中建立中断向量表(提供硬件访问的方法) BIOS最后将控制…

优思学院|韦伯的组织理论在今天还有意义吗?

韦伯(Max Weber)是提出官僚组织理论的一个德国杰出社会学家,他认为“官僚组织方式”(Bureaucracy)是理想的企业组织形态。 “官僚组织方式”是一种组织管理的方式,特征是组织内各人的职位(Posi…

卡莱特在创业板上市:IPO首日跌破发行价,周锦志为实际控制人

12月1日,卡莱特云科技股份有限公司(下称“卡莱特”,SZ:301391)在深圳证券交易所创业板上市。本次上市,卡莱特共计发行1700万股,发行价为96.00元/股,募资总额约为16.32亿元,募资净额约…

国产自研、安全、高可用——袋鼠云大数据基础平台EasyMR筑基企业数字化转型

对于科技领域,只有自己掌握核心关键技术,实现自主可控,才能摆脱越来越频繁的“卡脖子事件”,保证企业和国家信息安全。 俗话说“基础不牢,地动山摇“。大数据基础平台什么?是打地基的,是重中之…

多功能无线测量仪的设计与制作

目录 第一章 绪论 1 1.1设计目的及意义 1 1.2课题的概述 1 1.3设计的主要内容介绍 1 第二章 多功能无线测量工作原理的介绍 2 2.1 AT89C51单片机介绍 2 2.2 多功能无线测量工作原理的介绍 5 2.2.1超声波的应用领域 5 2.2.2 超声波距离传感器简介 6 2.2.3超声波测距的原理 7 2.2…

我为何从测试转测试开发,并坚持了10年?

入行测试开发,马上就要10年了。创业公司待过,大公司也待过,工作这一路走来,一些心得,转变,职场体会,早就想写出来分享一下。这个历程包含了技术的提升,工程师的素养和对这个行业的点…

基于springboot信用分析管理系统设计与实现。

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

【MySQL事务_2_事务提交与回滚】

在MySQL中,事务提交与回滚 对t_act进行提交和回滚操作 (1).提交操作(非事务成功) update t_act set balance400 where actno1; update t_act set balance200 where actno2;(2).提交操作(非事务失败) update t_act set balance400 where actno1; update t_act set…

虹科案例|太赫兹技术如何看透文物下的秘密?

文物是人类在社会活动中遗留下来的具有历史、艺术、科学价值的遗物和遗迹,具有重要价值。文物是帮助现代人探寻历史、还原历史真相的最有力依据,同时也是历史时间工艺水平的记录。历史是一个国家文化体系的重要组成部分,而文物又是一个国家悠…

attention加权机制

attention 1.在模型举例在机器翻译的任务当中,翻译得到的每个y的时候,更加关注于某个x,当翻译am的时候,就应该更关注输入当中的 是,让机器也具备这种关注的能力。 2.怎么关注?当翻译y1的时候,y1…

论文笔记 A Comprehensive Survey on Graph Neural Networks(GNN综述)

前言 近年来,深度学习促进了很多机器学习任务的发展,这些任务很多都表示在规则的欧几里得空间中表示。但是图作为具有复杂关系和对象之间相互依赖,其数据是从非欧几里得域生成的,最近也有很多关于图数据深度学习方法的研究。 在…

工业4.0 管理壳学习笔记(6)-数字铭牌

每一台机器都有一个铭牌,铭牌中表明了机器的名称,型号,出厂日期,产品编号,制造日期等信息。。在数字化世界中,机器铭牌不仅要求人类可读,而且需要机器可读。人们开始对数字化产品铭牌的格式和内…

【视觉高级篇】22 # 如何用仿射变换来移动和旋转3D物体?

说明 【跟月影学可视化】学习笔记。 三维仿射变换:平移 对于平移变换来说,如果向量 P(x0​x_0​x0​​, y0y_0y0​​, z0​z_0​z0​​) 沿着向量 Q(x1x_1x1​​, y1​y_1​y1​​, z1​z_1​z1​​) 平移,只需要让 P 加上 Q,就…

BI系统用户访问数据分析

商业智能(Business Intelligence,简称:BI),又称商业智慧或商务智能,指用现代数据仓库技术、线上分析处理技术、数据挖掘和数据展现技术进行数据分析以实现商业价值。 ——百度百科 文章目录前言一、痛点梳理…

新手入门学传奇开区技术常见问题跟解答

首先,欢迎各位新GM加入传奇爱好者,虽然是新加入,但是GM们对传奇的了解也大相径庭,有的是资深GM,而多数则是纯新人,今天又有坛友提出了疑问,对自己的前进方向很迷茫,所以写一篇新人关…

奇异值分解(SVD)和np.linalg.svd()函数用法

一、简介 奇异值分解是一种十分重要但又难以理解的矩阵处理技术,在机器学习中是最重要的分解没有之一的存在。那么,奇异值分解到底是在干什么呢? 矩阵 A 表示的是高维数据,通常情况下高维数据分布并不是雨露均沾的,而往…

matlab图像的增强

1.灰度变换增强 (1)图像直方图 (2)图像直方图的均衡化 2.频域滤波增强 (1)低通滤波器 (2)高通滤波器 (3)同态滤波器 3.彩色增强 (1)真…