Endpoint USB e pipe
Un dispositivo USB include endpoint usati per i trasferimenti di dati. Sul lato host, gli endpoint sono rappresentati da pipe. Questo argomento distingue tra questi due termini.
Riepilogo
- L'endpoint è hardware nel dispositivo; pipe è software sul lato host.
- L'endpoint non è configurato; pipe è configurata per i trasferimenti
- L'host invia o riceve dati da o verso una pipe.
Endpoint USB
Un endpoint è un buffer in un dispositivo USB. Endpoint è un termine che si riferisce all'hardware stesso, indipendentemente dal sistema operativo host. L'host può inviare e ricevere dati a o da tale buffer. Gli endpoint possono essere classificati in endpoint di controllo e dati.
Ogni dispositivo USB deve fornire almeno un endpoint di controllo all'indirizzo 0 denominato endpoint predefinito o Endpoint0. Questo endpoint è bidirezionale. ovvero, l'host può inviare dati all'endpoint e ricevere dati da esso all'interno di un trasferimento. Lo scopo di un trasferimento di controllo consiste nell'consentire all'host di ottenere informazioni sul dispositivo, configurare il dispositivo o eseguire operazioni di controllo univoche per il dispositivo.
Gli endpoint dati sono facoltativi e usati per il trasferimento dei dati. Sono unidirectional, ha un tipo (controllo, interrupt, bulk, isochronous) e altre proprietà. Tutte queste proprietà sono descritte in un descrittore dell'endpoint (vedere Descrittori USB standard).
Nella terminologia USB la direzione di un endpoint ( e i trasferimenti verso o da essi) è basata sull'host. Pertanto, IN fa sempre riferimento ai trasferimenti all'host da un dispositivo e OUT si riferisce sempre ai trasferimenti dall'host a un dispositivo. I dispositivi USB possono anche supportare trasferimenti bidirezionali dei dati di controllo.
Gli endpoint in un dispositivo vengono raggruppati in interfacce funzionali e un set di interfacce costituisce una configurazione del dispositivo. Per altre informazioni, vedere Layout del dispositivo USB.
Il software host può esaminare le informazioni sull'endpoint prima che il dispositivo sia stato configurato o durante la selezione di un'impostazione alternativa. Si eseguirà l'iterazione di tutte le interfacce, quindi attraverso ogni elenco di interfacce di impostazioni e si esamineranno le proprietà di ogni endpoint o l'intero set di endpoint nell'impostazione. L'analisi delle informazioni sull'endpoint non influisce sullo stato configurato del dispositivo.
Pipe USB
I dati vengono trasferiti tra un dispositivo USB e l'host USB tramite un'astrazione denominata pipe. Pipe è puramente un termine software. Una pipe comunica a un endpoint in un dispositivo e tale endpoint ha un indirizzo. L'altra estremità di una pipe è sempre il controller host.
Una pipe per un endpoint viene aperta quando il dispositivo è configurato selezionando una configurazione e un'impostazione alternativa di un'interfaccia. Di conseguenza diventano destinazioni per le operazioni di I/O. Una pipe ha tutte le proprietà di un endpoint, ma è attiva e viene usata per comunicare con l'host.
Un endpoint non configurato viene chiamato endpoint mentre un endpoint configurato viene chiamato una pipe.