USB HUB简述

HUB 专栏收录该内容
1 篇文章 0 订阅

概述

在这里插入图片描述
hub,集线器,连接在host与device之间的一种用于usb接口扩展的usb设备。可以将一个usb上行接口扩展为多个下行接口,使得一个host可以同时与多个device连接。

一般来说,一块hub桥接芯片可扩展4个usb接口,而市面上的一拖七hub,其实使用了两块hub桥接芯片,其中一块hub桥接芯片的上行端口连接到另一块hub桥接芯片的下行端口。
在这里插入图片描述
hub的上行端口面向host,下行端口面向device。在下行端口上,hub提供了设备接入检测和设备移除检测的能力,并给下行端口供电。hub可单独使能各下行端口。不同的端口可工作在不同的速度(H/F/L)。

数据传输

在这里插入图片描述
在这里插入图片描述
host与hub之间使用的还是high speed bus,而hub与device之间使用的是full/low speed bus。

host-hub间的数据流:
在这里插入图片描述
hub-device间的数据流:
在这里插入图片描述
需要注意的是,host与hub之间的IN数据流,在complete split阶段的data0之后,是没有handshake的,但hub与device之间还是有handshake的。

SPLIT-分离传输

分离传输仅在host和hub之间执行,通过分离传输,可以允许全速/低速设备连接到高速主机。

分离传输对于device来说是透明的不可见的。

分离传输:将一次完整的事务传输,拆分成两个事务传输。其出发点是高速传输和全速/低速传输的速度不相等,如果使用一次完整的事务来传输,势必会造成比较长的等待时间,从而降低了高速USB总线的利用率。通过将一次传输分成两次,将令牌(和数据)的传输与响应数据(和握手)的传输分开,这样可以在中间插入其他高速传输,从而提高总线的利用率

在这里插入图片描述
分离传输将一次完整的IN请求事务拆分为两次事务传输,分别为发送令牌包的SSPLIT事务传输、接收数据包的CSPLIT事务传输。
在SSPLIT与CSPLIT之间,可以插入了一次其他device的IN请求。也就是说,分离传输允许在不超过最大响应时间的前提下,分离传输的两次事务之间可以适当插入其他的传输事务,提高总线利用率。

1)SSPLIT-start split
在这里插入图片描述
PID:0~3 bit为包标识字段的包类型,4~7 bit为包类型字段的校验补码。
在这里插入图片描述
Hub address:支持指定的全速/低速设备的hub的设备地址,用于全速/低速事务。
SC:start/complete,为0时表示SPLIT传输事务的SSPLIT。为1时,表示SPLIT传输事务的CSPLIT。
Hub port:全速/低速事务所针对的目标中心的端口号,即对应hub的端口号。
S:speed,此中断或控制事务的速度。S为1时,低速。S为0时,全速。
E:在块传输、中断传输和控制传输中,无须传输方向,所以E置为“0”。对于同步传输,如果是IN传输则E=0,如果是OUT传输,则按下表进行选择。
在这里插入图片描述
ET:Endpoint type,当前端点的传输类型,不同值代表的如下。

在这里插入图片描述
CRC-5:循环冗余校验。

2)CSPLIT-complete split

在这里插入图片描述
U字段:值固定为“0”,保留。其他字段同上。

控制传输(SPLIT)

SPLIT的控制传输事务根据数据流方向分为两种,OUT传输事务和IN传输事务。
在这里插入图片描述
SPLIT控制传输OUT事务示意:
在这里插入图片描述
SPLIT控制传输IN事务示意:
在这里插入图片描述

中断传输(SPLIT)

在这里插入图片描述
SPLIT中断传输事务示意:
在这里插入图片描述
host发送IN请求后,device没有准备好数据时,给host回复NAK。当device已经准备好数据,IN请求后,device上传数据给host,host接收后回复ACK。

块传输(SPLIT)

同步传输(SPLIT)

  • 1
    点赞
  • 4
    评论
  • 9
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值