Stack USB Device ottimizzato per il kernel real-time Segger embOS. Sotto sono riportate le classi device attualmente disponibili

Mass Storage Device

Applicazioni tipiche:

  • Digital camera
  • USB stick
  • MP3 player
  • DVD player

Non richiede l’installazione di driver sull’host

Communication Device Class. 

Il device viene visto dall’host come un canale seriale virtuale.

Applicazioni tipiche: 

  • Modem
  • Telephone system
  • Fax machine
  • Datalogger

Questa classe riceve dati da un host e li gira a un parser. Questo modulo fornisce delle routine automatiche di gestione degli errori, per esempio nel caso in cui il dispositivo rimanga senza carta. Il protocollo USB è completamente nascosto allo sviluppatore che si può concentrare sullo sviluppo del parser.

Media Transfer Protocol

Applicazioni tipiche:

  • Digital camera
  • MP3 player
  • Smartphone

Vantaggi rispetto a MSD:

  • cavo scollegabile durante il trasferimento di dati, senza danni al file system.
  • Il file system può non essere FAT
  • I file possono essere virtuali
    • Host e device possono accedere al file system simultaneamente.

Grazie alla nuova tecnologia IP-over-USB con il webserver integrato, è possibile accedere al dispositivo da qualsiasi host (Windows, Linux, Mac) semplicemente digitando il nome del dispositivo nella barra degli indirizzi di un browser. Il nome del dispositivo per default è usb.local. Non è necessario installare nulla sull’host.

Human Interface Device

Applicazioni tipiche:

  • tastiere
  • puntatori Mouse 
  • Joystick
  • Game pad
  • pannelli di controllo con bottoni

Componente Bulk per lo stack USB Device. Grazie alle comode API molto simili a quelle della classe CDC è possibile trasferire dati in modalità Bulk.

Questa tecnologia può essere utilizzata in vari tipi di applicazioni senza dover installare alcun driver sull’host. SmartMSD analizza l’operazione effettuata dall’host e passa il comando allo strato applicativo del target, il quale intraprende le azioni opportune. Un semplice drag-and-drop è ciò che serve per inizializzare il processo.

La classe USB Device Video consente di trasmettere dati video all’host. Questo flusso video può essere catturato da una camera, letto da un file system oppure generato dall’applicazione stessa. Questa classe consente al device di gestire un flusso video indipendentemente da hardware di acquisizione delle immagini. Per esempio, istruzioni video preregistrate possono essere inviate al PC senza avere una camera.

Con la classe Audio, il sistema embedded può essere trasformato in un registratore audio oppure in un altoparlante. Non sempre sulla scheda hardware è disponibile un jack audio. Con emUSB Device Audio si può traferire dati audio indipendentemente dall’hardware. Ad esempio, audio riprodotto da un PC può essere salvato sul target direttamente in una SD Card.

Con la classe RNDIS consente al device USB di comportarsi come un adattatore ethernet. Funziona con qualsiasi stack TCP/IP.  Un’applicazione tipica è gestire un webserver attraverso la porta USB.

La classe emUSB-Device permette a un dispotivo USB di comportarsi come un adattatore di rete. Può essere per esempio usato per far girare applicazioni basate su TCP/IP  a USB device to act as a virtual network adapter. This can be used to run TCP/IP-based applications over USB

La classe Device Firmware Upgrade consente di gestire l’aggiornamento del firmware in qualsiasi dispositivo USB Device. Il protocollo di aggiornamento è standard, quindi sul PC si può usare qualsiasi utility compatibile (es. dfu-util). E’ anche supportato l’upload di immagini del firmware.
Questa classe può essere combinata con qualsiasi altra classe USB e non richiede endpoint USB aggiuntivi.

La classe USB OTG (On-the-go) permette al target Device di assumere entrambi i ruoli: Device & Host.

Stack USB Device