Perché Windows mostra la notifica "Questo dispositivo può eseguire più velocemente" se lo collego goffamente?


74

Ho notato che su Windows XP e 7 (e 2 computer diversi rispettivamente) sono riuscito a ottenere che "Pop-up può funzionare più velocemente se lo si collega a una porta USB 2.0 ad alta velocità" per visualizzare se si collega il cavo molto lentamente (o fatica a farlo con una sola mano). Se lo collego abbastanza velocemente o normalmente, con entrambe le mani, non c'è alcuna notifica. In entrambi i casi, tutti questi dispositivi sembrano funzionare normalmente.

Ciò che penso accada è che il contatto tra i fili viene interrotto per un tempo sufficiente durante una connessione lenta / goffa che il controller USB pensa che non sia 2.0 ma più lento. Ma perché la pensa così? O perché non dice semplicemente "Sei cattivo nel collegare i cavi, per favore scollega e riprova"?


Il dispositivo è collegato a un dongle USB anziché direttamente al tuo box? In tal caso, prova a connettere il dispositivo direttamente e non una terza parte per così dire.

È collegato alla porta del cavo sul retro della torre desktop, quindi non dovrebbe avere nulla tra la scheda madre e il dispositivo all'altra estremità.
user1306322

5
Chi mai usa entrambe le mani per collegare un dispositivo USB?
PNDA

3
@ Cunningham'sLawyer: uno scenario a una mano : la spina (o la chiave) USB spinge il laptop attorno al tavolo quando si tenta un lato, girandolo, provando ancora una volta, girandolo per collegarlo alla fine. Scenario a due mani : stessa quantità di lanciare, ma la lancetta dei secondi tiene fermo il laptop.
WoJ,

Aspetta, quindi hai porte USB 1 su quei laptop? 0_0
rahuldottech,

Risposte:


76

Il messaggio si riferisce alla negoziazione di una velocità dati a piena velocità (FS) di 12 Mbit / s, invece della velocità dati ad alta velocità (HS) che è di 480 Mbit / s. Deve essere davvero difficile ottenere questo effetto da una porta USB2. Il protocollo USB 2.0 HS viene stabilito dopo una negoziazione piuttosto complicata tra un dispositivo e un host, poiché inizialmente tutti i dispositivi HS agiscono come un dispositivo FS.

Il normale processo è il seguente:

  1. Il dispositivo abilitato HS tira su la linea D + dopo aver ricevuto il segnale VBUS con resistenza da 1-1,5 kΩ a 3,3 V. Proprio come farebbe un dispositivo FS.

  2. La porta host rileva D + = alto e dopo un ritardo di de-rimbalzo di almeno 100 ms, l'host asserisce lo stato USB_RESET sul bus, portando a terra entrambe le linee D + e D con driver da 45 Ω per 10 o 50 ms.

  3. Se il dispositivo è FS, non fa nulla e attende fino alla fine di USB_RESET.

  4. Se il dispositivo è HS, guida D-high utilizzando il driver HS (sorgente 18mA) per circa 1 ms. Ciò creerà un impulso con ampiezza di circa 800mV (18ma in carico 45Ω) chiamato "Chirp-K";

  5. Al rilevamento della FINE di Chirp-K, se l'host è in grado di funzionare in modalità HS, riporta indietro questo segnale (stesso 18 mA nel proprio carico di 45 Ω), ora per circa 50 µs. Se è un host FS, ignora il Chirp-K e procede come FS.

  6. Quindi, se l'host è in grado di attivare la modalità HS, commuta la sua unità in filo D +, formando "Chirp-J", sempre per 50µs;

  7. L'host ripete questo schema alternato di 50µs per l'intera durata dello stato USB_RESET (10ms su porte hub, 50ms su porte hub root);

  8. Dopo tre chirp-K / J alternati, il dispositivo riconosce che l'host è HS e passa alla stessa modalità HS. Ciò implica l'attivazione della terminazione HS sull'estremità del dispositivo, che porta la resistenza totale del filo a 22Ω e l'ampiezza del segnale di chirp scende a 400mV, a un livello di segnalazione HS standard.

  9. L'host procede con i pacchetti HS start-of-frame (SOF) e avvia il processo di enumerazione in modalità HS.

Ora si può immaginare quale parte del wiggling abbia infranto questo protocollo e fatto in modo che l'host contrassegni la porta come FS.


10
Acronimi: FSè "full speed" (USB 1.0, 12 Mbit / s), HSè "high speed" (USB 2.0, 480 Mbit / s) e SSsarebbe "SuperSpeed" (USB 3.0, 5 Gbit / s).
Isanae,

