» »

Specifiche della tensione del bus USB. Bus seriale universale

02.07.2023

Il bus USB (Universal Serial Bus) è apparso secondo gli standard dei computer molto tempo fa: la versione della prima versione approvata dello standard è apparsa il 15 gennaio 1996. Lo sviluppo dello standard è stato avviato da aziende molto rinomate: Intel, DEC, IBM, NEC, Northen Telecom e Compaq.

L'obiettivo principale dello standard impostato per i suoi sviluppatori è creare una reale opportunità per gli utenti di lavorare in modalità Plug&Play con i dispositivi periferici. Ciò significa che deve essere possibile collegare il dispositivo a un computer acceso, riconoscerlo automaticamente subito dopo la connessione e quindi installare i driver appropriati.

Le capacità USB derivano dalle sue caratteristiche tecniche: bit rate di segnalazione ad alta velocità – 12 Mbit/s; lunghezza massima del cavo per un'elevata velocità di trasferimento dati – 5 m; bit rate di segnalazione a bassa velocità – 1,5 Mbit/s; lunghezza massima del cavo per bassa velocità di trasferimento dati – 3 m; numero massimo di dispositivi collegati (inclusi moltiplicatori) – 127; è possibile collegare dispositivi con cambi diversi; tensione di alimentazione per dispositivi periferici – 5 V; il consumo di corrente massimo per dispositivo è 500 mA (questo non significa che i dispositivi con un consumo di corrente totale di 127 ´ 500 mA = 63,5 A possano essere alimentati tramite USB)

La topologia USB non è praticamente diversa dalla topologia di una rete locale convenzionale a doppino intrecciato, solitamente chiamata "stella". Anche la terminologia è simile: i moltiplicatori di bus sono anche chiamati HUB.

Convenzionalmente, l'albero per il collegamento dei dispositivi USB a un computer può essere rappresentato come segue (vedi Fig. 5.22) (i numeri indicano i dispositivi periferici con interfaccia USB):

Al posto di uno qualsiasi dei dispositivi può esserci anche un HUB. La differenza principale rispetto alla topologia di una normale rete locale è che può esserci un solo computer (o dispositivo host). L'HUB può essere un dispositivo separato con la propria alimentazione o integrato in un dispositivo periferico. Molto spesso, gli HUB sono integrati in monitor e tastiere.

I segnali USB vengono trasmessi tramite un cavo a 4 fili, mostrato schematicamente in Fig. 5.22:

Riso. 5.22. Trasmissione del segnale tramite cavo USB

Qui GND è il circuito “case” per l'alimentazione dei dispositivi periferici, VBus è +5 V anche per i circuiti di alimentazione. Il bus D+ serve per trasmettere i dati sul bus e il bus D serve per ricevere i dati. Il cavo bus a piena velocità è un cavo a doppino intrecciato, protetto da uno schermo e può essere utilizzato anche per il funzionamento a bassa velocità. Un cavo per il funzionamento solo alla velocità minima (ad esempio per collegare un mouse) può essere qualsiasi e non schermato.

Nel 1999, lo stesso consorzio di aziende informatiche che ha avviato lo sviluppo della prima versione dello standard del bus USB ha iniziato attivamente a sviluppare la versione 2.0 dell'USB, che differisce in quanto la larghezza di banda del bus è aumentata di 20 volte, fino a 250 Mbit/s, che rende possibile il trasferimento di dati video tramite USB e lo rende un concorrente diretto di IEEE-1394 (FireWire). La compatibilità di tutte le periferiche e dei cavi ad alta velocità rilasciati in precedenza è completamente preservata e viene preservato uno dei vantaggi più importanti dell'USB: il basso costo del controller.

