如何在RV1126B上使用MIPI-CSI 摄像头
1. MIPI相机概述
1.1 MIPI CSI2 接口简介
MIPI(移动产业处理器接口):由ARM、诺基亚、ST和TI等公司于2003年成立的联盟制定的一种接口标准。其目的是标准化移动设备内部接口(如摄像头、显示屏、射频/基带接口),从而降低移动设备的设计复杂度,提高设计灵活性。
工作组:MIPI联盟包含多个工作组,每个工作组负责定义相应设备的标准。这些工作组包括相机工作组、显示工作组和高速多链路工作组等十余个小组。
MIPI CSI-2 接口是 MIPI 联盟下相机工作组制定的 CSI(相机串行接口)标准的第二版。
•硬件层:支持最多4个虚拟通道(信道)进行数据传输。每个信道在物理上实现为一对差分信号线(见下图原理图),每条信道的最大通信速率可达2.0 Gbps。
•软件层:MIPI CSI-2协议栈主要由应用层、协议层和物理层组成。协议层进一步分为:像素/字节分组/非分组层、下层协议层以及通道管理层。
1.2 硬件接口资源简介
EASY EAI Nano-TB 开发板配备两个 MIPI CSI-2 接口,每个接口均带有 4 条通道输出。其位置定义如下所示。
EASY EAI Nano-TB 默认配备 IMX415 单目摄像头,以及一根 40 针 FPC 反向线缆,间距为 0.5 毫米。
•反向电缆:两端的蓝色标记位于相对的两侧。
•前向电缆:两端的蓝色标记位于同一侧。
1.3 线路连接说明
•必须在断电时进行接线。
•使用反向线缆将IMX415摄像头连接到Camera1接口。(注意:使用错误的线缆可能会损坏摄像头或主板,因此接线时务必格外小心。)
•FPC电缆上的连接器锁扣和蓝色塑料标记必须位于同一侧,如图所示。
1.4 检查设备状态
您可以使用 dmesg 命令来验证 MIPI-CSI2 接口模块是否正常工作:
相机的正常安装状态如下(示例输出):
•一个搭载imx415传感器的摄像头连接到dphy0接口,MIPI-CSI2地址为1-0036;
•一个搭载imx415传感器的摄像头连接到dphy3接口,MIPI-CSI2地址为4-0036。
如果目标相机节点未显示,请检查FPC线缆连接,确保其符合“1.3 线缆连接说明”。
1.5 查找可用的设备节点
在Rockchip平台上,一个MIPI-CSI接口对应超过20个视频节点(如设备树中定义的那样),如下图所示。
注意:CSI0 不一定映射到 video0~24,这取决于实际的设备树配置。
此外,当修改内核设备树时,对应MIPI-CSI摄像头的节点是固定的(即MIPI-CSI摄像头的数量在内核中已配置,且视频节点配置不会根据是否连接MIPI-CSI摄像头而动态变化)。
因此,用户需要查找这些节点的描述信息。Linux 的 v4l2 框架将这些节点的描述信息统一存放在 /sys/class/video4linux/ 目录中,如下图所示。
跳转到任意描述(例如:video22):
使用 cat 命令查看名称文件的内容。Rockchip 芯片定义:如果名称为 mainpath 或 selfpath,则 "video22" 是一个可用节点。
在任意终端目录中执行以下命令,可快速扫描所有节点的“name”描述:
在此示例中,/dev/video22 和 /dev/video23 是 MIPI-CSI0 可用的节点。
2. 快速入门
2.1 开发环境准备
如果您是首次阅读本文,请参考《入门指南/开发环境准备/简易EAI编译环境准备与更新》,并按照相关操作部署编译环境。
在电脑上的Ubuntu系统中运行脚本,以进入EASY-EAI编译环境:
2.2 源代码下载与示例编译
首先,在虚拟机的后台终端中,执行以下命令以创建一个用于管理外设单例源代码的目录:
例如,将单例程序下载到:此电脑\D:\BaiduNetdisk(无固定规则;用户可自由选择),如下图所示。
然后将下载的单例程序复制到虚拟机的文件系统中。
最后,输入相应的示例目录并执行编译命令:
备注:
由于依赖库已部署在板上,因此在交叉编译过程中必须保持 /mnt 的挂载。
2.3 示例执行
通过串口调试或SSH调试访问板子的后台,并导航至示例的部署位置:
运行示例的命令如下:
2.4 执行效果
执行效果如下。
示例运行完成后,将在 /tmp 目录中生成一张图片文件。返回虚拟机,打开一个新的终端窗口,使用 scp 命令将该图像复制回去:
然后使用 mplayer 命令播放照片:
示例的默认分辨率为1920x1080,因此请将w和h参数分别填入1920和1080。如果图像显示异常,可能是分辨率与所用相机不匹配——请在mipicamera_init()中调整分辨率(例如1280x720),然后重新运行命令。
3. MIPI相机测试用例
示例代码路径为:02_camera/test-mipiCam/main.c。MIPI相机API测试用例代码的逻辑流程如下:
本文编译自hackster.io





