基于USB的单反相机远程控制

本文描述一种基于USB的单反相机远程控制方法,适用于具有USB HOST接口的单片机或其它各类控制芯片。

本文不对USB底层通信逻辑及协议指令做讲解,单单描述实现步骤。

首先,单反相机属于USB设备端,而我们的控制设备属于HOST,当USB设备接入时,首先进入枚举过程,在这个过程里我们可以获得单反相机的很多信息,包括协议版本,序列号,设备名称,以及具体设备类型。

从接口描述符里,我们可以得知class的值为0x06,即Image Class,官方的class分类如下

https://www.usb.org/defined-class-codesicon-default.png?t=N7T8https://www.usb.org/defined-class-codes好的,知道什么类型那就好办了,因为官方规定好了不同类型的设备使用什么传输方式。这里推荐一款软件,自带解析器,可以直接看到设备的信息。比如我现在电脑上插了一个USB摄像头,可以读到Class为0x0E,正是Video设备。我现在手头没有单反相机,所以没法演示,原理是一样的。

单反相机的话,以我目前开发过的几款来看,几乎普遍有以下几个特点。

  1. 属于0x06 Image Class
  2. 除默认0号端点外,关于Image Class通信需要额外3个端点,其中1个使用批量传输IN,1个使用批量传输OUT,1个使用中断传输
  3. 使用PTP协议,即(PIMA 15740,即ISO 15740)

接下来就是按这个协议去开发就可以了,PTP的Operation code如下,在单反相机控制上,很多都是用不上的,当然也有很多指令是厂商自定义的,也就是你无法从标准PTP协议文档上去找到。但首先建立连接的OpenSession(0x1002)都是必不可少的,接下来就是根据具体厂商的协议指令去实现控制了。

如果说厂家没有提供具体协议,那就只能根据已有的控制设备,通过USB总线监听设备去抓包了。

附上佳能单反相机的控制软件

https://download.csdn.net/download/u011436603/88902663

附上一段佳能单反的抓包数据供参考

基于USB的单反相机从枚举到建立连接的指令抓包资源-CSDN文库

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕诗客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值