电脑维修培训USB接口基础知识一

1.拓扑结构 
USB是我们经常用的,只是看到USB线一头接着主机,一头接着USB设备。但是设备是如何通信的呢?电气上的连接是怎么样的还不是很清楚?USB的可见的拓扑结构很好理解,就是一个USB host 接若干个Hub, hub下面接若干个USB Device。

2.枚举步骤 
USB协议定义了设备的6种状态,仅在枚举过程种,设备就经历了4个状态的迁移:上电状态(Powered),默认状态(Default),地址状态(Address)和配置状态(Configured)(其他两种是连接状态(Attached)和挂起状态(Suspend))。 
Attached和Powered状态不难理解:当一个设备被正确插入到主机的USB接口时,就处于Attached(连接)的状态。设备连接好了,USB主机识别了设备,同时没有对设备进行请求,USB设备就处于Suspended(挂起)状态。 
下面步骤是Windows系统下典型的枚举过程,但是固件不能依此就认为所有的枚举操作都是按照这样一个流程行进。设备必须在任何时候都能正确处理所有的主机请求。

1. 用户把USB设备插入USB端口或给系统启动时设备上电 
这里指的USB端口指的是主机下的根hub或主机下行端口上的hub端口。Hub给端口供电,连接着的设备处于上电状态。 
2. Hub监测它各个端口数据线上(D+/D-)的电压 
在hub端,数据线D+和D-都有一个阻值在14.25k到24.8k的下拉电阻Rpd,而在设备端,D+(全速,高速)和D-(低速)上有一个1.5k的上拉电阻Rpu。当设备插入到hub端口时,有上拉电阻的一根数据线被拉高到幅值的90%的电压(大致是3V)。hub检测到它的一根数据线是高电平,就认为是有设备插入,并能根据是D+还是D-被拉高来判断到底是什么设备(全速/低速)插入端口(全速、高速设备的区分在后面的章节中描述)。 
检测到设备后,hub继续给设备供电,但并不急于与设备进行USB传输。
3. Host了解连接的设备 
每个hub利用它自己的中断端点向主机报告它的各个端口的状态(对于这个过程,设备是看不到的,也不必关心),报告的内容只是hub端口的设备连接/断开的事件。如果有连接/断开事件发生,那么host会发送一个 Get_Port_Status请求(request)以了解更多hub上的信息。
Get_Port_Status等请求属于所有hub都要求支持的hub类标准请求(standard hub-class requests)。
4. Hub检测所插入的设备是高速还是低速设备。
hub通过检测USB总线空闲(Idle)时差分线的高低电压来判断所连接设备的速度类型,当host发来Get_Port_Status请求时,hub就可以将此设备的速度类型信息回复给host。(USB 2.0规范要求速度检测要先于复位(Reset)操作)。