SBC (Fig. 1) è una scheda elettronica ad alte prestazioni, fornisce potenze di calcolo ottimizzate a fronte di bassi costi e livelli minimi di assorbimento di energia elettrica. Molto spesso sono montati su rack con fattori di forma e standard del settore industriale specifico, quali per esempio COM Express, VME.
Diverse applicazioni SBC includono il controllo di aeromobili e la navigazione, radar, telecomunicazioni in generale, l’imaging medico e il controllo industriale. Queste applicazioni utilizzano processori a 32 bit per il calcolo di algoritmi vettoriali di high-end e lavorano con sistemi operativi real time embedded. Le prestazioni del processore possono variare da 400 a ben 20000 MIPS. Memoria a disposizione di solito maggiore di 256 kbyte di cache L2.
Idealmente la SBC viene utilizzata quando il livello di design del componente è abbastanza complicato e non può essere prodotto localmente da un team di ingegneri. Così come i processori sono diventati più veloci (ARM, Intel) anche le SBC sono diventate più potenti con costi ridotti. La crescente economicità di questi prodotti ha motivato la progettazione di nuove SBC di diversi produttori. Alcuni esempi sono: Raspberry, Hackberry.
La SBC incorpora CPU, controller di I/O e tutti i connettori standard su un’unica piccola piastra. Se tutte queste funzionalità vengono implementate su un unico chip, allora si parla di System on Chip (SoC). Oltre all’architettura PC, altri standard dominano il mercato dell’embedded. PC/104 definisce una form factor per la scheda e per il bus ISA, che permettono di superare i limiti di spazio e consumo imposti da altri sistemi e continuare, quindi, a utilizzare le architetture PC anche nei device embedded.
EBX definisce le posizioni sulla piastra per componenti standard, compreso il bus PC/104-Plus, ma non definisce un nuovo bus di sistema. Oltre alle CPU Intel IA32 (x86), sono diffuse ARM, Power PC, MIPS. Le Single Board Computer in formato PC/104 si caratterizzano in particolare per la loro compattezza e per la considerevole diffusione dello standard.
Software/Hardware per SBC
Fin dalla sua nascita, l’architettura standard delle SBC era Intel x86 per le sue elevate prestazioni con il sistema operativo Microsoft. Più di recente, Linux ha guadagnato molto sostegno per essere altrettanto potente ma soprattutto open-source. Uno studio afferma che Linux rappresenta il sistema operativo maggiormente utilizzato dagli ingegneri embedded. Alcuni produttori di SBC hanno anche realizzato un proprio sistema operativo, un esempio è NI Real-Time (RTOS). Sistemi operativi come RTOS differiscono da quelli più generali, in quanto sono progettati per eseguire le applicazioni con tempistiche e gradi di affidabilità molto efficienti.
Processi in real time possono essere identificati in due gradi di robustezza: soft e hard. Solo quest’ultimo garantisce assolutamente le massime prestazioni. Tuttavia, processi in real time richiedono la realizzazione sia di sistemi operativi real-time sia di software.
SBC moderni offrono la possibilità di un integrato schermo Touch. Un esempio è il touch NI Touch Panel Module, che è in grado di lavorare su LabVIEW della SBC con sistema operativo Windows CE. Planar offre una selezione di oltre 16 Touch screen con ingressi digitali che possono essere adattati ad ogni SBC.
Raspberry e Hackberry
Raspberry (Figg. 2 e 3) è un SBC di dimensioni tipo carta di credito, sviluppata in Inghilterra da Raspberry Pi Foundation con l’intento di stimolare l’insegnamento di informatica di base nelle scuole. Il Raspberry PI ha una broadcom BCM2835 system (SoC), che comprende un ARM1176JZF-S 700 Mhz, VideoCore IV GPU e originariamente fornito con 256 Mbyte di RAM, successivamente aggiornata a 512 Mbyte.
ARM11 è un’architettura ARM a 32 bit RISC che ha introdotto le architetture aggiuntive ARMv6. Questi includono le istruzioni SIMD media, supporto multiprocessore e un architettura di nuova cache. L’implementazione permette un deciso miglioramento delle pipeline di elaborazione delle istruzioni, rispetto alle precedenti ARM9 e ARM10. Utilizzato principalmente negli Smartphone di Apple e Nokia.
La scheda Raspberry (Fig. 2) non include un built-in del disco rigido ma utilizza una scheda SD per la memorizzazione a lungo termine. Il firmware include una serie di tool che permette all’utente di raggiungere velocità di clock fino a 1 Ghz.
La Fondazione fornisce Debian Linux come sistema operativo e strumenti per lo sviluppo di applicativi in Python.
Hackberry (Fig. 4) è basato sul popolare ARM10 a 1.2 Ghz Allwinner con supporto Linux (e anche Android). La scheda possiede il protocollo Wi-Fi ed Ethernet per la comunicazione via web con l’accelerazione hardware 3D e un GPU Mail400 garantisce una decodifica video full HD. Il dispositivo offre una vasta gamma di opzioni di connettività. USB, audio in o out, uscita HDMI e AV nonché l’accesso a basso livello tramite RS232 che consente al dispositivo di agevolare il debug per chi è interessato a creare proprie immagini del sistema operativo per farle funzionare sulla scheda.
Fig. 3 – Raspberry, Power Input e Oscillatore (schema elettrico)
Power Management nelle SBC
Tecniche di analisi di potenza sono state proposte per i sistemi embedded, basate sulla caratterizzazione a livello di istruzioni e simulazioni hardware. Il Dynamic Power Management ha dimostrato di essere particolarmente efficace per ridurre la dissipazione di potenza in tali sistemi. Incorporare un sistema dinamico di potenza è un processo difficile che richiede molte iterazioni di design e un attento debug. L’obiettivo di una politica di gestione dinamica di alimentazione è ridurre il consumo di energia di un sistema elettronico per mettere i componenti del sistema in diversi stati, ciascuno che rappresenta una certa prestazione con determinati livelli di energia. La politica determina il tipo e il timing delle transizioni basate sulla storia del sistema, carico di lavoro e prestazioni.
Gli elementi principali di un micro-computer sono il microprocessore, memoria e bus di comunicazioni dedicati a fornire i mezzi di comunicazione per i dati. Questi canali tendono a sostenere del traffico “pesante” e costituiscono spesso il collo di bottiglia delle prestazioni in molti sistemi. Allo stesso tempo la dissipazione di energia per bus di accesso alla memoria è piuttosto elevata, che a sua volta limita l’efficienza in termini energetici dell’intero sistema. Tecniche di low power bus encoding vengono utilizzate per far fronte a questo tipo di problemi.
Android e SBC
APC A
ndroid è un micro-computer di dimensioni piccolissime, circa 17 * 8 cm. Il cuore della Single Board Computer APC è un ARM11, con 512 MB di memoria DDR3 e 2 GB di memoria flash. Il chip supporta riproduzione video HD 1080p con codifica video H.264 e grafica OpenGLES 2.0. Il processore è simile a quello che si ha con il Raspberry Pi. Non sarà il chip più veloce al mondo, ma è sufficiente a supportare la versione di Android 2.3. Ciò che contraddistingue l’APC da Raspberry è la vasta gamma di porte incluse. Dispone di porte VGA e HDMI, 4 porte USB 2.0, Ethernet 10/100 e slot per MicroSD.
L’unica cosa che manca è il protocollo Wi-Fi, ma si dovrebbe essere in grado di aggiungerlo attraverso la porta USB.
Una Single Board Computer che può definirsi la rivale di Raspberry è Gooseberry (Fig. 5). Le caratteristiche principali possono essere riassunte di seguito: processore 1 Ghz, 512 MB di RAM, storage interno di 4 GB, Wi-Fi, 1 porta USB. La versione attuale può montare solo il sistema operativo Android; ma sviluppi futuri su questa scheda porteranno all’utilizzo di altre distribuzioni operative commerciali tra i quali Linux. Con la Goosberry, Android è sempre più presente nel mondo embedded.