SEGGER emUSB Device

emUSB-Device software ad alta performance

emUSB-Device è lo stack USB device progettato per sistemi embedded.

emUSB device è uno stack USB device progettato specificatamente per i sistemi embedded. Il software è scritto in ANSI C e può essere eseguito su qualsiasi piattaforma. emUSB device può essere usato con embOS o qualsiasi altro RTOS supportato. E’ disponibile una varietà di dispositivi target.  Il supporto per nuove piattaforme può essere aggiunto generalmente senza spese aggiuntive.

Caratteristiche

• Velocità elevata
• Ottimizzato per essere usato con embOS, funziona con qualsiasi altro RTOS supportato
• Facile da usare
• Facile da portare
• Non necessita di alcun driver USB host particolare
• Applicazione per iniziare

Componenti

emUSB è costituito da tre strati: un driver per l’accesso all’hardware, il core emUSB e almeno un driver per una class USB o il componente per la comunicazione bulk.

I diversi driver hardware disponibili, i driver di classe USB e il componente per la comunicazione bulk sono pacchetti addizionali che possono essere combinati e ordinati in dipendentemente dai requisiti del progetto. Solitamente emUSB consiste in un driver per l’hardware utilizzato, il core emUSB e almeno una dei driver per le classi USB: driver MSD, CDC, HID o il componente bulk non classificato.

EMUSB BULK

Lo stack emUSB-bulk consiste in un lato embedded che viene fornito sotto forma di codice sorgente e in un driver per PC che è solitamente fornito come eseguibile (.sys). (Può essere ordinata anche il sorgente del driver del PC ).

SCOPO DI EMUSB-BULK

emUSB-Bulk permette agli sviluppatori di sviluppare velocemente un software per un dispositivo embedded che comunica con il PC via USB.  La comunicazione è come un unico canale affidabile ad alta velocità (molto simile ad una connessione TCP).  Ciò permette al PC di inviare dati al target embedded, al target embedded di ricevere questi byte e di rispondere con qualsiasi numero di byte. Il PC è l’host USB, il target è il client USB. Lo standard USB definisce 4 tipi di comunicazione: Control, isochronous, interrupt and bulk. L’esperienza insegna che per la maggior parte dei dispositivi embedded la modalità bulk è la modalità di comunicazione preferita. Permette l’intero uso della larghezza della banda del bus USB.

ComponentDescription
Ethernet communication
emUSB-Device IPCross platform IP over USB communication
(contains emUSB-RNDIS and emUSB-ECM)
emUSB-Device RNDISEthernet over USB communication using Remote NDIS protocol
emUSB-Device ECMEthernet over USB communication using Communication Device Class
/ Ethernet Control Model protocol (CDC-ECM)
emUSB-Device SmartMSDVirtual mass storage device (contains emUSB-MSD)
emUSB-Device MSDMass Storage Device class
emUSB-Device MTPMass storage using Media Transfer Protocol (MTP)
emUSB-Device CDCSerial communication over USB using Communication Device Class /
Abstract Control Model protocol (CDC-ACM), typically RS-232 emulation
emUSB-Device HIDHuman Interface Device Class (HID) component
(e.g. Mouse and Keyboard)
emUSB-Device PrinterPrinter protocol class
Other communication
emUSB-Device BulkEasy and fast USB communication without any protocol overhead
emUSB-Device AudioEasily handle audio data.
Core layer
emUSB-Device CoreThe emUSB-Device core is the intrinsic USB stack.
Hardware layer
DriverUSB controller driver.

emUSB-Device_structure-4.svg

SEGGER provide support for an extensive range of MCUs with on-chip USB controllers. The driver interface has been designed in such a way that it should be possible to use the most common USB device controllers and easily add drivers for USB controllers that are not yet supported.

Full list of supported devices

USB class drivers and hardware drivers are separate packages, which can be combined and ordered individually to suit the requirements of any project. SEGGER recommends to purchase emUSB-Device as a complete package by selecting the emUSB-Device PRO package. It includes support for the most common use cases, such as human interface devices for user interaction, file storage and transfer and serial communication support. The following table shows, which modules are part of the PRO package and which are optionally available.

  • Cross platform works with Linux, Mac, Windows, and other hosts
  • Direct support from the USB product developers
  • Uniform API for all supported controllers
  • Easy to use API and documentation
  • Small memory footprint