it.phhsnews.com


it.phhsnews.com / Esiste un protocollo di comunicazione USB effettivo?

Esiste un protocollo di comunicazione USB effettivo?


Molti di noi non pensano mai molto ai nostri dispositivi USB, li colleghiamo e dimentichiamo di loro. Ma cosa succede se sei un tipo curioso che vuole sapere di più su come funziona l'USB? Il post di Q & A di SuperUser di oggi ha le risposte alle domande di un lettore curioso.

La sessione di domande e risposte di oggi ci viene fornita per gentile concessione di SuperUser, una suddivisione di Stack Exchange, un raggruppamento di siti Web di domande e risposte.

Foto per gentile concessione di Evilelka Kowalski (Flickr).

La domanda

SuperUser reader smeeb vuole sapere se esiste un vero protocollo di comunicazione USB:

Secondo Wikipedia, USB:

  • Definisce i cavi, i connettori e le comunicazioni protocolli utilizzati in un bus per la connessione, la comunicazione e l'alimentazione tra computer e dispositivi elettronici.

Ma esiste un Protocollo di comunicazione USB effettivo? La mia comprensione è che:

  1. Connetti un dispositivo USB ad una macchina (ad esempio Ubuntu o qualsiasi tipo di Linux).
  2. Linux trova il driver di periferica per quel dispositivo in qualche modo ( bonus se lo sai! ) e lo carica.
  3. Il dispositivo è ora collegato sotto / dev / theDevice .
  4. Le app dello spazio utente ora possono leggere e scrivere su / dev / theDevice e il il driver gestisce l'input e l'output di basso livello sul dispositivo / hardware sottostante.

Per quanto posso dire, un Protocollo di comunicazione USB non appare in nessun punto del flusso. Se la mia comprensione è corretta, l'USB è solo il cavo e la connessione elettrica tra il PC e il dispositivo.

Mi sbaglio qui? L'USB implementa effettivamente una sorta di protocollo di basso livello che sottolinea il flusso sopra? In tal caso, che cos'è e in che modo funziona con una visualizzazione di 30.000 piedi?

C'è un vero protocollo di comunicazione USB?

La risposta

I contributori SuperUser RedGrittyBrick e projectdp hanno la risposta per noi. Innanzitutto, RedGrittyBrick:

Sì (consultare i protocolli USB).

A quanto ho capito, le specifiche USB definiscono un insieme complesso di protocolli e profili di dispositivi stratificati.

Ad esempio, i dispositivi USB possono essere conformi a modelli di livello come memoria di massa, tastiera, dispositivo di interfaccia umana, ecc. ed essere gestiti da un driver di dispositivo generico. Alcuni dispositivi USB possono comunicare a un livello inferiore in modo tale che il supporto USB di basso livello del sistema operativo sia in grado di riconoscere che sono necessari driver di livello superiore specifici per il dispositivo.

Seguito dalla risposta di projectdp:

Domanda

C'è un protocollo di comunicazione USB di basso livello in azione e che cos'è?

Risposta

Sì, c'è. Le specifiche USB includono il protocollo USB che definisce il modo in cui il bus viene utilizzato a livello di bit. Questo sarebbe il protocollo di basso livello che sta alla base dei protocolli di livello più alto (vale a dire archiviazione di massa, HID, ecc.).

Per informazioni su come funziona il protocollo USB, questo wiki OSDev è utile. Ecco un'altra interessante descrizione che utilizza i diagrammi di sequenza per descrivere le varie transazioni di dati per il protocollo USB.

Domanda bonus

In che modo Linux trova e carica il driver di dispositivo per quel dispositivo?

Risposta bonus

Su Linux quando si utilizza un kernel abilitato per USB, un dispositivo USB funzionante verrà rilevato tramite l'hardware e il kernel a causa delle specifiche USB. Dal lato hardware, il rilevamento viene eseguito dal controller host USB. Quindi, nel kernel, Host Controller Driver prende il sopravvento e traduce i bit di basso livello sul filo in informazioni formattate con protocollo USB. Questa informazione viene quindi popolata nel driver usbcore nel kernel.

Ho parafrasato da questo eccellente articolo di Opensourceforu, che ha molti più dettagli e chiarezza sulla tua domanda nel contesto Linux.

Assicurati di controllare il resto di la vivace discussione tramite il collegamento al filo condiviso di seguito!


Hai qualcosa da aggiungere alla spiegazione? Audio disattivato nei commenti. Vuoi leggere più risposte dagli altri utenti di Stack Exchange esperti di tecnologia? Controlla il thread completo di discussione qui.


Come usare Cakebrew, la bella interfaccia utente homebrew per il tuo Mac

Come usare Cakebrew, la bella interfaccia utente homebrew per il tuo Mac

Homebrew rende facile agli utenti Mac l'installazione di strumenti da riga di comando, quindi è logico che venga eseguito interamente dalla riga di comando. Ma ciò non significa che avere accesso a un'interfaccia utente grafica non sia utile di tanto in tanto. Cakebrew è una GUI Homebirew gratuita che rende più semplice la supervisione della tua configurazione.

(how-to)

Come cancellare la cronologia di navigazione di Internet Explorer

Come cancellare la cronologia di navigazione di Internet Explorer

Nonostante i resoconti in senso contrario, Internet Explorer è ancora molto vivo. Sebbene la quota del browser sia costantemente diminuita nel tempo, continua a comandare una quota del 15%, il che significa che ci sono un bel po 'di persone che la usano. A tal fine, è importante che gli utenti di IE sappiano che non solo memorizza una cronologia del tuo sito web in arrivo (come tutti gli altri browser), ma puoi modificare le impostazioni della cronologia.

(how-to)