{1} USB 枚举过程分析
1) USB 的插入检测
当12脚短接, Q1截止, Q2导通, D+上拉, windows 就会认为 USB 接口有一个全速
设备,马上复位总线,并开始枚举设备。
如果 23脚短接,则 Q1状态取决于 USB-DISCONNECT (PD2)脚的状态。 CPU 复位
后, GPIO 引脚处于浮空输入状态。所以此时, Q1导通, Q2截止,主机检测不到设备。
在程序初始化了 USB 相关部分后, 可以通过设置 PD2=0 低电平使 Q1截止,Q2 导通。
则 USB 检测到设备,开始枚举过程。
所以要控制开发板作为 USB 设备工作,必须 23短接。
2、枚举过程中,第一个来回的详细分析。
检测到设备,主机发总线复位。这个复位与 USB 上电复位和系统复位是不同的。这个
是 SIE 根据总线状态通知用户的一种复位。设备产生复位中断,如何处理由设备固件程序
决定。
主机发起第一个控制传输:
(1)主机 SETUP 包(发往地址 0端点 0)、主机数据包(请求设备描述符) 、设备握手
包 ACK 。
设备产生端点 0数据输出中断,固件程序要根据数据包中的主机要求做好准备,这里是
在端点 0输入缓冲区准备好设备描述符。
(2)数据过程,主机先发一个 IN 令牌包、设备发一个数据包(这个数据已经准备好,
SIE 收到 IN 令牌后,直接送到总线上,用户此时不干预) 、主机发 ACK 包。
评论0