Grazie alla sua versatilità e capacità di trasmettere in modo efficiente traffico eterogeneo, il bus USB viene utilizzato per collegare un'ampia varietà di dispositivi a un PC. È progettato per sostituire le tradizionali porte del PC: COM e LPT, nonché l'adattatore per giochi e le porte MIDI. La specifica USB 2.0 ci consente di parlare della connessione dei tradizionali "client" dei bus ATA e SCSI, oltre a catturare parte della nicchia applicativa del bus FireWire. Ciò che rende attraente l'USB è la possibilità di connettere/scollegare i dispositivi mentre sei in movimento e la possibilità di utilizzarli quasi immediatamente, senza riavviare il sistema operativo. Comoda anche la possibilità di collegare un numero elevato (fino a 127) dispositivi ad un bus, anche se con hub. Il controller host è integrato nella maggior parte delle schede madri moderne. Sono disponibili anche schede di espansione con controller USB (normalmente per il bus PCI). Tuttavia, la diffusione dell'USB è ostacolata dall'insufficiente attività degli sviluppatori software (produttori hardware): scorrendo gli elenchi dei dispositivi, vediamo che il supporto per Windows 98/SE/ME è indicato per tutti, ma nelle colonne per Linux , MacOS, Unix e persino Windows 2000 sono spesso contrassegnati con N/A (Non consentito).
Affinché il sistema USB funzioni, è necessario caricare i driver per il controller host (o i controller, se ce ne sono più). Quando si collega un dispositivo al bus USB, Windows visualizza il messaggio "È stato rilevato un nuovo dispositivo" e, se il dispositivo viene collegato per la prima volta, richiede di scaricare i relativi driver. Molti modelli di dispositivi sono già noti al sistema e i driver sono inclusi nella distribuzione del sistema operativo. Tuttavia, potresti anche aver bisogno di un driver del produttore del dispositivo, che dovrebbe essere incluso con il dispositivo, oppure dovrai cercarlo su Internet. Sfortunatamente, non tutti i driver funzionano correttamente: potrebbe essere necessario sostituire il driver "grezzo" della versione iniziale con uno più "corretto" affinché il dispositivo venga riconosciuto normalmente e funzioni bene. Ma questa è una sfortuna comune per gli utenti di qualsiasi dispositivo, non solo dei dispositivi USB.
Elenchiamo le principali aree di applicazione dell'USB.
* Dispositivi di input- tastiere, mouse, trackball, puntatori di tablet, ecc. Qui USB fornisce un'unica interfaccia per vari dispositivi. L’opportunità di utilizzare l’USB per una tastiera non è scontata, anche se abbinandolo a un mouse USB (collegato alla porta dell’hub integrato nella tastiera) si riduce il numero di cavi che vanno dall’unità di sistema alla scrivania dell’utente.
* Stampanti. USB 1.1 fornisce all'incirca la stessa velocità di una porta LPT in modalità ECP, ma quando si utilizza USB non ci sono problemi con la lunghezza del cavo e con il collegamento di più stampanti a un computer (sebbene siano necessari hub). USB 2.0 accelererà la stampa ad alta risoluzione riducendo il tempo necessario per trasferire grandi quantità di dati. Tuttavia, c'è un problema con il vecchio software che funziona direttamente con la porta LPT a livello di registro: non sarà in grado di stampare su una stampante USB.
* Scanner. L'utilizzo dell'USB consente di evitare i controller SCSI o di occupare una porta LPT. USB 2.0 migliorerà anche la velocità di trasferimento dei dati.
* Dispositivi audio- altoparlanti, microfoni, cuffie (cuffie). L'USB consente di trasferire flussi di dati audio sufficienti a garantire la massima qualità. La trasmissione digitale dalla sorgente del segnale stessa (microfono con convertitore e adattatore integrati) al ricevitore e l'elaborazione digitale nel computer host consentono di eliminare le interferenze inerenti alla trasmissione audio analogica. L'uso di questi componenti audio consente, in alcuni casi, di eliminare la scheda audio del computer: il codec audio (ADC e DAC) viene portato all'esterno del computer e tutte le funzioni di elaborazione del segnale (mixer, equalizzatore) sono implementate dalla centrale processore esclusivamente nel software. I dispositivi audio potrebbero non disporre di altoparlanti e microfono veri e propri, ma potrebbero essere limitati a convertitori e prese standard ("Jack") per il collegamento di dispositivi analogici convenzionali.
* Sintetizzatori musicali e controller MIDI con interfaccia USB. Il bus USB consente al computer di elaborare flussi di più canali MIDI (la larghezza di banda dell'interfaccia MIDI tradizionale è già molto inferiore alle capacità del computer).
* Videocamere e fotocamere. USB 1.1 consente di trasferire immagini statiche di qualsiasi risoluzione in un tempo accettabile, nonché di trasferire un flusso di dati video (video live) con un frame rate sufficiente (25-30 Kbps) solo con bassa risoluzione o compressione dei dati, che naturalmente influisce qualità dell'immagine. USB 2.0 consente di trasmettere in streaming dati video ad alta definizione senza compressione (e perdita di qualità). Sia le fotocamere che i dispositivi di acquisizione delle immagini dal segnale televisivo e dai sintonizzatori TV sono prodotti con un'interfaccia USB.
* Comunicazioni. Con l'interfaccia USB vengono prodotti una varietà di modem, inclusi cavo e xDSL, adattatori di comunicazione a infrarossi ad alta velocità (IrDA FIR): il bus consente di superare il limite di velocità della porta COM (115,2 Kbps) senza aumentare il carico sul processore centrale. Sono disponibili anche adattatori di rete Ethernet che si collegano a un computer tramite USB. Per connettere più computer in una rete locale, vengono prodotti dispositivi speciali che eseguono la commutazione di pacchetti tra computer. Anche due computer non possono essere collegati direttamente (senza dispositivi aggiuntivi) tramite porte USB: su un bus può essere presente solo un controller host (vedi sopra). Un dispositivo speciale per collegare una coppia di computer sembra una "pillola" incorporata in un cavo USB con due spine di tipo A alle estremità. Il collegamento di più di due computer è complicato anche dalle limitazioni topologiche USB: la lunghezza di un segmento di cavo non deve superare i 5 m e l'utilizzo di hub per aumentare la portata è inefficace (ogni hub fornisce solo 5 m di distanza aggiuntiva).
* Convertitori di interfaccia consentono di collegare dispositivi con un'ampia varietà di interfacce tramite la porta USB, ora disponibile su quasi tutti i computer: Centronics e IEEE 1284 (porte LPT), RS-232C (emulazione UART 16550A - le basi delle porte COM) e altre interfacce seriali (RS-422, RS-485, V. 35...), emulatori di porte tastiera e anche porte Game, adattatori per bus AT A, ISA, PC Card e qualsiasi altro per cui le prestazioni siano sufficienti. Qui l'USB diventa un vero toccasana quando si presenta il problema della 2a (3a) porta LPT o COM in un PC notebook e in altre situazioni. In questo caso, il software del convertitore può fornire l'emulazione della versione classica dell'hardware delle porte PC IBM standard, ma solo sotto il controllo di un sistema operativo in modalità protetta. Un'applicazione MS-DOS può accedere ai dispositivi tramite indirizzi I/O, memoria, interrupt e canali DMA, ma solo da una sessione MS-DOS aperta in un sistema operativo abilitato per USB (solitamente Windows). Quando si carica MS-DOS nudo, la bacchetta magica non funziona. I convertitori di interfaccia consentono di prolungare la vita dei dispositivi con interfacce tradizionali che vengono eliminati dai PC dalle specifiche RS"99 e RS"2001. La velocità di trasferimento dei dati tramite un convertitore USB - LPT può essere addirittura superiore a quella di una porta LPT reale operante in modalità SPP.
* Dispositivi di memoria- dischi rigidi, lettori e scrittori di CD e DVD, streamer - quando utilizzano USB 1.1, ricevono una velocità di trasferimento proporzionata alla velocità della loro connessione a LPT, ma un'interfaccia più conveniente (sia hardware che software). Quando si passa a USB 2.0, la velocità di trasferimento dati diventa paragonabile a quella di ATA e SCSI e le restrizioni sul numero di dispositivi sono difficili da raggiungere. Particolarmente interessante è l'uso dell'USB per dispositivi di archiviazione elettronici non volatili (memoria flash): tale unità può essere molto compatta (delle dimensioni di un portachiavi) e capiente (attualmente 16-256 MB, in futuro - un gigabyte o più ). Vengono prodotti dispositivi per la connessione mobile di unità con l'interfaccia API ATA-AT - in realtà si tratta solo di convertitori di interfaccia posizionati in un compartimento box di formato 5" o 3,5" e talvolta realizzati direttamente nell'alloggiamento di un connettore a 36 pin connettore ATA. Esistono anche lettori e scrittori di schede SmartMedia e CompactFlash.
* Dispositivi di gioco- joystick di tutti i tipi (dagli "stick" ai volanti delle auto), telecomandi con vari sensori (continui e discreti) e attuatori (perché non realizzare una sedia da pilota per auto da corsa con vibratori e sedie a dondolo?) - sono collegati in un sistema unificato modo. In questo modo viene eliminata l'interfaccia dispendiosa in termini di risorse del vecchio adattatore da gioco (già abolita nella specifica PC"99).
* Telefoni- analogico e digitale (ISDN). Il collegamento di un telefono consente di trasformare il computer in una segreteria con le funzioni di composizione automatica, segreteria telefonica, sicurezza, ecc.
* Monitora- qui il bus USB viene utilizzato per controllare i parametri del monitor. Il monitor comunica al sistema il tipo e le capacità (parametri di sincronizzazione) - questo è stato fatto senza USB tramite il bus DDC. Tuttavia, i monitor USB consentono anche al sistema di controllarli: le regolazioni di luminosità, contrasto, temperatura del colore, ecc. possono ora essere eseguite in modo programmatico e non solo dai pulsanti sul pannello frontale del monitor. Di norma, gli hub sono integrati nei monitor. Questo è conveniente, poiché non è sempre conveniente includere le periferiche desktop in un'unità di sistema “sotto la scrivania”.
* Chiavi elettroniche- dispositivi con qualsiasi livello di intelligenza di protezione - possono essere realizzati nell'alloggiamento delle prese USB. Sono molto più compatti e mobili rispetto a dispositivi simili per porte COM e LPT.
Naturalmente la portata del bus USB non si limita alle classi di apparecchi elencate.
Gli hub USB sono prodotti sia come dispositivi separati che integrati in dispositivi periferici (tastiere, monitor). Di norma, gli hub sono alimentati tramite corrente alternata (devono alimentare i dispositivi collegati). Producono anche hub installati all'interno dell'unità del sistema informatico e alimentati dal suo alimentatore. Tali hub sono più economici di quelli esterni e non richiedono una presa di corrente aggiuntiva. Una delle opzioni di progettazione consiste nell'installare l'hub su una staffa montata in una finestra per connettori aggiuntivi. L'accesso ai loro connettori dal "retro" dell'unità di sistema non è molto conveniente per gli utenti. Un'altra opzione è un hub installato in un alloggiamento da 3". I suoi connettori sono facilmente accessibili, gli indicatori di stato delle porte sono chiaramente visibili, ma i cavi che escono dal pannello frontale dell'unità di sistema non sono sempre comodi. D'altro canto, per la connessione chiavi elettroniche (se devono essere cambiate frequentemente) o azionamenti miniaturizzati, questa opzione è la più conveniente.
Recentemente sono comparsi nuovi dispositivi ausiliari che aumentano la portata della comunicazione (estensori di distanza). Si tratta di una coppia di dispositivi collegati tra loro tramite un normale cavo a doppino intrecciato (o fibra ottica) collegato tra il dispositivo periferico e l'hub. L'“extender” sul lato periferico può anche avere un hub per più porte. Sfortunatamente, l'aumento della distanza è limitato dalle limitazioni sul tempo di ritardo del segnale inerenti al protocollo del bus USB ed è raggiungibile solo una distanza fino a 100 m. Ma anche questa lunghezza consente di espandere la portata dell'USB, ad esempio videosorveglianza remota.

– Cos’è l’USB?

La specifica del bus periferico USB è stata sviluppata dai leader del settore informatico e delle telecomunicazioni - Compaq, DEC, IBM, Intel, Microsoft, NEC e Northern Telecom - per collegare le periferiche del computer all'esterno della macchina utilizzando lo standard plug"n"play, eliminando la necessità per installare schede aggiuntive negli slot di espansione e riconfigurare il sistema. I personal computer dotati di bus USB consentono di collegare periferiche e di configurarle automaticamente non appena il dispositivo è fisicamente collegato alla macchina, senza la necessità di riavviare o spegnere il computer, né di eseguire programmi di installazione e configurazione. Il bus USB consente di collegare contemporaneamente fino a 127 dispositivi in ​​serie, come monitor o tastiere, che fungono da componenti o hub aggiuntivi collegati (ovvero un dispositivo tramite il quale ne sono collegati molti altri).

– Chi ha creato l’USB?

USB è stato sviluppato da un gruppo di sette aziende che hanno visto la necessità di interoperabilità per consentire la crescita e lo sviluppo continui del fiorente settore integrato dei computer e della telefonia. Le sette società che promuovono l'USB sono: Compaq, Digital Equipment Corp, IBM PC Co., Intel, Microsoft, NEC e Northern Telecom.

- Come funziona?

USB rileva se un dispositivo viene aggiunto o disabilitato grazie alla sua intelligenza fornita dal sistema sottostante. Il bus determina automaticamente quali risorse di sistema, inclusi software driver e larghezza di banda, sono necessarie per ciascun dispositivo periferico e rendono tali risorse disponibili senza l'intervento dell'utente. I proprietari di computer dotati di bus USB hanno la possibilità di cambiare dispositivi periferici compatibili con la stessa facilità con cui avvitano una nuova lampadina in una lampada.

– Quali tipi di periferiche supporta l'USB per la connessione al PC?

Conosci questi dispositivi: telefoni, modem, tastiere, mouse, lettori CD ROM, joystick, unità a nastro e disco, scanner e stampanti. La velocità di pompaggio di 12 megabit/secondo consente di collegare tramite USB tutte le moderne generazioni di dispositivi periferici, comprese le apparecchiature per l'elaborazione di dati video MPEG-2, guanti per la gestione di oggetti virtuali e digitalizzatori. Inoltre, con la grande crescita prevista nel campo dell'integrazione di computer e telefonia, il bus USB può fungere da interfaccia per connettere dispositivi ISDN (Integrated Services Digital Network) e dispositivi digitali PBX (Private Branch eXchange), consentendo a un gran numero di telefoni di connettersi essere collegato a un numero limitato di linee di comunicazione.

– È necessario acquistare un software speciale per far funzionare le periferiche compatibili con USB?

Il sistema operativo Windows 95 (a partire dalla versione OSR 2.1, rilasciata il 29 ottobre 1996) viene fornito con driver integrati che consentono al personal computer di riconoscere le periferiche USB. Di conseguenza, non è necessario acquistare o installare software aggiuntivo per ogni nuova periferica. Insieme alle nuove periferiche USB riceverete però anche un dischetto con i nuovi driver. Tuttavia, non tutto è così roseo: ad esempio, solo Windows 98 e versioni successive possono garantire il corretto funzionamento di una stampante con interfaccia USB.

– Cosa significa l’esistenza dell’USB per i fornitori di sistemi e periferiche?

L'interoperabilità USB si basa su specifiche aperte e tecnologicamente coerenti che soddisfano le esigenze dei consumatori di computer facilmente espandibili. A sua volta, per fornitori e rivenditori di computer, periferiche e software, la compatibilità USB porterà profitti attraverso l’uso di nuovi metodi di marketing:

  • La "piattaforma pronta" consente di collegare logicamente hardware e software per la consegna congiunta all'acquirente.
  • L'USB può ridurre il rischio di potenziali incompatibilità tra periferiche e software forniti con i computer fornendo sistemi chiavi in ​​mano che soddisfano i requisiti di nicchie di mercato specializzate.
  • Le periferiche compatibili con USB possono offrire ai consumatori e alle aziende una scelta più ampia in termini di hardware senza il timore di compromettere la funzionalità hardware.
  • I rivenditori ottengono una maggiore flessibilità nella scelta delle apparecchiature e dei sistemi già pronti per stimolare la domanda dei clienti, grazie alla capacità di combinare set di periferiche fornite, senza timore che qualcosa non funzioni insieme a qualcos'altro.
  • L'USB può fornire valore aggiuntivo ai fornitori di periferiche fornendo nuove apparecchiature per sistemi che utilizzano la tecnologia MMX.
  • L'USB può aiutare i fornitori a ridurre i costi di sviluppo, il che a sua volta consentirà loro di applicare prezzi nuovi e più competitivi.

– Dove posso trovare la versione attuale delle specifiche USB?

La versione corrente delle specifiche è disponibile per il download dalla pagina della community di implementazione USB.

– Quanti computer compatibili con USB possiamo aspettarci sul mercato?

Dataquest stima che nel 1997 verranno venduti fino a 30 milioni di personal computer compatibili con USB e che entro il 1998 tutti i personal computer saranno abilitati per USB.

– Esistono già dispositivi per il bus USB?

I personal computer con bus USB hanno iniziato ad essere forniti sul mercato a metà del 1996 e la prima ondata di periferiche collegate tramite bus USB è già a disposizione degli utenti.

Sono inoltre disponibili le tecnologie utilizzate per progettare e creare sistemi USB, come connettori, chipset e schede madri.

– Come si può utilizzare l'USB quando sono presenti due sistemi, ad esempio un laptop e un computer desktop?

La risposta è utilizzare un piccolo adattatore che verrà identificato come dispositivo per ciascun sistema USB collegato. Due controller per periferiche USB con un buffer di memoria comune sarebbero la soluzione ottimale, il cui costo non dovrebbe superare i 50 dollari. Il corpo dell'adattatore potrebbe apparire come una piccola massa al centro del cavo o forse come un piccolo rigonfiamento situato a un'estremità del cavo. Un cavo come quello descritto può fungere anche da hub, pagando solo una piccola spesa aggiuntiva, e questo è un prodotto molto più prezioso.

– Cos’è la USB Implementation Community (USB-IF)?

La USB Implementation Community è un'organizzazione di supporto dedicata creata da sette sviluppatori USB per assistere nel rapido sviluppo di dispositivi compatibili di alta qualità che utilizzano USB.

– Posso unirmi alla comunità USB-IF?

Penso di si. Puoi conoscere le condizioni di ingresso da questo documento.

– Come si confronta l'USB con lo standard Sony FireWire/IEEE 1394?

Le principali differenze risiedono nell'applicazione, nella disponibilità e nel prezzo. L'USB è ora disponibile per i tradizionali dispositivi collegati al PC come tastiere, mouse, joystick e scanner portatili. Tuttavia, il throughput USB di 12 Mbps è più che sufficiente per la maggior parte delle applicazioni utente, inclusi dispositivi di gioco più avanzati, audio di alta qualità e video compresso MPEG-1 e MPEG-2. Ma, cosa ancora più importante, l'uso dell'USB non aumenta il costo del sistema finito grazie all'integrazione del controller nel chipset.

FireWire non sarà disponibile nella sua forma più semplice fino all'inizio del 1998. FireWire è finalizzato al collegamento di dispositivi elettronici di consumo con larghezza di banda elevata, come fotocamere digitali, lettori di dischi video digitali e registratori digitali, a un personal computer.

– FireWire sostituirà il bus USB quando apparirà?

NO. Le due tecnologie si concentrano sulla connessione di diversi dispositivi periferici e quindi si completeranno a vicenda. Se FireWire diventerà prevalente entro circa due anni, tutto dipenderà dal singolo acquirente e dalle sue esigenze per il suo nuovo computer. Sembra probabile che i futuri personal computer saranno dotati sia di porte USB che FireWire.

– Quali sono le questioni relative alla proprietà intellettuale (IP) relative all’USB, è una licenza, quanto costa, cos’è l’“accordo di convenzione reciproca” di cui ho sentito parlare?

L'uso dell'USB è esente da royalties, ad es. I creatori delle specifiche consentono a chiunque di sviluppare prodotti basati su di esse senza alcun pagamento. Gli sviluppatori delle specifiche del bus hanno firmato un accordo IP in cui si prometteva che non ci sarebbe stato alcun procedimento giudiziario per qualsiasi clausola inclusa nell'IP all'interno delle specifiche. Il Reverse Agreement è una copia di questo accordo con la possibilità per chiunque utilizzi il bus USB di firmare questo accordo e restituirlo all'amministrazione USB-IF per registrare che l'accordo è stato letto e compreso. L'accordo inverso è disponibile per tutti (membri USB-IF o meno) per chiarire il contratto di licenza USB.

– Quali sono le specifiche OHCI e UHCI?

Inoltre, sono specifiche compatibili con USB e descrivono l'interfaccia di varie implementazioni hardware del controller incorporato. La varietà di controller integrati nell'hardware dei sistemi è uno sviluppo naturale e viene creata nell'ambito delle specifiche USB.

– Esiste un newsgroup sull'USB?

Esiste una mailing list per i membri USB-IF in cui si svolgono discussioni e interazioni tra le aziende. Non vi è alcuna censura o controllo oltre alle regole di corrispondenza che specificano che vengono discussi solo argomenti relativi all'USB. Questo non è un vero newsgroup, poiché funziona solo tramite posta elettronica, quindi non esiste un archivio mantenuto che chiunque possa visualizzare.

– Come posso ottenere il numero di identificazione (ID) del produttore USB?

I membri USB-IF ricevono gratuitamente un ID produttore non appena si uniscono alla comunità. I membri non appartenenti alla comunità possono ottenere un ID produttore contattando l'amministrazione USB-IF. Ai non membri verrà addebitata una quota di registrazione di $ 200.

– È possibile aumentare la lunghezza della connessione dei dispositivi tramite bus USB a 50-200 metri (ad esempio utilizzando la fibra ottica), se gli utenti ne hanno bisogno?

L'interfaccia periferica USB è progettata per sistemi desktop, e la distanza di 200 m sembra corrispondere ad una scrivania molto grande. Molte aziende nella comunità dell'adozione USB discutono da tempo la questione dell'utilizzo dell'autobus su lunghe distanze e stanno pensando alla creazione di prodotti che lo rendano possibile. Il dispositivo di espansione assomiglia a due hub USB, ma utilizza altri protocolli (come la fibra ottica) tra i punti di connessione del cavo. A ciascuna estremità, il segnale elettrico nell'USB deve essere tradotto da o verso il segnale su lunghe distanze. Affinché tutto ciò diventi possibile è necessario risolvere le problematiche legate al protocollo di trasferimento dei pacchetti dati e ai ritardi temporali, che devono essere compatibili e rispettare le specifiche USB.

– Quando un dispositivo viene disconnesso, il suo driver viene scaricato dalla memoria, se colleghi nuovamente lo stesso dispositivo, il suo driver verrà nuovamente caricato?

Sì, la configurazione dinamica e l'inizializzazione da parte del sistema operativo includono il caricamento e lo scaricamento automatico dei driver dalla memoria quando se ne presenta la necessità.

– Sono previsti piani per raddoppiare o triplicare la larghezza di banda del bus USB?

No, USB è stata progettata come interfaccia periferica per sistemi desktop e ha il miglior rapporto prestazioni/prezzo oggi disponibile. Sono già in corso nuove interfacce come FireWire per le future periferiche ad alta velocità.

– Qualcuno può spiegare la differenza tra i connettori della serie “A” e “B”?

I connettori della serie "A" sono progettati per tutti i dispositivi USB e sono un connettore per periferiche e una presa per un personal computer. Nella maggior parte dei casi, il cavo USB dovrebbe essere integrato nel dispositivo periferico. Ciò riduce i costi dei connettori, elimina le incompatibilità che possono verificarsi a causa delle diverse resistenze dei cavi e semplifica l'esperienza di connessione dell'utente. Tuttavia, in alcuni casi non è possibile utilizzare il cavo integrato. Buoni esempi includono dispositivi molto grandi e pesanti che non si adattano bene a un cavo sottile che non può essere rimosso, nonché dispositivi che vengono collegati solo occasionalmente e vengono utilizzati pesantemente quando non sono collegati. Per questi casi sono stati realizzati i connettori della serie “B”. Le due serie di connettori differiscono nell'aspetto, questo per evitare connessioni che potrebbero disturbare la topologia dell'architettura USB.

– Qual è la differenza tra l’hub principale e uno normale in termini di hardware e software?

Tutti gli hub sono esattamente uguali dal punto di vista software (tranne la differenza come dispositivi dotati o meno di alimentazione). L'hub principale (o radice) è semplicemente il primo hub trovato durante la numerazione. In molte implementazioni, l'hub principale può essere integrato nello stesso chip del controller principale, riducendo così i costi.

– È possibile utilizzare il bus USB per collegare periferiche come CD-R, unità a nastro o dischi rigidi?

L'applicabilità si basa sul livello di prestazioni accettabile. Se si prevede che uno di questi dispositivi venga utilizzato frequentemente, di solito è necessario che sia integrato meccanicamente nel sistema e abbia prestazioni elevate, anch'esse corrispondenti al livello del sistema nel suo complesso. Il bus USB non è stato progettato per fornire una connessione permanente per periferiche ad alta velocità all'interno del case del computer. Se il dispositivo viene utilizzato saltuariamente o collegato a diversi computer, allora le prestazioni fornite dal bus USB saranno più che sufficienti. La facilità d'uso e di connessione dei dispositivi forniti tramite USB supera di gran lunga i parametri di velocità di trasferimento dei dati. Tuttavia, l'USB fornisce velocità di trasferimento alla pari con le unità CD con velocità 4x o 6x (che non è abbastanza veloce per i riscrittori), ma migliore delle tradizionali unità a nastro collegate in parallelo, unità floppy o dischi rigidi rimovibili come SyQuest.

Organizzazione del bus USB

USB (Universal Serial Bus) è uno standard industriale per l'espansione dell'architettura dei PC, incentrato sull'integrazione con i dispositivi di telefonia e di elettronica di consumo. La versione 1.0 dello standard è stata pubblicata all'inizio del 1996, la maggior parte dei dispositivi supporta lo standard 1.1, rilasciato nell'autunno del 1998, che ha risolto i problemi riscontrati nella prima edizione. Nella primavera del 2000 è stata pubblicata la specifica USB 2.0, che prevede un aumento di 40 volte della larghezza di banda del bus. Inizialmente (nelle versioni 1.0 e 1.1) il bus prevedeva due velocità di trasferimento delle informazioni: piena velocità, FS (piena velocità) - 12 Mbit/s e bassa velocità, LS (bassa velocità) - 1,5 Mbit/s. La versione 2.0 definisce anche l'alta velocità, HS (high speed) - 480 Mbit/s, che consente di ampliare notevolmente la gamma di dispositivi collegati al bus. Dispositivi con tutte e tre le velocità possono essere presenti e funzionare contemporaneamente nello stesso sistema. Il bus consente, utilizzando hub intermedi, di collegare dispositivi remoti dal computer a una distanza massima di 25 m. Informazioni dettagliate e aggiornate su USB (in inglese) sono disponibili sul sito http://www. usb.org. Lo sviluppo dei dispositivi e la loro classificazione e standardizzazione è coordinato da USB-IF (USB Implementers Forum, Inc.).

Il bus USB consente lo scambio di dati tra il computer host e una varietà di dispositivi periferici (PU). USB è un unico sistema hardware e software centralizzato per l'accodamento di più dispositivi e più processi software applicativi. La comunicazione dei processi software con tutti i dispositivi è fornita da un controller host con supporto software multilivello. Ciò rende l'USB notevolmente diversa dalle tradizionali interfacce periferiche (porte LPT, COM, GAME, tastiera, mouse, ecc.); nella tabella è riportato un confronto tra queste tipologie di connessioni.

Tavolo. Confronto del bus USB con le interfacce periferiche tradizionali

Interfacce tradizionali (COM, LPT, Game...) Bus USB
Il collegamento di ciascun dispositivo richiede generalmente la presenza di un proprio controller (adattatore) 1 Tutti i dispositivi sono collegati tramite un controller host
Ciascun controller occupa le proprie risorse (spazio di memoria, spazio I/O e richieste di interruzione) Solo il controller host occupa risorse
Un numero limitato di dispositivi che possono essere collegati al computer contemporaneamente Connetti fino a 127 dispositivi
I driver del dispositivo possono accedere direttamente ai controller del dispositivo, indipendentemente l'uno dall'altro I driver del dispositivo accedono solo al driver del controller host comune
L'indipendenza degli autisti comporta l'imprevedibilità del risultato del lavoro simultaneo con più dispositivi, la mancanza di garanzie di qualità del servizio (possibilità di ritardi e velocità di trasmissione ridotta)
per vari dispositivi
Lo scambio programmato centralizzato fornisce garanzie di qualità del servizio che consentono la trasmissione di dati multimediali isocroni insieme al normale scambio asincrono
Varietà di interfacce, connettori e cavi specifici per ogni tipo di dispositivo Un'unica interfaccia comoda ed economica per connettere dispositivi di ogni tipo. Possibilità di selezionare la velocità del dispositivo (1,5-15-480 Mbit/s) a seconda delle necessità
Mancanza di rilevamento integrato di connessione/disconnessione e identificazione del dispositivo, difficoltà nel supporto PnP Possibilità di connessione/disconnessione “a caldo” dei dispositivi, supporto completo PnP, configurazione dinamica
Mancanza di controlli sugli errori Mezzi integrati per garantire un trasferimento dati affidabile
Mancanza di alimentazione standard per i dispositivi La possibilità di alimentare i dispositivi dal bus, nonché la disponibilità di strumenti di gestione dell'alimentazione

1 - Il bus SCSI ha anche la capacità di connettere più dispositivi ad un controller, ma la sua interfaccia parallela, rispetto a USB, è troppo costosa, ingombrante e più limitata nella topologia.

L'architettura USB consente quattro tipi fondamentali di trasferimento dati tra l'host e i dispositivi periferici:

  • trasferimenti isocroni - Streaming in tempo reale, occupando una porzione prenegoziata della larghezza di banda del bus con latenza di consegna garantita. A piena velocità (FS), è possibile organizzare un canale con larghezza di banda fino a 1.023 MB/s (o due da 0,5 MB/s), occupando il 70% della larghezza di banda disponibile (il resto può essere occupato da canali meno capienti) . Ad alta velocità (HS), puoi ottenere un canale fino a 24 MB/s (192 Mbit/s). L'affidabilità della consegna non è garantita: se viene rilevato un errore, i dati isocroni non vengono ripetuti e i pacchetti non validi vengono ignorati. Il bus USB consente di organizzare connessioni sincrone tra dispositivi e programmi applicativi utilizzando trasferimenti isocroni. I trasferimenti isocroni sono necessari per i dispositivi di streaming: videocamere, dispositivi audio digitali (altoparlanti USB, microfono), dispositivi di riproduzione e registrazione audio e video (CD e DVD). Il bus USB è in grado di trasmettere un flusso video (senza compressione) solo ad alta velocità;
  • interrompe — trasmissione di messaggi spontanei, che dovrà essere effettuata con un ritardo non superiore a quello richiesto dal dispositivo. Il limite del tempo di servizio è impostato nell'intervallo tra 10 e 255 ms per la velocità bassa e tra 1 e 255 ms per la massima velocità. Ad alta velocità è possibile ordinare 125 µs. La consegna è garantita; in caso di errori di cambio casuali viene eseguita una ripetizione, tuttavia ciò aumenta il tempo di servizio. Gli interrupt vengono utilizzati, ad esempio, quando si inseriscono caratteri dalla tastiera o per trasmettere messaggi sui movimenti del mouse. Gli interrupt possono essere utilizzati anche per trasmettere dati al dispositivo (non appena il dispositivo segnala la necessità di dati, l'host li trasmette tempestivamente). La dimensione del messaggio può essere compresa tra 0 e 8 byte per la bassa velocità, tra 0 e 64 byte per la velocità completa e tra 0 e 1024 byte per l'alta velocità;
  • trasferimenti di dati in blocco - si tratta di trasferimenti senza alcun obbligo di puntualità e velocità di consegna. I trasferimenti di array possono occupare l'intera larghezza di banda del bus libera da altri tipi di trasferimenti. Queste marce hanno la priorità più bassa e possono essere sospese quando l'autobus è molto carico. La consegna è garantita: in caso di errore accidentale, viene eseguita una ripetizione. I trasferimenti di array sono adatti per lo scambio di dati con stampanti, scanner, dispositivi di archiviazione, ecc.;
  • trasferimenti di controllo vengono utilizzati per configurare i dispositivi mentre sono collegati e per controllare i dispositivi durante il funzionamento. Il protocollo garantisce la consegna garantita dei dati e la conferma da parte del dispositivo della corretta esecuzione del comando di controllo. La trasmissione del controllo consente di inviare un comando al dispositivo (una richiesta, eventualmente corredata di dati aggiuntivi) e di ricevere una risposta allo stesso (conferma o rifiuto all'esecuzione della richiesta ed, eventualmente, dati). Solo i trasferimenti di controllo USB garantiscono la sincronizzazione di richieste e risposte; in altri tipi di trasmissioni non esiste una sincronizzazione esplicita del flusso di ingresso con il flusso di uscita.

L'hardware USB include:

  • Dispositivi periferici USB dotati di funzioni utili (funzioni USB);
  • Host Controller, che fornisce la comunicazione bus con il centro del computer, combinato con il Root Hub, che fornisce punti di connessione per i dispositivi USB. Sono disponibili due opzioni per i controller host USB 1.x: UHC (Universal Host Controller) e OHC (Open Host Controller), che supportano velocità FS/LS; il bus USB 2.0 ad alta velocità (solo HS e) è supportato da EHC (Enhanced Host Controller);
  • Hub USB (hub USB), che forniscono punti di connessione aggiuntivi per dispositivi;
  • Cavi USB che collegano i dispositivi agli hub.

Il software USB include:

  • software client (CSw, software client): driver del dispositivo USB che forniscono l'accesso ai dispositivi dal software applicativo. Questi driver comunicano con i dispositivi solo tramite l'interfaccia software USB Generic Driver (USBD). I driver del dispositivo USB non accedono direttamente ad alcun registro hardware;
  • Driver USB (USBD, USB Driver), “gestore” di tutti i dispositivi USB del sistema, della loro numerazione, configurazione, erogazione dei servizi, distribuzione della larghezza di banda del bus, alimentazione, ecc.;
  • driver del controller host (HCD, Host Controller Driver), che converte le richieste di I/O in strutture dati situate nell'area di comunicazione della RAM e accede ai registri del controller host. Il controller host esegue transazioni fisiche sulla base di queste strutture dati.

I driver USBD e HCD fanno parte del software host USB; Le specifiche USB delineano i loro compiti, ma non descrivono l'interfaccia tra di loro. Un dispositivo USB fisico deve disporre di un'interfaccia USB che fornisca il supporto completo per il protocollo USB, esegua operazioni standard (configurazione e ripristino) e fornisca informazioni che descrivono il dispositivo. I dispositivi USB fisici possono essere dispositivi composti: includono diversi dispositivi funzionali collegati all'hub interno e forniscono anche ulteriori punti di connessione esterni con il loro hub interno.

Il funzionamento di tutti i dispositivi bus USB è controllato dal controller host, che è un sottosistema hardware e software del computer host. Il controller host è un dispositivo bus PCI intelligente o parte integrante dell'hub (ponte) "sud" della scheda madre, che interagisce intensamente con la RAM.

Topologia fisica del bus USB - stella a più livelli (vedi figura, a). La sua parte superiore è il controller host, combinato con l'hub root. L'hub è un dispositivo splitter; può anche fungere da fonte di alimentazione per i dispositivi ad esso collegati. Ciascuna porta dell'hub può collegare direttamente un dispositivo periferico o un hub intermedio; il bus consente fino a cinque livelli (livelli) di hub in cascata (senza contare la radice). Poiché i dispositivi combinati contengono un hub al loro interno, collegarli all'hub del quinto livello non è più accettabile. Ogni hub intermedio dispone di diverse porte downstream per la connessione di dispositivi periferici (o hub sottostanti) e di una porta upstream per la connessione all'hub root o alla porta downstream di un hub upstream.

La topologia logica USB è a stella. Gli hub (incluso il root) creano l'illusione di una connessione diretta di ciascun dispositivo logico al controller host (vedere la figura sotto, b). In questa stella vengono stabiliti rapporti puramente subordinati secondo il sistema di risposta al polling: l'host controller, di propria iniziativa, trasmette i dati al dispositivo selezionato o li riceve. Il dispositivo non può trasmettere dati di propria iniziativa; Non è possibile il trasferimento diretto dei dati tra dispositivi. Il dispositivo, di propria iniziativa, può solo segnalare un “risveglio”, per il quale viene utilizzata una segnalazione speciale, ma non la trasmissione dei dati.

L'interfaccia fisica USB è semplice ed elegante. Il design dei cavi e dei connettori USB rende impossibile commettere errori durante il collegamento dei dispositivi (vedere la figura seguente, a e b). Per riconoscere il connettore USB, sul corpo del dispositivo è apposta una designazione simbolica standard (vedere la figura sotto, c). I jack di tipo "A" sono installati solo sulle porte downstream degli hub, i connettori di tipo "A" sono installati sui cavi dei dispositivi periferici o sulle porte upstream degli hub. Le prese e le spine di tipo "B" vengono utilizzate solo per i cavi disconnessi dai dispositivi periferici e dalle porte a monte degli hub (i cavi dei dispositivi "piccoli" - mouse, tastiere, ecc., Di norma, non vengono disconnessi). Per i dispositivi di piccole dimensioni sono disponibili connettori mini-B e per il supporto OTG (On-the-Go) sono disponibili sia connettori mini-A che prese miniAB. Hub e dispositivi offrono la possibilità di collegarsi e scollegarsi “a caldo” segnalando questi eventi all'host.

Quando si pianificano le connessioni, è necessario considerare come vengono alimentati i dispositivi: i dispositivi alimentati dal bus sono generalmente collegati a hub alimentati dalla rete. Solo i dispositivi a basso consumo sono collegati agli hub alimentati dal bus: ad esempio, un mouse USB e altri dispositivi di puntamento (trackball, tablet) sono collegati a una tastiera USB contenente un hub al suo interno.

Dispositivo logico USB è un insieme di endpoint indipendenti (Endpoint, EP) con cui il controller host (e il software client) scambia informazioni. A ciascun dispositivo logico USB (sia funzioni che hub) viene assegnato dalla parte di configurazione del software host il proprio indirizzo (1-127), univoco su un dato bus USB. Ogni endpoint del dispositivo logico è identificato dal suo numero (0-15) e dalla direzione di trasmissione (IN - trasmissione all'host, OUT - dall'host). IN4 e OUT4, ad esempio, sono endpoint diversi con cui possono comunicare anche i moduli software client. L'insieme di endpoint varia in base al dispositivo, ma ogni dispositivo USB deve avere un endpoint bidirezionale 0 (EP0) attraverso il quale viene generalmente gestito. Per scopi applicativi, vengono utilizzati gli endpoint numerati da 1 a 15 (1-2 per i dispositivi a bassa velocità). L'indirizzo del dispositivo, il numero dell'endpoint e la direzione identificano in modo univoco il ricevitore o la fonte di informazioni quando il controller host comunica con i dispositivi USB. Ogni endpoint ha una serie di caratteristiche che descrivono il tipo di trasferimento dati supportato (dati isocroni, array, interruzioni, trasferimenti di controllo), dimensione del pacchetto e requisiti di frequenza del servizio.

Il dispositivo può eseguire diverse attività funzionali: ad esempio, un'unità CD-ROM può riprodurre CD audio e fungere da dispositivo di archiviazione dati. Per risolvere ciascuna attività, il dispositivo definisce un'interfaccia: un insieme di endpoint progettati per eseguire una determinata attività e le regole per il loro utilizzo. Pertanto, ciascun dispositivo deve fornire una o più interfacce. La presenza di più interfacce consente a più driver, ciascuno dei quali accede solo a un'interfaccia diversa (che rappresenta parte del dispositivo USB), di funzionare con lo stesso dispositivo USB. Ciascuna interfaccia può avere una o più opzioni alternative (impostazioni alternative), di cui solo una può essere attiva alla volta. Le opzioni differiscono nei set (ed eventualmente nelle caratteristiche) degli endpoint utilizzati.

L'insieme delle interfacce supportate contemporaneamente costituisce la configurazione del dispositivo. Un dispositivo può avere una o più configurazioni possibili, tra le quali l'host ne seleziona una in fase di configurazione, rendendola attiva. La configurazione selezionata determina le funzionalità disponibili e spesso il consumo energetico. Finché a un dispositivo non viene assegnato un numero di configurazione selezionato, non può funzionare a livello applicativo e il consumo di corrente dal bus non deve superare i 100 mA. L'host seleziona una configurazione in base alla disponibilità di tutte le risorse richieste da questa configurazione, compreso il consumo di corrente dal bus.

Ciascun pezzo di software client (solitamente rappresentato da un driver) comunica con un'interfaccia del suo dispositivo (funzione) in modo esclusivo e indipendente (vedi figura sotto). Le connessioni in questa figura rappresentano i tubi di comunicazione stabiliti tra i driver di dispositivo e i relativi endpoint. I canali vengono stabiliti solo con gli endpoint del dispositivo appartenenti alle opzioni di interfaccia selezionate (da alternative) della configurazione attiva. Non sono disponibili altri endpoint.

Richieste, lotti e transazioni

Per trasmettere o ricevere dati, il software client invia un pacchetto di richiesta di input/output - IRP (Input/Output Request Packet) al canale e attende la notifica del completamento della sua elaborazione. Il formato IRP è determinato dall'implementazione del driver USBD in un particolare sistema operativo. L'IRP contiene solo informazioni sulla richiesta (la posizione del buffer dei dati di trasferimento nella RAM e la durata del trasferimento); Il driver del dispositivo viene estratto dalle proprietà della specifica connessione attuale (velocità, dimensione del pacchetto consentita). Il driver USBD elabora la richiesta sotto forma di transazioni sul bus USB; se necessario suddivide le richieste lunghe (pacchetti) in parti adatte alla trasmissione in un'unica transazione. Una transazione sul bus USB è una sequenza di scambi di pacchetti tra l'host e la PU, durante la quale può essere trasmesso o ricevuto un pacchetto di dati (sono possibili transazioni in cui non vengono trasmessi dati). L'elaborazione di una richiesta è considerata completata quando tutte le transazioni ad essa associate vengono completate con successo. Le "difficoltà temporanee" incontrate durante l'esecuzione (impreparazione per lo scambio di dati) non vengono portate all'attenzione del conducente del cliente - può solo attendere il completamento degli scambi (o il timeout). Tuttavia, il dispositivo può segnalare errori gravi (con una risposta STALL), che causano l'interruzione della richiesta e vengono notificati al driver client. In questo caso, anche tutte le richieste successive a questo canale verranno scartate. La ripresa del lavoro con questo canale è possibile solo dopo una notifica esplicita dell'elaborazione di una situazione di errore, che il driver del dispositivo effettua tramite una richiesta speciale (anche una chiamata USBD).

Le query lunghe vengono suddivise in transazioni per utilizzare la dimensione batch massima. L'ultimo lotto rimanente potrebbe essere inferiore alla dimensione massima. Il controller host dispone di un mezzo per rilevare la ricezione di un pacchetto "difettoso" dal dispositivo, la cui dimensione è inferiore al previsto. La richiesta IRP specifica se rispondere a questo evento in modo specifico. Una reazione speciale può essere duplice:

  • tratta il pacchetto breve come un delimitatore che indica la fine del blocco di dati. In questo caso, questo IRP viene completato normalmente e vengono eseguite le seguenti richieste a questo canale;
  • considerare un pacchetto breve come un segno di errore, causando l'arresto del canale (tutte le sue successive richieste pendenti vengono ripristinate).

Quando si trasferiscono array, è più naturale utilizzare pacchetti abbreviati come delimitatori. Così ad esempio in una delle opzioni di protocollo per dispositivi di memorizzazione dati vengono utilizzati come pacchetti di controllo pacchetti abbreviati di lunghezza nota.

I canali di comunicazione USB sono divisi in due tipologie:

  • tubo di streaming fornisce dati da un'estremità all'altra del canale, è sempre unidirezionale. Lo stesso numero di endpoint può essere utilizzato per due diversi canali di streaming, input e output. I trasferimenti di dati in diversi canali di streaming non sono sincronizzati tra loro. Ciò significa che le richieste dei driver client per canali diversi inserite in un ordine specifico l'uno rispetto all'altro possono essere eseguite in un ordine diverso. Le richieste per un canale verranno eseguite rigorosamente nell'ordine in cui vengono ricevute; Se si verifica un errore grave durante l'esecuzione di una qualsiasi richiesta (il dispositivo lo segnala con una risposta STALL), il thread si interrompe. Un thread può implementare trasferimenti di array, trasferimenti isocroni e interruzioni. I flussi trasportano dati in un formato arbitrario definito dal produttore del dispositivo (ma non dalle specifiche USB). I flussi utilizzano in genere transazioni in cui la lunghezza del campo dati corrisponde alla dimensione massima consentita dal relativo endpoint. Se è necessario dividere un flusso in blocchi logici di dati, ciò può essere fatto utilizzando pacchetti abbreviati come segno della fine del blocco. Se risulta che il blocco rientra in un numero intero di pacchetti della dimensione massima, i pacchetti con una lunghezza del campo dati pari a zero possono essere utilizzati come delimitatore;
  • tubo dei messaggi ) è bidirezionale. Le trasmissioni di messaggi in direzioni opposte sono sincronizzate tra loro e rigorosamente ordinate. La controparte deve rispondere a ciascun messaggio con la conferma della sua ricezione ed elaborazione. Il messaggio successivo non può essere inviato prima che quello precedente venga elaborato, ma durante la gestione degli errori è possibile reimpostare i messaggi non gestiti. I formati dei messaggi sono definiti dalle specifiche USB: esiste una serie di messaggi standard (richieste e risposte) e identificatori di messaggi riservati, il cui formato è determinato dallo sviluppatore del dispositivo o dell'interfaccia.

