USB检测速度


0

我正在NutShell中学习一些关于USB使用USB的基础知识。

前几年提出的问题之一是你怎么知道 - 一旦设备连接 - 支持高速,你如何有效地将它设置为高速?

现在,有关高速的信息可以在课程的速度识别部分找到。我从文中引用:

一旦连接,它将在复位期间进行高速啁啾,并在集线器支持时建立高速连接。如果器件工作在高速模式,则移除上拉电阻以平衡线路。

但是一个设备如何进行高速啁啾?建立高速连接也非常模糊。有人可以澄清吗?


说明书的哪一部分确实令人困惑?主机设备负责这样做high speed chirp 。根据连接到主机设备的设备的响应,然后设置电阻器。
Ramhound

@Ramhound:所以主机发出啁啾声,如果连接的设备是高速的,它会接收啁啾并移除上拉电阻?我在连接的设备中看到了唧唧声。
jdepypere 2013年

1
看起来啁啾的实现方式取决于USB芯片本身的供应商。我认为客户端设备或主机设备没有啁啾是不重要的,因为如果不支持它,则不设置电阻器。当然“一旦它被连接,它将在复位期间进行高速啁啾,并在集线器支持时建立高速连接。” 表示主机设备indeeds执行初始啁啾。
Ramhound

Answers:


2

http://www.usbmadesimple.co.uk/ums_6.htm,谈判高速部分。

该器件连接了D + 1.5K上拉电阻,并且不会像高速那样使用45欧姆电阻端接线路。但它将高速电流(17.78mA)驱动到D-线至少一毫秒。现在,请记住集线器正在对线路应用复位条件,因此有效地已经终止高速数据。由于只有链路的一端被终止,集线器在D-上将看到大约800 mV。这种情况称为K-chirp。

全速/低速集线器将不会注意这种情况,但高速集线器将使用其差分接收器和没有静噪信号来检测它。

如果集线器具有高速能力,那么它将监视来自设备的K-chirp,直到它看到它完成为止。它必须在100us内向设备发送一系列KJ啁啾对。这意味着它将交替注入17.78 mA到D-和D +线。每个唧唧声都持续约50us,它们之间没有间隙。在假设集线器具有高速能力之前,设备必须至少看到3个啁啾对。

此时,器件断开其1.5K上拉电阻,施加45欧姆高速终端(在SE0模式下使用其全速数据驱动器),因此处于执行高速数据传输和接收的状态。

因此,当你插入一个器件时,它会将17.78mA的电流放入D-线(称为K-chirp)。全速主机将忽略此信号,传输将继续使用全速。

但是如果主机能够进行高速传输,它将等到最初的K-chirp完成。然后,在100us内,主机将17.78mA交替放入D +和D-线(称为KJ啁啾线对),每个持续50us。如果设备看到至少3个啁啾对,它将初始化高速传输。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.