未完待续
知道usb的物理连接后,该看看usb的通信的逻辑是怎么样的了。usb的host是如何知道插入的设备是个什么设备呢,刚刚插入的是个usb键盘呢,还是个usb的U盘呢?这是通过读取描述符来获得这些信息的。
usb的描述符比较多的,但是由于采用分层管理,各个描述符之间的逻辑是很清晰的。USB1.1描述符包括:设备描述符,配置描述符,接口描述符,端点描述符,字符串描述符。usb2.0我还没有接触,毕竟我是个初学者,先学习好最基础的东西,再学习usb2.0的高速传输应该就比较容易了,再说了,我就是想做一个usb的手柄,根本就不需要高速传输,只要实现中断传输就可以了,高带宽对我的usb手柄来说就是个浪费,对我来说开发难度也比较大。
各个描述符之间的关系如下图:
其中字符串描述符是给人看的,可有可无。
读取过程如下:首先主机找到设备描述符,然后读取配置,找到端点,然后建立通信联系,ok。usb连接成功。
上面描述的过程在host与usb通信时是如何实现的呢?是通过枚举过程实现的,枚举的具体过程如下: