| 

Segger emCompress

La riduzione delle dimensioni dei dati per l’archiviazione e il trasferimento è estremamente preziosa nei sistemi embedded. Ridurre l’ingombro dell’archiviazione minimizza la complessità e i costi dei sistemi, mantenendo bassi i requisiti di memoria. Ridurre le dimensioni del trasferimento permette di superare i limiti della larghezza di banda disponibile per l’invio e la ricezione dei dati.

Progettato specificamente per i sistemi embedded, emCompress è in grado di comprimere e decomprimere dati anche sui microcontrollori più piccoli. emCompress è disponibile in quattro edizioni: emCompress-Pro, emCompress-ToGo, emCompress-Embed e emCompress-LZMA, che coprono diverse applicazioni di compressione. Ogni edizione è ottimizzata per il suo uso specifico per fornire il modo più conveniente di gestire i dati.

emCompress è scritto in codice ANSI C ben commentato. È indipendente sia dal compilatore che dal target. A differenza della maggior parte delle librerie di compressione, non è coperto da licenze open source o con obbligo di attribuzione e può essere integrato in qualsiasi prodotto commerciale o proprietario senza l’obbligo di divulgare il codice sorgente combinato.

Caratteristiche principali

  • Per dispositivi embedded, app e software per PC
  • Ridotto ingombro ROM del decompressore
  • Ampia gamma di algoritmi di compressione
  • Facile da configurare e integrare
  • Quattro edizioni per soddisfare ogni esigenza di compressione

Vantaggi

Minore spazio occupato in memoria

Comprimendo i dati, è possibile memorizzarne molti di più nella memoria flash (interna o SPI) o su una scheda SD esterna. Che si tratti di aggiornamenti firmware, bitstream di configurazione o risorse per l’interfaccia (asset), minore è l’ingombro, più economica diventa la soluzione grazie all’uso di supporti di memoria più piccoli e meno costosi.

Minore traffico di comunicazione

Nelle applicazioni che utilizzano collegamenti a bassa larghezza di banda, la compressione permette di trasmettere più informazioni in meno tempo. Inoltre, meno traffico di rete riduce il consumo energetico di trasmettitori e ricevitori. Per le comunicazioni a lunga distanza, meno dati portano a meno errori e maggiore velocità di trasmissione.

Aggiornamenti più veloci

Tramite la compressione, i nuovi firmware o i dati di aggiornamento possono essere trasmessi via etere (OTA) non solo con meno banda, ma anche più velocemente. Questo è cruciale per canali come Bluetooth, Zigbee o comunicazioni mobili in aree con scarsa copertura di rete.


Casi d’uso

SEGGER ha sviluppato quattro diverse edizioni per coprire ogni scenario. Di seguito sono riportati i casi d’uso principali:

  • Velocizzare gli aggiornamenti firmware: Molti prodotti devono essere aggiornati sul campo con banda limitata. emCompress-Pro ed emCompress-LZMA permettono di ricevere flussi di dati compressi e decomprimerli “al volo” durante l’aggiornamento.
  • Ridurre le dimensioni delle immagini firmware: Quando il firmware rischia di superare la dimensione della flash, emCompress-Embed è la scelta giusta per comprimere i dati statici e decomprimerli solo quando necessario.
  • Minimizzare l’archiviazione degli asset (UI): Le risorse digitali per l’interfaccia utente possono essere archiviate in forma compressa. Con la modalità “group” di emCompress-Embed, più asset possono essere compressi insieme per risultati ancora migliori.
  • Ridurre il traffico di rete IoT: Per le reti congestionate, emCompress-ToGo permette a mittente e destinatario di comprimere/decomprimere i messaggi in tempo reale.
  • Elaborare dati da strumenti di terze parti: Se un dispositivo riceve dati compressi da fonti esterne, emCompress-Pro garantisce la compatibilità con i comuni strumenti di compressione e formati di archivio.
  • Bitstream per FPGA: emCompress-Embed può comprimere i bitstream di configurazione per FPGA/CPLD, permettendo la configurazione immediata del dispositivo tramite blocchi decompressi al volo.
  • Data Logging: Per risparmiare risorse durante la raccolta di grandi quantità di dati, emCompress-ToGo è la soluzione ideale per archiviare log compressi.

Edizioni a confronto

CaratteristicaemCompress-ProemCompress-ToGoemCompress-EmbedemCompress-LZMA
Compressione sul targetSì [1]NoNo
Decompressione sul target
Algoritmi disponibiliDEFLATE, LZMA, LZJU90, LZPJSMASH-2DEFLATE, Huffman, LZW, LZSS, LZJU90, RLE-PARLZMA
Applicazioni tipicheAggiornamenti firmware, trasferimento dati esterniData loggers, Bluetooth, SatellitiRiduzione dimensione firmware, bitstream FPGA, asset UIAggiornamenti firmware economici

[1] Funzionalità supportata solo con l’add-on opzionale del codice sorgente del compressore.

Articoli simili

  •  |  | 

    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…

  •  | 

    Segger J-Link OB

    Il J-Link OB (dove OB sta per: on-board) è essenzialmente un J-Link in un chip singolo basato su microcontrollore che viene integrato direttamente sulla scheda di valutazione. Arricchisce il design di qualsiasi scheda target con funzionalità standard, come il supporto al debug, il caricamento nella memoria Flash e il VCOM, senza aggiungere costi extra. Il…

  •  |  | 

    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…

  •  |  | 

    Segger emRun

    Panoramica La maggior parte delle toolchain che utilizzano GCC o LLVM si appoggia a newlib, newlib-nano o glibc. Sfortunatamente, queste librerie presentano svantaggi significativi rispetto alle librerie di runtime professionali per sistemi embedded. È qui che entra in gioco emRun. Può essere utilizzato con GCC, LLVM e altre toolchain per fornire una libreria di runtime…

  •  |  | 

    Segger SystemView

    Panoramica SystemView è uno strumento di testing embedded progettato per analizzare e profilare il comportamento dei sistemi real-time. Offre approfondimenti dettagliati sul comportamento a runtime, superando le capacità dei debugger tradizionali. Ideale per sistemi complessi con thread multipli e interrupt, SystemView aiuta gli sviluppatori di software embedded a garantire che i propri sistemi funzionino come…

  •  |  | 

    Segger emFloat

    Sviluppato e perfezionato per oltre due decenni, emFloat è un componente altamente ottimizzato di emRun (la libreria runtime C di SEGGER) ed è parte integrante di SEGGER Embedded Studio. Progettato per essere “plug-and-play”, emFloat può sostituire la libreria a virgola mobile predefinita, offrendo prestazioni superiori con meno codice. Estremamente veloce e compatto, garantisce prestazioni simili…