I canali hanno caratteristiche associate all'endpoint (larghezza di banda, tipo di servizio, dimensione del buffer, ecc.). I canali vengono creati durante la configurazione dei dispositivi USB. La larghezza di banda del bus è suddivisa tra tutti i canali installati. La larghezza di banda assegnata viene assegnata a un canale e se la creazione di un nuovo canale richiede una larghezza di banda che non rientra nell'allocazione esistente, la richiesta di assegnazione del canale viene respinta.

I canali differiscono anche nello scopo:

  • canale di messaggio principale (pipe predefinita, nota anche come pipe di controllo 0) , di proprietà di USBD, viene utilizzato per accedere alle informazioni di configurazione di tutti i dispositivi. Questo canale è stabilito con un punto finale zero, EP0 (punto finale zero), che per tutti i dispositivi supporta sempre solo i trasferimenti di controllo;
  • Tubazioni cliente , i cui proprietari sono driver di dispositivo. Questi canali possono trasportare sia flussi che messaggi; supportano qualsiasi tipo di trasferimento USB (isocrono, interrupt, array e controllo).

L'interfaccia del dispositivo con cui funziona il driver client è un bundle di canali client (bundle di pipe). Per questi canali, i driver del dispositivo sono le uniche fonti e consumatori di dati trasmessi.

