"); //-->
By Toradex 秦海
随着工业产品智能化发展,摄像头作为图像采集在嵌入式设备中需求越来越多,目前常见的摄像头接口有专用的Parallel Camera接口和MIPI CSI接口,以及USB/Ethernet Camera等采用USB, Ethernet等接口,本文就着重展示摄像头专用接口MIPI CSI在嵌入式Linux下的应用.
MIPI (Mobile Industry Processor Interface) 摄像头接口标准是由MIPI® Alliance Camera Working Group针对传统并行摄像头存在的问题提出的一个串行高速摄像头接口定义, 目前有MIPI CSI-2和MIPI-CSI-3两个协议定义,本文涉及的均为MIPI CSI-2协议接口, 目前已经从V1.0 发布发展到V1.3发布, D-PHY下传输带宽也从1Gbps/lane 提高到2.5Gbps/lane, V1.3新引入的C-PHY则更高,关于MIPI CSI详细说明请参考这里.
1). 准备
a). 本文所使用的硬件平台为Toradex 工业产品级Apalis i.MX6D和T30 ARM核心板模块,搭配Apalis Eva Board开发板和Apalis T30 Mezzanine 扩展卡
b). MIPI CSI-2摄像头使用基于OV5640的摄像头模块
c). Parallel Camera摄像头使用Toradex ACM摄像头(基于ADV7180)模块搭配监控摄像头
d). 软件使用Toradex官方发布的嵌入式Linux V2.5 Beta3发布
2). 物理连接示意图
3). Apalis i.MX6D
a). 模块支持两路Parallel Camera接口和一路MIPI CSI-2 V1.0接口(1-4 lane)
b). V2.5Beta3版本Linux image已经包含OV5640和ADV7180的驱动和相应的device tree patch,因此上电后系统可以直接识别摄像头设备/dev/video0(ADV7180)和/dev/video2(OV5640)
-----------------
root@apalis-imx6:~# dmesg |grep adv
[ 8.650491] adv7180 3-0021: no sensor pwdn pin available
[ 8.799108] mxc_v4l2_master_attach: ipu0:/csi0 parallel attached adv7180:mxc_
v4l2_cap0
root@apalis-imx6:~# dmesg |grep ov5640
[ 8.837746] ov5640_mipi 3-003c: request of ov5640_mipi_reset failed
[ 9.003448] mxc_v4l2_master_attach: ipu0:/csi1 parallel attached ov5640_mipi:
mxc_v4l2_cap2
[ 9.015727] camera ov5640_mipi is found
[ 10.675197] ov5640_set_virtual_channel: virtual channel=1
[ 98.019038] ov5640_set_virtual_channel: virtual channel=1
[ 98.421393] ov5640_set_virtual_channel: virtual channel=1
-----------------
c). 运行下面gstreamer pipeline测试MIPI CSI-2摄像头
-----------------
/* 640x480分辨率抓取并播放 framerate=90 */
gst-launch -vvv imxv4l2src device=/dev/video2 capture-mode=0 fps-n=90 ! imxv4l2sink disp-width=640 disp-height=480
/* 720P分辨率抓取并播放 framerate=60 */
gst-launch -vvv imxv4l2src device=/dev/video2 capture-mode=4 fps-n=60 ! imxv4l2sink disp-width=1280 disp-height=720
/* 1080P分辨率抓取并播放 framerate=15 */
gst-launch -vvv imxv4l2src device=/dev/video2 capture-mode=5 fps-n=15 ! imxv4l2sink
-----------------
d). 分别对应的CPU占用率如下
-----------------
//640x480
CPU1 - 48%
CPU2 - 1%
//720P
CPU1 - 100%
CPU2 - 1%
//1080P
CPU1 - 100%
CPU2 - 1%
-----------------
d). 和Parallel Camera摄像头同时显示
./ 原生ipu driver无法支持两路camera同时显示,需要对image source code 打patch,然后按照这里的说明重新编译kernel 和 modules,并部署到Apalis i.MX6模块.
./ 然后运行下面gstreamer pipeline来进行同时显示
-----------------
gst-launch -vvv imxv4l2src device=/dev/video2 capture-mode=0 fps-n=30 ! imxv4l2sink device=/dev/video17 disp-width=640 disp-height=480 & gst-launch -vvv tvsrc device=/dev/video0 ! imxv4l2sink device=/dev/video16 disp-width=640 disp-height=480 axis-top=480
-----------------
./ 显示效果如下

