Categoria: Comunicazione

  • 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.

  • Segger IoT Toolkit


    Panoramica

    L’IoT Toolkit è una raccolta di librerie progettate per comunicare senza sforzo con i moderni dispositivi IoT, permettendoti di concentrarti sulle parti cruciali della tua applicazione.

    Sebbene i dispositivi IoT parlino tipicamente linguaggi semplici, implementare questi protocolli secondo gli standard ufficiali può diventare un onere gravoso. L’IoT Toolkit fornisce librerie collaudate per aiutarti a superare le difficoltà di accesso ai moderni servizi web. La collezione offre un’API intuitiva, suddivisa in più moduli tematici che possono essere utilizzati indipendentemente o combinati in qualsiasi momento.

    L’uso dell’IoT Toolkit accelera l’implementazione di compiti semplici, come il recupero di pagine web tramite il client HTTP, fino a operazioni più complesse, come la comunicazione con API REST utilizzando il client HTTP insieme al parser JSON. Servizi popolari come Dropbox, che mettono a disposizione API REST per gli sviluppatori, possono essere interfacciati facilmente grazie a questo toolkit. A seconda del servizio utilizzato, potrebbero essere richiesti componenti aggiuntivi come uno stack TLS (ad esempio emSSL).

    Le librerie sono ottimizzate per i sistemi embedded, ma non si limitano a essi: è possibile realizzare anche applicazioni basate su PC, come dimostrato da emDropbox.

    Caratteristiche principali

    • API intuitiva per avviare rapidamente applicazioni IoT.
    • Supporto per API REST.
    • Gestione dei dati ricevuti in formato testo semplice (plain data).
    • Supporto per la codifica dei dati come JSON.
    • API ottimizzata per sistemi embedded con footprint ridotto.
    • Librerie modulari per minimizzare l’occupazione di memoria.
    • Gestione dei dati efficiente in termini di risorse e memoria.

    Moduli del Protocollo

    Moduli di Protocollo

    • Client HTTP: Una libreria facile da usare per eseguire richieste a pagine web standard e a risorse IoT, come le interfacce API REST basate sul protocollo HTTP, e gestire i dati restituiti.

    Moduli per la gestione dei dati

    • Parser JSON: Una libreria di analisi per una gestione dei dati JSON (JavaScript Object Notation) semplice ed efficiente in termini di memoria, fondamentale per la maggior parte delle risorse IoT moderne come le API REST.

    Iniziare con l’IoT Toolkit

    L’IoT Toolkit può diventare facilmente la spina dorsale della tua applicazione IoT, disponendo di tutti i blocchi necessari come il client HTTP e il parser JSON.

    Un esempio di applicazione ricca di funzionalità costruita con il toolkit SEGGER è emDropbox, un client Dropbox disponibile come applicazione di esempio gratuita. È inoltre possibile scaricare il pacchetto di valutazione dell’IoT Toolkit per testarne le potenzialità.


    Licenze

    L’IoT Toolkit è disponibile sotto vari modelli di licenza per software embedded e viene fornito in pacchetti di codice sorgente.

    • Licenza Perpetua: Tutte le licenze non prevedono abbonamenti né royalty.
    • Costi fissi: Il software diventa parte delle spese dell’apparecchiatura, mantenendo i costi statici.
    • Sorgente incluso: La consegna del codice sorgente garantisce massima trasparenza e controllo per i requisiti tecnici e commerciali.
  • Segger emNet

    Panoramica

    Lo stack TCP/IP di SEGGER è progettato da zero per i sistemi embedded. È rinomato per le sue alte prestazioni e il ridotto ingombro di memoria, pur offrendo flessibilità ed estensibilità. È il cuore di molte applicazioni industriali e IoT e fornisce supporto per un’ampia varietà di protocolli standard.

    emNet ha dimostrato il suo valore in numerosi prodotti di clienti e nei prodotti stessi di SEGGER (come J-Trace PRO, J-Link Pro e Flasher Pro) per quasi due decenni. Più che un semplice stack IP, è un pacchetto software completo progettato per soddisfare tutte le esigenze di rete, con un focus particolare sull’Internet of Things (IoT).

    Grazie al suo design, emNet supporta sia i MAC (Medium Access Controller) Ethernet interni che quelli esterni, consentendo a qualsiasi microcontrollore standard di connettersi a Ethernet. Con emNet, è possibile utilizzare anche microcontrollori piccoli, a bassissimo consumo, con memoria flash minima e senza MAC integrato.

    emNet offre il meglio di sé in combinazione con un RTOS per una gestione delle connessioni efficiente e semplice. Sebbene SEGGER raccomandi l’uso di embOS, il supporto per altri RTOS è disponibile su richiesta. È inoltre possibile utilizzare emNet in modalità “bare-metal” (senza RTOS).

    Caratteristiche principali

    • Facile da usare.
    • Ampia varietà di protocolli di livello superiore disponibili.
    • API socket standard per le applicazioni utente.
    • Supporto Zero-copy per prestazioni ed efficienza ultra-elevate.
    • Semplice configurazione in fase di compilazione ed estesa configurazione a runtime.
    • Supporto per il protocollo del tempo di precisione IEEE 1588 PTP.
    • Documentazione eccellente.

    Efficienza e Comunicazione IP

    Nel mondo embedded, la comunicazione basata su IP è la base di ogni dispositivo moderno. I protocolli IoT di alto livello come MQTT si affidano alla disponibilità di uno stack TCP/IP per i livelli inferiori. emNet è la scelta ideale: è semplice da configurare e può essere ottimizzato per i vincoli specifici dei sistemi embedded.

    Protezione integrata contro il “UDP flood”

    emNet è progettato per utilizzare un singolo task per la gestione dei pacchetti in entrata. Include una funzione di protezione contro l’inondazione di pacchetti UDP (UDP flood) che ottimizza le prestazioni liberando tempo CPU per altre attività, scartando i dati in eccesso che verrebbero comunque ignorati.

    Ethernet-APL

    emNet supporta Ethernet-APL (Advanced Physical Layer), lo standard per la trasmissione dati su 2 fili. Consente una comunicazione IP coerente e veloce su lunghe distanze, dal livello di campo al sistema di controllo, ed è specificamente progettato per ambienti potenzialmente esplosivi.


    Edizioni e Protocolli

    emNet è disponibile in due edizioni: emNet BASE (lo stack principale con i protocolli essenziali) e il pacchetto emNet PRO (che include funzionalità avanzate).

    Protocolli e Add-onemNet BASEemNet PRO
    IPv4, TCP, UDP, ICMP, DHCP Client, DNS ClientInclusoIncluso
    IPv6OpzionaleIncluso
    VLANOpzionaleIncluso
    Server Web (emWeb), Client MQTT (emMQTT)OpzionaleIncluso
    Server DHCP, Server mDNS, Client NTP/SNTPOpzionaleIncluso
    Supporto WiFiOpzionaleOpzionale

    Driver e Compatibilità PHY

    Lo stack dispone di un elenco esteso di dispositivi supportati. Le poche dipendenze hardware sono gestite in un unico punto, rendendo il cambio di microcontrollore un compito estremamente semplice dal punto di vista software. Grazie a un layer flessibile, emNet è compatibile con quasi tutti i ricetrasmettitori PHY Ethernet sul mercato conformi allo standard IEEE 802.3u.


    Licenze

    emNet è disponibile con vari modelli di licenza per software embedded e viene fornito come codice sorgente.

    • Licenza Perpetua: Non sono previste royalty né abbonamenti.
    • Supporto: Include sei mesi di aggiornamenti e assistenza tecnica da parte degli esperti SEGGER.
  • Segger emMQTT


    Panoramica

    Il Message Queuing Telemetry Transport (MQTT) è un protocollo di trasporto messaggi di tipo publish/subscribe (pubblica/iscriviti) progettato per funzionare sopra il protocollo TCP/IP. È semplice, leggero e aperto. Queste caratteristiche lo rendono ideale per molteplici situazioni, inclusi gli ambienti con risorse limitate come la comunicazione Machine to Machine (M2M) e i contesti Internet of Things (IoT).

    L’infrastruttura MQTT è facilmente scalabile e quindi utilizzata per la comunicazione di migliaia di dispositivi. Può essere impiegato per trasmettere dati dai sensori, stati dei dispositivi, informazioni di tracciamento, eventi, dati di configurazione e molto altro.

    Perché scegliere emMQTT di SEGGER?

    Il client emMQTT di SEGGER funziona con qualsiasi broker MQTT che aderisca allo standard v3.1.1. Ciò consente di aggiungerlo a un’applicazione finale con la totale fiducia che tutto funzionerà correttamente.

    • Esempi e Demo: Disponibili per tutti i broker più diffusi, incluso un esempio per Microsoft Windows.
    • Ottimizzazione: Sviluppato da zero per ridurre al minimo l’utilizzo dello stack e i requisiti di memoria.

    Caratteristiche principali

    • Supporto completo MQTT versione 3.1.1.
    • Client Publish/Subscribe incluso.
    • Supporto per la consegna dei dati con Quality of Service (QoS).
    • Basso ingombro di memoria (Low memory footprint).
    • Indipendente dallo stack TCP/IP: utilizzabile con qualsiasi stack che supporti i socket.
    • Include demo per publisher e subscriber e progetto per PC (Visual Studio).

    Background Tecnico: Come funziona MQTT

    MQTT utilizza il modello publish/subscribe, un’alternativa al classico modello client/server. A differenza di quest’ultimo, dove un client comunica direttamente con un endpoint, il modello publish/subscribe disaccoppia il mittente (publisher) dal ricevente (subscriber).

    1. Il Broker: È la terza parte necessaria per il trasporto dei messaggi. Il broker filtra tutti i messaggi in arrivo dai publisher e li distribuisce ai subscriber.
    2. I Topic: Il filtraggio avviene per “argomento” (topic). I publisher inviano messaggi relativi a un topic, i subscriber ricevono i messaggi solo se sono iscritti a quel determinato topic.
    3. Vantaggi: Publisher e subscriber non hanno bisogno di conoscersi né di essere attivi contemporaneamente. Devono solo conoscere l’indirizzo IP del broker.

    Utilizzo dell’Applicazione emMQTT

    È disponibile un’applicazione client per Windows per valutare il protocollo. Sintassi di base:

    MQTTClient --pub|--sub [Opzioni]

    Esempi di comando:

    • Publisher semplice:MQTTClient --pub -h mqtt.eclipse.org -p 1883 -t SEGGER/Demo -m "Hello World"
    • Connessione sicura (TLS):MQTTClient --pub -h [server-aws] -p 8883 -t SEGGER/Demo --tls --cert cert.der --key key.der

    Broker Supportati

    emMQTT può connettersi a qualsiasi broker compatibile con la versione 3.1.1. È stato testato con successo con:

    • Mosquitto: Broker open-source per Linux, Windows, macOS.
    • HiveMQ: Broker aziendale per server Linux.
    • AWS IoT: Amazon Web Services supporta MQTT per connettersi al suo Message Broker IoT.

    Requisiti e Risorse

    Stack TCP/IP

    emMQTT richiede uno stack TCP/IP. Sebbene sia ottimizzato per emNet, può essere integrato con qualsiasi stack conforme alle RFC tramite una semplice struttura di callback API. Può funzionare anche con emSSL (per TLS) o WebSockets.

    Utilizzo delle risorse (misurato su Cortex-M4)

    RisorsaValore
    Dimensione Client (ROM)Circa 2.4 kByte
    Dimensione Client (RAM)8 Byte
    Contesto Client (RAM)76 Byte

    Licenze

    emMQTT è disponibile sotto vari modelli di licenza per software embedded e viene fornito come codice sorgente.

    • Pagamento Unico: Non sono previste royalty né abbonamenti.
    • Costi Statici: Una volta acquistata, la licenza diventa parte dei costi dell’apparecchiatura.
    • Supporto: Include sei mesi di aggiornamenti e supporto tecnico da parte degli esperti SEGGER.
  • Segger emModbus


    Panoramica

    emModbus è l’implementazione del protocollo Modbus firmata SEGGER. Fornisce ai dispositivi embedded capacità di comunicazione Modbus tramite UART (ASCII e RTU) ed Ethernet (Modbus/TCP e Modbus/UDP), consentendo loro di connettersi a una vasta gamma di apparecchiature industriali, di impiegare funzioni master e slave e di operare in modo efficiente su piccoli microcontrollori con capacità di memoria minima.

    Caratteristiche principali

    • Piena conformità Modbus: emModbus supporta Modbus RTU, ASCII e Modbus TCP. Inoltre, è conforme alle specifiche ufficiali Modbus, garantendo l’interoperabilità con le architetture standard master-slave.
    • Per sistemi embedded: emModbus ha un ingombro di memoria minimamente invasivo a fronte di prestazioni eccezionali. È progettato per MCU con risorse limitate, senza allocazione dinamica della memoria e con funzionalità configurabili.
    • Portabilità e flessibilità: Grazie al supporto per molteplici protocolli, al funzionamento master-slave e alla capacità di integrarsi con stack TCP/IP standard, emModbus si adatta facilmente a vari sistemi operativi in tempo reale (RTOS) e sistemi bare-metal. È altamente portabile grazie al codice ANSI-C indipendente dall’hardware, a uno strato di astrazione del kernel (KAL) e alla configurazione delle interfacce a runtime.

    Casi d’uso

    emModbus è uno strumento eccellente per facilitare scambi di dati semplici e affidabili, monitoraggio e data logging nei seguenti settori:

    • Automazione industriale: Grazie al ridotto ingombro di memoria e al comportamento deterministico, facilita il collegamento tra PLC, sensori, attuatori e robotica in fabbriche, raffinerie e centrali elettriche.
    • Gestione energetica: Facilita la raccolta dati da contatori intelligenti (smart meters), inverter, batterie e caricatori per veicoli elettrici, garantendo una comunicazione standardizzata per l’analisi dei dati.
    • Controllo di processo e Building Automation: Gli utenti beneficiano della semplicità, dell’interoperabilità e della versatilità del protocollo ampiamente adottato.

    Come funziona emModbus

    emModbus è uno stack software leggero ed efficiente che consente ai dispositivi di comunicare via UART o Ethernet in ruolo master o slave. Può fungere da unità terminale remota (RTU) o come dispositivo Modbus/TCP (utilizzando uno stack Ethernet con interfaccia socket). Utilizzato con l’RTOS embOS di SEGGER, con altri RTOS o come prodotto standalone, gestisce la complessità della messaggistica Modbus, del framing dei dati e della comunicazione di rete.

    Utilizzo di memoria e risorse

    • ROM: Circa 2,5 KB per un dispositivo master e 3 KB per un dispositivo slave.
    • RAM: Circa 30 byte per lo stack e circa 300 byte per ogni canale aggiuntivo.

    Versioni e funzionalità

    SEGGER offre emModbus in due versioni: emModbus Master ed emModbus Slave.

    FunzionalitàMasterSlave
    API Master (inclusi esempi ASCII, RTU e Modbus/TCP)No
    API Slave (inclusi esempi ASCII, RTU e Modbus/TCP)No
    Incapsulamento frame ASCII / RTU / Modbus TCP
    Layer di astrazione kernel per embOS e Windows
    Applicazione Modbus per Windows (binario e sorgente)

    Requisiti

    Per utilizzare Modbus/TCP, emModbus richiede uno stack capace di TCP/IP (come emNet) e un RTOS (come embOS). Funziona con qualsiasi stack TCP/IP che supporti i socket BSD standard. Sebbene sia utilizzabile senza un sistema operativo, un sistema multitasking è raccomandato, specialmente quando si implementa un master Modbus.


    Licenze

    emModbus è disponibile con vari modelli di licenza per software embedded, consegnati come pacchetti di codice oggetto o sorgente.

    • Pagamento unico: Tutte le licenze si ottengono tramite un unico pagamento, sono royalty-free e non basate su abbonamento.
    • Supporto: Le licenze includono sei mesi di aggiornamenti e supporto da parte degli esperti SEGGER.

    Friendly License: emModbus è disponibile anche tramite la “SEGGER’s Friendly License”, che ne consente l’uso gratuito per scopi non commerciali, di valutazione e didattici, senza limitazioni tecniche.