Linux摄像驱动四:USB摄像驱动分析

本文主要探讨了如何在Linux系统中编写USB摄像头驱动程序,详细介绍了构造usb_driver、设置细节以及驱动注册过程。
摘要由CSDN通过智能技术生成

五、写一个USB摄像头驱动程序

 

大体框架如下所示:

1.构造一个usb_driver

2.设置

2.1. 分配video_device:video_device_alloc
2.2. 设置
   fops
   ioctl_ops (里面需要设置11项)
   如果要用内核提供的缓冲区操作函数,还需要构造一个videobuf_queue_ops
2.3. 注册: video_register_device     
  id_table: 表示支持哪些USB设备     

3.注册: usb_register

 

-----------------------------------------------------
 
UVC: USB Video Class
UVC驱动:drivers\media\video\uvc\
 
uvc_driver.c分析:
1. usb_register(&uvc_driver.driver);
2. uvc_probe
        uvc_register_video
            vdev = video_device_alloc();
            vdev->fops = &uvc_fops;
            video_register_device

 

分析一个驱动程序最好的方法就是跟踪应用程序对它的调用过程
 
在www.usb.org下载 uvc specification, UVC规格书
UVC 1.5 Class specification.pdf : 有详细描述
 
USB_Video_Example 1.5.pdf    : 有示例
     12页拓扑图可看出:
          USB摄像头内部分成两部分,一部分叫 VideoContro Interface:视频控制接口,一部分为: VideoSteaming Interface:视频流接口
通过VideoControl Interface来 控制
通过VideoStreaming Interface来读 视频数据
VC里含有多个Unit/Terminal等功能模块,可以通过访问这些模块进行控制,比如调亮度
          UC内部抽象出了2个概念:
                  Unit
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值