Il proprietario dei principali canali di messaggio di tutti i dispositivi è il driver USB (USBD); Questi canali trasportano informazioni di configurazione, controllo e stato. Il canale di messaggio principale può essere utilizzato anche dal driver client per il controllo corrente e la lettura dello stato del dispositivo, ma indirettamente tramite USBD. Ad esempio, i messaggi trasmessi sul canale principale vengono utilizzati dal driver della stampante USB per interrogare lo stato corrente (tre segnali vengono trasmessi nel formato del registro di stato della porta LPT: errore I/O, stampante selezionata, carta esaurita).

L'host organizza gli scambi con i dispositivi secondo il proprio piano di allocazione delle risorse. A tale scopo l'Host Controller genera ciclicamente con un periodo di 1 ms frame in cui si adattano tutte le transazioni pianificate (vedere la figura seguente). Ogni frame inizia con l'invio di un pacchetto marcatore SOF (Start Of Frame), che è un segnale di sincronizzazione per i dispositivi isocroni, nonché per gli hub. I frame sono numerati in sequenza; il marcatore SOF contiene gli 11 bit meno significativi del numero di frame. In modalità HS, ogni frame è diviso in 8 microframe e i pacchetti SOF vengono trasmessi all'inizio di ciascun microframe (con un periodo di 125 µs). Inoltre, in tutti gli otto microframe il SOF porta lo stesso numero di frame; il nuovo valore del numero di frame viene trasmesso nel microframe zero. In ogni microframe possono essere effettuate più transazioni, il numero consentito dipende dalla velocità, dalla lunghezza del campo dati di ciascuna di esse, nonché dai ritardi introdotti da cavi, hub e dispositivi. Tutte le transazioni frame devono essere completate prima dell'inizio dell'intervallo di tempo EOF (End of Frame). Il periodo (frequenza) di generazione dei microframe può essere leggermente variato utilizzando un registro speciale nel controller host, che consente di regolare la frequenza per le trasmissioni isocrone.

