硬件知识分享——USB2.0简单知识

        之前在一家公司工作的时候,因为经常跟USB设备打交道,所以看了一些USB2.0的知识,后面入职新公司,需要做分享,就把这部分整理了一下。USB2.0协议已经很成熟了,相关的知识和设备也很多,但要研究透彻就需要时间加经验了,因为很多的知识不遇到你是不会想着去查协议的。

        1.USB系统

一个 USB 系统包含三个部分, HOST Device USB Interconnect( 互连行为 ), 而互连行为的理解主要包括: USB 总线拓扑、数据流模型、 USB 时间表、内层互连关系,总的来说,互连行为就是指其通信过程中发生的行为。
HOST :在一整个 USB 系统中,只能存在一个 HOST ,里面会存在一个 root hub ,一般 PC 端就是 HOST;
Device:USB 设备,分为 HUB 端和功能端, Device 不一定是一个真的设备,它只能够理解并回应 USB 协议就可以称为一个 Device ;最常见的设备就是U盘、鼠标、键盘,其他的还有USB触摸屏、USB接口单片机等;
③总线拓扑:指的是整个 USB 系统的分布,如下图 1-1 所示,这是一个星形结构,由 HOST 往下级联,做多连接 7 层,每一层可以连接一个 HUB 或者一个 Function ,但第 7 层必须是 Function 。这部分的理解就是,你在连接USB设备的时候,最多只能接7个HUB,也就是扩展坞,最后一层必须是USB设备,例如U盘。
2.USB 电气特性
        作为硬件来说,USB最关心的就是阻抗、速度、电平等参数,因为涉及信号质量。USB所描述的传输速度并不会全部拿来传数据,根据USB协议,USB传输模式分为实时传输、BULK传输、中断传输、控制传输。USB传输是以package的形式来传的,每一个包里面都有这几个传输模式,它会根据实际情况来分配速率和带宽。

USB3.0

USB2.0

速度模式

Super Speed

高速

全速

低速

最大传输速率

5.0Gbps

480Mbps

12Mbps

1.5Mbps

线缆最大长度

NA

5

编码方式

8B/10B

NRZI

传输模式

全双工

半双工

线缆信号个数

6个(TX+TX-RX+RX-D+D-

2个(D+D-

USB3.0

USB2.0

速度模式

Super Speed

高速

全速

低速

最大传输速率

5.0Gbps

480Mbps

12Mbps

1.5Mbps

线缆最大长度

NA

5

编码方式

8B/10B

NRZI

传输模式

全双工

半双工

线缆信号个数

6个(TX+TX-RX+RX-D+D-

2个(D+D-

 3.USB握手过程

如何判断设备特性?

Low Speed: USB Device 端有一个 1.5K 电阻接在 D- VCC 上;
High Speed、Full Speed: USB Device 端有一个 1.5K 电阻接在 D+ VCC 上;

总体枚举过程:插入设备检查D+/D—发送JK序列枚举成功

实际枚举过程:

1. 插入设备
设备插入 HUB/HOST ,然后获得电源供电,此时 Device 处于 power state ,可以从总线获得 100mA 电流
2.HUB 检测设备
HUB 14.25K-25K 的下拉电阻, Device 1K 左右上拉电阻,插入后会把 HUB 的电平抬高,此时检测到 Device 插入
3.Host 获悉设备

HUB会把有设备插入的事件给到HOST,接着HOSTHUB发送get port state指令,要求获取更多信息

4.确认是设备是FS/LS

HUB通过检测的电压来确认,HS是以FS的硬件状态来响应的

5.HUB复位设备

HOSTHUB发送set port feature请求,此时将被拉低,设备处于复位状态

6.HOST获悉设备是否支持HS

JK序列:J序列在D+K序列在D-

复位期间,支持HS的设备会发送K序列,HUB响应J序列,此时可以观察到KJKJ样式,同时设备移除上拉电阻,进入HS

没有KJ序列,设备进入FS

7.HOST与设备之间建立通信通道

HOST发送get port state让设备移除复位状态,进入default status

此时设备以地址00H与主机通信

如果一次不够( get port state ),就多来几次

8.HOST发送get descriptor了解default pipe的最大信息包尺寸

host和设备的endpoint之间的连接叫作pipe,而设备的endpoint叫做default pipe

9.HOST给设备指定一个地址

HOST发送set address给设备一个唯一地址进行通信,设备进入address status

10.HOST了解设备信息

HOST发送get descriptor获取设备信息,信息包括PIDVID这些

除了基本信息,HOST还会请求其他额外信息,如果设备不支持这个请求,就返回STALL信号

STALLUSB设备在接收到HOST发送的无法支持的请求时,会发送这个信号回去

11.HOST加载驱动程序,驱动程序选择合适配置给到设备,设备进入配置状态,开始工作

例如Windows会使用inf文件来确认最佳配置

4.USB传输模式

中断传输:响应中断信号,不需要高速率,例如键盘鼠标,只需要低速设备就行;

实时传输:对实时性要求高的,例如音频;

bulk传输:大量、完整的数据传输,例如视频、压缩包,大家可以观察一下,如果你传输一个安装包,速度会很快,但如果传输大量txt文件,速度会变慢;

控制传输:起控制作用。

目前就先分享这些啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我是灵魂人物

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

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

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

打赏作者

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

抵扣说明:

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

余额充值