Autore: marco.beardo@italsoft-mi.it

  • Percepio TraceAlyzer

    Osservabilità visiva del tracciamento per una “visione a raggi X” nello sviluppo del software embedded. Accelera il debug quotidiano, risolvi i problemi e consegna prodotti eccellenti nei tempi previsti.

    Semplifica il Debug e Sviluppa più Velocemente

    “Tracealyzer ha raddoppiato la nostra velocità di sviluppo. Problemi che richiederebbero giorni per essere risolti diventano ovvi con questo strumento e si risolvono in un attimo. Lo usiamo continuamente.” — Alex Pabouctisids, Lead Firmware Engineer, Flyability

    Sei stanco di passare ore infinite a fare il debug del codice C/C++ embedded? Di’ addio alla noiosa ricerca guasti e dai il benvenuto a uno sviluppo accelerato con Percepio Tracealyzer. Il debug tradizionale è spesso inefficace per i complessi sistemi RTOS o Linux odierni e può arrivare a consumare il 40-50% del tempo di sviluppo. Ottieni un’osservabilità visiva per velocizzare il debug quotidiano e risolvere problemi dove gli strumenti tradizionali falliscono.


    Caratteristiche e Funzionalità

    Ottimizza le Prestazioni del Sistema

    “In meno di 5 giorni dall’utilizzo dello strumento, abbiamo migliorato le prestazioni del nostro motore di rendering grafico di 3 volte.” — Terry West, CEO, Serious Integrated, Inc.

    Tracealyzer offre funzioni di profiling avanzate che mostrano gli eventi dietro i numeri. Individua i colli di bottiglia delle prestazioni e sblocca il pieno potenziale del tuo hardware. Assicurati di raggiungere gli obiettivi prestazionali del prodotto e di offrire un’esperienza utente reattiva. L’ottimizzazione è complessa per i sistemi RTOS o Linux multi-thread. Quando un thread è lento, spesso dipende da fattori non evidenti nel codice sorgente. L’osservabilità visiva fornisce il quadro completo e semplifica l’ottimizzazione.


    Come funziona – Dagli Eventi all’Intuizione

    Percepio Tracealyzer visualizza il comportamento e le tempistiche del software embedded basandosi su una libreria di tracciamento software aggiunta nel sistema target. Questa estende il kernel del tuo RTOS con una strumentazione leggera aggiunta agli hook preesistenti per catturare eventi chiave, come:

    • Cambio di task (task switching)
    • Chiamate API del kernel
    • Blocchi (blocking) e timeout

    Esiste anche una API C per il logging personalizzato (“eventi utente”) che consente di estendere il tracciamento per loggare valori di variabili e altri eventi di debug.

    Il tracciamento può essere esplorato visivamente in Tracealyzer attraverso varie viste grafiche e analisi per il debug, il profiling e il rilevamento di anomalie, inclusi grafici del carico CPU, utilizzo della memoria stack e heap e diagrammi temporali. Il tracciamento può essere eseguito in streaming live continuo o come snapshot in memoria per catturare i momenti critici che precedono un problema.

    Tracealyzer è una soluzione al 100% software e non richiede una porta di tracciamento dedicata sul dispositivo, ma può beneficiare di sonde di debug veloci come IAR I-Jet e Segger J-Link come interfacce ad alta velocità per lo streaming continuo.


    Testimonianze degli Utenti

    “Non è sempre facile decidere se un investimento sia una buona idea o meno. Ma ora che abbiamo investito in Tracealyzer, è molto difficile per noi immaginare di sviluppare firmware basato su FreeRTOS senza di esso. […] Dal mio punto di vista, Tracealyzer per un RTOS è come l’oscilloscopio per la progettazione hardware; non è un’opzione, è un requisito.” — Mr. Ravache, R&D, Neovigie


    Supporto e Compatibilità

    • Bare-metal, RTOS e Linux: Supporto preconfigurato per i più popolari sistemi operativi embedded, tra cui FreeRTOS, Zephyr, ThreadX, PX5 RTOS, SafeRTOS, LynxOS-178, VxWorks e Linux. L’SDK di Tracealyzer consente integrazioni con altri OS e osservabilità “full-stack”.
    • Su qualsiasi processore: Supporta numerose famiglie di processori, inclusi STM32, NXP i.MX RT, Xilinx Zynq e altri dispositivi Arm, ESP32 e molti altri. È comunemente usato su microcontrollori a 32 bit e SoC multicore a 64 bit.
    • Con qualsiasi strumento di sviluppo: Utilizzabile con qualsiasi compilatore, inclusi GCC, Clang e IAR Embedded Workbench. Sono disponibili guide specifiche e supporto per i debugger Arm Keil µVision, IAR, Segger J-Link, STM32CubeIDE, Espressif ESP-IDF e Lauterbach.
  • Razorcat TESSY

    Alta complessità, requisiti critici per la sicurezza, tempi di sviluppo sempre più brevi e forte pressione sui costi: oggi la qualità e l’affidabilità dei sistemi embedded possono essere garantite solo attraverso l’uso di strumenti di test automatizzati. Da oltre 25 anni, Razorcat sviluppa e commercializza strumenti intuitivi per il test automatizzato del software embedded. Oltre a ciò, Razorcat offre servizi completi di consulenza e testing basati sulle metodologie e tecnologie più avanzate. I nostri clienti rappresentano una vasta gamma di settori industriali, tra cui elettronica, medicale, industriale, automotive e aerospaziale.


    Prodotti Razorcat per il tuo processo di test

    TESSY – Test automatizzato di software embedded

    Il potente strumento certificato per lo Unit e Integration Testing di software embedded in C / C++, con supporto per un’ampia gamma di microcontrollori, ambienti di compilazione e piattaforme target. TESSY è qualificato per lo sviluppo di software critico per la sicurezza secondo gli standard IEC 61508 e ISO 26262.

    CTE – Classification Tree Editor (Progettazione sistematica dei test)

    L’editor grafico che facilita una progettazione dei test sistematica e tracciabile secondo il metodo dell’albero di classificazione, riducendo i casi di test ridondanti e soggetti a errori.

    ITE – Gestione dei test (Test Management)

    L’ambiente di test integrato (Integrated Test Environment) intuitivo, ideale per la gestione di progetti complessi di test hardware o software.

    CCDL – Linguaggio semplice per System Test

    Editor e ambiente di runtime per il testing completamente automatizzato basato sul linguaggio CCDL (Check Case Definition Language), facile da apprendere e applicare.

    TOP / TRM – Esecuzione e valutazione dei test

    Rappresenta la piattaforma ideale per consentire a più utenti di creare, gestire ed eseguire test in modo automatizzato.


    I servizi di testing e consulenza offerti da Razorcat

    • Testing: Progettazione ed esecuzione i vostri unit test, test di integrazione, di componente, di sistema e di regressione per il software embedded, offrendo una consulenza competente sul vostro processo di test.
    • Seminari: Con seminari in loco o presso le sedi Razorcat, formiamo principianti ed esperti nel campo del testing software, insegnando l’uso efficiente degli strumenti di test.
    • Consulenza: Supporto in tutte le fasi del testing software: dalla gestione dei test e del progetto ai processi, fino alla documentazione e alla certificazione dei vostri sistemi critici per la sicurezza.
    • Sviluppo: Adattamento dei loro strumenti ai vostri sistemi e tool di test esistenti, configurando ambienti di test specifici e offrendo servizi di sviluppo per sistemi embedded e basati su PC.
  • IAR Embedded Workbench Functional-Safety Edition

    La toolchain IAR Functional-Safety si basa su strumenti certificati TÜV per applicazioni critiche dal punto di vista della sicurezza, ottimizzando la certificazione per i settori automobilistico, dell’automazione industriale, dei dispositivi medici e altri settori altamente regolamentati.


    Sicurezza comprovata con IAR

    Accelera la certificazione con strumenti certificati TÜV

    Utilizza toolchain pre-certificate per ridurre gli sforzi aggiuntivi di validazione della sicurezza, aiutando gli sviluppatori a raggiungere la conformità più velocemente e riducendo al contempo i costi e la complessità della certificazione.

    Sviluppo “Fail-safe” per sistemi critici

    Garantisci l’affidabilità del sistema e previeni guasti critici con una validazione completa, analisi del codice statica e dinamica e workflow automatizzati che riducono i rischi nelle applicazioni di sicurezza funzionale.

    Conformità semplificata per gli standard normativi

    Le soluzioni di conformità “chiavi in mano” semplificano i processi di certificazione, riducendo l’impegno nello sviluppo e garantendo l’adesione agli standard di sicurezza per il settore automotive, l’automazione industriale e i dispositivi medici.


    Garantire la conformità per sistemi critici con soluzioni di sviluppo certificate

    La sicurezza funzionale richiede una validazione rigorosa e l’adesione a standard di settore. Ottenere la conformità può essere complesso, lungo e costoso, ma gli strumenti certificati TÜV di IAR ottimizzano il processo, riducendo la necessità di costose riprogettazioni. Con compilatori e strumenti di analisi pre-certificati, i team possono creare applicazioni critiche con fiducia, garantendo l’affidabilità del software e riducendo al minimo la complessità della certificazione.

    Ottimizzare la certificazione con strumenti pre-certificati

    Soddisfare standard come ISO 26262, IEC 61508 e IEC 62304 può richiedere fino a 12 mesi se gli strumenti vengono validati in modo indipendente. L’uso di strumenti IAR certificati TÜV elimina la necessità di ulteriori fasi di qualificazione, riducendo i rischi di responsabilità civile e i ritardi normativi.

    IAR offre strumenti certificati TÜV che coprono 10 diversi standard di sicurezza, insieme a supporto a lungo termine e risoluzione rapida dei problemi tramite un accordo dedicato di Functional Safety Support. L’analisi statica e dinamica di IAR verifica continuamente l’integrità del software, rilevando vulnerabilità prima del rilascio.


    I componenti della Sicurezza Funzionale di IAR

    • IAR Embedded Workbench: Toolchain completa con compilatore leader del settore, debugger e strumenti di analisi.
    • IAR Build Tools: Automatizza le build e i test nelle pipeline CI/CD con strumenti da riga di comando ad alte prestazioni.
    • IAR C-STAT: Rileva difetti e vulnerabilità precocemente con l’analisi statica per MISRA C/C++, CERT C/C++ e altri standard.
    • IAR C-RUN: Identifica errori a runtime, leak di memoria e overflow, migliorando l’affidabilità del software.
    • IAR Visual State: Consente la modellazione grafica di macchine a stati per la validazione di applicazioni embedded complesse.

    Copertura degli standard e architetture certificate

    SettoreStandardArmRISC-VRenesas (RL78/RX/RH850)
    IndustrialeIEC 61508
    AutomotiveISO 26262
    FerroviarioEN 50128 / EN 50657
    MedicaleIEC 62304
    AgricolturaISO 25119
    MacchinariISO 13849 / IEC 62061
    ElettrodomesticiIEC 60730

  • IAR VisualSTATE


    IAR Visual State

    Il design e la generazione di codice secondo IAR

    IAR Visual State è un insieme di strumenti di sviluppo completamente integrati per la progettazione, il test e l’implementazione di applicazioni embedded basate su modelli di macchine a stati.

    Vantaggi chiave

    IAR Visual State consente la progettazione grafica, il riutilizzo del codice, la verifica e l’integrazione indipendente dal target.

    • Sviluppo intuitivo
    • Manutenzione e riutilizzo semplificati
    • Supporto per sistemi ad alta integrità
    • Codice indipendente dal target

    Sviluppo intuitivo

    Le macchine a stati grafiche rendono la logica dell’applicazione facile da creare, comprendere e modificare. Consentono un flusso di lavoro iterativo in cui gli stati della macchina corrispondono agli stati dell’applicazione, garantendo un processo di sviluppo naturale e migliorando la chiarezza e la comunicazione.

    Manutenzione e riutilizzo semplificati

    Concentrarsi sulla logica di progettazione anziché sulla scrittura del codice rende la manutenzione più efficiente. I modelli di macchine a stati possono essere riutilizzati in applicazioni simili con uno sforzo minimo, riducendo i tempi di sviluppo e garantendo coerenza tra progetti con logiche complesse.

    Supporto per sistemi ad alta integrità

    Il codice generato da IAR Visual State può essere reso conforme agli standard MISRA C/C++ e supporta progetti di sicurezza funzionale (Functional Safety), inclusa la conformità allo standard IEC-61508. La sua verifica formale rileva stati irraggiungibili, punti ciechi (dead-ends) e input non consumati, facilitando l’identificazione di difetti di progettazione che le suite di test tradizionali potrebbero non rilevare.

    Codice indipendente dal target

    Il codice C e C++ generato gira su qualsiasi piattaforma dotata di un compilatore standard. Poiché non si affida a funzioni specifiche del compilatore, garantisce flessibilità e portabilità tra diversi sistemi embedded; inoltre, il supporto per C# e Java consente lo sviluppo cross-platform in diversi ambienti software.


    Funzionalità

    IAR Visual State supporta l’integrazione con RTOS, la generazione di codice, la simulazione, la verifica e la gestione delle varianti, aiutando i team di sviluppo a migliorare efficienza, affidabilità e design del software.

    • Compatibile con RTOS: Il codice generato si integra perfettamente con gli ambienti RTOS. È possibile progettare la logica di controllo e assegnare le macchine a stati ai task dell’RTOS, consentendo una distribuzione flessibile dei compiti.
    • Doppia API di codice: Scegli tra un codice leggibile dall’uomo per la tracciabilità o un codice compatto basato su tabelle per la massima efficienza in termini di dimensioni ed esecuzione.
    • Simulazione dell’esecuzione: Il simulatore fornisce debug animato, tracciamento della macchina a stati e analisi dinamica/statica, aiutando a visualizzare le interazioni tra i task.
    • Verifica formale integrata: Identifica problemi difficili da testare come stati irraggiungibili o condizioni di blocco già nelle prime fasi del design.
    • Supporto per varianti di prodotto: Definisci più varianti di prodotto in modo efficiente mantenendo un design di base condiviso, riducendo la necessità di percorsi di sviluppo separati.

    Standard supportati

    • UML e Mealy: Sviluppato in conformità con la notazione UML, può essere utilizzato anche per progettare sistemi stato/evento conformi alla notazione di Mealy.
    • ISO/ANSI e MISRA: Tutti i costrutti C/C++ generati aderiscono agli standard ISO/ANSI C e possono essere conformi a MISRA-C:2004, MISRA-C:2012 e MISRA-C++:2008.

    Integrazione di terze parti

    Connettiti a strumenti esterni e ambienti di sviluppo per migliorare flessibilità e interoperabilità.

    • Control Center: Fornisce ai prodotti di terze parti un’interfaccia verso IAR Visual State, utilizzabile ad esempio per la simulazione remota del modello.
    • API della macchina a stati
    • Integrazione del codice

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