L'inquadratura viene utilizzata anche per garantire la sopravvivenza dell'autobus. Al termine di ogni microframe viene allocato un intervallo di tempo EOF (End Of Frame) durante il quale gli hub inibiscono la trasmissione verso il controller. Se l'hub rileva che i dati vengono trasmessi da una porta in questo momento (all'host), questa porta viene disabilitata, isolando il dispositivo "chiacchierone", che viene segnalato da USBD.

Il contatore dei microframe nel controller host viene utilizzato come origine dell'indice quando si accede alla tabella dei descrittori dei frame. Tipicamente, il driver USB crea una tabella descrittore per 1024 frame consecutivi1, alla quale accede ciclicamente. Usando questi descrittori, l'host pianifica il caricamento dei frame in modo che, oltre alle transazioni isocrone pianificate e agli interrupt, ci sia sempre spazio per le transazioni di controllo in essi. Il tempo di frame libero può essere riempito con trasferimenti di array. La specifica USB consente alle transazioni periodiche (isocrone e con interruzioni) di occupare fino al 90% della larghezza di banda del bus, ovvero il tempo in ciascun microframe.

16. Bus USB. Caratteristiche generali

L'Universal Serial Bus ha le seguenti caratteristiche:

 Il computer principale esegue le funzioni dell'host.

 È possibile collegare fino a 127 dispositivi all'host, direttamente o tramite hub USB.

 I singoli cavi USB possono essere lunghi 5 metri e con gli hub USB è possibile collegare dispositivi fino a 30 metri di distanza dal computer host (6 cavi di lunghezza).

 Lo standard USB 2. fornisce una velocità di trasferimento dati massima di 480 megabit al secondo.

 Il cavo USB è dotato di due fili per l'alimentazione (5 volt e terra) e di un doppino intrecciato per il trasferimento dei dati.

 Attraverso i cavi di alimentazione, il computer può fornire una tensione di alimentazione di 5 V con una corrente fino a 500 mA.

 I dispositivi a basso consumo possono essere alimentati direttamente dal bus. I dispositivi con un elevato consumo energetico (ad esempio le stampanti) dispongono di alimentatori propri e consumano una quantità minima di energia dal bus. Gli hub possono essere dotati di propri alimentatori per alimentare i dispositivi ad essi collegati.

 I dispositivi USB sono hot-swap, ovvero possono essere collegati e scollegati dal bus in qualsiasi momento.

 Molti dispositivi USB possono essere messi in modalità di sospensione dal computer host quando il computer stesso viene messo in modalità di risparmio energetico. I dispositivi collegati alla porta USB ricevono alimentazione e scambiano dati tramite un cavo USB.

