Mercury System (in breve, MS) è un sistema modulare per lo sviluppo di connettività e applicazioni IoT. Il sistema utilizza vari tipi di schede elettroniche (unità logica, modem, scheda slave dotata di sensori e attuatori, schede di potenza …) e una completa struttura SW che permette la realizzazione di applicazioni complesse. Scalabilità, facilità d’uso e modularità sono fattori chiave e sono garantiti dall’uso di un insieme eterogeneo di componenti che consentono di assemblare il sistema come una costruzione realizzata con mattoncini LEGO©.
Il set di schede che compone il Sistema Mercury è costituito dalle seguenti “famiglie”:
• Base Board (BB): È il “cervello” di tutto il Sistema Mercury e contiene l’unità logica principale, diversi bus di comunicazione e i connettori per interfacciare gli slave. Contiene inoltre un semplice sistema di alimentazione e un’unità di ricarica per una singola cella LiPo (in grado di soddisfare i requisiti di alimentazione di sistemi più semplici). Può esistere in diverse varianti, a seconda dell’unità di microcontrollore utilizzata.
• Modem Board (MB): questa è la scheda che consente la connettività di rete. Può esistere in diverse varianti, a seconda dell’interfaccia di rete (GSM / GPRS, Wi-Fi, BT, Radio …). È interfacciata alla scheda base con una linea seriale dedicata.
• Power Board (PB): è la scheda che consente di soddisfare il particolare fabbisogno energetico del sistema, quando è necessario. Possono variare a seconda del particolare fabbisogno energetico da soddisfare (alta potenza, raccolta solare, raccolta piezoelettrica, ecc.).
• Slave Board (SB): sono le periferiche del sistema e variano a seconda del sensore o dell’attuatore montato specifico. Esempi tipici sono SB con relè, sensori di temperatura, controller LED RGB, servoregolatore, accelerometro, ecc. Comunicano con il BB con I2C o UART e un set di comandi dedicato.
• Expansion Board (EB): sono le schede che consentono la connessione planare delle schede Mercury. Ci sono varianti che possono contenere display, porta batteria, ecc.
• Brain-Less Board (BL): queste sono le schede senza controller. In generale contengono sensori o attuatori veramente semplici che non necessitano dell’interfaccia bus. Sono un’alternativa alle schede slave per applicazioni che richiedono costi contenuti.
Le Slave Board e le Modem Board sono pre-programmate con un Firmware che implementa un set di comandi dedicato per una gestione di alto livello, mentre le Base Board sono dotate di un framework Software che fornisce tutti i servizi di basso livello (sistema operativo, driver di periferica, servizi di sistema, ecc.), lasciando all’utente solo lo sviluppo della logica a livello di applicazione. |
Il framework è costituito dai seguenti componenti:
HAL (Hardware Abstraction Layer): lo scopo di questo livello è di astrarre le dipendenze Hardware ai livelli superiori.
SML (System Management Layer): lo scopo di questo livello è quello di fornire servizi per la gestione dei bus di comunicazione (I2C, UART) e per la gestione della Modem Board (WiFi, BT, GSM / GPRS). Fornisce anche un set di servizi di sistema, come System Power Management, RTCC, terminale USB, ecc.
È diviso in due componenti principali:
- PML: livello di gestione delle periferiche
- SSL: livello dei servizi di sistema
OSL (Operative System Layer): questo layer è costituito da un RTOS leggero che fornisce servizi di base al sistema, come le tabelle di pianificazione per le varie attività, eventi, timer SW, allarmi, ecc. |