图像sensor的特性和驱动解析(1)

一、本季文章主要内容和安排

1、本季文章主要内容

(1)查看SDK中相应文档,重点是SoC对Sensor的支持

(2)更换另一个Sensor(OV9712),并实现之前的实验

(3)Sensor接口:并口/LVDS/MIPI CSI

(4)SoC的Sensor接口引脚复用设置

我们开发板使用的两个sensor的数据接口都是并口的,sensor输入视频给SOC,SOC也可输出视频

(5)sensor驱动源码详解

(6)sample中sensor相关的部分详解

summary:本季预计发布两篇文章。

2、查看SDK的2个相关文档

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

二、更换OV9712并且做配置更改和测试

1、更改配置脚本

通过修改开发板/etc/profile文件中开机执行的命令,从而修改
Hi3518E_SDK_V1.0.3.0/mpp/ko/load3518e脚本的配置:
./load3518e -i -sensor ov9712 -osmem 32 -total 64

在这里插入图片描述
在这里插入图片描述
修改后重启开发板,界面打印信息如下:
在这里插入图片描述

2、运行rtsp传输的测试版本

我在这里给大家提供一个编译好的可执行程序,大家可用于测试。
链接:https://pan.baidu.com/s/1Jj2pCveCY03g2e4N3F0sPA
提取码:7ruv
–来自百度网盘超级会员V5的分享

3、运行ORTP传输的测试版本

修改Hi3518E_SDK_V1.0.3.0/mpp/sample/Makefile.param文件,将sensor配置为ov9712:
在这里插入图片描述

4、更换sensor的总结

(1)程序框架做好多种sensor支持的框架
(2)注意硬件接线上面的差异
(3)加载不同的驱动,做不同的参数设置
(4)ov9712这个sensor其实整体来说是不如AR0130的

三、MIPI和LVDS和并口的细节讲解

摄像头模块和SOC之间是要有控制信号(如IIC)和数据信号的传输才可以正常工作的,常用的有以下几种接口。

1、并口Sensor

(1)OV9712和AR0130都是并口的
(2)并口的接口定义:参考AR0130的原理图pdf
在这里插入图片描述
(3)并口传输的是CMOS电平信号(重点是非差分),并口排线长度不能太长,否则抗干扰能力会下降。

(4)并口sensor属于较低端老旧的,新型高像素的都是MIPI/LVDS/HISPI等差分信号的

2、LVDS(通过数据接口传输控制信号)

(1)low voltage differential signal,低电压差分信号

(2)接口由1组差分clock和若干组差分信号线组成(一正一负组成一个差分信号)
在这里插入图片描述
(3)LVDS主要用于视频传输的2个领域:camera和主控、LCD和主控
这种接口的摄像头并不常见

(4)LVDS利用差分抗干扰能力,提升clock频率从而提升带宽,传输距离也更远

(5)LVDS的数据线组数越多带宽越大、clock频率越高带宽越大(牺牲抗干扰和距离),本质上是差分信号型的并行

(6)并口和LVDS之间可以互转,但是需要专门的电平转换芯片(类似于232和485)

3、MIPI(MIPI-CSI2)

(1)MIPI: mobile industry processor interface,移动工业处理器接口,主流摄像头都是这个接口,连接主控和摄像头

(2)MIPI接口由1组差分clock和1-4组差分信号线组成
在这里插入图片描述

(3)MIPI和LVDS虽然都是差分对信号,但是不兼容,不能直接对接

(4)MIPI的架构层次更分明,广泛应用在手机平板等领域中,可以认为MIPI是LVDS的升级版

(5)MIPI的数据线组数越多带宽越大、clock频率越高带宽越大(牺牲抗干扰和距离)

(6)MIPI和LVDS和并口之间均可以互相转换,但是需要专门的电平转换芯片

4、总结

(1)老旧的、低端的、数据量小的就用电平信号;新的、高端的、数据量大的都用差分信号

(2)要通信,物理层、协议层、应用层都得能对接才行。

(3)因为历史原因,很多行业会使用不同的接口标准,必要时需要去互相转换不同的接口

四、HI3518E的Sensor接口引脚复用设置

  芯片本身的引脚数有限,但需要使用的接口比较多,所以不得不进行IO复用。在不同平台上处理的方法有所不同。Samsung的平台是通过设置寄存器的不同值来实现引脚的不同功能,一个IO端口会有相关的几个寄存器去配置设置这个端口的,直接在程序中操作寄存器。接下来我们看看华为海思平台如何处理实现的(不同平台本质上都是一样的,都是操作寄存器)。

1、查看引脚定义框图

参考:
Hi3518E V200R001C01SPC030\00.hardware\chip\document_cn\Hi3518EV20X/Hi3516CV200经济型HD IP Camera Soc用户指南.pdf 文档
在这里插入图片描述

在这里插入图片描述
通过功能查接口,比如XOUT是D1接口,结合上述文档的对引脚的描述去查看开发板原理图:
在这里插入图片描述

2、找到相应设置寄存器

查看上述的文档,找到我们要进行设置的寄存器。
传感器原理图:
在这里插入图片描述

开发板原理图:
在这里插入图片描述
VI表示是并口的方式,MIPI即MIPI接口

3、himm工具(用于读写寄存器)

在这里插入图片描述
  这个工具是在编译整个海思SDK时生成的,我们通过在load3518e脚本文件中使用该工具进行读写寄存器。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  sensor这个时钟参数(主控SOC提供给sensor的)我们之后可能还是需要调整,可以提高摄像头的性能,并且避免数据发送时丢包等情况。主控SOC提供给sensor一个时钟使其工作,sensor又传回一个时钟(采集的图像的时钟)给主控SOC。
在这里插入图片描述
注:本资料大部分由朱老师物联网大讲堂课程笔记整理而来、参考了华为海思SDK中提供的开发手册,并且引用了部分他人博客的内容,如有侵权,联系删除!水平有限,如有错误,欢迎各位在评论区交流。

版权声明:本文为CSDN博主「小嵌同学」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45842280/article/details/121703633

小嵌同学

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

EM30719 I2C读写问题

EM30719芯片i2c读存在缺陷发送数据过后不能上拉数据脚,导致i2c时序不标准。linux通过i2cget能读一次数据,需要多读一次复位数据脚。写数据正常

STM32G4之NVIC中断系统

前言 一、NVIC中断机制 stm32G431总共有111个中断源,所以有时难免有两个或者两个以上的中断一起来临,或者正在处理一个中断服务函数时突然又有一个中断来临,以上种种情况微控制器要怎样运行呢&