17. Bus USB. Architettura generale

USB(Universal Serial Bus) è uno standard industriale per l'estensione dell'architettura del PC. Le funzionalità USB sono determinate dalle seguenti specifiche tecniche. caratteristiche: * Una soluzione a basso costo che supporta velocità di trasferimento fino a 12 Mbit/s. *lunghezza massima del cavo per velocità di trasferimento elevata – 5 m * velocità di trasferimento bassa – 1,5 Mbit/s. *lunghezza massima del cavo per baud rate basso – 3 m *numero massimo di dispositivi collegati – 127 *è possibile collegare dispositivi con baud rate diversi *tensione di alimentazione per dispositivi periferici – 5 V

Questa interfaccia è particolarmente comoda per collegare dispositivi frequentemente collegati/scollegati, come fotocamere digitali, ecc. La possibilità di utilizzare solo due velocità di scambio dati limita l'applicabilità del bus. USB supporta la connessione e la disconnessione dinamica dei dispositivi e il design del connettore è progettato per connessioni/dissezioni ripetute. L'alimentazione diretta da USB è possibile solo per dispositivi a basso consumo come tastiere, mouse, joystick, ecc. L'USB consente lo scambio simultaneo di dati tra computer ospite e molti dispositivi periferici (PU).

18. Bus USB. Proprietà del dispositivo

