在上一篇文章中我们知道了usb协议中的域、包、事务、传输的基本概念,下面我们来看看usb第一个通信过程—枚举。
枚举就是从设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序。这部分内容同上一篇文章一样,是一些接近物理层的过程,而且其中大部分细节都由硬件模块完成,对于linux驱动工程师来说只需要了解,并不用深陷其中无法自拔。(这部分PHY层细节还是留给数字逻辑工程师去研究吧!驱动工程师只需要有这方面概念,出现问题能够思路全面就可以了)
下图是一个usb全速设备的枚举过程抓包,下面具体分析一下: