Gx series camera appnotes 4 rpi/zh
1 概述
GX系列相机是为工业领域的AI应用推出的相机。其使用MIPI CSI-2接口,尤其适合嵌入式运算平台使用。它具备丰富的数据格式和触发特性,极高的带宽和可靠的稳定性。
本文介绍了如何在树莓派平台使用GX系列相机。
1.1 支持的模组
| 系列 | 型号 | 状态 |
|---|---|---|
| GX系列 | GX-MIPI-IMX662 | 完成 |
2 硬件准备及安装
2.1 GX系列摄像头使用ADP-MV1的连接方式
MV系列相机需要使用ADP-MV1转接板才能连接到树莓派。
2.1.1 MV系列摄像头与ADP-MV1的连接
二者使用0.5mm间距*30P的FFC异面线连接,注意接触面向外。
| TOP | BOTTOM |
|---|---|
2.1.2 供电
ADP-MV1需要独立的5V供电,可以使用杜邦线直接从树莓派主板取电。
2.1.3 树莓派5
二者使用15P转22P的FFC同面线连接,注意接触面安装方向。
| TOP | BOTTOM |
|---|---|
2.1.4 树莓派Model B和Model B+
二者使用1mm间距*15P的FFC异面线连接,注意接触面安装方向。
2.1.5 树莓派Zero,Zero W和Computer Module
二者使用15P转22P的FFC同面线连接,注意接触面安装方向。
2.2 RAW系列摄像头连接到树莓派
2.2.1 树莓派5
RAW-MIPI-SC132M使用15to22pin同面FFC线,其他RAW系列相机使用22pin异面FFC线。
2.2.2 树莓派Model B和Model B+
RAW-MIPI-SC132M使用15pin异面FFC线,其他RAW系列相机使用15to22pin同面FFC线。
2.2.3 树莓派Zero,Zero W和Computer Module
RAW-MIPI-SC132M使用15to22pin同面FFC线,其他RAW系列相机使用22pin异面FFC线。
V4L2模式用法
我们在这个github仓库保存了v4l2模式的代码。
国内用户可以使用gitee仓库。
2.3 下载驱动包
wget https://github.com/veyeimaging/raspberrypi_v4l2/releases/latest/download/raspberrypi_v4l2.tgz
国内用户可通过gitee下载:
https://gitee.com/veyeimaging/raspberrypi_v4l2/releases/
2.4 安装驱动
tar -xzvf raspberrypi_v4l2.tgz
cd raspberrypi_v4l2/release/
chmod +x *
- 对于树莓派5
sudo ./install_driver_rpi5.sh veye_gxcam
会在/boot/config.txt中安装CAM1和CAM0两个dtvoerlay。
- 其他树莓派
sudo ./install_driver.sh veye_gxcam
然后重启树莓派。
备注:如果提示无法找到对应版本的驱动,说明我们没有提供对应您的piOS版本编译后的驱动程序。请尝试从源码编译。
2.5 卸载驱动
如需更换成其他摄像头模组型号的驱动,必须要先卸载现在的驱动。
sudo ./uninstall_driver.sh veye_gxcam
2.6 系统状态验证
以GX-MIPI-IMX662为例:
dmesg | grep gxcam
可以看到linux启动阶段probe到的相机型号:
camera is: GX-MIPI-IMX662
并且/dev/video0 节点存在,证明摄像头状态正常。
Note:触发脚本链接。
3 相机应用开发指南
4 CM4的补充说明
4.1 分别访问两个camera的方法:
- 预览CAM0
$ ./veye_raspipreview -t -1 -c 0 -y 10
- 预览CAM1
$ ./veye_raspipreview -t -1 -c 1 -y 11
5 树莓派官方对于压缩格式和未压缩格式的解释
5.1 压缩格式
这种压缩格式在存储像素数据时所占用的空间更少。
在 Raspberry Pi 4 及更早版本的设备上,这种封装格式是按照 MIPI CSI-2 标准来对像素进行封装的。这意味着:
10 位相机模式将 4 个像素压缩成 5 个字节。前 4 个字节包含每个像素的 8 个最高有效位(MSB),最后一个字节包含两个像素的 4 对最低有效位(LSB)。
12 位相机模式将 2 个像素压缩成 3 个字节。前 2 个字节包含每个像素的 8 个最高有效位(MSB),最后一个字节包含两个像素的 4 个最低有效位(LSB)。
在 Raspberry Pi 5 及更高版本的设备上,压缩格式会采用一种视觉上无损的压缩方案将像素值压缩为每个像素 8 位(1 个字节)。
5.2 未压缩格式
这种未压缩的格式提供了更便于手动操作的像素值,但代价是需要占用更多的存储空间来保存像素数据。
在所有设备上,未压缩格式每像素使用 2 个字节。
在 Raspberry Pi 4 及更早版本的设备上,应用程序会在最左侧应用零填充。在未解包格式中,10 位相机模式下的一个像素值不能超过 1023。
在 Raspberry Pi 5 及更高版本的设备上,应用程序会在最低有效位处进行零填充,因此图像能够充分利用传感器提供的像素深度的完整 16 位动态范围。
6 shell脚本进行参数配置
我们提供了shell脚本来配置参数。
https://github.com/veyeimaging/raspberrypi_v4l2/tree/main/gx_i2c_tools
7 参考资料
8 客户集成开发的几点建议
8.1 初始化阶段
需要完成分辨率、帧率的配置。建议客户在程序初始化阶段,直接v4l2-ctl命令的调用,完成分辨率帧率以及数据格式的配置。
不要使用gx_mipi_i2c.sh直接设置相机寄存器,因为直接设置相机寄存器的话,树莓派的linux驱动层次并不能同步到设置值。
8.2 工作阶段
客户根据自己开发语言的不同,可以参考本文前述的代码、工具。
关于时间戳,v4l2_buffer.timestamp会带有树莓派芯片接收到一个完整数据帧的准确时间,可以用于做相机同步或者与其他外部传感器同步的参考时间戳。
8.3 参数配置
GX系列相机的参数非常丰富和灵活,主要使用gx_mipi_i2c.sh直接进行寄存器配置的方式实现。具体请参考寄存器文档和gx_mipi_i2c.sh的说明文档。
gx_mipi_i2c.sh具有paramsave功能,作用是将客户所有的配置参数保存的相机flash中,但是不建议客户在程序中频繁调用。
9 问题反馈
我们致力于为嵌入式平台的图像应用提供更丰富的可能性。因此,我们在嵌入式平台的软件基于开源的原则而进行。
如对我们现有软件有任何的问题、建议,欢迎提交到论坛:,或者给我们的技术人员发邮件xumm#csoneplus.com。
10 本文修改记录
- 2025-12-06
第一个版本