La specifica USB definisce in modo abbastanza rigoroso un insieme di proprietà che qualsiasi dispositivo USB deve supportare:

o indirizzamento – il dispositivo deve rispondere all'indirizzo univoco assegnatogli e solo ad esso;

o configurazione – dopo l'accensione o il ripristino, il dispositivo deve fornire un indirizzo zero per poter configurare le sue porte;

o trasferimento dati: il dispositivo dispone di una serie di endpoint per lo scambio di dati con l'host. Per gli endpoint che consentono diversi tipi di trasferimento, solo uno di essi è disponibile dopo la configurazione;

o gestione dell'energia – qualsiasi dispositivo quando collegato non deve consumare una corrente superiore a 100 mA dal bus. Una volta configurato, il dispositivo dichiara i suoi requisiti attuali, ma non più di 500 mA. Se l'hub non riesce a fornire al dispositivo la corrente indicata, il dispositivo non verrà utilizzato;

o sospensione: il dispositivo USB deve supportare la modalità sospesa, in cui il consumo di corrente non supera i 500 µA. Il dispositivo USB dovrebbe sospendersi automaticamente quando cessa l'attività del bus;

o Riattivazione remota: la funzionalità di riattivazione remota consente a un dispositivo USB sospeso di segnalare all'host, che potrebbe anche trovarsi in uno stato sospeso. La funzione di riattivazione remota è descritta nella configurazione del dispositivo USB. Questa funzione può essere disabilitata durante la configurazione.