4
Mi occupo di dispositivi USB negli ultimi 16 anni, devo ammettere che vedo la caduta da HS a FS la prima volta. Il normale protocollo a livello di driver utilizza almeno altri due tentativi per affermare USB_RESET in fase di enumerazione. Nel peggiore dei casi di oscillazione al primo inserimento, ci saranno uno o due USB_RESET aggiuntivi seguendo il protocollo descritto, quindi il fallback non si verifica mai a livello di utente. Tuttavia, alcuni host moderni utilizzano la segnalazione "a tensione" anziché la classica corrente, quindi tutte le combinazioni classiche di vari livelli di rilevamento della soglia vengono avvitate e possono accadere cose.
Ale..chenski,

21
@isanae Mi chiedo quando i creatori delle specifiche del dispositivo avranno la lungimiranza di chiamare qualcosa di "bassa velocità".
wizzwizz4,

7
@ wizzwizz4 quando vogliono intenzionalmente e deliberatamente il fallimento del loro prodotto a causa della scarsa ricezione da parte dei consumatori.
Dan Neely,

10
@isanae - USB 1.0 supportava anche "bassa velocità" come 1,5 Mbits / s.
Michael Karas,

32

Quando si collega un dispositivo in una porta USB2, il computer tenta innanzitutto di negoziare una connessione utilizzando il protocollo dati USB2.
Quando fallisce, riprova usando il protocollo dati USB1.

La mia ipotesi migliore è che la connessione fisica (a causa della oscillazione dei contatti) non sia ancora stabile durante la negoziazione USB2. Quindi ricade su USB1, anche se il dispositivo è un dispositivo USB2.

Abbastanza divertente Windows si rende conto che il dispositivo dovrebbe essere in grado di supportare la velocità USB2 (informazioni che ottiene dal driver) e quindi Windows conclude che la porta USB a cui lo hai collegato era una porta USB1 lenta. Windows non sembra verificare se la porta stessa è compatibile con USB2.
Ed è per questo che ricevi il messaggio di errore in qualche modo fuorviante.

PS L'ho provato da solo con una macchina Windows 10: stesso effetto lì.


La stessa cosa succede di tanto in tanto con un dispositivo USB3 in una porta USB3 ...
davidbak,

1
No. La velocità della porta USB viene determinata dall'hardware PRIMA di impegnarsi in qualsiasi protocollo di dati.
Ale..chenski,

3
@AliChen Come viene determinato?
gronostaj,

Vedi la mia risposta completa. Il software avvia il comando di ripristino della porta solo dopo aver visto il bit "port connect" (interromperlo); il resto è fatto in hardware.
Ale..chenski,

Da Wikipedia: "I dispositivi USB 2.0 utilizzano un protocollo speciale durante il ripristino, chiamato chirping, per negoziare la modalità ad alta larghezza di banda con l'host / hub. Un dispositivo che è in grado di HS [USB 2.0] si collega prima come dispositivo FS [USB 1.0] ( D + tirato in alto), ma dopo aver ricevuto un RESET USB (sia L + che D + guidato da BASSO dall'host per 10-20 ms) tira in alto la linea D, nota come chirp K. "
Nathan Osman,

0

È possibile che tu l'abbia inserito abbastanza lentamente che Windows abbia già completato il processo di stretta di mano con il controller e che in quel momento i contatti necessari per la comunicazione USB 2.0 non si stessero toccando, il che potrebbe portare a scambiare un dispositivo USB 2.0 come 1.1 dispositivo in quanto non vi sarebbe alcuna risposta sui binari contrassegnati come presenti solo su USB 2.0 e versioni successive.


È una situazione comune per i dispositivi USB <2.0 versione che riconosce ancora la connessione e non sceglie di fallire?
user1306322

8
Ciò può accadere con i dispositivi USB3 in una porta USB3 in cui i pin USB1 / 2 si collegano per primi. Ma non vedo come ciò possa accadere con USB1 / USB2. Entrambi usano solo 4 pin, una coppia per l'alimentazione, una coppia per i dati.
Hennes,

@hennes sono d'accordo. La loro non è una distinzione fisica tra USB 1 e 2.
Tonny

1
@Tonny Sono abbastanza sicuro di aver visto alcune differenze su alcuni dispositivi USB 1.1 e 2.0 con marchio oscuro, ma lo ammetto, probabilmente mi sbaglio.
Stefan,

1
@Stefan All'inizio di USB c'erano molti connettori knock-off economici che avevano dimensioni sbagliate per i contatti. Ho visto alcuni in cui ciascuno dei 4 pin nella spina aveva una lunghezza e uno spessore diversi. Tengo ancora un paio in ufficio per mostrare alla gente quando discutiamo sui pro e contro dell'ordinazione di cavi knock-off economici.
Tonny,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.