0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

瑞芯微(EASY EAI)RV1126B MIPI-CSI摄像头

广州灵眸科技有限公司 2025-12-15 14:52 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1. MIPI摄像头简介

1.1 MIPI CSI2接口简介

MIPI (Mobile Industry Processor Interface):ARM, Nokia, ST ,TI等公司在2003年成立的一个联盟所定的接口。目的是把手机等移动设备内部的接口如:摄像头、显示屏接口、射频/基带接口等标准化,从而减少手机等移动设备设计的复杂程度和增加设计灵活性。

工作组(Work Group):MIPI联盟下有许多的工作组,不同的工作组负责定义对应设备的标准。其中包括有:Camera工作组、Display工作组、高速多端链接工作组等十几个工作组。

MIPI CSI-2接口是由MIPI联盟下的Camera工作组指定的CSI(Camera Serial Interface)的第2版接口标准。硬件层面:最大支持4个虚拟通道(Lane)传输数据,1个Lane在硬件上体现就是一对差分信号线(见下方原理图),每个Lane的最大通讯速率为2.0Gbps。软件层面:MIPI CSI-2协议栈主要由应用层、协议层、物理层组成,其中协议层又可以分为:像素/字节组包/解包层、底层协议层、通道管理层。

1.2 硬件接口资源介绍

EASY EAI Nano-TB开发板具有2路MIPI CSI-2接口。每路引出了4个Lane。位置定义如下所示。

wKgZPGkFZ-GAGOaVABsm1sTp0SE309.png

EASY EAI Nano-TB默认搭配IMX415单目摄像头。同时配有一根0.5mm间距的40pin FPC反向线

反向线:两端的蓝色标识不在同一侧面。

同向线:两端的蓝色标识处于同一侧面。

wKgZPGkFZSSAd_ruAACcT2HdExY395.png

图片

1.3 接线说明

图片

* 接线必须在断电时进行操作。

* 采用反向线连接IMX415摄像头与Cmaera1接口。(注意:用错线会烧坏摄像头或者核心板,因此在接线时务必要小心。)

* 接线端子卡扣与FPC线的蓝色塑料标识必须位于同一侧。如下图所示。

图片

1.4 查看设备情况

可以通过dmesg命令,检查MIPI-CSI2接口模块是否正常工作。

dmesg | grep "csi2-.phy"

摄像头正常挂载的情况如下所示。可以看到:

在dphy0接口上有一个sensor型号为:imx415的摄像头,MIPI-CSI2地址为:1-0036;

在dphy3接口上有一个sensor型号为:imx415的摄像头,MIPI-CSI2地址为:4-0036。

图片

当没能出现目标camera节点时,就需要检查FPC排线是否正常连接,请检查排线的连接是否与“1.3接线说明”一致。

1.5 寻找可用的设备节点

rockchip平台,一个MIPI-CSI接口会对应20多个video节点(设备树定了就会生成这么多个),如下图所示。

wKgZPGk_sC2AE1qKAAA3zRt-MXI090.png

注意:CSI0并不一定是对应着video0~24,这个要根据设备树的实际情况对应生成。

而且MIPI-CSI camera对应的节点,会在修改内核设备树的时候固定下来(即:内核配好了MIPI-CSI Camera个数,无论MIPI-CSI摄像头是否有接上,它的video节点情况都是不会根据MIPI-CSI Camera的接入情况而【动态】改变)。

因此,用户需要找到这些节点所对应的描述信息是什么。Linux的v4l2框架会把这些节点的描述信息统一放在/sys/class/video4linux/目录下,如下图所示。

图片

随便进入一个描述,如video22。

图片

通过cat命令,可以用查看这个name的内容是什么。rockchip芯片定义:如果这个name是mainpath或者selfpath。则这个“video22”就是可用节点。

在终端任意目录执行下面这条命令,可以快速扫描所有的节点的“name”描述。

grep "mainpath" /sys/class/video4linux/video*/name
图片

因此,/dev/video22和/dev/video23都是MIPI-CSI0的可用节点。

2. 快速上手

2.1 开发环境准备

如果您初次阅读此文档,请阅读《入门指南/开发环境准备/Easy-Eai编译环境准备与更新》,并按照其相关的操作,进行编译环境的部署

在PC端Ubuntu系统中执行run脚本,进入EASY-EAI编译环境,具体如下所示。

cd ~/develop_environment
 ./run.sh 
图片

2.2 源码下载以及例程编译

首先,在虚拟机后台终端,执行以下命令,创建外设单例源码管理目录:

cd /opt 
mkdir -p EASY-EAI-Nano-TB/demo 

首先,到【百度网盘】上下载相关的单例程序:

链接:https://pan.baidu.com/s/1Br608Hiff2Xs65PzWO_qWQ?pwd=1234

