Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.1 摄像头介绍及其工具获取

1. 概述

该章节是分析Linux摄像头I2C-V4L2驱动,包括摄像头的一个介绍、摄像头配置和V4L2驱动的出图框架。采用的Linux ARM 芯片为RK3399,摄像头模组为OV13850.其中AIO-3399J 开发板分别带有两个 MIPIMIPI 支持最高 4K 拍照,并支持 1080P 30fps 以上视频录制。此外,开发板还支持 USB 摄像头。

  • RK3399 MIPI接口图
    Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.1 摄像头介绍及其工具获取_第1张图片

  • 摄像头模组图片
    Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.1 摄像头介绍及其工具获取_第2张图片

  • 连接方法
    Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.1 摄像头介绍及其工具获取_第3张图片

2. 摄像头参数

  • 品牌:Omnivision

  • 型号:CMK-OV13850

  • 接口:MIPI

  • 像素:1320W

  • 芯片引脚图
    Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.1 摄像头介绍及其工具获取_第4张图片

3. 硬件连接图

  • MIPI CSI接线
    由下图也可以得出,MIPI-CSI于主控芯片而言只有输入没有输出。
    Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.1 摄像头介绍及其工具获取_第5张图片

3. 硬件连接图

  • 驱动源码内核版本Linux4.4
  • OV13850驱动源码下载地址

4. 摄像头相关概念

写摄像头驱动,一定要对摄像头的一些专有名字做了解,不然会看不懂数据手册,本篇以瑞芯微RK3399为例,具体相关名词如下:

  • 3A:指的是自动聚焦(AF),自动曝光(AE)和自动白平衡(AEB)算法,或者算法.so
  • Async Sub Device,特指在 Media Controller 结构下的 V4L2 子设备
  • Bayer Raw,或者 Raw Bayer,表示设备(SensorISP)输出的 RGGBBGGRGBRGGRBG 等格式,或该格式的数据帧
  • Buildroot, 特指 Rockchip 基于 Buildroot[2] 发布的一系列 Linux SDK
  • CIFCamera Interface, 即 Camera 接口, 用以接收 Sensor 数据并保存到 Memory
  • DVP,一种并行接口,即 Digital Video Port
  • Entity, 本文指 Media Controller 框架下的各节点
  • FCCFourCC,即 Four Character(FCC) codes,指 Linux Kernel 中用 4 个字符表示的图 像格式,详见 FourCC 介绍
  • HSYNC,行同步信号
  • ISPImage Signal Processing,用以接收并处理图像
  • IOMMUInput-Output Memory Management Unit,本文指 Rockchip 系列芯片中的 iommu 模块,用于将物理上分散的内存页 映射成 cifisp 可见的连续内存
  • Media ControllerLinux kernel 的一种媒体框架
  • MIPI,本文指 MIPI 协议
  • MIPI-DPHY,本文指 MIPI-DPHY 协议,或 Rockchip 芯片中符合 MIPI-DPHY 协议的控制器
  • MP,即 Main Path,指 Rockchip ISP 的一个输出节点,可输出全分辨率图像,一般用来拍照, 抓取 Raw
  • PCLK,即 Pixel clock
  • Pipeline,本文指 media controller 下各个 entity 相互连接形成的链路
  • SP,即 Self Path,指 Rockchip ISP 的一个输出节点,最高只能输出 1080p 分辨率,一般用 作预览
  • Userspace,即 Linux 用户空间(相对于 Linux 内核空间),本文特指用户层或在用户层执行 的程序
  • V4L2,即 Video4Linux2Linux kernel 的视视频处理模块
  • VIP,在 Rockchip 芯片中,即 Video Input Processor, 曾作为 CIF 的别名,已不再使用
  • VSYNC,场同步信号

5. v4l-utils 工具及应用

  • 摄像头开发离不开Linux 内核V4L2驱动,为了方便调试摄像头出图,就出现了调试工具,例如v4l-utils
  • v4l-utils 工具是由 Linuxtv[1] 维护的一个 V4L2 开发套件, 它提供一系列 V4L2media framework 相关的工具,用来配置 V4L2 子设备的属性,测试 V4L2 设备,并提供如 libv4l2.so 开发库等等。
  • 这一章主要介绍 v4l-utils 中的两个命令行工具:media-ctl 以及 v4l2-ctl

5.1 工具介绍

  • media-ctl, 用以查看、配置拓扑结构
  • v4l2-ctl, 用以配置 v4l2 controls,可抓帧,设置 cifispsensor 参数
    不同版本的 v4l-utils 所对应的参数,format 代码会有些不同,特别是 mbus-fmt 部分。本文所采 用的版本是集成在 Linux SDK 中的 v4l-utils-1.14.1

5.2 获取并编译 v4l-utils

  • Rockchip 发布的 Linux SDK 中, 默认已集成了 v4l-utils 包。用户可以通过 buildroot 的 编译开关开启或关闭 v4l-utils 包。如 SDK 目录下, buildroot/configs/rockchip_px3se_defconfig 文件中,如下这一行将 v4l-utils 编译选项打开:
BR2_PACKAGE_LIBV4L_UTILS=y
  • 用户也可以在 Linuxtv 的官网获取源码编译,编译请参考 wiki。

  • V4l-utils 包在 ubuntu 系统下, 也可通过 apt 工具直接安装,如下:

sudo apt-get install v4l-utils

返回总目录

你可能感兴趣的:(Linux,ARM平台从入门到精通,linux,arm,摄像头驱动,OV13850)