Android 中usb支持的传输模式

usb的四种传输模式对应的场景:

1.批量传输

USB协议提供批量传输类型是为了支持在某些不确定的时间内进行大量的数据通信,如打印机、扫描仪、硬盘、光盘等设备

2.控制传输

USB协议引用控制传输有两方面的原因,一方面,在USB系统中,设备在正常工作之前必须先进行配置,USB主机必须为设备分配总线上唯一的设备地址,并完成读取设备的各种描述符,根据描述符的需求为设备的端点配置管道,分配带宽等工作。另一方面,在设备的工作过程中,主机希望能及时地获取设备的当状态,或者设备出现问题时希望主机能及时做出补救措施,或者主机根据某些需求改变设备的当前配置等工作。

所有设备都要求有支持控制传输的端点,一般端点号为0的为控制端点,USB协议将其定义设备的默认端点。

3.中断传输

中断传输为这样一类设备设计的,它们只发送或接收少量的数据,而且并不经常进行数据传输,但它们有一个确定的传输周期,每隔一定的周期要求传输一次(并不是要求必须按固定周期要发送一次数据)。使用这种传输方式的设备有键盘、鼠标、游戏杆

4.实时传输(同步传输)

实时传输是为支持某些对时间要求很高、数据量很大应用要求而提出的,使用这种传输类型的设备有麦克风、调制解调器、音频设备等。为了完成实时传输,总线必须事先提供足够的带宽。

以上内容引自 https://www.cnblogs.com/yongdaimi/p/11981553.html 更多内容点击链接访问

从定义上看,usb通讯一定会支持控制传输

主要说一下在Android中支持的传输方式

1.UsbDeviceConnection类提供了同步方法bulkTransfer(...)和controlTransfer(...)支持批量传输和控制传输

2.UsbRequest类提供了异步请求方法能支持批量传输和中断传输

也就是说Android三种传输方式:

批量传输:异步方法|同步方法

控制传输:同步方法

中断传输:异步方法

实时传输:无

 

一般开发场景下批量传输同步方法和异步方法应该差别不大,都能满足需求;如果数据量比较大的情况下(10M/s以上)同步方法可能就计算不过来了,只能通过多个异步请求进行数据获取,必要的情况下还需要解除Android 16kb的限制

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值