USB2.0通信协议概述
USB2.0通信协议是一个主从关系的协议, 多个USB设备通过USB总线及集线器(Hub) 连接到一个USB主机上,形成个星状网络。在这个网络中,USB主机管理和配置接入的每一个设备,从逻辑层面来说,每个加入的USB设备(除集线器外)都只能看到USB2.0主机,其他的设备都不可见,所以相互之间不能直接通信。
USB2.0主机会给每个接入的设备分配一个唯一 的地址,发送给USB设备的数据会在总线上广播,而USB设备会对总线上的数据进行过滤,使其只接受发送给自己的数据。一个USB2.0主机更多只能分配127个地址(1~127),并且只能连接5层集线器,需要注意的是,第5层Hub只能接U5B设备,不能再接Hub。
USB主机和USB设备间的通信是通过管道。 (Pipe) 进行的。在USB2.0通信协议中,管道是一个逻辑概念, 其在USB主机这一端实际上就是一组缓冲区,用于管道中数据的收发;而在USB设备这一端, 管道对应着一个特定的端点(Endpoint,ENDP)。每一个端点都是一个二元组。USB设备地址、端点索引和端点方向的组合可以唯一确定USB主机和USB设备间的通信。在USB2.0通信协议中,在一个管道中传输的基本单元就是包(Packet),它由多个逻辑0和1 (也就是差分信号“0' 和'1' )构成。多个包构成了一个事务(Transaction) ,多个事务构成了一个传输(Transfer)。