提取码:1234

比如把单例程序下载到:此电脑\D:\BaiduNetdisk (无规定,用户可自主选择),如下图所示。

wKgZPGk_sC2ABt6zAACzoRde1NI403.png

再将下载好的单例复制进入虚拟机的文件系统,过程如下图所示。

图片图片wKgZO2k_sC6Ac1u3AAEuIxvPw24907.png

最后,进入到对应的例程目录执行编译操作,具体命令如下所示:

cd EASY-EAI-Nano-TB/demo/02_camera 
./build.sh 

注:
* 由于依赖库部署在板卡上,因此交叉编译过程中必须保持/mnt挂载。

图片

2.3 例程运行

通过串口调试或ssh调试,进入板卡后台,定位到例程部署的位置,如下所示:

cd /userdata
图片

运行例程命令如下所示:

./test-mipiCam 22

2.4 运行效果

执行效果如下所示。

图片

例程运行完之后,会在/tmp目录下得到一张photo图片。回到虚拟机里,新开一个终端窗口,通过scp命令把图片拷回来:

图片

然后把photo用mplayer命令播放出来,如下所示。

mplayer -demuxer rawvideo -rawvideo w=1920:h=1080:format=bgr24 photo -loop 0

例程默认分辨率为1920x1080,故w和h的参数对应填入1920和1080。当出现图片异常时,说明分辨率等不太对应于手头的摄像头,所以需要调整mipicamera_init()的分辨率,例如1280x720。命令执行如下所示。

图片

3. MIPI摄像头测试案例

示例代码路径为:02_camera/test-mipiCam/main.c。MIPI Camera API的测试案例代码逻辑流程如下所示:

wKgZPGk_sC6AbTIrAABQySGd7zE526.png

3.1 源码说明

int main(int argc, char **argv)
{
	int ret = 0;
    if(1 == argc){
        printf("\nerr: Missing parameter!\n");
        printf("================= [usage] ==================\n");
        printf("example:\n");
        printf("\t%s <22/30>\n", argv[0]);
        printf("--------------------------------------------\n");
        return 0;
    }
    
	char *pbuf = NULL;
	int skip = 0;
	FILE *fp = NULL;
    
    int cameraIndex = atoi(argv[1]); //通常是video22
    ret = mipicamera_init(cameraIndex, CAMERA_WIDTH, CAMERA_HEIGHT, 0);
    if (ret) {
        printf("error: %s, %d\n", __func__, __LINE__);
        goto exit3;
    }
    
    pbuf = (char *)malloc(IMAGE_SIZE);
    if (!pbuf) {
        printf("error: %s, %d\n", __func__, __LINE__);
        ret = -1;
        goto exit2;
    }
    
    //跳过前10帧
    skip = 10;
    while(skip--) {
        ret = mipicamera_getframe(cameraIndex, pbuf);
        if (ret) {
            printf("error: %s, %d\n", __func__, __LINE__);
            goto exit1;
        }
    }

    /* tips: 可以在Ubuntu下用mplayer播放录制图像
     *	mplayer -demuxer rawvideo -rawvideo w=1920:h=1080:format=bgr24 photo -loop 0
    */
    fp = fopen("/tmp/photo", "w");
    if (!fp) {
        printf("error: %s, %d\n", __func__, __LINE__);
        ret = -1;
        goto exit2;
    }
    fwrite(pbuf, 1, IMAGE_SIZE, fp);
    fclose(fp);

exit1:
    free(pbuf);
    pbuf = NULL;
    
exit2:
    mipicamera_exit(cameraIndex);
    
exit3:
    return ret;
}

其中mipicamera_init(),mipicamera_getframe(),mipicamera_exit()是对v4l2接口调用的易用化封装。具体实现于02_camera/commonApi/mipi_camera.c

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 瑞芯微
    +关注

    关注

    27

    文章

    930

    浏览量

    54787
  • 摄像头模组
    +关注

    关注

    2

    文章

    61

    浏览量

    6838
  • EASY-EAI灵眸科技

    关注

    4

    文章

    154

    浏览量

    3762
  • RV1126B
    +关注

    关注

    0

    文章

    151

    浏览量

    301
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    (EASY EAI)RV1126B AHD摄像头

    1.AHD摄像头硬件介绍1.1AHD信号转接板介绍EASYEAINano-TB默认没有AHD信号接口,因此需要通过一块信号转接板把AHD信号转换成MIPI-CSI信号进行接入:*一块转接板能接4路
    的头像 发表于 12-17 13:50 4653次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> AHD<b class='flag-5'>摄像头</b>

    (EASY EAI)RV1126B 音频输出

    1.声卡资源介绍EASY-EAI-Nano-TB仅有一块由RV1126B主控输出的声卡。通过串口调试或ssh调试,可以进入开发板终端。执行aplay命令查看声卡相关的详细信息,如下所示
    的头像 发表于 04-01 17:13 8782次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> 音频输出

    (EASY EAI)RV1126B AOV方案

    1.方案简介本文将演示如何利用EASY-EAI-Nano-TB以及MIPI-CSI摄像头运行AOV方案。1.1接线示意图摄像头与板卡连接(注意:两个
    的头像 发表于 04-16 17:27 7353次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> AOV方案

    EASY EAI Nano-TB(RV1126B)开发板试用】开箱测评

    摄像头,显示屏,扬声器,耳麦, WIFI天线和 usb 数据线核心板和底板。 | 核心板处理器简介 它基于RV1126B处理器,集
    发表于 11-01 11:05

    EASY EAI Nano-TB(RV1126B)开发板试用】+1、开箱上电

    ,避免因接触不良导致显示或采集异常。 2 硬件解析:强劲AI核心与丰富接口 2.1 核心处理器性能 EASY EAI Nano-TB开发板的核心基于
    发表于 11-19 21:39

    EASY EAI Nano-TB(RV1126B)开发板试用】桌面系统功能测试-驱动摄像头-Mediapipe人体姿态检测1

    )开发板试用】开箱测评 EASY EAI Nano-TB(RV1126B)开发板是一款面向AIoT领域的高性能嵌入式开发平台,基于
    发表于 12-19 19:41

    EASY EAI Nano-TB(RV1126B)开发板试用】介绍、系统安装

    ,并介绍了系统镜像安装部署的相关流程。 介绍 EASY-EAI-Nano-TB是灵眸科技研发的一款应用于AIoT领域的AIOT主板。 核心板基于
    发表于 12-23 18:05

    【飞凌嵌入式RV1126B开发板试用体验】初识飞凌嵌入式RV1126B开发板试

    排列也整齐合理。下面是飞凌嵌入式RV1126B开发板的详细介绍,文字中有链接可以到达飞凌嵌网站做详细了解。 飞凌嵌入式RV1126B 是由保定飞凌嵌入式技术有限公司基于
    发表于 04-13 17:27

    (EASY EAI)RV1126B 人员检测方案

    1.方案简介本方案将演示如何利用EASY-EAI-Nano-TB以及MIPI-CSI摄像头制作一个【网络摄像头(IPCamera)】:两路MIPI-
    的头像 发表于 04-14 16:55 1207次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> 人员检测方案

    (EASY EAI)RV1126B 网络摄像头方案

    1.方案简介本方案将演示如何利用EASY-EAI-Nano-TB以及MIPI-CSI摄像头制作一个【网络摄像头(IPCamera)】:两路MIPI-
    的头像 发表于 04-15 16:49 1347次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> 网络<b class='flag-5'>摄像头</b>方案

    (EASY EAI)RV1126B yolov11训练部署教程

    、使用最广泛的YOLO变体。YOLO11将延续YOLO系列的传奇。本教程针对目标检测算法yolo11的训练和部署到EASY-EAI-Nano-TB(RV1126B)进行
    的头像 发表于 05-09 16:59 1002次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> yolov11训练部署教程

    RV1126B 方案特性

    RV1126B是面向边缘视觉场景的专用处理芯片,凭借低功耗、内置AI-ISP、双路MIPI-CSI接口以及端侧AI算力,可支撑常规监控
    的头像 发表于 05-11 14:27 2187次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RV1126B</b> 方案特性

    (EASY EAI)RV1126B ubuntu系统SDK源码获取

    1.源代码获取RV1126B的ubuntu系统SDK基于ubuntu22.04进行适配移植,所以建议同样在ubuntu22.04的环境(如EASY-EAI编译环境)下编译开发,并且源码部署在服务器
    的头像 发表于 05-23 16:32 184次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> ubuntu系统SDK源码获取

    新品发布!新一代RV1126B开发套件EASY-EAI-PI2正式上线

    新品发布!新一代RV1126B开发套件EASY-EAI-PI2正式上线
    的头像 发表于 06-08 11:08 405次阅读
    新品发布!新一代<b class='flag-5'>RV1126B</b>开发套件<b class='flag-5'>EASY-EAI</b>-PI2正式上线

    RV1126B开发板(EASY-EAI-PI2) 以太网口

    1.方案简介本方案将演示如何利用EASY-EAI-PI2以及MIPI-CSI摄像头制作一个【网络摄像头(IPCamera)】:两路MIPI-CSI
    的头像 发表于 06-08 16:45 210次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RV1126B</b>开发板(<b class='flag-5'>EASY-EAI</b>-PI2) 以太网口