树莓派是一款功能强大且价格亲民的微型计算机,广受开发者、创客和科技爱好者的喜爱。它适用于网站搭建、智能家居控制、游戏开发以及编程学习等多种应用场景。
艾利光科技针对树莓派开发板集成GMSL相机的需求,推出了适用于树莓派5的GMSL相机接入套件,支持多路GMSL摄像头同时接入。本文将介绍该套件的应用场景、硬件连接方式及软件配置方法,帮助您快速完成安装与设置,助力您的创新项目顺利开展。
应用场景
艾利光科技为树莓派5推出的GMSL相机接入套件提供三种不同的组合配置,用户可根据自身项目需求灵活选择。该套件的核心组件是艾利光科技自主研发的转接板,通过该转接板可实现GMSL相机与Raspberry Pi 5开发板之间的物理连接。
型号 | 内容清单 |
AKT-R48A-000 | 转接板*1 FPC线束*2 |
AKT-R48A-200 | 转接板*1 FPC线束*2 8MP摄像头*2 Fakra线束*2 |
AKT-R48A-400 | 转接板*1 FPC线束*2 3MP摄像头*4 Fakra线束*4 |
转接板目前可适配艾利光科技2款GMSL摄像头,分别为:
ISX031系列3M(1920*1536)30fps摄像头
- OX08B系列8M(3840*2160)30fps摄像头
并提供驱动支持。
GMSL相机接入套件满足以下典型应用场景:
1. Master 应用
Master模式是指GMSL相机在数据传输和控制过程中处于主导地位的工作模式。在该模式下,转接板支持单边接入1路或2路相机,最多可同时连接4路分辨率为3M(1920×1536)、帧率为30fps的摄像头。
连接示意图
2. Slave 应用
Slave模式是指GMSL相机在数据传输与控制过程中处于从属状态,需根据主设备的指令进行数据响应或传输。在此模式下,转接板通过Trigger信号接口与Raspberry Pi 5开发板的GPIO接口相连,可接收外部触发信号,实现最多4路相机的同步曝光控制。
连接示意图
硬件连接指南
1.电源连接
连接转接板电源适配器、Raspeberry pi 5开发板电源适配器。
2.CSI接口连接
Raspeberry pi 5开发板CSI接口支持2路4Lane MiPi信号输入,通过艾利光定制的FPC线束,可实现转接板与开发板连接,连接示意如下图:

接口示意图
注意:图中标注的 CSI0 和 CSI1 为软件定义的接口标识,与软件参数配置相关。请务必按照示意图所示方式进行连接,若采用其他连接方式,可能会导致软件无法正常运行。

最终连接效果图
3.RST和PWR引脚连接
转接板配备了 RST(复位)和 PWR(电源控制)两个引脚,其中 RST 引脚用于相机的复位操作,PWR 引脚则负责相机的电源管理。为了实现在一次通电周期内,通过软件对相机进行重复配置与重启,只需将这两个引脚连接到 Raspberry Pi 5 开发板的 40 针 GPIO 接口上,即可实现对相机的灵活控制。

接口示意图4.外部触发连接
转接板配有 RST(复位)和 PWR(电源控制)两个引脚,分别用于相机的复位操作和电源管理。如需在单次通电过程中,通过软件对相机进行重复配置与重启,只需将这两个引脚连接至 Raspberry Pi 5 的 40 针 GPIO 接口,即可实现对相机的灵活控制。

接口示意图

最终连接效果图
软件配置指南
1. 驱动加载
驱动加载分为两个部分,第一部分是设备树的加载,另一部分是Driver的加载。
1.1 设备树的加载
① 将DTBO文件置于相应路径
树莓派支持成熟的 Overlays 机制,即通过 DTBO(设备树覆盖层)对设备树进行动态补丁。这种机制与特定内核版本关系不大,只要设备树结构未发生重大变化(如节点名称变更),编译生成的 DTBO 文件通常具有良好的通用性。
因此,我们只需将 Git 仓库中的文件:
max9296\bin\6.6.31+rpt-rpi-2712\dtbo\max9296.dtbo
复制到树莓派的 /boot/firmware/overlays/ 目录下,即可完成配置。
参考指令:
sudo cp/mnt/nas_share/raspi_image/overlays/max9296.dtbo /boot/firmware/overlays/
②执行加载DTBO到设备树
这里需要在config.txt文件中添加max9296.dtbo的支持,参考指令:
sudo vim /boot/firmware/config.txt
并输入传感器参数,这里我们以艾利光科技摄像头为例,添加以下参数:
dtoverlay=max9296,sensor-type=ISX031_MAX96717_2CHdtoverlay=max9296,cam0,sensor-type=ISX031_MAX96717_2CH
最终config.txt中的配置如下:
[all]#dtoverlay=max9296,sensor-type=0X08B MAX96717 1CH#dtoverlay=max9296,cam0,sensor-type=0X08B MAX96717 1CHdtoverlay=max9296,sensor-type=ISX031 MAX967172CHdtoverlay=max9296,cam0,sensor-type=ISX031 MAX967172CH#dtoverlay=max9296,sensor-type=ISX031 MAX96717 1CH#dtoverlay=max9296,cam0,sensor-type=ISX031 MAX96717 1CH#dtoverlay=max9296,sensor-type=ISX031 MAX96717 2CH#dtoverlay=max9296,cam0,sensor-type=0X08B MAX96717 1CH
重启后,可以通过执行以下指令来验证Overlay是否已成功加载。若系统中出现名为max9296的设备节点,则表明Overlay加载成功。
cd/proc/device-tree/axi/pcie@120000/rp1/i2c@80000/max9296@10