19. Bus USB. Principi di trasferimento dei dati

Il meccanismo di trasferimento dei dati è asincrono e basato su blocchi. Viene chiamato il blocco dei dati trasmessi Cornice USB O Cornice USB e viene trasmesso in un intervallo di tempo fisso. I comandi operativi e i blocchi dati vengono implementati utilizzando un'astrazione logica chiamata canale. Il dispositivo esterno è anche diviso in astrazioni logiche chiamate punti finali. Pertanto, il canale è una connessione logica tra l'host e l'endpoint del dispositivo esterno. Un canale può essere paragonato a un file aperto.

Il canale predefinito viene utilizzato per trasmettere comandi (e dati inclusi nei comandi) e entrambi streaming canali, O canali di messaggi.

Tutte le operazioni di trasferimento dati sul bus USB vengono avviate dall'host. Le periferiche USB non possono iniziare autonomamente lo scambio di dati. Possono solo rispondere ai comandi dell'host.

20. Bus USB. Livelli logici di scambio dati

Livelli logici di scambio dati

livello logico con determinate regole di interazione. Un dispositivo USB contiene parti di interfaccia, logiche e funzionali. Anche l'host è diviso in tre parti: interfaccia, sistema e software. Ciascuna parte è responsabile solo di una determinata gamma di compiti. Pertanto, l'operazione di comunicazione tra il programma applicativo e il bus USB viene eseguita facendo passare i buffer di memoria attraverso i seguenti livelli: livello del software client nell'host:

· controlla la numerazione dei dispositivi sul bus;

· controlla la distribuzione della larghezza di banda del bus e dell'alimentazione;

· elabora le richieste degli utenti autisti;

o Livello controller host interfaccia bus USB (HCD, Host Controller Driver):

· converte le richieste di I/O in strutture dati su cui vengono eseguite transazioni fisiche;

· funziona con i registri degli host.

21. Bus USB. Trasferimento dati tra livelli

La larghezza di banda del bus USB, conforme alla specifica 1.1, è di 12 Mbps (ovvero 1,5 Mbps). La specifica 2.0 definisce un bus con un throughput di 400 MB/s. La larghezza di banda è condivisa tra tutti i dispositivi collegati al bus.

Il bus USB ha tre modalità di trasferimento dati:

o bassa velocità (LS, Bassa velocità);

o tutta velocità (LF, Full-speed);

o alta velocità (HS, Alta velocità, solo per USB 2.0).

La specifica USB ne definisce tre livello logico con determinate regole di interazione. Un dispositivo USB contiene parti di interfaccia, logiche e funzionali. Anche l'host è diviso in tre parti: interfaccia, sistema e software. Ciascuna parte è responsabile solo di una determinata gamma di compiti.

Pertanto, l'operazione di comunicazione tra il programma applicativo e il bus USB viene eseguita facendo passare i buffer di memoria attraverso i seguenti livelli:

o livello software client nell'host:

· solitamente appare come driver del dispositivo USB;

· garantisce l'interazione dell'utente con il sistema operativo da un lato e con il driver di sistema dall'altro;

o Livello del driver di sistema USB nell'host (USB, driver Universal Serial Bus):

21. Bus USB. Metodo di codifica

Per trasmettere i dati sul bus, viene utilizzato un metodo differenziale per trasmettere i segnali D+ e D- su due fili. Tutti i dati vengono codificati utilizzando un metodo chiamato NRZI con bit stuffing (NRZI - Non Return to Zero Invert, un metodo per tornare a zero con invertendo le unità).

Invece di codificare i livelli logici come livelli di tensione, USB definisce lo 0 logico come una variazione di tensione e l'1 logico come nessuna variazione di tensione. Questo metodo è una modifica del consueto metodo di codifica del potenziale NRZ (Non Return to Zero), in cui vengono utilizzati due potenziali di livello per rappresentare 1 e 0, ma nel metodo NRZI, il potenziale utilizzato per codificare il bit corrente dipende dal potenziale che è stato utilizzato per codificare il bit precedente. Se il bit corrente ha valore 0, il potenziale corrente è l'inverso del potenziale del bit precedente, indipendentemente dal suo valore. Se il bit corrente ha valore 1, il potenziale corrente ripete quello precedente. Ovviamente, se i dati contengono zeri, è abbastanza facile per il ricevitore e il trasmettitore mantenere la sincronizzazione: il livello del segnale cambierà costantemente. Ma se i dati contengono una lunga sequenza di uno, il livello del segnale cambierà ed è possibile la desincronizzazione. Pertanto, per una trasmissione affidabile dei dati, è necessario escludere dai codici sequenze troppo lunghe. Questa azione si chiama riempimento: dopo ogni sei unità viene automaticamente aggiunto uno 0.

Ci sono solo tre byte possibili con sei consecutivi: 00111111, 01111110, 111111100.

Il riempimento può aumentare il numero di bit trasmessi fino al 17%, ma in pratica questo valore è molto inferiore. Per i dispositivi collegati al bus USB, la codifica avviene in modo trasparente: i controller USB eseguono la codifica e la decodifica automaticamente.