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
| Caratteristica | emCompress-Pro | emCompress-ToGo | emCompress-Embed | emCompress-LZMA |
| Compressione sul target | Sì [1] | Sì | No | No |
| Decompressione sul target | Sì | Sì | Sì | Sì |
| Algoritmi disponibili | DEFLATE, LZMA, LZJU90, LZPJ | SMASH-2 | DEFLATE, Huffman, LZW, LZSS, LZJU90, RLE-PAR | LZMA |
| Applicazioni tipiche | Aggiornamenti firmware, trasferimento dati esterni | Data loggers, Bluetooth, Satelliti | Riduzione dimensione firmware, bitstream FPGA, asset UI | Aggiornamenti firmware economici |
[1] Funzionalità supportata solo con l’add-on opzionale del codice sorgente del compressore.
