GMSL视频

隐溪科技研发的H4xGMSL2功能板实现GMSL2摄像头的接入。

功能说明

完整的GMSL2视觉感知系统由三个核心组件构成:

  • GMSL2摄像头:sensor芯片,串行器

  • H4xGMSL2转接板:解串器

  • NVIDIA Orin计算平台:CSI视频流输入处理

io-h4xgmsl2

关键特性

参数

规格

说明

解串芯片

MAX96724R

兼容MAX96724(6Gbps)型号

支持通道数

4路独立输入

可同时连接4个GMSL2摄像头

最高分辨率

4K@30fps

(每路)支持更高帧率的低分辨率模式

GMSL接口

GMSL2 3Gbps

输入标准GMSL2信号,速率3Gbps

CSI接口

MIPI CSI-2

输出标准CSI-2信号,兼容主流处理器

电源

12V DC, 2A

可为连接的摄像头提供电源(PoC)

反向通道

I2C通信、GPIO控制

支持摄像头配置和控制

帧同步

支持帧同步In和Out

支持接收外部帧同步信号和对外输出

尺寸

30*52mm

基于minipcie自定义信号线

使用说明

GMSL2摄像头连接

在使用GMSL2功能前,请确保GMSL2功能板和GMSL2线束已经完成连接

  • GMSL2接头位号和链路对应表

注意

  • 系统在启动过程中从1开始检测GMSL2摄像头是否在线,第一个在位的GMSL2摄像头创建设备为dev/video0

  • 支持热拔插摄像头,每次GMSL2摄像头的接线调整,需在系统断电的情况下操作

对应的GMSL Link为:

接线位号

GMSL链路

1

Link A

2

Link B

3

Link C

4

Link D

  • GMSL2线束规格

TE Mate-AX四腔母头转Fakra Z直母,同轴线FDC402,默认1米

io-h4xgmsl2-matex

系统启动后进行jetson-io配置

sudo /opt/nvidia/jetson-io/jetson-io.py

选择H4xGMSL2-BC-3G,如下图所示:

jetson-io

jetson-io

jetson-io

jetson-io

jetson-io

jetson-io

按照系统提示保留配置后系统重启

检查摄像头设备创建

小技巧

IO-H4xGMSL2支持4路摄像头,套件中的minifakra的四合一线束,支持4路GMSL2摄像头的同时接入

  • 如果只接入了一路摄像头,该摄像头为 /dev/video0

  • 如果接入了两路摄像头,这摄像头设备依次为/dev/video0  /dev/video1,依次类推。

root@tegra-ubuntu:~# ls /dev/video*
/dev/video0  /dev/video1  /dev/video2  /dev/video3

显示4路摄像头设备已经创建.

检查V4L2层工作状态

root@tegra-ubuntu:~# v4l2-ctl --list-devices
NVIDIA Tegra Video Input Device (platform:tegra-camrtc-ca):
        /dev/media0
  
vi-output, nv_cam 15-001a (platform:tegra-capture-vi:2):
        /dev/video0
        /dev/video1
        /dev/video2
        /dev/video3

确定摄像头设备的解串器和串行器

小技巧

IO-H4xGMSL2支持4路摄像头,套件中的minifakra的四合一线束,如果连接了多个摄像头,需要通过如下命令确定当前解串/串行器通道和摄像头的对应关系

root@tegra-ubuntu:/home/nvidia# media-ctl -p | grep des
                <- "des_1_ch_0":0 [ENABLED]
                <- "des_1_ch_1":0 [ENABLED]
                <- "des_1_ch_2":0 [ENABLED]
                <- "des_1_ch_3":0 [ENABLED]
- entity 25: des_1_ch_3 (2 pads, 2 links)
- entity 28: des_1_ch_2 (2 pads, 2 links)
- entity 31: des_1_ch_1 (2 pads, 2 links)
- entity 34: des_1_ch_0 (2 pads, 2 links)
                -> "des_1_ch_0":1 [ENABLED]
                -> "des_1_ch_1":1 [ENABLED]
                -> "des_1_ch_2":1 [ENABLED]
                -> "des_1_ch_3":1 [ENABLED]
root@tegra-ubuntu:/home/nvidia# media-ctl -p | grep ser_
                <- "ser_7_ch_0":0 [ENABLED]
                <- "ser_6_ch_0":0 [ENABLED]
                <- "ser_5_ch_0":0 [ENABLED]
                <- "ser_4_ch_0":0 [ENABLED]
- entity 37: ser_4_ch_0 (2 pads, 2 links)
- entity 40: ser_5_ch_0 (2 pads, 2 links)
- entity 43: ser_6_ch_0 (2 pads, 2 links)
- entity 46: ser_7_ch_0 (2 pads, 2 links)
                -> "ser_4_ch_0":1 [ENABLED]
                -> "ser_5_ch_0":1 [ENABLED]
                -> "ser_6_ch_0":1 [ENABLED]
                -> "ser_7_ch_0":1 [ENABLED]

设置摄像头采集格式(C口/J21/CAM1)

media-ctl -d /dev/media0 --set-v4l2 '"des_1_ch_0":0[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"des_1_ch_1":0[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"des_1_ch_2":0[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"des_1_ch_3":0[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"ser_4_ch_0":1[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"ser_5_ch_0":1[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"ser_6_ch_0":1[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"ser_7_ch_0":1[fmt:YUYV8_1X16/1920x1536]'

打开摄像头进行视频采集

gst-launch-1.0 v4l2src device=/dev/video0 ! \
'video/x-raw,width=1920,height=1536,framerate=30/1,format=UYVY' ! \
videoconvert ! xvimagesink -ev
  
gst-launch-1.0 v4l2src device=/dev/video1 ! \
'video/x-raw,width=1920,height=1536,framerate=30/1,format=UYVY' ! \
videoconvert ! xvimagesink -ev
  
gst-launch-1.0 v4l2src device=/dev/video2 ! \
'video/x-raw,width=1920,height=1536,framerate=30/1,format=UYVY' ! \
videoconvert ! xvimagesink -ev
  
gst-launch-1.0 v4l2src device=/dev/video3 ! \
'video/x-raw,width=1920,height=1536,framerate=30/1,format=UYVY' ! \
videoconvert ! xvimagesink -ev

常见问题

Q1 H4xGMSL2转接板的安装槽位J21

H4xGMSL2转接板需安装在J21对应的槽位,该槽位的CSI信号线来自Orin Nano开发套件的J21接口,为CSI2 x4 Lane

Q2 v4l2常见命令的使用

### 安装v4l2命令
sudo apt update
sudo apt install v4l-utils 

### 查看所有V4l设备
v4l2-ctl --list-devices

### 查看指定V4l设备
v4l2-ctl -d /dev/video0 --all

### 查看设备的v4l规范支持情况
v4l2-compliance -d /dev/video0 

#### 查看所有支持的格式详情
v4l2-ctl -d /dev/video0 --list-formats
v4l2-ctl -d /dev/video0 --list-formats-ext

### 查看设备当前video的格式
v4l2-ctl -d /dev/video0 --get-fmt-video

### 测试视频流
v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=RG12
v4l2-ctl --stream-mmap --stream-count=1 --stream-to=test_frame.raw