RK3576基于UVC协议USB摄像头配置指南,手把手教你搞定

智驭车手

瑞芯微RK3576芯片平台基于UVC协议,配置USB摄像头实现即插即用的适配采集功能,基于触觉智能RK3576开发板Purple Pi OH2演示。

UVC协议

  • UVC协议简介

UVC(USB Video Class,USB视频类) 是由 USB Implementers Forum(USB-IF) 制定的USB设备类标准,旨在统一视频设备(如摄像头、视频采集卡)与主机系统的通信协议,实现“即插即用”的视频采集功能。Linux系统通过 、uvcvideo驱动(基于V4L2框架)原生支持UVC协议,无需厂商专用驱动,是目前嵌入式Linux和桌面Linux中最常用的摄像头接入方案。

wKgZO2lp-VqASFTRAAvRH652od4980.png

  • 应用场景

触觉智能RK3576开发板采用核心板+底板设计,支持二次开发底板。其高性能AIoT核心板,凭借其8核CPU+4K编解码+16M ISP的强大性能,可应用于以下领域:工业视觉检测、智能安防、医疗影像、车载视频。

  • 演示环境

演示设备为触觉智能RK3576开发板Purple Pi OH2,系统固件为Buildroot2024。

其配套RK3576核心板,拥有40.5×40.5mm极致小尺寸,邮票孔封装,支持LPDDR4或LPDDR5高速内存,率先适配开源鸿蒙OpenHarmony5.0国产操作系统,100%全国产,支持最高-40~85℃工业级环境。

配置内核

  • 前期准备

通过RK3576开发板Buildroot系统,修改内核配置文件使能UVC协议支持,触觉智能出厂SDK默认支持此功能。修改代码如下:

CONFIG_MEDIA_USB_SUPPORT=y CONFIG_USB_VIDEO_CLASS=y

wKgZPGlp-YWAE8dHAAG3b4P-1MY554.png

重新编译内核进行测试,命令如下:

cd ./build.sh kernel

开发板上电进入系统接入USB摄像头,打印log信息发现一个UVC设备。

wKgZPGlp-Z6AV2GbAAJhiZBVVpw682.png

  • 确认USB摄像头设备节点&图像格式

USB摄像头设备节点。命令如下:

grep''/sys/class/video4linux/video*/name

wKgZPGlp-buAZY4HAAO1nROyZ5k812.png

从以上信息得知USB摄像头设备节点为/dev/video36/dev/video37,一般取较小的一个节点即/dev/video36

查看USB摄像头支持的图像格式,命令如下:

v4l2-ctl -d /dev/video36 --list-formats-ext

wKgZO2lp-cqAQFafAAWo23_AMyU545.png

从以上信息得知,USB摄像头输出图像支持以下格式与帧率:

MJPG 1920x1080 30/25fps MJPG 1280x720 30/25fps MJPG 640x480 30/25fps MJPG 640x360 30/25fps MJPG 352x288 30/25fps YUYV 640x480 30fps YUYV 640x360 30fps YUYV 352x288 30fps YUYV 352x240 30fps

测试预览

以下测试,使用gstreamer工具预览USB摄像头图像。

  • MJPG格式

由于USB摄像头输出图像是MJPG格式,需指定使用mppjpegdec解码器。

exportDISPLAY=:0 gst-launch-1.0 v4l2src device=/dev/video36 ! image/jpeg,width=1920,height=1080,framerate=30/1 ! mppjpegdec ! videoconvert ! autovideosink

wKgZPGlp_3SAWt74AAWgjR_HcsM383.png

1080P分辨率,实际帧率测试为26fps:

ffmpeg-loglevel info -stats -f v4l2 -input_format mjpeg -video_size1920x1080 -framerate30-i /dev/video36 -t10-f null -

wKgZO2lp_4eAKqXoAAkotrR8MoM511.png

  • YUYV格式

如果USB摄像头输出图像是YUYV格式,则不需要指定mppjpegdec解码器:

exportDISPLAY=:0 gst-launch-1.0 v4l2src device=/dev/video36 ! video/x-raw,format=YUY2, width=640, height=480, framerate=30/1 ! videoconvert ! autovideosink sync=false

wKgZO2lp_5OAUlo8AAUbNZuJ6mc707.png

640x480分辨率实际帧率测试为26fps:

ffmpeg-loglevel info -stats -f v4l2 -input_format yuyv422 -video_size640x480 -framerate30-i /dev/video36 -t10-f null -

wKgZPGlp_8SAMDqWAAvUyBvPHoE167.png

产品介绍

触觉智能Purple Pi OH2鸿蒙开发板,基于瑞芯微第二代8nm高性能AIOT平台RK3576,基于瑞芯微第二代8nm高性能AIOT平台RK3576,新品上市享首件特惠,详细可关注添加客服参与活动。