Segger emVNC
emVNC-Server (Virtual Network Computing) consente di visualizzare il display e gestire un sistema embedded tramite USB (utilizzando emUSB-Device di SEGGER), TCP/IP o qualsiasi altro livello di trasporto di tipo socket.
emVNC è stato progettato specificamente per i sistemi embedded. Fornisce sia il modulo server per il sistema target, sia l’applicazione client per i computer. L’applicazione lato PC è multi-piattaforma (disponibile per Linux, macOS e Windows) ed è scaricabile gratuitamente.
Caratteristiche principali
- Consente display remoti e virtuali anche per sistemi “headless” (senza monitor).
- Supporta qualsiasi canale di comunicazione (USB, TCP/IP e altre interfacce socket).
- Implementazione server VNC/RFB progettata appositamente per sistemi embedded.
- Requisiti di memoria estremamente ridotti.
- Integrazione flessibile con qualsiasi libreria grafica (come emWin) o di comunicazione.
- Funziona con qualsiasi display fisico o virtuale.
- Funzionalità di protocollo standard per l’autenticazione utente e riduzione del traffico di rete.
- Client VNC gratuito disponibile con supporto per VNC over USB.
- Nessun hardware aggiuntivo richiesto.
Display virtuale
Per un sistema embedded dotato di schermo, il display può essere replicato (mirroring) sul computer remoto. Per i sistemi senza schermo, è possibile visualizzare il contenuto di un display virtuale. Se necessario, può anche essere utilizzato come console/terminale solo testo.
Connessione
VNC su qualsiasi supporto
Grazie alla sua interfaccia di programmazione astratta, il protocollo VNC di emVNC-Server può essere trasferito tramite qualsiasi livello di trasporto simile a un socket. Supporta TCP/IP tramite emNet e VNC su USB tramite emUSB-Device; altri protocolli possono essere aggiunti facilmente.
Connessione via USB
La connessione via USB è estremamente economica e apre una vasta gamma di opzioni. Poiché l’USB è già ampiamente diffuso, emVNC può essere implementato semplicemente collegandosi a un’interfaccia esistente. Non ci sono costi hardware extra e la memoria richiesta (Flash e RAM) è talmente esigua da permetterne l’uso anche in piccoli sistemi embedded.
RFB e Indipendenza dalla GUI
La connessione avviene tramite il protocollo standard Remote Framebuffer (RFB), che permette l’uso di altri client VNC su PC, tablet o smartphone. emVNC-Server è indipendente dalla GUI e funziona perfettamente con librerie grafiche come emWin. L’uso con emWin è caldamente raccomandato per massimizzare prestazioni ed efficienza delle risorse.
Client supportati
Il server supporta tutti i client VNC standard, tra cui:
- SEGGER VNC Client
- gvncviewer, SSVNC, Remmina
- RealVNC, TightVNC
Casi d’uso
- Supporto remoto per manutenzione: Consente di regolare e manutenere sistemi (es. impianti di riscaldamento) da remoto, leggendo log e risolvendo errori senza inviare tecnici sul posto.
- Configurazione di dispositivi headless: Un dispositivo come una stampante potrebbe eliminare il display fisico per ridurre i costi. La configurazione iniziale e le interazioni successive avvengono via USB o Wi-Fi tramite l’interfaccia VNC su un altro dispositivo (PC o smartphone).
Requisiti di sistema
- Multi-tasking: Il server VNC deve girare come thread separato. È quindi necessario un RTOS (si consiglia embOS).
- Trasporto: Richiede uno stack IP (come emNet) per TCP/IP o un software per dispositivi USB (come emUSB-Device) per la connessione USB.
Occupazione di memoria (Footprint)
L’utilizzo di RAM del solo emVNC-Server parte da meno di 400 byte. L’occupazione totale dipende principalmente dal frame buffer (dimensioni e profondità colore). Se si usa una libreria come emWin, emVNC può accedere direttamente al suo frame buffer senza duplicarlo.
| Componente | ROM | RAM | Note |
| emVNC-Server | 6.3 KB | 0.3 KB | + buffer di trasferimento (configurabile da 64 byte) + stack USB o TCP/IP |
Esempio di calcolo Frame Buffer:
- Display 320×240 a 32 bit: circa 300 KB.
- Display monocromatico 100×32: solo 400 byte.
Licenze
emVNC è disponibile sotto vari modelli di licenza per software embedded e viene fornito in pacchetti di codice sorgente.
- Pagamento unico: Nessuna royalty, nessun abbonamento.
- Supporto incluso: 6 mesi di aggiornamenti e assistenza da parte degli esperti SEGGER.
- Modelli: Licenza per singolo prodotto o per singolo sviluppatore.
