文章目录[隐藏]
一、本季文章主要内容和安排
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
暂无评论