tag 标签: apalis

相关博文
  • 热度 22
    2018-4-11 11:53
    3137 次阅读|
    0 个评论
    ByToradex 秦海 NXPi.MX 系列 ARM 处理器最新产品系列 i.MX8 系列已经陆续发布,根据不同配置其集成了多种 ARMCortex 架构核心,从 Cortex-A72 , Cortex-A53 到 Cortex-A35 ;另外,除了 Cortex-A 核心,还包含有可以提供实时任务处理的 Cortex-M 核心。因此 NXPi.MX8 系列处理器非常适用于从高端视觉和多媒体处理,到高安全和可靠性的嵌入式应用等跨领域的多种应用场景。基于目前 i.MX6 系列处理器在各个工业领域的广泛应用,我们有理由对相比 i.MX6 各方面都有显著提升的 i.MX8 系列抱有更多期待。 NXPi.MX8 家族系列目前包含有 4 个 SKU ,具体配置差别如下: ​ ./i.MX8 ,系列中最高端配置 SKU , 6 核心 Cortex-A ( A72+A53 )加上 2 核心 Cortex-M4 ,另外还配置了 1 个 DSP 核心和 2 个 GPU 核心,图形加速和高速接口都一应俱全,非常适合高端视觉和多媒体应用。 ./i.MX8M 系列,包含 i.MX8M 和 i.MX8MMini ,中端配置 SKUs ,主要针对嵌入式消费类音视频应用。 ./i.MX8X 系列,使用低功耗的 Cortex-A35 核心,主语针对高安全和可靠性的嵌入式工业应用。 目前根据 NXP 官方信息,针对嵌入式消费类音视频应用的 i.MX8M 已经率先量产,其他 SKU 也会陆续在 2018 年量产,不过对于大家最关注的最高性能 i.MX8SKU ,已经有少数 NXP 合作伙伴提供了早期预览版的计算机模块供早期策略客户评估使用,详细信息可以参考 这里 。 随着 NXPi.MX8 系列 ARM 处理器的陆续应用,配合工业智造和工业 4.0 的兴起,势必会在工业领域掀起新的应用浪潮。
  • 热度 19
    2016-5-26 15:44
    1440 次阅读|
    0 个评论
    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   adv7180 3-0021: no sensor pwdn pin available mxc_v4l2_master_attach: ipu0:/csi0 parallel attached adv7180:mxc_ v4l2_cap0 root@apalis-imx6:~# dmesg |grep ov5640 ov5640_mipi 3-003c: request of ov5640_mipi_reset failed mxc_v4l2_master_attach: ipu0:/csi1 parallel attached ov5640_mipi: mxc_v4l2_cap2 camera ov5640_mipi is found ov5640_set_virtual_channel: virtual channel=1 ov5640_set_virtual_channel: virtual channel=1 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无疑是目前最好的方案之一,相信会有广阔的前景。
  • 热度 26
    2016-5-26 15:15
    2344 次阅读|
    0 个评论
    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   adv7180 3-0021: no sensor pwdn pin available mxc_v4l2_master_attach: ipu0:/csi0 parallel attached adv7180:mxc_ v4l2_cap0   root@apalis-imx6:~# dmesg |grep ov5640 ov5640_mipi 3-003c: request of ov5640_mipi_reset failed mxc_v4l2_master_attach: ipu0:/csi1 parallel attached ov5640_mipi: mxc_v4l2_cap2 camera ov5640_mipi is found ov5640_set_virtual_channel: virtual channel=1 ov5640_set_virtual_channel: virtual channel=1 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无疑是目前最好的方案之一,相信会有广阔的前景。