./ 此时CPU占用率
-----------------
CPU1 60%
CPU2 40%
-----------------
4). Apalis T30
a). 模块支持两路Parallel Camera接口和一路MIPI CSI-2 V1.0接口(1-4 lane)
b). 手动加载驱动模块, 识别出 /dev/video0 (ADV7180)和/dev/video1(OV5640)
-----------------
root@apalis-t30:~# modprobe videobuf2-memops
root@apalis-t30:~# modprobe videobuf2-dma-nvmap
root@apalis-t30:~# modprobe adv7180
root@apalis-t30:~# modprobe ov5640
root@apalis-t30:~# modprobe tegra_v4l2_camera
-----------------
c). 运行下面gstreamer pipeline测试MIPI CSI-2摄像头
-----------------
/* 640x480分辨率抓取并播放 framerate=90 */
gst-launch -vvv v4l2src device=/dev/video1 ! 'video/x-raw-yuv, width=640, height=480, framerate=90/1' ! deinterlace tff=1 method=4 ! nv_omx_videomixer ! nv_gl_eglimagesink
/* 1296x972分辨率抓取并播放 framerate=60 */
gst-launch -vvv v4l2src device=/dev/video1 ! 'video/x-raw-yuv, width=1296, height=972, framerate=60/1' ! deinterlace tff=1 method=4 ! nv_omx_videomixer ! nv_gl_eglimagesink
/* 1920x1088分辨率抓取并播放 framerate=15 */
gst-launch -vvv v4l2src device=/dev/video1 ! 'video/x-raw-yuv, width=1920, height=1088, framerate=15/1' ! deinterlace tff=1 method=4 ! nv_omx_videomixer ! nv_gl_eglimagesink
-----------------
d). 分别对应的CPU占用率如下
-----------------
//640x480
CPU1 - 85%
CPU2 - 0%
CPU3 - 0%
CPU4 - 0%
//720P
CPU1 - 90%
CPU2 - 70%
CPU3 - 0%
CPU4 - 0%
//1080P
CPU1 - 100%
CPU2 - 60%
CPU3 - 0%
CPU4 - 0%
-----------------
5). 总结
随着ARM处理器性能越来越强大,高质量的摄像头解决方案的需求在嵌入式工业领域也会越来越广泛,MIPI CSI无疑是目前最好的方案之一,相信会有广阔的前景。专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
ADI在线研讨会: 适用于高性能RF信号链解决方案
由CW1524A组成的4W直流变换器
ADIsim CLK™_精确、快捷、易用的时钟产品辅助设计及仿真工具
由CW1524组成的半桥式开关稳压电源电路
音频or视频技术
晶圆代工产能利用率偏低,但营收与市场份额持续增长
音频 视频技术
请问如何成为FTP会员?
迈瑞与GMSL™ 3:微创手术,超清视界
基础教程:电源管理基础知识
拆解:Plantronics Voyager Surround 85
拆解:Vivo X Fold 3 Pro
拆解:JBL Charge 5
音乐机器人编程
如何比较固态继电器和CMOS开关的性能?
由CW1524组成的单端反激式集成开关稳压电源电路
由CS3842构成的三输出直流稳压电源电路
西门子与Rittal合作开发人工智能数据中心电力基础设施
拆解:索尼 Xperia 1 VI
利用输出放电解决电源的系统性故障
一周速成:做一个成功部门经理
诚征电源监控代理商
诚证电源监控系统代理商
便携式医疗保健设备
一种全电子多路音频切换器
请大侠介绍一下s3c44b0的一个最简的bootloader应该做哪些工作?顺序怎样?
一种数字录音与回放系统实现方案
由MC33364构成的8.2V/3A开关直流稳压电源电路
医疗应用中隔离的重要性
NVIDIA CloudXR将RTX系统连接到Apple Vision Pro