1.2Driver的加载
基于 Raspberry Pi 官方发布的镜像版本,我们为每个内核版本预先编译了对应的驱动程序,并上传至 GitHub,方便用户下载使用。您只需根据当前系统所使用的内核版本,将 GitHub 中对应的 .ko 驱动文件复制到 /lib/modules/{内核版本号}/ 目录下即可。
{kernel version}可以使用以下指令获取:
$uname-r6.6.31+rpt-rpi-2712
然后执行,并分析驱动依赖:
sudodepmod
最后输入以下指令:
sudomodprobe max9296
当驱动加载成功后,dmesg命令会输出相应的日志信息。若日志内容中未出现任何错误报告,则表明驱动已成功加载。

注意:
在此场景中,我们选择使用 modprobe 而非 insmod 来加载驱动,主要原因是 Linux 下的 V4L2 驱动框架结构复杂,且依赖多个内核模块。modprobe 能够自动解析并加载所需的依赖模块,确保 V4L2 驱动完整、正确地加载和运行,而 insmod 则无法自动处理这些依赖关系。
2. 配置media pipe在Raspberry Pi 5的原生CFE(固件环境)驱动中,CSI2和CFE并未直接串联。因此,需要手动重新配置pipe(管道)。
为此,我们已在 Git 仓库的 max9296\script\ 路径下提供了相关脚本。请将其中的 aili_run_camera.sh 文件复制到 Raspberry Pi 的任意目录,然后执行以下命令运行脚本:
./aili_run_camera.sh csi_channel width hight deserdes_channel
参数解析:
csi_channel :表示指定使用的CSI(Camera Serial Interface)通道。所有可配置参数如下:
csi0-- 使用csi0,参考硬件连接的示意图csi1-- 使用csi1,参考硬件连接的示意图all -- 同时使用csi0和csi1
width :表示当前该CSI通道所连接的Sensor(传感器)分辨率的宽度。
height:表示当前该CSI通道所连接的Sensor(传感器)分辨率的高度。
deserdes_channel:用于指定是使用一个还是两个deserdes通道。当仅使用一个通道时,需使用LINKA,配置参数如下:
1ch-- 使用deserdes的一个通道,LINKA2ch-- 使用deserdes的两个通道
注意事项:
1. 参数 width 和 height 必须与所加载的传感器驱动类型相匹配:
当使用 ISX031_MAX96717_2CH 或 ISX031_MAX96717_1CH 驱动时,width 应设置为 1920,height 应设置为 1536;
当使用 OX08B_MAX96717_1CH 驱动时,width 应设置为 3840,height 应设置为 2160。
2. 在加载 OX08B_MAX96717_1CH 驱动时,deserdes_channel 只能配置为 1ch(单通道)。使用示例:
./aili_run_camera.shall 192015362ch//
表示同时使用csi0和csi1,分辨率设置为1920x1536,deserdes的两个通道同时输出,即同时采集4路图像。
执行完毕后,若控制台显示已执行的指令且未报错,则表明操作已成功完成。
3.使用gstreamer显示图像
您可以使用位于 max9296\script\ 目录下的脚本来同时显示图像。请将其中的 aili_review_camera.sh 脚本文件复制到 Raspberry Pi 的任意目录中,并在该目录下执行以下命令,即可启动图像显示功能:
./aili_review_camera.sh csi_channel width hight deserdes_channel
参数解析:
csi_channel :表示指定使用的CSI(Camera Serial Interface)通道。所有可配置参数如下:
csi0-- 使用csi0,参考硬件连接的示意图csi1-- 使用csi1,参考硬件连接的示意图all -- 同时使用csi0和csi1
width :表示当前该CSI通道所连接的Sensor(传感器)分辨率的宽度。
height:表示当前该CSI通道所连接的Sensor(传感器)分辨率的高度。
deserdes_channel:用于指定是使用一个还是两个deserdes通道。当仅使用一个通道时,需使用LINKA,配置参数如下:
1ch-- 使用deserdes的一个通道,LINKA2ch-- 使用deserdes的两个通道
注意事项:
1. 请确保此脚本的参数与./aili_run_camera.sh脚本的参数保持一致。2. 该指令必须在具备图形用户界面的本地控制台执行,无法通过远程SSH连接执行。
应用示例
示例一:4路3M(1920*1536)摄像头应用

采用4个艾利光ISX031系列摄像头
config.txt 配置:
依次执行指令:
./aili_run_camera.sh all 192015362ch./aili_review_camera.sh all 192015362ch
执行结果:

示例二:2路8M(3840*2160)摄像头应用

采用2个艾利光OX08B系列摄像头
config.txt 配置:
依次执行指令:
./aili_run_camera.sh all 384021601ch./aili_review_camera.sh all 384021652ch
执行结果:

示例三:3路摄像头应用

采用2个艾利光ISX031系列3M(1920*1536)摄像头及1个艾利光OX08B系列8M(3840*2160)摄像头
config.txt 配置:

依次执行指令:
./aili_run_camera.sh csi1 192015362ch./aili_run_camera.sh csi0 384021601ch./aili_review_camera.sh csi1 192015362ch./aili_review_camera.sh csi0 384021601ch
执行结果:
-
计算机
+关注
关注
19文章
7679浏览量
90987 -
摄像头
+关注
关注
61文章
4993浏览量
98760 -
树莓派
+关注
关注
122文章
2031浏览量
107667
发布评论请先 登录
评论