 
- UID
- 30051
- 性别
- 男
|
枚举看起来象什么? 我相信要轻松地解释USB枚举过程的方法是展示它是怎样发生的。一个CamConnect演示固件,显而易见,包含的代码让它能够在任意的USB系统上枚举。通过从CamConnect 固件源代码取一小段使用CATC USB分析器进行跟踪,你可以跟踪和理解枚举过程。 设备插入初期: 所有USB设备会插入集线器的某个端口。连接后,集线器检测设备是全速设备还是低速设备。对于全速设备,从D+线接一个1.5k上拉电阻到3.3v电源,从D-线接则表示低速设备。 一旦集线器检测到新设备连接,它开始让由主机每隔1毫秒产生的、发往设备的帧开始包(SOF)通过。主机控制器为了枚举新设备也开始向设备发出设置包。 当一个设备刚插入时,它总是使用默认的设备地址0进行通信。枚举过程中,主机控制器分配一个新的地址给设备使用。枚举过程通信总是使用设备的端口0。控制传输的规定。USB控制传输必须使用设备的端口0。 在主机接收到设备的全部描述符后,操作系统尝试查找适当的设备驱动程序与新设备相关联。 帧开始: 下面是主机每隔1毫秒发送的帧开始包的例子。这个帧开始包会发送给总线上的每一个设备,因此它们能够保持同步。总线上的每一个USB包都以一个同步块开始以使设备能够同步收发。大多数类型的包都包含一个CRC值。M16C USB硬件自动处理这些细节。 图1 帧开始包(SOF) |
|