USB枚举过程

在枚举之前,是设备插入,具体过程如下:

    不论此时设备是否插入USB端口(USB HUB),主机都会轮回查询各个USB端口,主机检测到D+与D-之间有电压差,就认为有新的设备接入,主机等待100ms后发出复位请求。设备接收到复位请求后将产生一个外部中断信号


枚举过程:

    主机这时候只是知道有新的设备插入了,但是不知道插进来的是什么东西,枚举过程就是让主机来认识插入的设备的,主机会询问它是什么设备,怎么用,负荷能力怎么样,因为刚刚插入的设备没有在总线上分配地址,就用默认地址0

    1.Host-》device,请求设备描述符,设备接收到包之后就开始解析包(其实 就是你在固件程序里判断处理),然后按固定的格式返回自己设备的设备描述符,这一步主要是主机知道你的USB设备的基础属性,比如支持的传输长度,电流负荷多少,支持USB版本,以及以后方便电脑找驱动的PID,VID

    2.这个时候主机知道设备的数据长度还有电流大小后,下一步就是给你分配一个属于设备的地址

    3.给设备一个地址之后开始询问你的具体配置(配置描述符,接口描述符,端点描述符,字符串描述符。。。),首先发送一个试探的设备配置请求(要求固定返回9个设备配置字),设备接受到之后开始发送9字节的设备配置字,其中包括设备的配置字的总长度,这样主机就知道你的配置到底有多长,然后再发一次设备请求,这是你就开始上传所有的配置字。这个时候主机就已经很明白你的工作方式据各种特性,然后就可以正常工作了

    4.如果你在前面的某些配置要求说明自己的名字什么的,这里还要上传字符描述符

    5.如果是鼠标或者键盘还要上传“报告描述符”


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值