USB与SCSI

USB传输协议中的行为分为四种:控制传输,批量传输,中断传输,同步传输。为什么叫做行为,很简单,因为所有操作USB的协议如:SCSI,HID,UVC协议等等,都是基于这四种行为的。当然,USB底下的每一种协议都有他的特点,但这些特点都离不开上面四种传输,而本人对上面三种协议中,SCSI协议是比较熟悉,HID协议也做过相应的开发,UVC的话,只是大概了解了其中的操作。但总结出来,这些协议的特点在于数据的不同,而不是在于传输方式,因为看多了后你会发现,他还是离不开这四种传输方式的。下面就以我对SCSI协议的理解去解释下USB的操作吧,如有错误,请指点指点。。。。。

 

控制传输:

控制传输在我看来是USB传输的起点,他是使用端点0去进行对应的信息应答。这抽象一点的话就是你插个设备到电脑上,电脑要知道你要使用的是什么协议,接口数目,接口类型是什么,你要使用的是哪些端点,你的端点配置是怎样,你的那个设备名字叫什么玩意等等,端点0对于USB传输是必需的,没有端点0,电脑都不知道自己下一步要做什么了。当USB设备插入后,主机会发一些提取描述符的动作,如GET_DEVICE_DESCRIPTOR,GET_CONFIGURATION_DESCRIPTOR

发了这些信息后,紧接着会给设备分配地址:SET_ADDRESS,后面的操作基本也就那些,会多了一些GET_STRING_DESCRIPTOR,但这里要注意,虽然是同为GET_STRING_DESCRIPTOR,有些设备会因为参数不同会有多个这样的描述符,所以这里得要区分好主机发下来的参数。当然,这里就不对这些东西的每个参数进行一一解释了,查一下相应的资料都可以查看到的。这里要注意的就是GET_CONFIGURATION_DESCRIPTOR,这个是配置描述符,关系到上面所说的,你的设备有几个接口,是什么接口,要使用什么样的端点,端点配置又是怎样。当然,之前看资料跟做项目时也发现,同一配置中可以有多个接口,但同一配置中的多个接口中的端点号是不可以复用的。

 

批量传输:

这个传输方式跟控制传输十分相似,但他更具有灵活性,并且,这里不是使用端点0

  • 8
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值