Categoria: Stack USB

  • Segger emUSB-C PD

    Panoramica

    emUSB-C PD trasforma il cavo in una connessione intelligente, consentendo il rilevamento del tipo di dispositivo collegato, delle capacità di alimentazione, del software USB Host/Device e molto altro. Con la libreria emUSB-C PD di SEGGER, le applicazioni embedded possono gestire facilmente una porta USB-C su qualsiasi dispositivo dotato di un controller USB PD.

    emUSB-C PD è in grado di rilevare se un dispositivo collegato è una sorgente (source) o un utilizzatore (sink) di energia, e persino di identificare i ruoli dei dati USB (host/device). Per i dispositivi che utilizzano l’USB-C puramente come fonte di alimentazione o per la ricarica della batteria, supporta funzioni come il “dead battery signaling”, garantendo una gestione affidabile dell’energia anche in condizioni critiche.

    La libreria è altamente efficiente, scritta in codice sorgente ISO/ANSI C e dotata di un’API estremamente semplice per un’integrazione immediata. Gli sviluppatori possono configurarla per un footprint di memoria minimo, rendendola ideale per sistemi con risorse limitate. Inoltre, emUSB-C PD supporta l’uso di caricabatterie con tensione di alimentazione variabile, aumentando la flessibilità.

    emUSB-C PD può essere utilizzata in combinazione con emUSB-Host e/o emUSB-Device, oppure come soluzione stand-alone per dispositivi che sfruttano l’USB-C solo per l’alimentazione o la ricarica.


    Caratteristiche principali

    • Role Swap (Scambio di ruolo): Di default, l’host USB è sempre la sorgente di energia e il device è l’utilizzatore. Grazie al role swap, un host può diventare utilizzatore (sink) e un dispositivo USB collegato può diventare la sorgente (source).
    • Rilevamento connessione su connettori USB Type-C: La libreria rileva e identifica i dispositivi collegati alle porte USB-C, garantendo compatibilità e funzionalità ottimali.
    • Negoziazione dinamica dell’alimentazione fino a 20V 3A: emUSB-C PD consente alle applicazioni di negoziare dinamicamente l’erogazione di potenza, assicurando che i dispositivi ricevano la tensione e la corrente ideali per le proprie esigenze.

    Casi d’uso

    L’USB-C dispone di linee aggiuntive e può trasmettere molta più potenza rispetto alle precedenti connessioni USB. Questo aiuta gli sviluppatori a soddisfare i requisiti del mandato UE (Direttiva 2014/53/UE), che impone l’uso del cavo USB-C per tutte le apparecchiature elettroniche dotate di ricarica cablata.

    • Evitare perdite improvvise di alimentazione: Un dispositivo alimentato a batteria può chiedere al dispositivo collegato di fornire energia quando le proprie batterie iniziano a scaricarsi, evitando interruzioni improvvise della connessione.
    • Ricarica più rapida: Con l’USB tradizionale, la potenza è limitata a 5V e 500mA (1.5A nel migliore dei casi). Con l’USB-C PD, il protocollo interroga le capacità del cavo e richiede tensioni e correnti più elevate per ricariche rapide e affidabili.

    Come funziona emUSB-C PD

    La libreria si compone di due livelli: lo stack di protocollo indipendente dal dispositivo e un driver per gestire l’hardware specifico del target. Entrambi i livelli sono divisi in due moduli:

    1. Modulo Base: Fornisce l’API e gestisce il rilevamento statico dei pin CC.
    2. Modulo PD: Responsabile della comunicazione dei pacchetti Power Delivery.

    Funzioni dei Pin

    Il connettore USB-C ha 24 pin. emUSB-C PD viene utilizzato principalmente per controllare i pin aggiuntivi CC1 e CC2 (Channel Configuration), usati per determinare l’orientamento del cavo, la distribuzione dei ruoli e il controllo della porta.


    Utilizzo tipico delle risorse

    FunzioneCodice (Flash)RAM
    USB-C OTG (On-The-Go)1400 bytes220 bytes
    USB-C PD (Power Delivery)5100 bytes450 bytes
    USB-C PD (Solo Sink)3800 bytes450 bytes
    USB-C PD (Solo Source)3300 bytes450 bytes

    Licenze

    emUSB-C PD è disponibile sotto vari modelli di licenza per software embedded e viene fornito come pacchetto di codice sorgente. Tutte le licenze prevedono un pagamento una tantum, sono royalty-free e non basate su abbonamento.

  • Segger emUSB Device


    Panoramica

    emUSB-Device è un software per dispositivi USB ad alte prestazioni, progettato specificamente per i sistemi embedded. Scritto in codice ANSI C, consente una facile integrazione della funzionalità USB in qualsiasi sistema embedded. Vengono fornite molteplici classi di dispositivi standard, che permettono al sistema di comportarsi come un dispositivo USB standard e garantiscono la comunicazione con qualsiasi host (Windows, Linux e MacOS).

    Esempi di dispositivi USB standard supportati includono memorie di massa (chiavette USB), tastiere, mouse, stampanti, altoparlanti, modem, adattatori seriali RS232 e adattatori di rete. Inoltre, è possibile implementare protocolli proprietari utilizzando la classe Bulk di emUSB-Device. Più classi possono essere combinate per formare un dispositivo composito con interfacce multiple utilizzabili simultaneamente.

    Caratteristiche principali

    • Conformità e compatibilità: emUSB-Device è conforme agli standard USB 1.1, 2.0 e 3.0. Questo garantisce interoperabilità, flessibilità, risparmio sui costi e una vita del prodotto più estesa.
    • Ingombro di memoria ridotto: Lo stack occupa pochissima memoria, un vantaggio cruciale per gli sviluppatori embedded. Un’impronta ridotta permette l’uso di microcontrollori (MCU) più piccoli ed economici, riducendo i costi della distinta base (BOM).
    • Supporto per ogni velocità: Supporta Full Speed (12 Mb/s), High Speed (480 Mb/s) e Super Speed (5 Gb/s). Un unico stack USB può quindi essere scalato su un’intera gamma di prodotti, garantendo prestazioni ottimizzate ed efficienza energetica.

    Casi d’uso

    IP-over-USB

    Consente la configurazione e il controllo del dispositivo senza dover installare driver specifici sull’host (PC). I protocolli IP standard (HTTP, FTP, ecc.) possono scorrere su un cavo USB, permettendo l’accesso plug-and-play tramite browser web.

    Dispositivi specifici del fornitore (Vendor-specific)

    emUSB-Device è personalizzabile per casi d’uso proprietari. Grazie al trasferimento dati ad alta velocità e agli strumenti diagnostici, offre livelli eccellenti di prestazioni e flessibilità.

    Dispositivi di interfaccia umana (HID)

    Può emulare tastiere, pannelli di controllo, mouse o dispositivi HID personalizzati. Nella maggior parte dei casi non sono richiesti driver, semplificando l’installazione e l’uso.


    Componenti

    emUSB-Device è strutturato su tre livelli: un driver per l’accesso hardware, il core di emUSB-Device e almeno una classe USB o un componente di comunicazione Bulk.

    SEGGER consiglia l’acquisto del pacchetto emUSB-Device PRO, che include il supporto per i casi d’uso più comuni (interazione utente, archiviazione file e comunicazione seriale).

    CategoriaModuli inclusi
    Comunicazione EthernetIP, RNDIS, ECM, NCM
    Memoria di massaMSD, MTP, VirtualMSD
    Comunicazione serialeCDC, HID, Printer
    MultimediaAudio, Video, MIDI
    AltroBulk, DFU (aggiornamento firmware), CCID (Smart Card)

    Driver e controller supportati

    emUSB-Device supporta una vasta gamma di MCU con controller USB integrati. L’interfaccia del driver è progettata per supportare i controller USB più comuni e permette l’aggiunta di driver per nuovi hardware non ancora supportati.


    Licenze

    emUSB-Device è disponibile con vari modelli di licenza per software embedded, forniti come pacchetti di codice oggetto o sorgente.

    • Licenza Perpetua: Tutte le licenze si ottengono tramite un unico pagamento, sono royalty-free e non basate su abbonamento. Il software diventa parte dell’investimento iniziale, mantenendo i costi statici.
    • Supporto: Include sei mesi di aggiornamenti e assistenza tecnica da parte degli esperti SEGGER.

    Friendly License: emUSB-Device è disponibile gratuitamente per scopi non commerciali, valutazione e scopi educativi, senza limitazioni tecniche.

  • Segger emUSB Host

    Panoramica

    Il software emUSB-Host consente alle periferiche USB di funzionare con i dispositivi embedded. Fornisce funzionalità complete di host USB, inclusi il supporto per hub esterni e driver di classe (opzionali). Il software è conforme alle specifiche standard stabilite dall’USB Implementors Forum e supporta tutte le modalità di trasferimento (control, bulk, interrupt e isochronous) a tutte le velocità.

    La gestione dei canali USB (pipe) e i meccanismi estesi di recupero errori sono implementati internamente per garantire un funzionamento affidabile. Inoltre, sofisticate procedure di test assicurano qualità e sicurezza. Il design modulare consente alle applicazioni di accedere direttamente all’interfaccia di programmazione host o di utilizzare le API messe a disposizione dai driver di classe.

    emUSB-Host può gestire simultaneamente più dispositivi e hub, supportando pienamente l’inserimento a caldo (hot plugging). L’interfaccia supporta l’enumerazione e l’identificazione dinamica dei dispositivi, permettendo agli sviluppatori di integrare senza problemi la funzionalità USB nei sistemi embedded.

    Caratteristiche principali

    • Affidabilità: Implementa internamente la gestione dei canali e il recupero degli errori per un’operatività costante.
    • Configurazione Plug-and-Play: I nuovi dispositivi vengono rilevati ed enumerati automaticamente, notificando le rispettive applicazioni. La rimozione è altrettanto semplice: emUSB-Host annulla tutti i trasferimenti prima della pulizia finale.
    • Versatilità: Supporta una vasta gamma di classi USB, comprese quelle proprietarie di terze parti. La connessione di dispositivi multi-interfaccia avviene senza problemi grazie a gestori di classe dedicati per ogni interfaccia.

    Casi d’uso

    • Hub di controllo dispositivi: Può fungere da hub centrale lavorando in sinergia con altri prodotti SEGGER come Flasher Hub.
    • Periferiche Point-of-Sale (POS): Connessione a scanner, cassetti fiscali, lettori di carte e altro in ambienti retail.
    • Periferiche PC e Multimediali: Connessione con webcam, mouse, tastiere, stampanti, modem e docking station.

    Componenti

    Lo stack host USB di SEGGER funziona su qualsiasi sistema embedded dotato di un controller host. emUSB-Host è composto da tre livelli: un driver per l’accesso hardware, il core e almeno un livello di protocollo USB. SEGGER raccomanda il pacchetto emUSB-Host PRO, che include il supporto per i casi d’uso più comuni:

    • Comunicazione: CDC, LAN.
    • Multimedia: Audio, MIDI.
    • Periferiche: HID (mouse/tastiere), Stampanti, Smart Card (CCID).
    • Archiviazione: MSD (chiavette USB), MTP.
    • Convertitori UART: Supporto per chip CH34X, CP210X, FT232.
    • Vendor: Supporto per classi personalizzate/proprietarie.

    Driver e Controller supportati

    emUSB-Host non ha dipendenze hardware dirette; queste sono incapsulate in un livello di astrazione chiamato driver. Grazie a un concetto di driver flessibile, emUSB-Host supporta quasi tutti i controller host sul mercato. Se un controller non è in elenco, può essere aggiunto su richiesta tramite il supporto SEGGER.

    emPower-USB-Host+: È una scheda a basso costo pronta all’uso per applicazioni che richiedono due porte USB-Host, ideale per testare emUSB-Host, emLoad ed embOS.


    Licenze

    emUSB-Host è disponibile con vari modelli di licenza per software embedded, forniti come pacchetti di codice oggetto o sorgente.

    • Licenza Perpetua: Nessuna royalty, nessun abbonamento. Il costo è statico e fa parte dell’investimento iniziale nell’attrezzatura.
    • Supporto: Include sei mesi di aggiornamenti e assistenza tecnica.

    Friendly License: emUSB-Host è disponibile gratuitamente per scopi non commerciali, valutazione e scopi educativi, senza limitazioni tecniche.