设备树之V4L2实例

一 概述

V4L2(全称Video For Linux Two)是Linux下的视频驱动框架,为Linux视频驱动和应用程序提供统一的编程规范。

V4L2硬件系统包含两部分:SoC视频模块和外部Decoder

SoC视频模块主要功能:采集并且处理视频信号,通过DMA引擎传输数据到DDR

外部Decoder主要功能:转换视频信号,比如将HDMI信号转换为BT1120信号

注意:外部Decoder通常挂载到主芯片I2C总线或者SPI总线上。

二 V4L2实例重要属性

slave-mode 设置device工作模式为从模式,通常将SoC视频模块设置为slave-mode,外部Decoder设置为master-mode,由外部Decoder输出同步信号给SoC视频模块

bus-width 数字信号位宽,常用值:8,16,24

注意:bus-width属性只适用于并行数字信号

hsync-active 行同步信号有效电平,0表示低电平有效,1表示高电平有效

vsync-active 帧同步信号有效电平,0表示低电平有效,1表示高电平有效

field-even-active 表示传输偶场数据时,FID信号电平

0表示传输偶场数据时,FID信号为低电平

1表示传输偶场数据时,FID信号为高电平

data-active 数据使能信号有效电平,1表示数据使能信号高电平有效,0表示数据使能信号低电平有效

pclk-sample 表示像素时钟下降沿采样数据还是上升沿采样数据

0表示下降沿采样数据,1表示上升沿采样数据

channels 输入端口视频流ID

注意:

1使用分离同步信号采集视频,需要指定hsync-active、vsync-active、field-even-active中任意一个属性

2使用内嵌同步信号采集视频,需要指定channels属性

三 具体实例详解

V4L2典型实例1:使用分离同步信号采集视频

                 图1

                 图2

上图1为SoC视频模块设备树结点信息,工作模式为从模式

上图2为外部Decoder设备树结点信息,工作模式为主模式

即由adv7842芯片输出分离同步信号给vin5a。

由于外部Decoder通常挂载到主芯片I2C总线或者SPI总线上,因此adv7842结点是I2C结点的子结点。

hsync-active = <1>; 表示行同步信号高电平有效

vsync-active = <1>; 表示帧同步信号高电平有效

data-active = <1>; 表示数据使能信号高电平有效

pclk-sample = <0>; 表示像素时钟下降沿采样数据

V4L2典型实例2:使用内嵌同步信号采集视频

                图3

                图4

上图3为SoC视频模块设备树结点信息,工作模式为从模式

上图4为外部Decoder设备树结点信息,工作模式为主模式

即由tvp5158芯片输出内嵌同步信号给vin6a。

channels属性表示输入端口视频流ID,从上图4可知vin6a端口包含4个视频流,ID为0、2、4、6。

那么问题来了,如果vin6a端口只包含1个视频流,如何配置channels属性?

答:

channels = <0>;

详细实例如下图所示:

                 图5

转载于:https://blog.51cto.com/jiangniu/2067453

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值