USB传输方式

USB的传输模式

USB的传输模式有4种,分别是控制传输(Control Transfer)、中断传输(Interrupt Transfer)、批量传输(块传输)(Bulk Transfer)、实时传输(同步传输、等时传输)(Isochronous Transfer)。

控制传输

控制传输是双向传输,所有USB设备必须支持的一种传输方式。用于主机获取设备信息、状态,选择设备配置等的一系列命令式工作。当设备插入主机后,主机通过端点 0 进行控制传输,通过数据交互主机可以了解设备有多少接口、有多少可用的端点等各种设备信息。

在带宽使用上,高速端点的控制传输不能占用 20 %的微帧,全速和低速不能超过一帧的 10 %。在控制传输中,为了实现完整的一次控制传输,一般由三个阶段组成:

建立阶段、数据阶段(该阶段可能没有,由建立阶段的数据决定)、状态阶段,每一个阶段都由传输事务组成,即存在三个数据包的传输。
在这里插入图片描述

状态阶段,一律使用 DATA 1进行回复,状态阶段的数据包中的数据为空,也就是说不携带任何数据。

中断传输

中断传输是一种单向传输方式,采用定时轮询的方式收发数据,每次主机对中断端点查询时,如果设备有数据传输,则返回数据,否则NAK,表示未准备好。这种传输方式典型的应用在少量的分散的,不可预测数据的传输,键盘和鼠标就属于这一类型,当鼠标、键盘插入电脑在枚举配置成功后,就会按照描述符中的查询时间定时发送 IN 令牌包,获取所需的数据,如果设备没有数据发送,则回复 NAK。

对于全速端点,中断传输的间隔在 1 ms 到 255 ms 之间,对于低速端点,间隔时间限制在10ms到255ms之间, 对于高速端点,间隔为2^(bInterval-1)×125us,bInterval的值在1到16之间。
在这里插入图片描述

批量传输

批量传输也是单向传输,主要应用在数据大量传输,同时又没有带宽和间隔时间要求的情况,它会尽可能的利用可用的带宽完成传输。U盘就是采用批量传输,因为它对时间延迟不是那么严格,只要可靠的完成大量数据的传输即可,可以等到所有其它类型的数据的传输完成之后再传输数据。

低速设备不支持批量传输,高速设备批量最大包长度为512字节,全速批量可以为 8、16、32、64,选择余地比较大。允许 3 次以下的传输错误,超过三次主机将认为端点功能错误 (STALL)放弃该端点的传输,需要主机使用控制传输恢复该端点的功能。

在这里插入图片描述

同步传输

同步传输是四种传输中唯一不可靠的传输方式,但同步传输提供了确定的带宽和间隔时间,用于时间严格并具有较强容错性的流数据传输,或者用于要求恒定的数据传输率的即时应用中。同步传输没有握手包,也不支持 PID 翻转,主机在安排这些传输事务时,同步传输拥有最高的优先级。

高速同步端点最大包长度为 1024,全速为 1023。高速端点在一个微帧内仅允许一次同步传输事务,而高速高带宽的同步端点可以在一个微帧内传输三次。在现实中,这种传输用于摄像头、USB音响等,因为它们对实时性要求比较高,但是可以容忍错误。

在这里插入图片描述

传输类型优先级

在这里插入图片描述

假如总线中有四种类型数据需要传输,那么主机将在每帧开始发送SOF包,然后优先安排同步传输,之后安排中断传输,其次是控制传输,最后才是批量传输。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值