![USB 速度检测](https://linux22.com/image/1391759/USB%20%E9%80%9F%E5%BA%A6%E6%A3%80%E6%B5%8B.png)
答案1
从http://www.usbmadesimple.co.uk/ums_6.htm,部分“协商高速”。
该设备保持其 D+ 1.5K 上拉电阻连接,并且不会像高速那样用 45 欧姆电阻终止线路。但它会将高速电流 (17.78mA) 驱动到 D- 线路中至少一毫秒。现在,请记住,集线器正在对线路施加复位条件,因此实际上已经终止了高速数据。由于只有链路的一端终止,集线器将在 D- 上看到约 800 mV。这种情况称为 K-chirp。
全速/低速集线器不会注意这种情况,但高速集线器将使用其差分接收器和不存在静噪信号来检测这种情况。
如果集线器具有高速能力,那么它将监视来自设备的 K-chirp,直到看到它完成。它必须在 100us 内向设备发送一系列 KJ chirp 对。这意味着它将交替向 D- 和 D+ 线注入 17.78 mA。每个 chirp 持续约 50us,并且它们之间没有间隙。设备必须看到至少 3 个 chirp 对,才能假设集线器具有高速能力。
此时设备断开其1.5K上拉电阻,应用45欧姆高速终端(在SE0模式下使用其全速数据驱动器),从而处于执行高速数据发送和接收的状态。
因此,当您插入设备时,它会将 17.78mA 的电流放入 D 线(称为 K-chirp)。全速主机将忽略此信号,并继续以全速进行传输。
但如果主机具备高速传输能力,它会等到初始 K-chirp 完成。然后,在 100us 内,主机会交替将 17.78mA 电流注入 D+ 和 D- 线(称为 KJ chirp 对),每个持续 50us。如果设备看到至少 3 个 chirp 对,它会初始化高速传输。