Questo video mostra come funziona il rilevamento dei dispositivi USB. La comunicazione tra un dispositivo USB e un dispositivo di destinazione ci mostra che c’è una moltitudine di variabili e comunicazioni tra i due, in cui il sistema scopre sia la velocità dell’USB connesso che anche le diverse negoziazioni che esistono tra i due. Ora un interessante video di Ben Eater ci mostra cosa succede quando colleghi un dispositivo USB a un PC.
Come funziona il rilevamento dei dispositivi USB?
Quando colleghi un dispositivo, per prima cosa attiverà una negoziazione o una comunicazione precedente. La prima di queste comunicazioni sono i segnali dal dispositivo che ti faranno sapere se si tratta di un dispositivo ad alta o bassa velocità.
Quando un dispositivo è collegato al sistema USB, gli viene assegnato un numero chiamato “indirizzo”. L’indirizzo viene utilizzato esclusivamente da quel dispositivo mentre è connesso. Questo indirizzo può cambiare ogni volta che il dispositivo viene connesso.
Inoltre, oltre a questo indirizzo, questo dispositivo ha anche diversi endpoint, un insieme di sorgenti e destinazioni tra le varie comunicazioni tra host e dispositivo.
Tutte le richieste standard vengono trasmesse tramite trasferimenti di controllo all’endpoint 0. Un trasferimento di controllo inizia con una transazione di stabilimento che trasporta 8 byte. Questi 8 byte definiscono la richiesta dell’host.
Durante la comunicazione USB, i dati vengono trasmessi come pacchetti. Inizialmente, tutti i pacchetti vengono inviati dall’host tramite l’hub principale. Alcuni di questi pacchetti fanno sì che un dispositivo invii alcuni pacchetti in risposta.
La comunicazione all’interno dell’USB si basa su una serie di pipe di dati, canali logici all’interno del flusso di dati. Si potrebbe dire che sono una connessione dal controller host a un’entità logica all’interno di un dispositivo, che funge da endpoint.