LPC1768的USB驱动(二)----USB枚举过程

来源:互联网 发布:win8.1无法购买网络 编辑:程序博客网 时间:2024/05/01 09:33

什么是枚举?

USB主机在检测到USB设备插入后,就要对设备进行枚举。枚举就是从设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序。

Hub如何检测到新设备:

(1)USB的Hub的下游端口的D+和D-上,接了一个15K欧姆的下拉电阻到地;
(2)低速设备:USB设备端,在D-上接了一个1.5K欧姆的电阻,当设备插入时,主机端的D-被上拉,识别到插入低速设备;全速和高速设备: USB设备端,在D+上接了一个1.5K欧姆的电阻,当设备插入时,主机端的D+被上拉,识别到插入全速或高速设备。

枚举过程:

1:插入USB设备
2:hub发现设备:设备将主机的D+或D-通过1.5kΩ的电阻拉高
3:主机了解新设备:hub发现设备后通过中断告诉主机hub或端口有“事件”,主机通过Get_Port_Status来了解设备
4:主机判断是低速设备还是全速设备:D+被上拉是全速设备,D-被上拉是低速设备
5:hub将设备复位:主机通过给hub发送Set_Port_Feature使设备复位
6:如果是全速设备,判断是否是高速设备

7:hub在设备和总线间建立一个信号通道:主机通过不断的发送Get_Port_Status来判断设备是否退出复位状态,设备退出复位状态后就可以通过端点0与主机通信

8:主机通过发送一个Get_Descriptor来获取设备端点0的最大包值
9:主机给设备配置一个地址:主机通过Set_Address来给设备分配一个地址

10:主机了解设备的能力:主机通过发送Get_Descriptor来了解设备的能力
11:主机安排并加载一个设备驱动:系统通过厂家和产品的ID号来选择是否有匹配的驱动。如果没有,系统会查看是否有匹配的设备类或子类。
12:主机驱动选择一个配置:主机通过给设备发送Set_Configuration请求来给设备发送一个配置,设备响应请求并修改配置,枚举就结束了,


未完待续


原创粉丝点击